Sadržaj:

NaTaLia meteorološka stanica: Arduino solarna meteorološka postaja učinila je pravi put: 8 koraka (sa slikama)
NaTaLia meteorološka stanica: Arduino solarna meteorološka postaja učinila je pravi put: 8 koraka (sa slikama)

Video: NaTaLia meteorološka stanica: Arduino solarna meteorološka postaja učinila je pravi put: 8 koraka (sa slikama)

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

Nakon godinu dana uspješnog rada na 2 različita mjesta, dijelim svoje planove projekta meteoroloških stanica na solarni pogon i objašnjavam kako se ona razvila u sustav koji može stvarno opstati kroz dugo vremensko razdoblje 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 postaje

1, Odašiljač: Vanjski montirana kutija sa solarnim panelom koja periodično šalje vremensku telemetriju (temperaturu, vlažnost, indeks topline, solarnu snagu) unutarnjoj prijemnoj jedinici.

2, prijemnik: Unutarnja jedinica izrađena 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 zaslona. 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 mom domu očitavanjem fotootpornika (koji određuje je li vani dan ili noć). U mom slučaju prijemnik je bez glave, ali projekt možete jednostavno izmijeniti dodavanjem LCD zaslona. Jedan od uređaja koji koristi, raščlanjuje i prikazuje vremenske podatke sa postaje 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 pogrešku što sustav s vremenom uzima više energije iz baterije ono što bi solarna ploča mogla napuniti, osobito tijekom oblačnih, mračnih zimskih mjeseci.

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

Korištenje velikog računala 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 tijekom procesa izgradnje pomoću mjerača ili s opsegom (korisno kada pokušate mjeriti male skokove u uporabi tijekom rada u vrlo kratkim vremenskim intervalima (milisekunde)).

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

Prva verzija, iako je radila savršeno (nadziranje okoline i slanje podataka putem radija), imala je preveliku potrošnju energije ~ 46mA i ispraznila je bateriju u nekoliko tjedana.

Sve su verzije 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 stari Instructable, ipak sam se osjećao prisiljenim ispraviti ga zbog ove lažne baterije. NEMOJTE kupiti 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 izračuna paralelno 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,2v i da je "nominalni" (prosječni) napon 3,7V.

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

Prekid podešen 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 izračunima baterija osigurava:

Teoretski

Napon baterije = 3,7V

Snaga = 3,7x6000 = 22000 mWh

Stvaran

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

Verzija: 0.1 NA OSNOVI ARDUINO NANO

Čak i s knjižnicom LowPower, 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 ATmega328 troši uvelike ovisi o tome što radite s njom. Samo sjedi u zadanom stanju, može koristiti 16mA @ 5V dok radi na 16MHz.

Kad je ATmega328P u aktivnom načinu rada, kontinuirano će izvršavati nekoliko milijuna uputa u sekundi. Nadalje, analogni digitalni pretvarač na ploči (ADC), serijsko periferno sučelje (SPI), mjerač vremena 0, 1, 2, dvožično 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 brojne načine mirovanja, a neiskorištene periferne uređaje može se isključiti. Načini spavanja razlikuju se po tome koji dijelovi ostaju aktivni, prema trajanju sna i vremenu koje je potrebno za buđenje (razdoblje buđenja). Način mirovanja i aktivni periferni uređaji mogu se kontrolirati pomoću AVR knjižnica za spavanje i napajanje ili, konciznije, s izvrsnom knjižnicom niske snage.

Knjižnica male snage jednostavna je za korištenje, 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ćuje ADC i BPK. Spavanje pri isključivanju znači da su sve funkcije čipa onemogućene do sljedećeg prekida. Nadalje, vanjski oscilator je zaustavljen. Samo prekidi razine na INT1 i INT2, prekidi promjene pinova, podudaranje adrese TWI/I2C 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 iznosi 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 s barebone postavkom možemo čip staviti 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 s 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 dodani foto otpornik koji je povećao potrošnju u stanju mirovanja na ukupno 1 mA (to 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 12VRadna struja: max Manje od 40mA max, i min 9mAR Način rezonancije: (SAW) Način modulacije: ASK Radna frekvencija: Eve 315MHz ili 433MHz Prijenosna snaga: 25mW (315MHz na 12V) Greška frekvencije: +150kHz (max) Brzina: manje od 10Kbps

Spavanje = 1mA

Bilo bi znatno manje bez fotootpornika.

Trunonovo vrijeme Ton = 250 mS = 0,25s

Vrijeme spavanja Tspavanje = 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

Stvaran

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 izračune u komentare, a ja ću ažurirati članak. Također bih bio zahvalan na rezultatima s različitim MCU -ovima i pojačanim pretvaračima.

Korak 3: Izgradnja uspješne meteorološke postaje

Izgradnja uspješne meteorološke postaje
Izgradnja uspješne meteorološke postaje
Izgradnja uspješne meteorološke postaje
Izgradnja uspješne meteorološke postaje
Izgradnja uspješne meteorološke postaje
Izgradnja uspješne meteorološke postaje
Izgradnja uspješne meteorološke postaje
Izgradnja uspješne meteorološke postaje

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 zrakoplovno modeliranje i druge primjene. Kad 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 nema ni indikatorsku vodicu 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 Boost Step-up modul napajanja

U vrijeme pisanja ovog modula još je dostupan na Ebayu za 99 centi, ali ako se odlučite za 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 malu LED diodu na ploči trebalo odlepiti.

Korak 4: Popis hardvera

Popis hardvera
Popis hardvera
  • 18650 6000mAh zaštićena litij-ionska punjiva baterija Ugrađena zaštitna ploča
  • Atmega 328P16M 5V s pokretačkim programom
  • Adafruit DC Boarduino (Arduino kompatibilan) komplet (s ATmega328) <ovo će biti dobra investicija ako radite buduće barebone projekte
  • Otpornik osjetljiv na svjetlost Fotootpornik otpornik na svjetlost 5 mm GL5539
  • 1A 1000V dioda 1N4007 IN4007 DO-41 ispravljačke diode
  • PFM kontrola DC-DC USB 0.9V-5V do 5V dc Boost Step-up modul napajanja
  • 1.6W 5.5V 266mA Mini solarni panel Modul Sustav Epoksidni punjač stanica DIY
  • Modul punjača ploče za punjenje litijeve baterije TP405 5V Mini USB 1A
  • Komplet za povezivanje RF odašiljača i prijemnika od 433 MHz za Arduino/ARM/MC daljinski upravljač <Komplet, sadrži i odašiljač 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 + Malina PI 1/2/3
  • Prozirna akrilna plastična kutija (opcionalno)

Sve to 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 popis hardvera:

Za slučaj da opeku Atmegu nekako programirate, 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 označavaju (crveno-> punjenje, plavo-> potpuno napunjeno stanje). Oni se također mogu raspajkati. Radije daje malo više soka bateriji tijekom punjenja.

Kao što vidite na mom popisu 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š uređaj postavljen 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 učiniti, samo uklonite vanjski premaz iz baterije i lemite žice izravno 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 mjestu 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 solarnoj ploči, za to će vam trebati još 1 dioda koja će biti postavljena između jedne noge solarnog panela i kruga punjenja kako biste zaustavili struju kako bi se noću vraćao u solarnu ploču.

Korak 5: Montaža

Skupština
Skupština
Skupština
Skupština
Skupština
Skupština

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, može uništiti i pojačivač napona).

U ovom postavljanju čip je okrenut prema dolje (mala U rupa s oznakom PIN1). Sve ostale komponente trebale bi biti očite.

Za LDR upotrijebite oklopljeni kabel (npr. Audio kabel s CDroma). U nekim slučajevima (tijekom više tjedana ispitivanja) pokazalo se da ometa prijenos radijskog 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 prvobitno je dodana kako bi trepnula pri odlaznom radijskom prijenosu, ali kasnije sam to smatrala gubitkom energije i treperi samo 3 puta u procesu pokretanja.

TP: je ispitna točka za mjerenje struje u cjelokupnom krugu.

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 jednom rupom za zrak koji dolazi do senzora. Dodao sam mrežu u rupu protiv pčela, osa i drugih malih muha.

Vanjska kutija može se koristiti opcionalno kako bi postaja postala vodootpornija u slučaju da je montirate na stup za jelo 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 tijekom ljeta, iako bi to također moglo oduzeti našu korisnu sunčevu svjetlost s ploče. Možete smisliti dizajn koji odvaja ploču i kutiju (ostavljajući ploču 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, nema oštećenja vode na bilo kojem dijelu kutije iako se mreža koju sam zalijepila na dno kocke raskinula. Razlog zašto je potrebno servisirati stanicu je greška u vezi na LDR konektoru, iako se činilo da je kratkospojni kabel još uvijek na mjestu, veza je prekinuta pa je pin ponekad lebdio pružajući loša LDR analogna očitanja. Prijedlog: ako koristite standardne računalne preklopnike, zalijepite ih vrućim ljepljenjem nakon što postaja radi savršeno kako biste to izbjegli.

Korak 7: Softver

Softver
Softver

Softverski kod zahtijevat će 3 vanjske knjižnice (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 knjižnice svog Arduino IDE -a i tamo je ekstrahirajte.

Samo napomena, bez obzira na to š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 ni vidjeti da LED 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 knjižnicu 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 bi moglo 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 (na bazi ESP32)

Verzija 2 (na bazi ESP32)
Verzija 2 (na bazi ESP32)
Verzija 2 (na bazi ESP32)
Verzija 2 (na bazi ESP32)
Verzija 2 (na bazi ESP32)
Verzija 2 (na bazi ESP32)

Sve što se može slomiti slomit će se citirajući dobrog starog Murphyja i na kraju su nakon godina stanice zatajile na tajanstvene načine. Jedan je počeo slati besmislene solarne podatke koji su se popeli na desetke tisuća, š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.) 240 Mhz Bljesak 4 M bajta Duljina 5 mm Širina 2,54 mm Težina 4 g

Koji za razliku od prikazanog na slici nema logotip LOLIN (krivotvorina iz Kine). Moje prvo ugodno iznenađenje bilo je 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!

No, ovdje je mračna strana priče:

U početku sam spojio LDR na A15 koji je pin 12 jer je bilo lakše vruće lijepiti igle 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 s 8 kanala spojenih na GPIO-ove 32-39 i ADC2 s 10 kanala u drugim pinovima. 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, spojeno na GPIO 32 - 39) i ADC2 (10 kanala, priključeno na GPIO 0, 2, 4, 12 - 15 i 25 - 27). Međutim, uporaba ADC2 ima neka 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 igala 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:

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

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

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

Ovaj se kôd 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 bljeskalice: 80 Mhz

Na internetu postoji mnoštvo meteoroloških postaja 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 izvrstan je za dugo vrijeme rada iz baterije. Odmah dolje, ovo je bila prva stvar koju sam testirao čak i prije lemljenja u prekidače 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 prijeći 1-2 mAs jer se inače projekt neće moći održati dugoročno.

Ponovno je bilo ugodno iznenađenje da način dubokog sna radi kako se oglašava. Tijekom dubokog sna struja je bila toliko niska da moj jeftini višemetar to nije mogao ni izmjeriti (meni odgovara).

Tijekom slanja podataka struja je bila oko 80 mA (što je otprilike 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đer ovisila o razinama svjetlosti i krenula je 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

Stvaran

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 vremenske postaje na Instructables -u na temelju ESP32 da vidim što rade za pohranu podataka. Nažalost primijetili smo da koriste nefleksibilne i ograničene web stranice poput weathercloud -a. Kako nisam ljubitelj "oblaka" i njihov kôd se dugo pokvario jer je web mjesto od tada promijenilo API, odvojilo sam svojih 10 minuta da napravim prilagođeno rješenje jer nije tako teško kao što se moglo pomisliti. Započnimo!

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 s izvlačenjem na VCC, LDR se povukao s 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 idu sve dok im se prekidačko kolo ne uključi da zaustavi oštećenje stanica (oni koji imaju sreću da ga imaju). To za nas nigdje nije dobro kao 3.3V ulaz. Iako ova LOLIN ploča ima konektor litijeve baterije i krug punjenja u ovom projektu, želio sam obnoviti ono što sam mogao sa stare stanice pa sa starim 18650 NE MOŽETE koristiti ovaj ugrađeni punjač. Rješenje je bilo jednostavno: odsjekao sam mikro USB kabel zalemljen u 5V iz starog pojačivača napona i problem je bio 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,7 V -> pojačano na 5 V -> regulirano putem ugrađenog registara na ESP32 -> sve komponente rade na 3,3 V.

Softverski, trebat će nam i druga DHT knjižnica, Arduino DHT nije kompatibilan s ESP -om. Ono što nam treba naziva se DHT ESP.

Svoj sam kôd počeo temeljiti na primjeru DHT -a koji je ovaj kôd dao. Rad koda je sljedeći:

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

2, Spojite se na wifi sa statičkim IP -om

3, OBJAVITE podatke u php skriptu

4, Idite na spavanje 10 minuta

Kao što ćete primijetiti, kôd sam prilagodio radi učinkovitosti kako bi 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 pogreška, funkcija getTemperature () vratit će se s lažnom (što znači ponovno 10 minuta mirovanja). To može biti kao da se DHT senzor ne može pokrenuti ili wifi veza nije dostupna. Kao što ste primijetili, uklonjena je i uobičajena while () petlja za stalno isprobavanje WiFi veze, ali je potrebno ostaviti odgodu od 1 sekunde jer se inače neće uvijek povezati, a također ovisi o vrsti pristupne točke, učitavanju itd. dogodit će se, s 0.5s sam dobio nedosljedno ponašanje (ponekad se nije moglo povezati). Ako netko 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 skriptu na web poslužitelju. Sve vrste funkcija gubljenja vremena, poput Serial.println (), također su onemogućene u normalnom načinu rada. Kao poslužitelj također koristim IP kako bih izbjegao nepotrebno traženje DNS -a, u mom kodu i zadani pristupnik i dns poslužitelj 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 malin pi i možete odmah obaviti sistemske () zadatke na temelju telemetrije, poput uključivanja ventilatora ili uključivanja svjetla ako se dovoljno smrači.

Nekoliko napomena o kodu:

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

WiFi.mode (WIFI_STA); // MORA inače 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 milijuna zapisa u dnevniku od trenutka kad se ESP probudi i dobije IP s DHCP -a. Ruteri obično ne bilježe udruge 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 prijevara je s velikom vjerojatnošću).

Preporučeni: