Kazalo:
- 1. korak: delovanje vremenske postaje
- 2. korak: prve različice
- 3. korak: Gradnja uspešne vremenske postaje
- 4. korak: Seznam strojne opreme
- 5. korak: Montaža
- 6. korak: Oblikovanje ohišja
- 7. korak: Programska oprema
- 8. korak: različica 2 (temelji na ESP32)
Video: Vremenska postaja NaTaLia: Vremenska postaja Arduino s sončno energijo Na pravi poti: 8 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Po enem letu uspešnega delovanja na dveh različnih lokacijah delim svoje načrte projektov vremenskih postaj na sončno energijo in razložim, kako se je razvil v sistem, ki lahko res dolgo preživi iz sončne energije. Če sledite mojim navodilom in uporabite popolnoma enake materiale, kot so navedeni, lahko zgradite sončno vremensko postajo, ki bo delovala več let. Pravzaprav je edini dejavnik, ki omejuje trajanje delovanja, življenjska doba baterije, ki jo uporabljate.
1. korak: delovanje vremenske postaje
1, Oddajnik: Zunanja montažna škatla s solarno ploščo, ki vremensko telemetrijo (temperaturo, vlažnost, indeks toplote, sončno moč) občasno pošilja v notranjo sprejemno enoto.
2, sprejemnik: Notranja enota iz Raspberry PI 2 + Arduino Mega, ki ima priključen RF sprejemnik 433 Mhz za sprejem podatkov. V mojih nastavitvah ta enota nima nobenega lokalnega LCD zaslona. Nepremišljeno teče. Glavni program C skrbi za sprejem dohodnih podatkov iz Arduina po zaporedju, nato pa zabeleži podatke v besedilno datoteko in omogoči, da so zadnji sprejeti podatki na voljo prek telneta za druge naprave, da jih poizvedujejo.
Postaja nadzoruje luči v mojem domu z odčitkom fotorezistorja (ki določa, ali je zunaj dan ali noč). Sprejemnik je v mojem primeru brez glave, vendar lahko projekt preprosto spremenite tako, da dodate LCD zaslon. Ena od naprav, ki uporablja, razčlenjuje in prikazuje vremenske podatke s postaje, je moj drugi projekt: Ironforge NetBSD Toaster.
2. korak: prve različice
Na internetu je veliko solarnih projektov, vendar mnogi od njih zagrešijo običajno napako, da sistem sčasoma odvzame več energije iz baterije, kar bi lahko sončna celica napolnila, zlasti v oblačnih in temnih zimskih mesecih.
Pri načrtovanju sistema na sončno energijo je pomembna le PORABA MOČI na vseh komponentah: mcu, radijski oddajnik, regulator napetosti itd.
Uporaba velikega računalnika, kot je malina pi, ali napajalne brezžične naprave, kot je ESP, samo za zbiranje in prevoz nekaj bitnih vremenskih podatkov, bi bila pretirana, toda kot bom pokazal v tej vadnici, je celo majhna plošča Arduino.
Najboljše je vedno meriti tok med gradnjo z merilnikom ali z merilnikom (uporabno, ko poskušate izmeriti majhne konice uporabe med delovanjem v zelo kratkih časovnih presledkih (milisekunde)).
Na prvi sliki lahko vidite mojo prvo postajo (na osnovi Arduino Nano) in drugo ploščo Arduino Barebone Atmega 328P.
Prva različica, čeprav je delovala odlično (spremljanje okolja in pošiljanje podatkov po radiu), je imela previsoko porabo energije ~ 46 mA in je v nekaj tednih izpraznila baterijo.
Vse različice so uporabljale naslednjo baterijo:
18650 6000 mAh zaščitena litij-ionska baterija za ponovno polnjenje Vgrajena zaščitna plošča
Posodobite te baterije ScamFire. Čeprav je to precej star Instructable, sem se zaradi te lažne baterije še vedno počutil prisiljenega popraviti. NE kupujte omenjene baterije, sami raziskujte druge baterije LION/LIPO, vse 3,7V baterije bodo delovale s tem projektom.
Končno sem imel čas, da odkrijem baterijo ScamFire, da vidim, kakšne so njene dejanske zmogljivosti. Zato bomo izvajali dva izračuna vzporedno z resničnimi in "oglaševanimi" zmogljivostmi.
Najprej je ena stvar, da je ta baterija ponarejena in nič, kar trdijo o njej, ni res, nove različice so še slabše, da so ponaredek kopirale z izpustitvijo 2 centov zaščitnega vezja, tako da jih nič ne bo ustavilo pri praznjenju do ničle.
Majhen članek o baterijah LION/LIPO:
TLDR:
To pomeni, da je največja napetost celice 4,2 V in da je "nominalna" (povprečna) napetost 3,7 V.
Na primer, tukaj je profil napetosti za "klasično" baterijo 3,7 V/4,2 V. Napetost se začne pri največ 4,2 in hitro pade na približno 3,7 V za večino življenjske dobe baterije. Ko pritisnete 3,4 V, je baterija prazna in pri 3,0 V izklopno vezje odklopi baterijo.
Moje meritve z lažno obremenitvijo:
Napolnjena baterija: 4.1V
Izklop je nastavljen na: 3.4V
Simulacija obremenitve: 0,15A (moja naprava je imela težave pri spuščanju nižje od te.)
Izmerjena zmogljivost: 0,77 Ah, dajte ji brezplačnih 0,8 Ah, kar je 800 mAh namesto oglaševanih 6000 mAh!
Ker ta baterija sploh ni imela zaščitnega vezja, sem se lahko prosto spustil, vendar se pri 3,4 V po 10 minutah že sesuje na 3,0 V.
Zato s preprostimi izračuni baterija zagotavlja:
Teoretično
Napetost akumulatorja = 3,7V
Moč = 3,7x6000 = 22000 mWh
Resnično
Napetost akumulatorja = 3,7V Moč = 3,7x800 = 2960 mWh
Različica: 0.1 ARDUINO NANO BASED
Tudi s knjižnico LowPower Arduino nano porabi ~ 16 mA (v načinu mirovanja) -> FAIL.
Teoretično
Pavg = VxIavg = 5Vx16mA = 80 mW
Življenjska doba baterije = 22000/80 = 275 ur = približno 11 dni
RealPavg = VxIavg = 5Vx16mA = 80 mW
Življenjska doba baterije = 800/80 = 10 ur
Različica: 0.2 Atmega 328P Barebone
Moč, ki jo porabi ATmega328, je v veliki meri odvisna od tega, kaj počnete z njim. Če samo sedi v privzetem stanju, lahko uporablja 16mA @ 5V, medtem ko teče na 16MHz.
Ko je ATmega328P v aktivnem načinu, bo neprekinjeno izvajal več milijonov navodil na sekundo. Poleg tega vgrajeno zunanje periferno omrežje analogno-digitalni pretvornik (ADC), zaporedni periferni vmesnik (SPI), časovnik 0, 1, 2, dvožični vmesnik (I2C), USART, časovnik nadzornika (WDT) in zaznavanje rjavega izhoda (BOD) porabijo energijo.
Zaradi varčevanja z energijo MCU ATmega328P podpira številne načine spanja, neuporabljene zunanje naprave pa lahko izklopite. Načini spanja se razlikujejo glede na to, kateri deli ostanejo aktivni, glede na trajanje spanja in čas, potreben za prebujanje (obdobje bujenja). Način spanja in aktivne zunanje naprave lahko nadzirate s knjižnicami za spanje in napajanje AVR ali, natančneje, z odlično knjižnico z nizko porabo energije.
Knjižnica z nizko porabo energije je enostavna za uporabo, vendar zelo zmogljiva. Stavek LowPower.powerDown (SLEEP_8S, ADC_OFF, BOD_OFF); postavi MCU v SLEEP_MODE_PWR_DOWN za 16 ms do 8 s, odvisno od prvega argumenta. Onemogoči ADC in BOD. Spanje ob izklopu pomeni, da so vse funkcije čipa onemogočene do naslednjega prekinitve. Nadalje se zunanji oscilator ustavi. Samo prekinitve ravni na INT1 in INT2, prekinitve pri menjavi nožic, ujemanje naslovov TWI/I2C ali WDT, če je omogočeno, lahko zbudi MCU. Tako boste z eno samo izjavo zmanjšali porabo energije. Za 3.3 V Pro Mini brez LED za napajanje in brez regulatorja (glej spodaj), ki izvaja izjavo, je poraba energije 4,5 μA. To je zelo blizu tistemu, kar je omenjeno v podatkovnem listu ATmega328P za spanje ob izklopu z omogočenim WDT 4,2 μA (podatkovni list, povezan v virih). Zato sem popolnoma prepričan, da funkcija powerDown izklopi vse, kar je razumno mogoče. Z stavkom LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); bo WDT onemogočen in ne boste se zbudili, dokler se ne sproži prekinitev.
Tako lahko z nastavitvijo barebone čip prestavimo v stanje spanja za 5 minut, medtem ko porabi zelo malo energije (0,04 mA brez zunanjih naprav). Vendar je to le čip Atmega 328P s kristalnim oscilatorjem in nič drugega, ojačevalnik napetosti, uporabljen v tej konfiguraciji za povečanje napetosti akumulatorja s 3,7 V -> 5,0 V, porabi tudi 0,01 mA.
Eden odtokov s konstantno napetostjo je bil dodan foto upor, ki je povečal porabo v načinu mirovanja na skupno 1 mA (to vključuje vse komponente).
Formula za izračun natančne porabe naprave v načinu spanja in prebujanja je:
Iavg = (Ton*Ion + Tsleep*Spanje) / (Ton + Tsleep)
Ion = 13mA
To večinoma prihaja iz oddajnika RF433 Mhz:
Oddajnik:
Delovna napetost: 3V - 12V fo max. poraba energije 12V Delovni tok: max Manj kot 40mA max in min 9mAR Način resonance: (SAW) Način modulacije: ASK Delovna frekvenca: Eve 315MHz ali 433MHz Prenosna moč: 25mW (315MHz pri 12V) Frekvenčna napaka: +150kHz (max) Hitrost: manj kot 10Kbps
Spanje = 1 mA
Brez fotootpornika bi bilo bistveno manj.
Trunonov čas Ton = 250 mS = 0,25s
Čas spanja Tsleep = 5 min = 300s
Iavg = (Ton*Ion + Tsleep*Spanje) / (Ton + Tsleep)
Iavg = (0,25s*13mA + 300s*1mA) / (0,25s + 300s)
Iavg = 1,26 mA
Pavg = VxIavg = 5Vx1.26mA = 6 mW
Teoretično
Življenjska doba baterije = 22000mWh/6mW = 3666 ur = približno 152 dni
Resnično
Življenjska doba baterije = 800mWh/6mW = 133 ur = približno 5,5 dni
Čeprav so bile to še vedno boljše serije UltraFire, sem prvotno uporabil, da ste lahko videli, da brez sončne celice ali nizke porabe 1 mA ta projekt ne bi dolgo preživel.
Prosto zgradite postajo in zapišite svoje ugotovitve in izračune v komentarje, članek bom posodobil. Prav tako bi bil hvaležen za rezultate z različnimi MCU -ji in ojačevalniki.
3. korak: Gradnja uspešne vremenske postaje
Čeprav je to prva uspešna različica, vsebuje nekaj napak na slikah in jih ne morem predelati, ker so postaje že nameščene. Dva ojačevalnika napetosti, prikazana na sliki, sta v času pisanja na voljo za letalsko modeliranje in druge aplikacije. Ko sem preoblikoval svojo postajo, sem razmišljal o tem, da bi dobil manjšo in učinkovitejšo napetostno stopnico, vendar manjša velikost zagotovo ne pomeni, da je učinkovitejša.
Novi majhen modul na sliki, ki nima niti indikatorja, je dejansko sam izpraznil 3 mA (*FAIL*), zato sem ostal pri stari plošči:
PFM Control DC-DC USB 0,9V-5V do 5V dc Boost Step-up napajalni modul
V času pisanja je ta modul še vedno na voljo na Ebayu za 99 centov, če pa se odločite za uporabo drugega ojačevalnika, vedno preverite porabo energije v pripravljenosti. S kakovostnim ojačevalnikom ne sme biti večji od mojega (0,01 mA), čeprav je bilo treba majhno LED na krovu spajkati.
4. korak: Seznam strojne opreme
- 18650 6000 mAh zaščitena litij-ionska baterija za ponovno polnjenje Vgrajena zaščitna plošča
- Atmega 328P16M 5V z zagonskim nalagalnikom
- Adafruit DC Boarduino (združljiv z Arduino) komplet (z ATmega328) <to bo dobra naložba, če delate v prihodnjih projektih barebone
- Fotografski svetlobno občutljiv upor Fotootpornik 5 mm GL5539
- 1A 1000V dioda 1N4007 IN4007 DO-41 usmerniške diode
- PFM Control DC-DC USB 0.9V-5V do 5V dc Boost Step-up napajalni modul
- 1.6W 5.5V 266mA Mini solarni modul modul sistem epoksi celični polnilec DIY
- TP405 5V Mini USB 1A modul za polnjenje litijeve baterije
- Komplet za povezavo RF oddajnika in sprejemnika 433 Mhz za daljinski upravljalnik Arduino/ARM/MC <Komplet vsebuje oddajnik in oddajnik
- Zaščitna stikalna škatla IP65 Zunanja vodotesna ohišja 150x110x70mm
- Nov modul senzorja temperature in relativne vlažnosti DHT22 za Arduino
- 1x220 Ohm, 2x10KOhm, 1xLED, 1xMini stikalo, 1x1N4007dioda
- Adafruit 16 MHz keramični resonator / oscilator [ADA1873]
- Arduino UNO/Mega itd. Za sprejemno postajo + malina PI 1/2/3
- Čista akrilna plastična škatla (neobvezno)
Vse to lahko najdete na Ebayu, ne želim promovirati nobenih prodajalcev s povezovanjem na njihove strani, povezave pa bodo v prihodnosti vseeno postale mrtve.
Opombe za seznam strojne opreme:
V primeru, da Atmego nekako opečete s programiranjem, jih kupite več, enako velja za ojačevalnik napetosti in regulator sončne energije.
Solarni polnilnik vsebuje 2 majhni barvni LED, ki se prižgeta le v primeru sončnega polnjenja in označujeta (rdeča-> polnjenje, modra-> popolnoma napolnjena stanja). Tudi te je mogoče razpajkati. Med polnjenjem daje bateriji malo več soka.
Kot vidite, na mojem seznamu ni nosilcev baterij. Zakaj? Ker so nezanesljivi. Imel sem nešteto priložnosti, ko se je baterija iztaknila iz nosilca in izgubila povezavo. Še posebej, če je vaša naprava nameščena na visokem krožniku, kot je moj, odprt za vse ostre vremenske razmere. Baterijo sem celo držal v držalo z dvema zadrgama in se je vseeno uspelo premakniti. Ne naredite tega, samo odstranite zunanji premaz iz akumulatorja in spajkajte žice neposredno na dno baterije, ki vsebuje zaščitno vezje za prenapolnjenost (zaščite ne zaobidejte). Držalo za baterije lahko uporabite samo za držanje baterije na mestu v napravi.
TP405 5V mini USB 1A polnilna plošča za litijevo baterijo: na žalost ta plošča ne vključuje zaščite pred povratnim tokom na solarni plošči, za to boste potrebovali še 1 diodo, ki bo nameščena med eno nogo solarne plošče in polnilnim krogom, da ustavite tok ponoči teče nazaj v sončno celico.
5. korak: Montaža
Ta plošča vsebuje relativno malo komponent, označevalci na plošči pa so precej preprosti.
Pazite, da Atmega328P ne vstavite na napačen način (ki se lahko segreje in opeče čip, lahko uniči tudi ojačevalnik napetosti).
Pri tej nastavitvi je čip obrnjen navzdol (majhna luknja U označuje PIN1). Vse ostale komponente bi morale biti očitne.
Za LDR uporabite oklopljen kabel (npr. Avdio kabel s CD -ja). V nekaterih primerih (več tednov preizkusa) se je izkazalo, da moti prenos radijskega signala. To je bila ena od tistih hroščev, ki jih je bilo težko odpraviti, zato, če ne želite težav, uporabite oklopljen kabel, konec zgodbe.
LED: LED na dnu škatle je bil prvotno dodan, da je utripal, ko je odhodni radijski prenos, kasneje pa sem to obravnaval kot izgubo energije in utripa le 3 -krat med zagonom.
TP: je preskusna točka za merjenje toka za celotno vezje.
DHT22: Ne kupujte poceni DHT11, porabite 50 centov več, da dobite belega DHT22, ki lahko meri tudi negativne temperature.
6. korak: Oblikovanje ohišja
Čeprav je malo pretirano, je bila narejena 3D natisnjena kocka (weather_cube), ki je držala temperaturni senzor DHT22 na mestu. Kocka je prilepljena na dno IP škatle in vsebuje le 1 luknjo za dovod zraka do senzorja. V luknjo sem dodal mrežo proti čebelam, osam in drugim manjšim muham.
Zunanjo škatlo lahko po želji uporabite za večjo vodotesnost postaje, če jo namestite na stekleno posodo na odprtem.
Ideja za 1 uporabno lastnost: dodajanje velike kovinske strešne plošče 1-2 cm na vrh škatle, ki poleti zagotavlja senco pred soncem, čeprav bi to lahko odstranilo tudi našo uporabno sončno svetlobo iz plošče. Lahko si omislite zasnovo, ki ločuje ploščo in škatlo (ploščo pustite na soncu, polje v senci).
Na slikah: ena od postaj je bila po enem letu odstranjena iz delovnega okolja, napetost akumulatorja je še vedno na osupljivih 3,9 V, voda ni poškodovana na nobenem delu škatle, čeprav je bila mreža, ki sem jo zlepil na dno kocke, raztrgana. Razlog za servisiranje postaje je napaka v povezavi na priključku LDR, čeprav se je zdelo, da je skakalni kabel še vedno na mestu, je bila povezava prekinjena, zato je pin včasih lebdel, kar je povzročilo slabe analogne odčitke LDR. Predlog: če uporabljate standardne mostiče za računalnik, jih po vročem delovanju lepite, da se temu izognete.
7. korak: Programska oprema
Za programsko kodo bodo potrebne 3 zunanje knjižnice (LowPower, DHT, VirtualWire). V zadnjem času sem imel težave pri iskanju nekaterih od njih, zato sem jih priložil v ločeno datoteko ZIP. Ne glede na to, kateri operacijski sistem uporabljate Linux/Windows, poiščite mapo knjižnice svojega Arduino IDE in jo tam izvlecite.
Samo opomba, ne glede na to, da odsvetujem nakup DHT11, če uporabljate napačno vrsto DHT senzorja, bo program na začetku v razdelku za inicializacijo le za vedno visel (zagonska lučka ne bo niti trikrat utripala).
Koda glavne zanke je zelo preprosta, najprej prebere okoljske vrednosti (temperaturo, indeks toplote, vlažnost, sončno energijo), jih pošlje po radiu, nato pa uporabi knjižnico z nizko porabo, da zaspi Arduino za 5 minut.
Ugotovil sem, da bo znižanje hitrosti prenosa povečalo stabilnost radijskih oddaj. Postaja pošilja zelo majhno količino podatkov, 300 bps je več kot dovolj. Prav tako ne pozabite, da oddajnik deluje le pribl. 4.8V, v prihodnji različici 3.3V bi to lahko povzročilo še slabšo kakovost prenosa (pošiljanje podatkov skozi stene in druge ovire). Naletel sem na težavo z uporabo Arduino Mega, priključenega na Raspberry PI 2, ki napaja Mego iz PI, da nisem prejel nobenega prenosa. Rešitev je bila napajanje Mega iz ločenega zunanjega 12V napajanja.
8. korak: različica 2 (temelji na ESP32)
Vse, kar se lahko zlomi, se bo zlomilo, če citiram dobrega starega Murphyja in sčasoma so postaje propadle na skrivnostne načine. Eden je začel pošiljati neumne sončne podatke, ki so se povečali na desetine tisoč, kar je nemogoče zaradi: Arduino plošča vsebuje 6-kanalni (8 kanalov na Mini in Nano, 16 na Mega), 10-bitni analogno-digitalni pretvornik. To pomeni, da bo preslikal vhodne napetosti med 0 in 5 voltov v celoštevilčne vrednosti med 0 in 1023. Zato sem po zamenjavi radia, LDR in večkratnem programiranju Atmege 328P obupal in se odločil, da je čas za inovacije. Gremo na ESP32.
Plošča, ki sem jo uporabil, je bila: ESP32 WEMOS LOLIN32 Lite V1.0.0 Wifi in Bluetooth kartica Rev1 MicroPython 4 MB FLASH
wiki.wemos.cc/products:lolin32:lolin32_lit…
Mikrokrmilnik ESP-32
Delovna napetost 3.3V Digitalni V/I zatiči 19 Analogni vhodni zatiči 6 Taktna hitrost (največ) 240Mhz Flash 4M bajtov Dolžina 5 mm Širina 2,54 mm Teža 4 g
Ki za razliko od na sliki nima logotipa LOLIN (ponaredek iz Kitajske). Moje prvo prijetno presenečenje je bilo, da se izpis, natisnjen na plošči, ujema z izpisom Arduino! Ko sem se ukvarjal s toliko tablami noname, kjer sem moral cel dan iskati izpiske, mrtev utrujen, delal napake, končno tabla, na kateri je pinout naravnost naprej WoW!
Tu pa je temna plat zgodbe:
Sprva sem LDR priključil na A15, ki je pin 12, ker je bilo lažje vroče lepljenje nožic skupaj. Potem imam 4095 odčitkov (kar je največ, kar lahko dobite z AnlogReadom na ESP32), kar me je spravilo v zadrego, ker je bil celoten razlog, zakaj sem obnovil postajo, zlomljeni odčitki LDR iz starega (DHT je še vedno dobro deloval)). Tako se izkaže, da:
Esp 32 integrira dva 12-bitna registra ACD. ADC1 z 8 kanali, priključenimi na GPIO 32-39 in ADC2, z 10 kanali v drugih zatičih. Dejstvo je, da ESP32 uporablja ADC2 za upravljanje funkcij wifi, zato, če uporabljate Wifi, tega registra ne morete uporabiti. API gonilnika ADC podpira ADC1 (8 kanalov, priključenih na GPIO 32 - 39) in ADC2 (10 kanalov, priključenih na GPIO 0, 2, 4, 12 - 15 in 25 - 27). Vendar ima uporaba ADC2 nekatere omejitve za uporabo:
ADC2 uporablja gonilnik Wi-Fi. Zato lahko aplikacija uporablja ADC2 le, če gonilnik Wi-Fi ni zagnan. Nekateri zatiči ADC2 se uporabljajo kot pritrdilni zatiči (GPIO 0, 2, 15), zato jih ni mogoče prosto uporabljati. Tako je v naslednjih uradnih razvojnih kompletih:
Tako je povezovanje LDR z pin 12 na A0, ki je VP, rešilo vse, vendar ne razumem, zakaj sploh navajajo zatiče ADC2 kot na voljo za izdelovalce. Koliko drugih hobistov je izgubilo veliko časa, dokler tega niso ugotovili? Neuporabne zatiče vsaj označite z rdečo ali kaj podobnega ali pa tega sploh ne omenjajte v priročniku, da bodo drugi proizvajalci zvedeli le, če jih res potrebujejo. Celoten namen ESP32 je, da ga uporablja z WIFI, vsi ga uporabljajo z WIFI.
Dober začetek, kako nastaviti Arduino IDE za to ploščo:
Čeprav sem ga dal v kodo tukaj, gre še enkrat:
Ta koda se morda ne bo prevedla za druge modele ESP32, razen za Weemos LOLIN 32!
Nastavitve zgradbe: -Uporabi prenos/serijo: 115200 -Uporabi CPE/ram: 240Mhz (Wifi | BT) -Uporabi frekvenco bliskavice: 80 Mhz
Na internetu je na stotine vremenskih postaj, ki temeljijo na ESP32, so veliko pogostejše, kot je bila moja različica 1 z čipom barebone, ker jih je lažje nastaviti, ne potrebujete programerja, samo priključite napravo na USB in jo programirajte in način globokega spanja je odličen za dolgotrajno delovanje iz baterije. Takoj pred palico je bila to prva stvar, ki sem jo preizkusil še pred spajkanjem odcepnih zatičev, saj je, kot sem zapisal na več mestih v tem projektu, najpomembnejša poraba energije, pri trenutni (ponarejeni) bateriji in majhni sončni plošči pa pripravljenost. moč v resnici ne more preseči 1-2 mA drugače, če se projekt dolgoročno ne bo mogel vzdržati.
Spet je bilo prijetno presenečenje, da način globokega spanja deluje, kot je oglaševano. Med globokim spanjem je bil tok tako nizek, da ga moj poceni multimeter sploh ni mogel izmeriti (zame deluje).
Med pošiljanjem podatkov je bil tok okoli 80 mA (kar je približno 5 -krat več kot takrat, ko se je Atmega 328P prebujal in prenašal), vendar ne pozabite, da je pri V1 prišlo do povprečnega izpada energije 1mA na LDR v načinu mirovanja (ki je bil odvisen tudi od ravni svetlobe in je šel od 0,5 mA - 1 mA), ki ga zdaj ni več.
Zdaj, ko je baterija UltraFire razveljavljena, če uporabljate isto baterijo, lahko pričakujete naslednje:
Iavg = (Ton*Ion + Tsleep*Spanje) / (Ton + Tsleep)
Iavg = (2s*80mA + 300s*0.01mA) / (2s + 300s) Iavg = 0.5mA
Pavg = VxIavg = 5Vx0,5mA = 2,5 mW
Teoretično
Življenjska doba baterije = 22000mWh/2,5mW = 8800 ur = približno 366 dni
Resnično
Življenjska doba baterije = 800 mWh/2,5 mW = 320 ur = približno 13 dni
Nisem imel prostora za natančno merjenje časa vklopa, vendar se z mojimi nastavitvami konča približno 2 sekundi.
Nisem želel porabiti popoldneva za kodiranje po meri, zato sem poiskal druge vremenske postaje na Instructables na osnovi ESP32, da vidim, kaj počnejo za shranjevanje podatkov. Žal smo opazili, da uporabljajo neprilagodljiva in omejena spletna mesta, kot je weathercloud. Ker nisem ljubitelj "oblaka" in njihova koda je že dolgo prekinjena, ker je spletno mesto od takrat spremenilo svoj API, sem si vzela 10 minut, da naredim rešitev po meri, ker ni tako težka, kot bi si kdo mislil. Začnimo!
Prvič, za ta projekt ni vezja ločeno, ker uporablja popolnoma enake komponente (žal za spajkano na grdi sliki) kot V1 s to razliko, da vse teče od 3.3V. DHT se je z vlečenjem priključil na VCC, LDR pa z 10k. Težava, ki bi jo lahko videli pri baterijah 18650, kot je moja kitajska ponaredka (6500 mAh ultra sončni ogenj lol: D), je v tem, da začnejo krivuljo praznjenja od približno 4,1 V nove dobe in gredo, dokler se njihovo izklopno vezje ne sproži, da ustavi poškodbe celic (tisti, ki imajo to srečo). To za nas ni dobro kot 3.3V vhod. Čeprav ima ta plošča LOLIN priključek za litijevo baterijo in polnilno vezje v tem projektu, sem želel prenoviti največ, kar sem lahko od stare postaje, zato s starim 18650 NE morete uporabljati tega vgrajenega polnilnika. Rešitev je bila zelo preprosta: iz starega ojačevalnika napetosti sem odrezal kabel mikro USB, vpet v 5 V, in problem voila je bil rešen, saj ima plošča na microUSB regulator.
Torej razlika med staro in novo različico, ki v stari bateriji zagotavlja 3,7 V -> povečano na 5 V -> ardu deluje na 5 V -> vse komponente delujejo na 5 V.
V novem: baterija zagotavlja 3,7 V -> povečano na 5 V -> regulirano prek vgrajene reg na ESP32 -> vse komponente delujejo na 3,3 V.
Glede programske opreme bomo potrebovali tudi drugo knjižnico DHT, DHT Arduina ni združljiv z ESP. Kar potrebujemo, se imenuje DHT ESP.
Svojo kodo sem začel temeljiti na primeru DHT, ki ga je ta koda zagotovila. Delovanje kode je:
1, Pridobite okoljske podatke iz podatkov DHT + Solar iz fotocelice
2, Povežite se z wifi s statičnim IP
3, OBJAVITE podatke v skript php
4, pojdi spat 10 minut
Kot boste opazili, sem nastavil kodo za učinkovitost, da skrajša čas bujenja, saj porabi 5 -krat več energije kot stari projekt, ko je bil vklopljen. Kako sem to naredil? Najprej, če pride do kakršne koli napake, se bo funkcija getTemperature () vrnila z napačno vrednostjo (kar pomeni spet 10 minut spanja). To je lahko tako, kot da senzorja DHT ni mogoče zagnati ali povezava wifi ni na voljo. Kot opažate, je bila odstranjena tudi običajna zanka while () za neprekinjeno iskanje povezave wifi, vendar je bilo treba pustiti 1 sekundno zamudo, sicer se ne bo vedno povezala in je odvisno tudi od vrste dostopne točke, nalaganja itd. se bo zgodilo, pri 0,5s sem dobil nedosledno vedenje (včasih se ni moglo povezati). Če kdo pozna boljši način za to, naj to pusti v komentarjih. Šele ko bodo podatki DHT prebrani in povezava wifi vzpostavljena, bo poskušala podatke objaviti v skriptu na spletnem strežniku. Vse vrste zapravljanja časa, kot so Serial.println (), so onemogočene tudi v običajnem načinu delovanja. Kot strežnik uporabljam tudi IP, da se izognem nepotrebnemu iskanju DNS, v moji kodi sta privzeti prehod in strežnik dns nastavljena na 0.0.0.0.
Ne razumem, zakaj je tako težko ustvariti lasten API, če je potrebno le:
sprintf (odgovor, "temp =%d & hum =%d & hi =%d & sol =%d", temp, hum, hi, sol);
int httpResponseCode = http. POST (odgovor);
To majhno kodo php postavite v katero koli malinovo piko in lahko takoj opravite sistemska () opravila na podlagi telemetrije, na primer vklopite ventilatorje ali prižgete luči, če postane dovolj temno.
Nekaj opomb o kodi:
WiFi.config (staticIP, prehod, podomrežje, dns); // MORA biti po tem, ko je Wifi začel neumno …
WiFi.mode (WIFI_STA); // V nasprotnem primeru mora ustvariti tudi neželen AP
Ja, zdaj veš. Tudi vrstni red konfiguracij IP se lahko spreminja prek platform, najprej sem preizkusil druge primere, kjer so bile preklopljene vrednosti prehoda in podomrežja. Zakaj nastaviti statični IP? No, očitno je, da če imate v svojem omrežju namensko polje, kot je strežnik linux, ki izvaja isc dhcpd, ne želite sto milijonov vnosov v dnevnik, ko se ESP prebudi in dobi IP iz DHCP. Usmerjevalniki običajno ne beležijo združenj, zato to ne bo videti. To je cena varčevanja z energijo.
V2 se zaradi slabe kakovosti baterije nikoli ni mogel vzdržati in preprosto sem jo dal na adapter, zato če želite izdelati V1 ali V2, NE kupujte omenjene baterije, naredite svoje raziskave o baterijah (poljubno 18650 več kot 2000mAh oglaševana zmogljivost na Ebayu je prevara z veliko verjetnostjo).
Priporočena:
Osvetlitveni terarij na sončno energijo: 15 korakov (s slikami)
Osvetlitveni terarij na sončno energijo: V: Kaj dobite, če prečkate nočno svetlobo z beležko? O: Svetlobni terarij na sončno energijo! Za ustvarjanje te mini terarijske scene sem predelal zlomljen niz vrtnih luči na sončno energijo . Prikazuje kabino, ki sva jo s fantom najela
Robot na sončno energijo: 17 korakov (s slikami)
Robot na sončno energijo: Nekaj časa nazaj sem izdelal na desetine robotov, ki so jih v veliki meri navdihnili BEAM Robotics. Za tiste, ki jih ne poznate, je BEAM v bistvu posebna metoda izdelave robotov s poudarkom na biologiji, elektroniki, estetiki in mehaniki (od tod tudi kratica
Parkirni senzor LED na sončno energijo: 8 korakov (s slikami)
LED parkirni senzor na sončno energijo: Naša garaža nima veliko globine in ima na koncu omare, ki globino še dodatno zmanjšajo. Avto moje žene je dovolj kratek, da se prilega, a je blizu. Ta senzor sem naredil, da poenostavim postopek parkiranja in zagotovim, da se avto polni
Nakit z obeskom na sončno energijo iz srca, utripajoč LED: 11 korakov (s slikami)
Nakit z obeskom na sončno energijo iz srca, utripajoč LED: Ta navodila so namenjena srcu s sončno energijo z utripajočo rdečo LED. Meri približno 2 " za 1,25 ", vključno z jezičkom USB. Ima eno luknjo na vrhu deske, kar olajša obešanje. Nosite ga kot ogrlico, uhane, vez na zatiču
Vremenska postaja WiFi s sončno energijo V1.0: 19 korakov (s slikami)
Vremenska postaja WiFi na sončni pogon V1.0: V tem navodilu vam bom pokazal, kako zgraditi vremensko postajo WiFi na sončno energijo s ploščo Wemos. Wemos D1 Mini Pro ima majhen faktor oblike in široko paleto ščitnikov plug-and-play je idealna rešitev za hitro pridobivanje