Obsah:

Meteostanica NaTaLia: Meteostanica Arduino poháňaná solárnou energiou urobila správnu cestu: 8 krokov (s obrázkami)
Meteostanica NaTaLia: Meteostanica Arduino poháňaná solárnou energiou urobila správnu cestu: 8 krokov (s obrázkami)

Video: Meteostanica NaTaLia: Meteostanica Arduino poháňaná solárnou energiou urobila správnu cestu: 8 krokov (s obrázkami)

Video: Meteostanica NaTaLia: Meteostanica Arduino poháňaná solárnou energiou urobila správnu cestu: 8 krokov (s obrázkami)
Video: МОДУЛИ ПЕРЕДАТЧИКА И РАДИОПРИЁМНИКА ДЛЯ ARDUINO-ПРОЕКТОВ НА 433 МГц 2024, Júl
Anonim
Meteostanica NaTaLia: Meteostanica Arduino poháňaná solárnou energiou urobila správnu cestu
Meteostanica NaTaLia: Meteostanica Arduino poháňaná solárnou energiou urobila správnu cestu
Meteostanica NaTaLia: Meteostanica Arduino poháňaná solárnou energiou urobila správnu cestu
Meteostanica NaTaLia: Meteostanica Arduino poháňaná solárnou energiou urobila správnu cestu

Po 1 roku úspešnej prevádzky na 2 rôznych miestach zdieľam svoje plány solárnej elektrárne s meteorologickou stanicou a vysvetľujem, ako sa vyvinul do systému, ktorý dokáže skutočne prežiť dlhé časové obdobia zo slnečnej energie. Ak budete postupovať podľa mojich pokynov a použijete presne tie isté materiály, ako sú uvedené v zozname, môžete postaviť meteorologickú stanicu na solárny pohon, ktorá bude fungovať mnoho rokov. Vlastne jediným faktorom obmedzujúcim životnosť batérie je životnosť batérie, ktorú používate.

Krok 1: Prevádzka meteorologickej stanice

1, vysielač: Vonkajší box so solárnym panelom, ktorý pravidelne odosiela telemetriu počasia (teplota, vlhkosť, tepelný index, slnečná sila) do vnútornej prijímacej jednotky.

2, Prijímač: Vnútorná jednotka vyrobená z Raspberry PI 2 + Arduino Mega s prijímačom RF 433 Mhz pripojeným na príjem dát. V mojom nastavení táto jednotka nemá žiadnu funkciu miestneho LCD displeja. Beží to bezohľadne. Hlavný program C sa stará o príjem prichádzajúcich údajov z Arduina cez sériový port, potom ich zaznamenáva do textového súboru a sprístupňuje posledné prijaté údaje prostredníctvom telnetu pre ďalšie zariadenia, aby na ne mohli zadávať otázky.

Stanica ovláda svetlá v mojom dome čítaním fotorezistora (ktorý určuje, či je vonku deň alebo noc). Prijímač je v mojom prípade bezhlavý, ale projekt môžete ľahko upraviť a pridať LCD displej. Jedným zo zariadení, ktoré používajú, analyzujú a zobrazujú údaje o počasí zo stanice, je môj ďalší projekt: Ironforge toaster NetBSD.

Krok 2: Prvé verzie

Prvé verzie
Prvé verzie
Prvé verzie
Prvé verzie
Prvé verzie
Prvé verzie
Prvé verzie
Prvé verzie

Na internete je veľa solárnych projektov, ale mnohé z nich sa dopúšťajú bežnej chyby, že systém v priebehu času vyberie z batérie viac energie, čo by solárny panel mohol doplniť, najmä počas zamračených, tmavých zimných mesiacov.

Keď navrhujete solárny systém, jediné, na čom záleží, je SPOTREBA ENERGIE na všetkých komponentoch: MCU, rádiovom vysielači, regulátore napätia atď.

Používať veľký počítač, ako je malina, alebo výkonné wifi zariadenie, ako je ESP, len na zhromažďovanie a prenos niekoľkých bitov údajov o počasí by bolo zbytočné, ale ako to ukážem v tomto návode, je to aj malá doska Arduino.

Najlepšie je vždy merať prúd počas procesu budovania meračom alebo rozsahom (užitočné, keď sa pokúsite zmerať malé špičky v prevádzke počas operácie vo veľmi krátkych časových intervaloch (milisekundách)).

Na prvom obrázku môžete vidieť moju prvú (Arduino Nano Based) stanicu a druhú dosku Arduino Barebone Atmega 328P.

Prvá verzia, aj keď fungovala perfektne (monitorovanie prostredia a odosielanie dát prostredníctvom rádia), mala príliš vysokú spotrebu energie ~ 46mA a vybila batériu za niekoľko týždňov.

Všetky verzie používali nasledujúcu batériu:

Vstavaná ochranná doska s lítium-iónovou nabíjateľnou batériou 18650 6000 mAh

AKTUALIZÁCIA na týchto batériách ScamFire. Aj keď je to dosť starý návod, stále som sa cítil nútený ho opraviť kvôli tejto falošnej batérii. NEKUPUJTE spomínanú batériu, urobte si vlastný prieskum o ďalších batériách LION/LIPO, všetky 3,7 V batérie budú s týmto projektom fungovať.

Nakoniec som mal čas odhaliť batériu ScamFire, aby som zistil, aká je jej skutočná kapacita. Preto spustíme 2 výpočty bok po boku so skutočnými a „inzerovanými“kapacitami.

V prvom rade je to jedna vec, že táto batéria je falošná a nič, čo o nej tvrdia, je pravda. Nové verzie sú ešte horšie, že skopírovali falošný s vynechaním ochranného obvodu s 2 centami, takže ich nič nezastaví vo vybití na nulu.

Malý článok o batériách LION/LIPO:

TLDR:

Čo to znamená, že maximálne napätie článku je 4,2v a „nominálne“(priemerné) napätie je 3,7V.

Tu je napríklad profil napätia pre „klasickú“batériu 3,7 V/4,2 V. Napätie začína na maximu 4,2 a po väčšinu životnosti batérie rýchlo klesá na približne 3,7 V. Keď dosiahnete 3,4 V, batéria je vybitá a pri 3,0 V odpojovací obvod batériu odpojí.

Moje merania pomocou atrapy záťaže:

Nabitá batéria: 4,1 V.

Cutoff nastavený na: 3,4V

Simulácia záťaže: 0,15 A (moje zariadenie malo trochu problém s poklesom nižšie než toto).

Nameraná kapacita: 0,77 Ah mu poskytne bezplatných 0,8 Ah, čo je 800 mAh namiesto inzerovaných 6 000 mAh!

Pretože táto batéria nemala ani ochranný obvod, mohol som voľne ísť nižšie, ale pri 3,4 V po 10 minútach už spadne na 3,0 V.

Vďaka jednoduchým výpočtom preto batéria poskytuje:

Teoretické

Napätie batérie = 3,7V

Výkon = 3,7x6000 = 22000 mWh

Reálny

Napätie batérie = 3,7VVýkon = 3,7x800 = 2960 mWh

Verzia: 0,1 ARDUINO NANO NA ZÁKLADE

Aj pri knižnici LowPower spotrebuje Arduino nano ~ 16 mA (v režime spánku) -> FAIL.

Teoretické

Dlažba = VxIavg = 5Vx16mA = 80 mW

Životnosť batérie = 22000/80 = 275 hodín = približne 11 dní

RealPavg = VxIavg = 5Vx16mA = 80 mW

Výdrž batérie = 800/80 = 10 hodín

Verzia: 0.2 Atmega 328P Barebone

Energia, ktorú spotrebuje ATmega328, závisí od toho, čo s ním robíte. Sedí v predvolenom stave a môže používať 16mA @ 5V pri behu na 16MHz.

Keď je ATmega328P v aktívnom režime, bude nepretržite vykonávať niekoľko miliónov pokynov za sekundu. Ďalej analógovo-digitálny prevodník palubných periférií (ADC), sériové periférne rozhranie (SPI), časovač 0, 1, 2, dvojvodičové rozhranie (I2C), USART, časovač strážneho psa (WDT) a detekcia zhasnutia (BOD) spotrebúvajú energiu.

Aby sa ušetrila energia, ATmega328P MCU podporuje množstvo režimov spánku a nepoužité periférie je možné vypnúť. Režimy spánku sa líšia v tom, ktoré časti zostanú aktívne, podľa dĺžky spánku a času potrebného na prebudenie (doba prebúdzania). Režim spánku a aktívne periférie je možné ovládať pomocou knižníc spánku a napájania AVR alebo, presnejšie povedané, pomocou vynikajúcej knižnice s nízkym výkonom.

Knižnica s nízkym výkonom sa ľahko používa, ale je veľmi výkonná. Príkaz LowPower.powerDown (SLEEP_8S, ADC_OFF, BOD_OFF); prepne MCU na SLEEP_MODE_PWR_DOWN na 16 ms až 8 s, v závislosti od prvého argumentu. Zakáže ADC a BOD. Úsporný režim znamená, že všetky funkcie čipu sú deaktivované až do nasledujúceho prerušenia. Ďalej sa zastaví externý oscilátor. MCU môžu prebudiť iba prerušenia úrovne na INT1 a INT2, prerušenia zmeny pinov, zhoda adries TWI/I2C alebo WDT, ak sú povolené. Jediným vyhlásením teda minimalizujete spotrebu energie. V prípade 3,3 V Pro Mini bez napájacej diódy LED a bez regulátora (pozri nižšie), na ktorom je uvedené vyhlásenie, je spotreba energie 4,5 μA. To je veľmi blízko k tomu, čo je uvedené v technickom liste ATmega328P pre režim spánku pri vypnutom WDT 4,2 μA (datový list prepojený v zdrojoch). Preto som si celkom istý, že funkcia powerDown vypne všetko, čo je rozumne možné. S príkazom LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);, bude WDT deaktivovaný a neprebudíte sa, kým sa nespustí prerušenie.

Vďaka nastaveniu barebone teda môžeme čip prepnúť do režimu spánku na 5 minút, pričom spotrebuje veľmi malé množstvo energie (0,04 mA bez periférnych zariadení). Je to však iba čip Atmega 328P s kryštálovým oscilátorom a nič iné, zosilňovač napätia použitý v tejto konfigurácii na zvýšenie napätia batérie z 3,7 V -> 5,0 V tiež spotrebuje 0,01 mA.

Jeden odtok konštantného napätia bol pridaný fotorezistor, ktorý zvyšoval spotrebu v režime spánku na celkovú hodnotu 1 mA (to zahŕňa všetky komponenty).

Vzorec na výpočet presnej spotreby zariadenia v režime spánku aj prebudenia je:

Iavg = (Ton*Ion + Tsleep*Spánok) / (Ton + Tsleep)

Ión = 13mA

To väčšinou pochádza z vysielača RF433 Mhz:

Vysielač:

Pracovné napätie: 3V - 12V pre max. spotreba energie 12V Pracovný prúd: max. Menej ako 40mA max. a min. 9m Rezonančný režim: (SAW) Modulačný režim: ASK Pracovná frekvencia: Eve 315MHz alebo 433MHz Výkon prenosu: 25mW (315MHz pri 12V) Chyba frekvencie: +150kHz (max) Rýchlosť: menej ako 10Kbps

Spánok = 1mA

Bez fotorezistora by to bolo výrazne menej.

Trunonový čas Ton = 250 mS = 0,25 s

Čas spánku Tsleep = 5 min = 300 s

Iavg = (Ton*Ion + Tsleep*Spánok) / (Ton + Tsleep)

Iavg = (0,25 s*13 mA + 300 s*1 mA) / (0,25 s + 300 s)

Iavg = 1,26mA

Dlažba = VxIavg = 5Vx1,26mA = 6 mW

Teoretické

Životnosť batérie = 22 000 mWh/6 mW = 3666 hodín = približne 152 dní

Reálny

Výdrž batérie = 800 mWh/6 mW = 133 hodín = približne 5,5 dňa

Aj keď to boli stále lepšie série UltraFire, to, čo som pôvodne používal, bolo vidieť, že bez solárneho panelu alebo nízkej spotreby 1mA by tento projekt dlho neprežil.

Neváhajte a postavte stanicu a svoje zistenia a výpočty napíšte do komentárov a článok aktualizujem. Tiež by som ocenil výsledky s rôznymi MCU a zosilňovačmi.

Krok 3: Budovanie úspešnej meteorologickej stanice

Budovanie úspešnej meteorologickej stanice
Budovanie úspešnej meteorologickej stanice
Budovanie úspešnej meteorologickej stanice
Budovanie úspešnej meteorologickej stanice
Budovanie úspešnej meteorologickej stanice
Budovanie úspešnej meteorologickej stanice
Budovanie úspešnej meteorologickej stanice
Budovanie úspešnej meteorologickej stanice

Napriek tomu, že ide o prvú úspešnú verziu, obsahuje na obrázkoch trochu zlyhania a nemôžem ich prerobiť, pretože stanice sú už nasadené. Dva zosilňovače napätia zobrazené na obrázku sú v čase písania článku dostupné pre letecké modelovanie a ďalšie aplikácie. Keď som prepracoval svoju stanicu, uvažoval som o kúpe menšej a efektívnejšej napäťovej stupňovej dosky, avšak menšia veľkosť rozhodne neznamená, že je efektívnejšia.

Nový malý modul na obrázku, ktorý nemá ani indikátor, v skutočnosti sám vyčerpal 3 mA (*FAIL*), takže som zostal so svojou starou doskou:

PFM Control DC-DC USB 0,9V-5V až 5V DC Boost Step-up napájací modul

V čase písania článku je tento modul stále k dispozícii na Ebay za 99 centov, ale ak sa rozhodnete použiť iný posilňovač, vždy skontrolujte spotrebu energie v pohotovostnom režime. Pri zosilňovači dobrej kvality by to nemalo byť viac ako moje (0,01 mA), aj keď malú diódu LED na palube bolo potrebné odpájkovať.

Krok 4: Zoznam hardvéru

Zoznam hardvéru
Zoznam hardvéru
  • Vstavaná ochranná doska dobíjateľnej lítium-iónovej batérie 18650 6000 mAh
  • Atmega 328P16M 5V so zavádzačom
  • Súprava Adafruit DC Boarduino (kompatibilná s Arduino) (s ATmega328) <toto bude dobrá investícia, ak robíte budúce barebone projekty
  • Fotografický rezistor citlivý na svetlo Fotorezistor Optoresistor 5 mm GL5539
  • 1A dióda 1000V diódy usmerňovača 1N4007 IN4007 DO-41
  • PFM Control DC-DC USB 0,9V-5V až 5V DC Boost Step-up napájací modul
  • 1,6W 5,5V 266mA modul mini solárneho panelového systému, nabíjačka epoxidových článkov DIY
  • Modul nabíjačky lítiových batérií TP405 5V Mini USB 1A na lítiové batérie
  • 433 MHz RF súprava pre vysielač a prijímač pre diaľkové ovládanie Arduino/ARM/MC <Sada, obsahuje vysielač aj prijímač
  • Spojovacia skrinka s chráničom prepínača IP65 Vonkajšia vodotesná skrinka 150x110x70mm
  • Nový modul snímača teploty a relatívnej vlhkosti DHT22 pre Arduino
  • 1x220 Ohm, 2x10KOhm, 1xLED, 1xMini Switch, 1x1N4007 dióda
  • Keramický rezonátor / oscilátor Adafruit 16 MHz [ADA1873]
  • Arduino UNO/Mega atď. Pre prijímaciu stanicu + Raspberry PI 1/2/3
  • Priehľadný akrylový plastový box (voliteľné)

To všetko nájdete na Ebay, nechcem propagovať žiadnych predajcov odkazmi na ich stránky a odkazy v budúcnosti aj tak prestanú fungovať.

Poznámky k zoznamu hardvéru:

Len pre prípad, že by ste Atmegu nejakým spôsobom programovaním kúpili, kúpte si ich viac, to isté platí pre posilňovač napätia a solárny regulátor nabíjania.

Solárna nabíjačka obsahuje 2 malé farebné LED diódy, ktoré sa rozsvietia iba v prípade solárneho nabíjania a indikujú (červené-> nabíjanie, modré-> plne nabité stavy). Tieto je tiež možné odspájkovať. Počas nabíjania dodáva batérii trochu viac šťavy.

Ako vidíte, v mojom zozname nie sú žiadne držiaky batérie. Prečo? Pretože sú nespoľahlivé. Mal som nespočetné množstvo príležitostí, keď sa batéria vytiahla z držiaka a stratila spojenie. Zvlášť ak je vaše zariadenie namontované na vysokom stĺpiku paraboly, akým je ten môj, otvorený pre všetky drsné poveternostné podmienky. Batériu som dokonca zazipsoval do držiaka pomocou 2 zipsov a stále sa dokázala vysunúť. Nerobte to, stačí odstrániť vonkajší kryt z batérie a spájkovať vodiče priamo do spodnej časti batérie obsahujúcej ochranný obvod proti prebitiu (ochranu neobchádzajte). Držiak batérie je možné použiť iba na držanie batérie na mieste v zariadení.

Nabíjacia lítium -iónová batéria TP405 5V Mini USB 1A: bohužiaľ táto doska neobsahuje ochranu proti spätnému prúdu na solárny panel, na to budete potrebovať 1 ďalšiu diódu, ktorá bude umiestnená medzi jednu nohu solárneho panelu a nabíjací obvod, aby sa zastavilo skúšanie prúdu. v noci prúdiť späť do solárneho panelu.

Krok 5: Zostavenie

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

Táto doska obsahuje relatívne málo komponentov a značky na doske sú pomerne jednoduché.

Uistite sa, že NEVKLADÁTE Atmega328P nesprávnym spôsobom (môže dôjsť k zahriatiu a zamotaniu čipu, môže dôjsť aj k zničeniu zosilňovača napätia).

V tomto nastavení čip smeruje nadol (malý otvor v tvare U označujúci PIN1). Všetky ostatné komponenty by mali byť zrejmé.

Na LDR použite tienený kábel (napr.: Audio kábel z CDrom bude fungovať dobre). V niektorých prípadoch (počas mnohých týždňov testovania) sa ukázalo, že ruší prenos rádiového signálu. Toto bola jedna z chýb, ktoré je ťažké odstrániť, takže ak nechcete mať problémy, použite tienený kábel, koniec príbehu.

LED: LED dióda v spodnej časti škatule bola pôvodne pridaná tak, aby blikala pri odchádzajúcom rádiovom prenose, ale neskôr som to považoval za plytvanie energiou a pri zavádzaní bliká iba 3 krát.

TP: je testovací bod na meranie prúdu pre celý obvod.

DHT22: Nekupujte lacný DHT11, utrácajte 50 centov viac za biely DHT22, ktorý dokáže merať aj negatívne teploty.

Krok 6: Dizajn puzdra

Dizajn puzdra
Dizajn puzdra
Dizajn puzdra
Dizajn puzdra
Dizajn puzdra
Dizajn puzdra

Aj keď je to trochu prehnané, 3D tlačená kocka (weather_cube) bola vyrobená tak, aby držala snímač teploty DHT22 na svojom mieste. Kocka je prilepená k spodnej časti IP krabice a má iba 1 otvor na prístup vzduchu k senzoru. Pridal som sieť pri diere proti včelám, osám a iným malým muchám.

Voliteľne je možné použiť aj externý box, aby bola stanica vodotesnejšia v prípade, že ju montujete na otvorený riad.

Užitočná funkcia Nápad na 1: pridanie veľkej kovovej strešnej dosky 1-2 cm na hornú časť škatule, ktorá v lete poskytne tieň pred slnkom, aj keď to môže tiež z panelu odniesť naše užitočné slnečné svetlo. Môžete prísť s návrhom, ktorý oddelí panel a škatuľu (panel ponechá na slnku, krabicu v tieni).

Na obrázkoch: jedna zo staníc po 1 roku odstránená z pracovného prostredia, napätie batérie je stále ohromujúcich 3,9 V, žiadna časť škatule nepoškodila vodu, hoci sieť, ktorú som prilepil v spodnej časti kocky, bola roztrhnutá. Dôvodom, prečo je potrebné vykonať servis stanice, je porucha pripojenia na konektore LDR, aj keď sa zdalo, že prepojovací kábel je stále na svojom mieste, spojenie bolo prerušené, a preto pin niekedy plával, čo poskytovalo zlé analógové hodnoty LDR. Návrh: Ak používate štandardné prepojovacie káble k počítaču, všetky ich zalepte, keď stanica funguje perfektne, aby ste tomu zabránili.

Krok 7: Softvér

Softvér
Softvér

Softvérový kód bude vyžadovať 3 externé knižnice (LowPower, DHT, VirtualWire). V poslednej dobe som mal problém nájsť niektoré z nich ľahko online, takže ich pripájam do samostatného súboru ZIP. Bez ohľadu na to, aký operačný systém používate, Linux/Windows, stačí nájsť priečinok s knižnicou vášho Arduino IDE a extrahovať ho tam.

Len poznámka, bez ohľadu na to, že už neodporúčam kupovať DHT11, ak použijete nesprávny typ snímača DHT, program bude navždy visieť na začiatku v inicializačnej sekcii (neuvidíte ani trikrát blikať kontrolku štartu).

Kód hlavnej slučky je veľmi jednoduchý, najskôr číta hodnoty prostredia (teplota, tepelný index, vlhkosť, slnečné žiarenie), odosiela ich prostredníctvom rádia a potom pomocou knižnice s nízkou spotrebou uvedie Arduino do režimu spánku na 5 minút.

Zistil som, že zníženie prenosovej rýchlosti zvýši stabilitu rádiových prenosov. Stanica odosiela veľmi malé množstvo dát, 300 bps je viac než dosť. Nezabudnite tiež, že vysielač funguje iba od cca. 4,8 V, v budúcej verzii 3,3 V to môže viesť k ešte horšej kvalite prenosu (odosielanie údajov cez steny a iné prekážky). Narazil som na problém s používaním Arduino Mega pripojeného k Raspberry PI 2 napájajúcim Mega z PI, že som nedostal žiadny prenos. Riešením bolo napájanie Mega zo samostatného externého zdroja 12V.

Krok 8: Verzia 2 (na základe ESP32)

Verzia 2 (založená na ESP32)
Verzia 2 (založená na ESP32)
Verzia 2 (založená na ESP32)
Verzia 2 (založená na ESP32)
Verzia 2 (založená na ESP32)
Verzia 2 (založená na ESP32)

Všetko, čo sa môže zlomiť, sa pokazí, aby sme citovali starého dobrého Murphyho, a nakoniec po rokoch stanice záhadnými spôsobmi zlyhali. Jeden začal odosielať nezmyselné solárne údaje, ktoré dosiahli až desaťtisíce, čo je nemožné kvôli: Deska Arduino obsahuje 6-kanálový (8 kanálov na Mini a Nano, 16 na Mega), 10-bitový analógovo-digitálny prevodník. To znamená, že bude mapovať vstupné napätie medzi 0 a 5 voltov na celočíselné hodnoty medzi 0 a 1023. Takže po výmene rádia, LDR a viacnásobnom preprogramovaní Atmega 328P som to vzdal a rozhodol som sa, že je čas na inovácie. Poďme na ESP32.

Doska, ktorú som použil, bola: ESP32 WEMOS LOLIN32 Lite V1.0.0 Wifi a Bluetooth karta Rev1 MicroPython 4 MB FLASH

wiki.wemos.cc/products:lolin32:lolin32_lit…

Mikrokontrolér ESP-32

Prevádzkové napätie 3,3 V digitálne vstupno -výstupné piny 19 analógových vstupných pinov 6 taktovacích rýchlostí (max.) 240 MHz Flash 4 MB bajtov Dĺžka 5 mm šírka 2,54 mm hmotnosť 4 g

Ktorý na rozdiel od obrázka nemá logo LOLIN (falzifikát z Číny). Moje prvé príjemné prekvapenie bolo, že vývod vytlačený na doske sa zhoduje s vývodom Arduino! Potom, čo som sa zaoberal toľkými doskami noname, kde som musel celý deň hľadať pinouty, mŕtvy, unavený robiť chyby, konečne doska, na ktorej je pinout priamočiary WoW!

Tu je však temná stránka príbehu:

Spočiatku som pripojil LDR k A15, čo je kolík 12, pretože bolo jednoduchšie zalepiť kolíky dohromady. Potom mám 4095 odpočtov (čo je maximum, ktoré môžete získať s AnlogRead na ESP32), čo ma priviedlo k šialenstvu, pretože jediným dôvodom, prečo som stanicu prestaval, boli nefunkčné hodnoty LDR zo starého (DHT stále fungovalo dobre). Ukazuje sa teda, že:

ESP 32 integruje dva 12-bitové registre ACD. ADC1 má 8 kanálov pripojených k GPIO 32-39 a ADC2 má 10 kanálov v iných kolíkoch. Ide o to, že ESP32 používa ADC2 na správu funkcií wifi, takže ak používate Wifi, nemôžete použiť tento register. Rozhranie API ovládača ADC podporuje ADC1 (8 kanálov, pripojených k GPIO 32 - 39) a ADC2 (10 kanálov, pripojených k GPIO 0, 2, 4, 12 - 15 a 25 - 27). Použitie ADC2 má však pre aplikáciu určité obmedzenia:

ADC2 používa ovládač Wi-Fi. Aplikácia preto môže používať ADC2 iba vtedy, ak sa nespustí ovládač Wi-Fi. Niektoré piny ADC2 sa používajú ako pripájacie piny (GPIO 0, 2, 15), takže ich nemožno voľne používať. To je prípad nasledujúcich oficiálnych vývojových súprav:

Takže prepojenie LDR z pinu 12 na A0, čo je VP, vyriešilo všetko, ale nechápem, prečo dokonca uvádzajú piny ADC2 ako dostupné pre výrobcov. Koľko ďalších hobbistov premrhalo veľa času, kým na to prišli? Nepoužívateľné kolíky aspoň označte červenou alebo tak niečo, alebo to v príručke vôbec neuvádzajte, aby sa o nich ostatní výrobcovia mohli dozvedieť iba vtedy, ak ich skutočne potrebujú. Celým účelom ESP32 je používať ho s WIFI, každý ho používa s WIFI.

Dobrý začiatok, ako nastaviť IDE Arduino pre túto dosku:

Aj keď som to vložil do kódu, ide to znova:

Tento kód sa nemusí kompilovať pre iné modely ESP32 ako Weemos LOLIN 32!

Nastavenia zostavy: -Použiť nahrávanie/sériový: 115200 -Používať CPU/RAM: 240 MHz (Wifi | BT) -Používať flash frekvenciu: 80 MHz

Na internete je veľa meteorologických staníc založených na ESP32, je ich oveľa viac, ako bola moja verzia 1 s barebone čipom, pretože sa ľahšie nastavujú, nepotrebujete programátor, stačí pripojiť zariadenie na USB a naprogramovať ich a ich režim hlbokého spánku je vynikajúci na dlhodobé používanie z batérie. Hneď po palici to bola úplne prvá vec, ktorú som testoval ešte pred spájkovaním na oddeľovacích kolíkoch, pretože ako som si v tomto projekte všimol viacero miest, najdôležitejšia je spotreba energie a súčasná (falošná) batéria a malý solárny panel v pohotovostnom režime. energia nemôže skutočne prekročiť 1-2 mA, inak by projekt nebol schopný dlhodobo vydržať.

Opäť bolo príjemným prekvapením, že režim hlbokého spánku funguje tak, ako je inzerovaný. Počas hlbokého spánku bol prúd taký nízky, že ho môj lacný multimeter nedokázal ani zmerať (funguje mi).

Počas odosielania údajov bol prúd okolo 80 mA (čo je asi 5 -krát viac, ako keď sa Atmega 328P prebúdzal a vysielal), nezabúdajte však, že s V1 bol na LDR v režime spánku priemerný odber 1 mA ((čo tiež záviselo od úrovní svetla a pohybovalo sa od 0,5 mA do 1 mA), ktoré je teraz preč.

Teraz, keď je batéria UltraFire odhalená, ak používate rovnakú batériu, môžete očakávať toto:

Iavg = (Ton*Ion + Tsleep*Spánok) / (Ton + Tsleep)

Iavg = (2s*80mA + 300s*0,01mA) / (2s + 300s) Iavg = 0,5mA

Dlažba = VxIavg = 5Vx0,5mA = 2,5 mW

Teoretické

Životnosť batérie = 22 000 mWh/2,5 mW = 8800 hodín = približne 366 dní

Reálny

Výdrž batérie = 800 mWh/2,5 mW = 320 hodín = približne 13 dní

Nemal som možnosť presne zmerať čas zapnutia, ale s mojimi vylepšeními to trvalo asi 2 sekundy.

Nechcel som stráviť popoludnie vlastným kódovaním všetkého, a tak som vyhľadal ďalšie meteorologické stanice na Instructables založenom na ESP32, aby som zistil, čo robia pre ukladanie údajov. Smutne si všimol, že používajú nepružné a obmedzené stránky, ako napríklad weathercloud. Keďže nie som fanúšikom „cloudu“a ich kód sa dlho lámal, pretože stránka odvtedy zmenila svoje API, venoval som svojich 10 minút vytvoreniu vlastného riešenia, pretože nie je také ťažké, ako by si niekto mohol myslieť. Začnime!

Po prvé, pre tento projekt neexistuje žiadny obrázok obvodovej dosky, pretože používa presne rovnaké súčiastky (ospravedlňujeme sa za spájkované na škaredom obrázku) ako V1 s tým rozdielom, že všetko beží na 3,3 V. DHT sa spojilo s vytiahnutím do VCC, LDR stiahlo s 10k. Problém, ktorý by sme mohli vidieť na batériách 18650, ako je môj čínsky falošný (6 500 mAh ultra slnečný oheň, lol: D), je ten, že začnú vybíjaciu krivku približne od 4,1 V nového veku a idú dovtedy, kým sa nezapne ich vypínací obvod, aby zastavil poškodenie buniek (tí, ktorí majú to šťastie, že to majú). To nám nikde nie je dobré ako vstup 3,3 V. Napriek tomu, že táto doska LOLIN má v tomto projekte konektor pre lítiovú batériu a nabíjací obvod, chcel som zrekonštruovať čo najviac zo starej stanice, takže so starou 18650 NEMÔŽETE používať túto vstavanú nabíjačku. Riešenie bolo jednoduché: Odpojil som kábel micro USB spájkovaný do 5 V zo starého zosilňovača napätia a problém voila bol vyriešený, pretože doska na microUSB má regulátor.

Rozdiel medzi starou a novou verziou, ktorý v starej batérii poskytuje 3,7 V -> zosilnený na 5 V -> ardu beží na 5 V -> všetky komponenty bežia na 5 V.

V novom: batéria poskytuje napätie 3,7 V -> zosilnené na 5 V -> regulované prostredníctvom integrovaného regulácie na ESP32 -> všetky komponenty bežia na 3,3 V.

Čo sa týka softvéru, budeme potrebovať aj ďalšiu knižnicu DHT, DHT Arduina nie je kompatibilné s ESP. To, čo potrebujeme, sa nazýva DHT ESP.

Začal som svoj kód zakladať na príklade DHT, ktorý tento kód poskytoval. Fungovanie kódu je:

1, Získajte údaje o životnom prostredí z údajov DHT + Solar z fotobunky

2, Pripojte sa k wifi pomocou statickej IP

3, Uverejnite údaje v skripte php

4, Choďte spať na 10 minút

Ako si všimnete, vyladil som kód na efektivitu, aby som absolútne minimalizoval čas prebúdzania, pretože pri zapnutí odčerpáva 5 -krát viac energie, ako starý projekt. Ako som to urobil? Po prvé, ak dôjde k akémukoľvek druhu chyby, funkcia getTemperature () sa vráti s hodnotou false (čo znamená, že znova spíte 10 minút). Môže to byť tak, že snímač DHT nemožno spustiť alebo nie je k dispozícii pripojenie Wi -Fi. Ako ste si všimli, bola tiež odstránená zvyčajná slučka while () na trvalé skúšanie asociácie wifi, ale bolo tam potrebné ponechať oneskorenie 1 s, inak sa nie vždy pripojí a závisí to aj od typu prístupového bodu, záťaže atď. sa stane, s 0,5 s som dostal nekonzistentné správanie (niekedy sa nemohol pripojiť). Ak niekto pozná lepší spôsob, ako to urobiť, nechajte ho v komentároch. Iba vtedy, keď sa načítajú údaje DHT A WIFI pripojenie je spustené, sa pokúsi odoslať údaje do skriptu na webovom serveri. V normálnom operačnom režime sú tiež deaktivované všetky druhy funkcií, ktoré zabraňujú plytvaniu časom, ako napríklad Serial.println (). Ako server tiež používam IP, aby som sa vyhýbal zbytočnému vyhľadávaniu DNS, v mojom kóde je predvolená brána aj server dns nastavený na 0,0.0.0.

Nerozumiem, prečo je také ťažké vytvoriť si vlastné API, keď stačí:

sprintf (odpoveď, "temp =%d & hum =%d & hi =%d & sol =%d", temp, hum, hi, sol);

int httpResponseCode = http. POST (odpoveď);

Tento malý php kód vložíte do akéhokoľvek malinového pi a môžete hneď vykonávať úlohy systému () na základe telemetrie, ako napríklad zapnúť ventilátory alebo zapnúť svetlá, ak sa dostatočne zotmie.

Niekoľko poznámok ku kódu:

WiFi.config (staticIP, brána, podsieť, dns); // MUSÍ byť po tom, ako začne Wifi, ako hlúpe …

WiFi.mode (WIFI_STA); // MUSÍ v opačnom prípade tiež vytvoriť nechcený prístupový bod

Áno, teraz to už vieš. Tiež poradie konfigurácií IP sa môže meniť prostredníctvom platforiem, vyskúšal som najskôr iné príklady, kde boli prepnuté hodnoty brány a podsiete. Prečo nastaviť statickú IP? Je celkom zrejmé, že ak máte vo svojej sieti vyhradené pole, ako napríklad linuxový server so systémom isc dhcpd, nechcete, aby sa po prebudení ESP získavalo sto miliónov záznamov v protokole a aby sa získala adresa IP z DHCP. Smerovače zvyčajne neprihlasujú priradenia, takže zostanú neviditeľné. To je cena za úsporu energie.

V2 sa nikdy nedokázal udržať kvôli batérii zlej kvality a jednoducho som ho vložil na adaptér, takže ak chcete stavať buď V1 alebo V2, NEKUPUJTE uvedenú batériu, urobte si vlastný prieskum batérií (akýchkoľvek 18650 viac ako 2000 mAh inzerovaná kapacita na Ebay je podvod s vysokou pravdepodobnosťou).

Odporúča: