Sadržaj:

NaTaLia meteorološka stanica: Arduino solarna meteorološka stanica učinila pravi način: 8 koraka (sa slikama)
NaTaLia meteorološka stanica: Arduino solarna meteorološka stanica učinila pravi način: 8 koraka (sa slikama)

Video: NaTaLia meteorološka stanica: Arduino solarna meteorološka stanica učinila pravi način: 8 koraka (sa slikama)

Video: NaTaLia meteorološka stanica: Arduino solarna meteorološka stanica učinila pravi način: 8 koraka (sa slikama)
Video: NMK Šemso - Meteorološka stanica 2024, Juli
Anonim
NaTaLia meteorološka stanica: Arduino solarna meteorološka stanica učinila je pravi put
NaTaLia meteorološka stanica: Arduino solarna meteorološka stanica učinila je pravi put
NaTaLia meteorološka stanica: Arduino solarna meteorološka stanica učinila je pravi put
NaTaLia meteorološka stanica: Arduino solarna meteorološka stanica učinila je pravi put

Nakon godinu dana uspješnog rada na 2 različite lokacije, dijelim svoje planove projekta meteoroloških stanica sa solarnim napajanjem i objašnjavam kako je ona evoluirala u sistem koji zaista može preživjeti kroz duže vremenske periode iz solarne energije. Ako slijedite moje upute i koristite potpuno iste materijale kao što je navedeno, možete izgraditi meteorološku stanicu na solarni pogon koja će raditi mnogo godina. Zapravo, jedini faktor koji ograničava trajanje baterije je vijek trajanja baterije koju koristite.

Korak 1: Rad meteorološke stanice

1, odašiljač: Vanjski montirana kutija sa solarnim panelom koja periodično šalje vremensku telemetriju (temperaturu, vlažnost, indeks topline, solarnu snagu) u unutrašnju prijemnu jedinicu.

2, prijemnik: Unutrašnja jedinica napravljena od Raspberry PI 2 + Arduino Mega sa RF prijemnikom od 433 Mhz spojenim za prijem podataka. U mojim postavkama ova jedinica nema nikakvu funkciju lokalnog LCD ekrana. Radi bezbrižno. Glavni C program brine se o primanju dolaznih podataka s Arduina putem serijske serije, zatim zapisuje podatke u tekstualnu datoteku i čini posljednje primljene podatke dostupnim putem telneta za druge uređaje da ih upitaju.

Stanica kontrolira svjetla u mojoj kući očitavanjem fotootpornika (koji određuje je li vani dan ili noć). U mom slučaju, prijemnik je bez glave, ali možete lako izmijeniti projekt dodavanjem LCD ekrana. Jedan od uređaja koji koristi, raščlanjuje i prikazuje vremenske podatke sa stanice je moj drugi projekt: Ironforge NetBSD Toster.

Korak 2: Prve verzije

Prve verzije
Prve verzije
Prve verzije
Prve verzije
Prve verzije
Prve verzije
Prve verzije
Prve verzije

Na internetu postoji mnogo solarnih projekata, ali mnogi od njih čine uobičajenu grešku što sistem vremenom uzima više energije iz baterije što bi solarni panel mogao napuniti, posebno u oblačnim, mračnim zimskim mjesecima.

Prilikom projektiranja solarnog sistema jedino što je važno je POTROŠNJA SNAGE, na svim komponentama: mcu, radio predajnik, regulator napona itd.

Korištenje velikog računara poput maline pi ili bežičnog WiFi uređaja poput ESP -a samo za prikupljanje i transport nekoliko bitova vremenskih podataka bilo bi pretjerano, ali kao što ću pokazati u ovom vodiču, čak je i mala Arduino ploča.

Najbolje je uvijek mjeriti struju tokom procesa izgradnje pomoću mjerača ili pomoću opsega (korisno kada pokušavate mjeriti male skokove u upotrebi tokom rada u vrlo kratkim vremenskim intervalima (milisekunde)).

Na prvoj slici možete vidjeti moju prvu (Arduino Nano zasnovanu) stanicu i drugu Arduino Barebone Atmega 328P ploču.

Prva verzija, iako je radila savršeno (nadgledanje okruženja i slanje podataka putem radija), imala je preveliku potrošnju energije ~ 46mA i ispraznila je bateriju u nekoliko sedmica.

Sve verzije su koristile sljedeću bateriju:

18650 6000mAh zaštićena litij-ionska punjiva baterija Ugrađena zaštitna ploča

AŽURIRAJTE ove ScamFire baterije. Iako je ovo prilično star Instructable, ipak sam se osjećao primoranim to ispraviti zbog ove lažne baterije. NEMOJTE kupovati spomenutu bateriju, sami istražite druge LION/LIPO baterije, sve 3,7V baterije će raditi s ovim projektom.

Konačno sam imao vremena razotkriti ScamFire bateriju da vidim koliki je njen stvarni kapacitet. Stoga ćemo izvesti 2 proračuna uporedo sa stvarnim i "oglašenim" kapacitetima.

Prije svega, jedna je stvar da je ova baterija lažna i ništa što tvrde o njoj nije istina, nove verzije su još gore što su kopirale lažnu izostavljajući zaštitni krug od 2 centa pa ih ništa neće spriječiti da se isprazne do nule.

Mali članak o LION/LIPO baterijama:

TLDR:

To znači da je maksimalni napon ćelije 4,2 V i da je "nominalni" (prosječni) napon 3,7 V.

Na primjer, ovdje je profil napona za 'klasičnu' bateriju od 3,7 V/4,2 V. Napon počinje s maksimalnih 4,2 i brzo pada na oko 3,7 V tijekom većine trajanja baterije. Kad pritisnete 3,4 V, baterija je prazna, a na 3,0 V granično kolo isključuje bateriju.

Moja mjerenja pomoću lažnog opterećenja:

Baterija napunjena: 4.1V

Granična vrijednost postavljena na: 3.4V

Simulacija opterećenja: 0,15A (moj uređaj je imao problema sa spuštanjem ispod ovog.)

Izmjereni kapacitet: 0,77 Ah dajte mu besplatnih 0,8 Ah što je 800 mAh umjesto reklamiranih 6000 mAh!

Budući da ova baterija nije imala čak ni zaštitni krug, mogao sam se slobodno spustiti, ali na 3,4V nakon 10 minuta već se srušio na 3,0V.

Stoga jednostavnim proračunima baterija pruža:

Teoretski

Napon baterije = 3,7V

Snaga = 3,7x6000 = 22000 mWh

Real

Napon baterije = 3,7V Snaga = 3,7x800 = 2960 mWh

Verzija: 0.1 ARDUINO NANO BASED

Čak i uz LowPower biblioteku, Arduino nano troši ~ 16 mA (u stanju mirovanja) -> FAIL.

Teoretski

Pavg = VxIavg = 5Vx16mA = 80 mW

Trajanje baterije = 22000/80 = 275 sati = približno 11 dana

RealPavg = VxIavg = 5Vx16mA = 80 mW

Trajanje baterije = 800/80 = 10 sati

Verzija: 0.2 Atmega 328P Barebone

Snaga koju troši ATmega328 uvelike ovisi o tome šta radite s njom. Samo sjedi tamo u zadanom stanju, može koristiti 16mA @ 5V dok radi na 16MHz.

Kada je ATmega328P u aktivnom načinu rada, kontinuirano će izvršavati nekoliko miliona instrukcija u sekundi. Nadalje, ugrađeni periferijski analogno-digitalni pretvarač (ADC), serijsko periferno sučelje (SPI), mjerač vremena 0, 1, 2, dvožilno sučelje (I2C), USART, mjerač vremena čuvara (WDT) i otkrivanje smeđe boje (BOD) troše energiju.

Radi uštede energije, ATmega328P MCU podržava niz načina mirovanja, a neiskorištene periferne jedinice mogu se isključiti. Načini spavanja razlikuju se po tome koji dijelovi ostaju aktivni, po trajanju sna i vremenu potrebnom za buđenje (period buđenja). Način mirovanja i aktivni periferni uređaji mogu se kontrolirati pomoću AVR biblioteka za spavanje i napajanje ili, konciznije, s izvrsnom bibliotekom male snage.

Biblioteka niske snage je jednostavna za upotrebu, ali vrlo moćna. Izjava LowPower.powerDown (SLEEP_8S, ADC_OFF, BOD_OFF); stavlja MCU u SLEEP_MODE_PWR_DOWN na 16 ms do 8 s, ovisno o prvom argumentu. Onemogućava ADC i BOD. Spavanje pri isključivanju znači da su sve funkcije čipa onemogućene do sljedećeg prekida. Nadalje, vanjski oscilator je zaustavljen. Samo prekidi nivoa na INT1 i INT2, prekidi promjene pinova, podudaranje TWI/I2C adrese ili WDT, ako je omogućeno, mogu probuditi MCU. Tako ćete s jednom izjavom minimizirati potrošnju energije. Za 3.3 V Pro Mini bez LED -a za napajanje i bez regulatora (vidi dolje) koji pokreće ovu izjavu, potrošnja energije je 4,5 μA. To je vrlo blizu onome što se spominje u podatkovnom listu ATmega328P za stanje mirovanja s isključenim WDT-om od 4,2 μA (podatkovna tablica povezana s izvorima). Stoga sam prilično uvjeren da funkcija powerDown isključuje sve što je razumno moguće. S izjavom LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);, WDT će biti onemogućen i nećete se probuditi dok se ne pokrene prekid.

Tako sa barebone postavkom možemo staviti čip u stanje mirovanja na 5 minuta, dok troši vrlo malo energije (0,04 mA bez perifernih uređaja). Međutim, ovo je samo čip Atmega 328P sa kristalnim oscilatorom i ništa drugo, pojačivač napona koji se koristi u ovoj konfiguraciji za povećanje napona baterije od 3,7 V -> 5,0 V također troši 0,01 mA.

Jedan odvod konstantnog napona bio je dodatni foto otpornik koji je povećao potrošnju u stanju mirovanja na ukupno 1 mA (ovo uključuje sve komponente).

Formula za izračunavanje precizne potrošnje uređaja u načinu mirovanja i buđenja je:

Iavg = (Ton*Ion + Tsleep*Spavanje) / (Ton + Tsleep)

Ion = 13mA

Ovo uglavnom dolazi iz odašiljača RF433 Mhz:

Odašiljač:

Radni napon: 3V - 12V fo max. potrošnja energije 12V Radna struja: max Manje od 40 mA max, i min 9 mAR Režim rezonancije: (SAW) Modulacijski način: ASK Radna frekvencija: Eve 315MHz ili 433MHz Prijenosna snaga: 25mW (315MHz pri 12V) Greška frekvencije: +150kHz (max) Brzina: manje od 10Kbps

Spavanje = 1mA

Bez fotootpornika bi bilo znatno manje.

Trunonovo vrijeme Ton = 250 mS = 0,25s

Vrijeme spavanja Tsleep = 5 min = 300s

Iavg = (Ton*Ion + Tsleep*Spavanje) / (Ton + Tsleep)

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

Iavg = 1,26 mA

Pavg = VxIavg = 5Vx1.26mA = 6 mW

Teoretski

Trajanje baterije = 22000mWh/6mW = 3666 sati = približno 152 dana

Real

Trajanje baterije = 800mWh/6mW = 133 sata = približno 5,5 dana

Iako su to još uvijek bile bolje UltraFire serije, ono što sam koristio na početku moglo se vidjeti da bez solarne ploče ili niske potrošnje od 1 mA ovaj projekt ne bi dugo opstao.

Slobodno sagradite stanicu i zapišite svoje nalaze i proračune u komentare, a ja ću ažurirati članak. Također bih bio zahvalan na rezultatima s različitim MCU -ovima i pretvaračima pojačanja.

Korak 3: Izgradnja uspješne meteorološke stanice

Izgradnja uspješne meteorološke stanice
Izgradnja uspješne meteorološke stanice
Izgradnja uspješne meteorološke stanice
Izgradnja uspješne meteorološke stanice
Izgradnja uspješne meteorološke stanice
Izgradnja uspješne meteorološke stanice
Izgradnja uspješne meteorološke stanice
Izgradnja uspješne meteorološke stanice

Iako je to prva uspješna verzija, sadrži malo grešaka na slikama i ne mogu ih prepraviti jer su stanice već postavljene. Dva pojačala napona prikazana na slici mogu se dobiti u vrijeme pisanja za aero-modeliranje i druge primjene. Kada sam redizajnirao svoju stanicu, razmišljao sam o nabavci manje i učinkovitije naponske stepenaste ploče, međutim manja veličina definitivno ne znači da je učinkovitija.

Novi mali modul na slici koji čak nema ni indikator zapravo je sam ispraznio 3mA (*FAIL*), pa sam ostao pri svojoj staroj ploči:

PFM kontrola DC-DC USB 0.9V-5V do 5V dc Modul za pojačavanje pojačanog napajanja

U vrijeme pisanja ovog modula još je dostupan na Ebayu za 99 centi, ali ako odlučite koristiti neki drugi pojačivač, uvijek provjerite potrošnju energije u stanju pripravnosti. S pojačivačem dobre kvalitete on ne bi trebao biti veći od mog (0,01 mA), iako je mala LED dioda na ploči morala biti odlemljena.

Korak 4: Lista hardvera

Lista hardvera
Lista hardvera
  • 18650 6000mAh zaštićena litijum-jonska punjiva baterija Ugrađena zaštitna ploča
  • Atmega 328P16M 5V sa pokretačkim programom
  • Adafruit DC Boarduino (kompatibilan s Arduinom) komplet (s ATmega328) <ovo će biti dobra investicija ako radite buduće barebone projekte
  • Otpornik osjetljiv na svjetlost Fotootpornik Optootpornik 5 mm GL5539
  • 1A 1000V Dioda 1N4007 IN4007 DO-41 Ispravljačke diode
  • PFM kontrola DC-DC USB 0.9V-5V do 5V dc Modul za pojačavanje pojačanog napajanja
  • 1.6W 5.5V 266mA Mini solarni panel modul Sustav Epoksidni punjač za ćelije DIY
  • TP405 5V Mini USB 1A modul za punjenje ploče za punjenje litijumske baterije
  • Komplet za povezivanje RF predajnika i prijemnika od 433 MHz za Arduino/ARM/MC daljinski upravljač <Komplet, sadrži i predajnik i odašiljač
  • IP65 Zaštitna sklopka Razvodna kutija Vanjsko vodootporno kućište 150x110x70mm
  • Novi modul senzora temperature i relativne vlažnosti DHT22 za Arduino
  • 1x220 Ohm, 2x10KOhm, 1xLED, 1xMini prekidač, 1x1N4007dioda
  • Adafruit 16 MHz keramički rezonator / oscilator [ADA1873]
  • Arduino UNO/Mega itd. Za prijemnu stanicu + Raspberry PI 1/2/3
  • Prozirna akrilna plastična kutija (opcionalno)

Sve ovo možete pronaći na Ebayu, ne želim promovirati nikakve prodavače povezivanjem na njihove stranice, a veze će ionako u budućnosti postati mrtve.

Napomene za listu hardvera:

Samo u slučaju da napišete Atmegu nekako programiranjem, kupite ih više, isto vrijedi i za pojačivač napona i solarni regulator punjenja.

Solarni punjač sadrži 2 male LED diode u boji koje se uključuju samo u slučaju solarnog punjenja i pokazuju (crveno-> punjenje, plavo-> potpuno napunjeno stanje). Oni se takođe mogu raspajkati. Radije daje malo više soka bateriji tokom punjenja.

Kao što vidite, na mojoj listi nema držača baterija. Zašto? Zato što su nepouzdani. Imao sam bezbroj prilika kada se baterija izvlačila iz držača i gubila vezu. Pogotovo ako je vaša postavka postavljena na visoki stup za jelo poput mog, otvoren za sve teške vremenske uvjete. Bateriju sam čak zakopčao u držač s 2 zatvarača i ipak se uspjela pomaknuti. Nemojte to činiti, samo uklonite vanjski premaz iz baterije i lemite žice direktno u dno baterije, koje sadrže zaštitni krug od prekomjernog punjenja (nemojte zaobići zaštitu). Držač baterije može se koristiti samo za držanje baterije na mestu u uređaju.

TP405 5V Mini USB 1A ploča za punjenje litijske baterije: nažalost, ova ploča ne uključuje zaštitu od obrnute struje na solarnom panelu, za to će vam trebati još 1 dioda koja će biti postavljena između jedne noge solarnog panela i kola za punjenje kako biste zaustavili struju da se noću vraća u solarni panel.

Korak 5: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Ova ploča sadrži relativno malo komponenti, a markeri na ploči su prilično jednostavni.

Pazite da NE umetate Atmega328P na pogrešan način (to se može zagrijati i opeći čip, a može i uništiti pojačivač napona).

U ovom podešavanju čip je okrenut prema dolje (mala U rupa koja označava PIN1). Sve ostale komponente trebale bi biti očite.

Za LDR upotrijebite oklopljeni kabel (npr. Audio kabel s CDroma). U nekim slučajevima (tokom više tjedana testiranja) pokazalo se da ometa prijenos radio signala. Ovo je bio jedan od onih grešaka koje je bilo teško riješiti pa ako ne želite probleme, upotrijebite oklopljeni kabel, kraj priče.

LED: LED dioda na dnu kutije je prvobitno dodana da treperi kada postoji odlazni radio prenos, ali kasnije sam to smatrao gubitkom energije i treperi samo 3 puta u procesu pokretanja.

TP: je testna tačka za merenje struje za celo kolo.

DHT22: Ne kupujte jeftini DHT11, potrošite 50 centi više da nabavite bijeli DHT22 koji može mjeriti i negativne temperature.

Korak 6: Dizajn kućišta

Dizajn kućišta
Dizajn kućišta
Dizajn kućišta
Dizajn kućišta
Dizajn kućišta
Dizajn kućišta

Iako je malo pretjerano, napravljena je 3D kocka (weather_cube) koja drži osjetnik temperature DHT22 na mjestu. Kocka je zalijepljena na dno IP kutije, sa samo 1 rupom za zrak koji dolazi do senzora. Dodao sam mrežu u rupu protiv pčela, osa i drugih malih mušica.

Vanjska kutija se može koristiti opcionalno kako bi postaja postala vodootpornija u slučaju da je montirate na stub za posudu na otvorenom.

Ideja za 1 korisnu značajku: dodavanje velike metalne krovne ploče 1-2 cm na vrh kutije pružajući sjenu od sunca tokom ljeta, iako bi to moglo oduzeti i našu korisnu sunčevu svjetlost sa panela. Možete smisliti dizajn koji odvaja panel i kutiju (ostavljajući panel na suncu, okvir u sjeni).

Na slikama: jedna od stanica uklonjena iz radnog okruženja nakon godinu dana, napon baterije je i dalje na zapanjujućih 3,9 V, bez oštećenja vode na bilo kojem dijelu kutije, iako se mreža koju sam zalijepio na dno kocke pocepala. Razlog zašto je potrebno servisirati stanicu je greška u vezi na LDR konektoru, iako se činilo da je kratkospojnik još uvijek na mjestu, veza je prekinuta pa je pin ponekad plutao pružajući loša LDR analogna očitanja. Prijedlog: ako koristite standardne računarske kablove za spajanje, vruće ih zalijepite nakon što stanica radi savršeno kako biste to izbjegli.

Korak 7: Softver

Softver
Softver

Softverski kod će zahtijevati 3 vanjske biblioteke (LowPower, DHT, VirtualWire). U posljednje vrijeme imao sam problema s lakim pronalaženjem nekih od njih pa sam ih priložio u zasebnu ZIP datoteku. Bez obzira na to koji OS koristite Linux/Windows, samo pronađite mapu biblioteke vašeg Arduino IDE -a i tamo je ekstrahirajte.

Samo napomena, bez obzira što već savjetujem da ne kupujete DHT11, ako koristite pogrešnu vrstu DHT senzora, program će zauvijek visjeti na početku u odjeljku za inicijalizaciju (nećete čak ni vidjeti da lampica za pokretanje trepće 3 puta).

Kôd glavne petlje je vrlo jednostavan, prvo čita vrijednosti okoliša (temperatura, indeks topline, vlažnost, solarna energija), šalje ih putem radija, a zatim koristi biblioteku male snage za uspavljivanje Arduina na 5 minuta.

Otkrio sam da će smanjenje brzine prijenosa povećati stabilnost radijskog prijenosa. Stanica šalje vrlo malu količinu podataka, 300 bps je više nego dovoljno. Također ne zaboravite da odašiljač radi samo od pribl. 4.8V, u budućoj verziji 3.3V to može dovesti do još lošije kvalitete prijenosa (slanje podataka kroz zidove i druge prepreke). Naišao sam na problem s korištenjem Arduino Mege priključene na Raspberry PI 2 koji napaja Megu iz PI -a, da nisam primio nikakav prijenos. Rješenje je bilo napajanje Mege iz zasebnog vanjskog 12V napajanja.

Korak 8: Verzija 2 (zasnovano na ESP32)

Verzija 2 (zasnovano na ESP32)
Verzija 2 (zasnovano na ESP32)
Verzija 2 (zasnovano na ESP32)
Verzija 2 (zasnovano na ESP32)
Verzija 2 (zasnovano na ESP32)
Verzija 2 (zasnovano na ESP32)

Sve što se može slomiti slomit će se citirajući dobrog starog Murphyja i na kraju nakon godina stanice su zatajile na misteriozne načine. Jedan je počeo slati besmislene solarne podatke koji su se povećali na desetine hiljada, što je nemoguće zbog: Arduino ploča sadrži 6 kanala (8 kanala na Mini i Nano, 16 na Mega), 10-bitni analogno-digitalni pretvarač. To znači da će mapirati ulazni napon između 0 i 5 volti u cjelobrojne vrijednosti između 0 i 1023. Stoga sam nakon zamjene radija, LDR -a i reprogramiranja Atmege 328P više puta odustao i odlučio da je vrijeme za inovacije. Idemo na ESP32.

Ploča koju sam koristio je: ESP32 WEMOS LOLIN32 Lite V1.0.0 Wifi i Bluetooth kartica Rev1 MicroPython 4MB FLASH

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

Mikrokontroler ESP-32

Radni napon 3,3 V Digitalni I/O pinovi 19 Analogni ulazni pinovi 6 Brzina takta (maks.) 240Mhz Blic 4M bajta Dužina 5 mm Širina 2,54 mm Težina 4 g

Koji za razliku od prikazanog nema logotip LOLIN (krivotvorina iz Kine). Moje prvo ugodno iznenađenje je bilo da se ispis ispisan na ploči podudara s ispisom Arduino! Nakon što sam se pozabavio s toliko noname ploča na kojima sam morao tražiti ispise po cijele dane mrtav umoran griješeći konačno ploča na kojoj je pinout ravno naprijed WoW!

Međutim, evo mračne strane priče:

U početku sam spojio LDR na A15 koji je pin 12 jer je bilo lakše vruće lijepiti pinove zajedno. Zatim sam dobio 4095 očitanja (što je maksimum koji možete dobiti s AnlogReadom na ESP32) što me izludilo jer je cijeli razlog zašto sam obnovio stanicu bila slomljena očitanja LDR -a sa starog (DHT je još uvijek dobro funkcionirao). Pa ispada da:

Esp 32 integrira dva 12-bitna ACD registra. ADC1 sa 8 kanala povezanih na GPIO 32-39 i ADC2 sa 10 kanala u drugom pinu. Stvar je u tome što ESP32 koristi ADC2 za upravljanje wifi funkcijama, pa ako koristite Wifi, ne možete koristiti taj registar. API upravljačkog programa ADC podržava ADC1 (8 kanala, priključeno na GPIO 32 - 39) i ADC2 (10 kanala, priključeno na GPIO 0, 2, 4, 12 - 15 i 25 - 27). Međutim, upotreba ADC2 ima određena ograničenja za aplikaciju:

ADC2 koristi Wi-Fi upravljački program. Stoga aplikacija može koristiti ADC2 samo ako Wi-Fi upravljački program nije pokrenut. Neki od pinova ADC2 koriste se kao igle za vezivanje (GPIO 0, 2, 15) pa se ne mogu slobodno koristiti. Takav je slučaj u sljedećim službenim razvojnim kompletima:

Dakle, povezivanjem LDR -a s pina 12 na A0, koji je VP, riješeno je sve, ali ne razumijem zašto čak navode ADC2 pinove kao dostupne proizvođačima. Koliko je drugih hobista izgubilo tone vremena dok ovo nisu shvatili? Neupotrebljive igle barem označite crvenom bojom ili ne spominjte to uopće u priručniku, tako da drugi proizvođači mogu saznati za njih samo ako im zaista trebaju. Svrha ESP32 je da ga koristi sa WIFI -om, svi ga koriste sa WIFI -jem.

Dobar početak kako postaviti Arduino IDE za ovu ploču:

Iako sam ga stavio u kôd, opet se ponavlja:

Ovaj kôd se možda neće kompajlirati za druge modele ESP32 osim za Weemos LOLIN 32!

Postavke izrade: -Koristite upload/serijski broj: 115200 -Koristite CPU/ram: 240Mhz (Wifi | BT) -Koristite frekvenciju blica: 80 Mhz

Na internetu postoji mnoštvo meteoroloških stanica zasnovanih na ESP32, koje su mnogo češće nego što je moja verzija 1 bila s barebone čipom jer ih je lakše postaviti, ne trebate programer samo priključite uređaj na USB i programirajte ga i način dubokog mirovanja odličan je za dugo vrijeme rada iz baterije. Odmah dolje, ovo je bila prva stvar koju sam testirao čak i prije lemljenja prekidača jer je, kao što sam napomenuo na više mjesta u ovom projektu, najvažnija stvar potrošnja energije, a s trenutnom (lažnom) baterijom i malim solarnim panelom stanje pripravnosti snaga zapravo ne može preći 1-2mAs jer u protivnom projekat neće moći da se održi na duži rok.

Ponovo je bilo ugodno iznenađenje da način dubokog sna radi kako se oglašava. Tokom dubokog sna struja je bila toliko niska da moj jeftini višemetar nije mogao ni da je izmeri (radi za mene).

Tijekom slanja podataka struja je bila oko 80 mA (što je oko 5 puta više nego kada se Atmega 328P budio i emitirao), međutim ne zaboravite da je s V1 došlo do prosječnog odliva energije od 1 mA na LDR -u u stanju mirovanja (koja je takođe zavisila od nivoa svetlosti i kretala se od 0,5mA - 1mA) koje sada nema.

Sada kada je UltraFire baterija raskrinkana ako koristite istu bateriju, evo što možete očekivati:

Iavg = (Ton*Ion + Tsleep*Spavanje) / (Ton + Tsleep)

Iavg = (2s*80mA + 300s*0.01mA) / (2s + 300s) Iavg = 0.5mA

Pavg = VxIavg = 5Vx0.5mA = 2.5 mW

Teoretski

Trajanje baterije = 22000mWh/2.5mW = 8800 sati = približno 366 dana

Real

Trajanje baterije = 800mWh/2.5mW = 320 sati = približno 13 dana

Nisam imao opseg za precizno mjerenje vremena uključivanja, ali mojim ugađanjem ono traje oko 2 sekunde.

Nisam htio provesti popodne na prilagođenom kodiranju svega pa sam potražio neke druge meteorološke stanice na Instructables -u zasnovane na ESP32 da vidim šta rade za skladištenje podataka. Nažalost primijetili smo da koriste nefleksibilne i ograničene web stranice poput weathercloud -a. Kako nisam ljubitelj "oblaka" i njihov kôd je dugo bio u kvaru jer je web lokacija od tada promijenila API, odvojilo sam svojih 10 minuta da napravim prilagođeno rješenje jer nije tako teško kao što se moglo pomisliti. Hajde da počnemo!

Prije svega, za ovaj projekt ne postoji zasebna slika štampane ploče, jer koristi potpuno iste komponente (žao mi je zbog lemljenja na ružnoj slici) kao i V1 s tom razlikom što sve radi na 3,3 V. DHT spojen sa pullup -om na VCC, LDR je povučen sa 10k. Problem koji bi mogli vidjeti s baterijama 18650, poput moje kineske lažne (6500 mAh ultra sunčana vatra lol: D), je u tome što započinju krivulju pražnjenja s otprilike 4,1 V novog doba i nastavljaju sve dok se njihova prekidna shema ne uključi da zaustavi oštećenje ćelija (oni koji imaju sreću da ga imaju). Ovo za nas nigdje nije dobro kao 3.3V ulaz. Iako ova LOLIN ploča ima konektor litijumske baterije i krug punjenja u ovom projektu, želio sam obnoviti ono što sam mogao sa stare stanice pa sa starom 18650 NE MOŽETE koristiti ovaj ugrađeni punjač. Rješenje je bilo potpuno jednostavno: odsjekao sam mikro USB kabel zalemljen u 5V iz starog pojačivača napona i problem je riješen, jer ploča na microUSB -u ima regulator.

Dakle, razlika između stare i nove verzije koja u staroj bateriji daje 3,7V -> pojačana na 5V -> ardu radi na 5V -> sve komponente rade na 5V.

U novom: baterija daje 3.7V -> pojačano na 5V -> regulirano putem ugrađenog registara na ESP32 -> sve komponente rade na 3.3V.

Softverski će nam trebati i druga DHT biblioteka, Arduino DHT nije kompatibilan sa ESP -om. Ono što nam treba se zove DHT ESP.

Počeo sam bazirati svoj kôd na primjeru DHT -a koji je ovaj kôd dao. Funkcionisanje koda je:

1, Dobijte podatke o okolišu iz DHT + solarnih podataka iz fotoćelije

2, Povežite se na WiFi sa statičkom IP adresom

3, OBJAVITE podatke u php skriptu

4, Idi na spavanje 10 minuta

Kao što ćete primijetiti, kôd sam prilagodio radi efikasnosti kako bih apsolutno sveo vrijeme buđenja jer troši 5 puta više energije nego stari projekt kada je uključen. Kako sam to učinio? Prije svega, ako postoji bilo kakva greška, funkcija getTemperature () će se vratiti sa false (što znači da će ponovno spavati 10 minuta). To može biti kao da se DHT senzor ne može pokrenuti ili wifi veza nije dostupna. Kao što primjećujete, uklonjena je i uobičajena while () petlja za stalno isprobavanje WiFi veze, ali je potrebno ostaviti odgodu od 1 sekunde jer se u protivnom neće uvijek povezati, a ovisi i o vrsti AP -a, učitavanju itd. dogodit će se, s 0.5s sam dobio nekonzistentno ponašanje (ponekad se nije moglo povezati). Ako neko zna bolji način za to, neka to ostavi u komentarima. Tek kad se pročitaju DHT podaci I kada se uspostavi wifi veza, pokušat će objaviti podatke u skripti na web poslužitelju. Sve vrste funkcija gubljenja vremena, poput Serial.println (), onemogućene su iu normalnom radnom načinu rada. Kao poslužitelj također koristim IP kako bih izbjegao nepotrebno traženje DNS -a, u mom kodu i zadani gateway i dns server postavljeni na 0.0.0.0.

Ne razumijem zašto je tako teško stvoriti vlastiti API kada je potrebno samo:

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

int httpResponseCode = http. POST (odgovor);

Ovaj mali php kod stavljate na bilo koji maline pi i možete odmah obaviti sistemske () zadatke na osnovu telemetrije, poput uključivanja ventilatora ili uključivanja svjetla ako se dovoljno smrači.

Nekoliko napomena o kodu:

WiFi.config (staticIP, gateway, subnet, dns); // MORA biti nakon što je WiFi počeo glup …

WiFi.mode (WIFI_STA); // MORAO će u protivnom stvoriti i neželjeni AP

Da, sad znaš. Također se redoslijed IP konfiguracija može promijeniti kroz platforme. Prvo sam isprobao druge primjere gdje su se promijenile vrijednosti pristupnika i podmreže. Zašto postaviti statički IP? Pa sasvim je očito, ako imate namjenski okvir na vašoj mreži, poput linux poslužitelja koji pokreće isc dhcpd, ne želite stotinu miliona zapisa iz dnevnika kada se ESP probudi i dobije IP s DHCP -a. Ruteri obično ne bilježe udruženja pa to neće biti vidljivo. Ovo je cijena uštede energije.

V2 se nikada nije mogao održati zbog loše kvalitete baterije i jednostavno sam ga stavio na adapter pa ako želite izgraditi V1 ili V2 NE kupujte spomenutu bateriju, sami istražite baterije (bilo koji 18650 oglašeni kapacitet preko 2000mAh na Ebayu je prevara sa velikom vjerovatnoćom).

Preporučuje se: