Sadržaj:

ESP32 Solarna meteorološka stanica: 9 koraka
ESP32 Solarna meteorološka stanica: 9 koraka

Video: ESP32 Solarna meteorološka stanica: 9 koraka

Video: ESP32 Solarna meteorološka stanica: 9 koraka
Video: ⛅️Погодная станция на Arduino своими руками 2024, Novembar
Anonim
Image
Image
ESP32 meteorološka stanica na solarni pogon
ESP32 meteorološka stanica na solarni pogon
ESP32 meteorološka stanica na solarni pogon
ESP32 meteorološka stanica na solarni pogon

U ovom ćemo vodiču izgraditi projekt meteorološke stanice s omogućenim WiFi -jem.

Cilj je dizajnirati meteorološku stanicu sa gotovo svim mogućim podvizima:

  • Prikažite trenutne uslove, vrijeme, temperaturu, vlažnost, pritisak
  • Prikaži prognozu za naredne dane
  • Ažuriranje uživo
  • Ugrađena web stranica za konfiguraciju i predstavljanje podataka
  • Otpremite podatke u oblak radi statistike historije
  • Integrirano sa Aple Home Kit ili MQTT
  • Neopterećeni Accu sa mogućnošću punjenja ili povezivanjem na solarnu ploču

Ne mogu dodati više ni mašte šta drugo mora ili može biti

Korak 1: Dijelovi koji su potrebni

Dijelovi koji su potrebni
Dijelovi koji su potrebni
Dijelovi koji su potrebni
Dijelovi koji su potrebni
Dijelovi koji su potrebni
Dijelovi koji su potrebni
  • ESP32 (koristio sam dev modul)
  • 2.8 "240x320 TFT LCD SPI ILI9341
  • Plastično kućište
  • 3 x 18650 Accu
  • Vremenski senzor BME280 za mjerenje temperature, vlažnosti i pritiska
  • USB litijumski modul za punjenje
  • DC-DC korak UP18650
  • držač baterije (3 kom)
  • HC-SR505 Detektor pokreta
  • 220 Om otpornik
  • 2x 10 kOm otpornika
  • TIP120 NPN tranzistor (Darlington) može se koristiti bilo koji drugi kompatibilan
  • ButtonWires, prekidač, ploča za lemljenje….

Korak 2: Ožičenje i sastavljanje

Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje
Ožičenje i sastavljanje

Prvi korak je okupljanje stanica.

Podijelio sam plastično kućište na dva dijela, od kojih se jedan koristi za bateriju, prekidač, USB punjač i DC-DC iskorak. U ovaj dio stavljam držač baterije i izrađujem prozore za prekidač i USB punjač. Imajte na umu da USB modul punjača prilično zagrijava pa sam upotrijebio aluminijsku ploču i na njega stavio USB punjač pomoću ljepila Star 922.

Drugi korak je sastavljanje dijela kontrolera.

Pogledajte dijagram ožičenja kako treba biti spojen

U tu sam svrhu upotrijebio ploču za kruh sa sljedećim koracima

  • Lemljena ploča za razvoj ESP32
  • Lemljeni štit za čuvanje TFT ekrana
  • Lemite ostale elektronske komponente: BME280, otpornike, dugmad
  • Lemljenje ožičenja između komponenti prema dijagramu

Treći korak je priprema montaže ploče za kruh na drugi dio plastičnog kućišta. Odštampao sam na svom 3D štampaču dvije šipke, pričvrstite ih na ploču pomoću vijaka i napravite pravokutno rezanje za ekran.

Zalijepio sam nosače od plastičnih šipki na tijelo od plastičnog kućišta. Sada, kada se ljepilo osuši, kabinu ploče za kruh odvojite vijcima.

Sljedeći korak je:

  • Lemljenje ožičenja za izvor napajanja
  • Lemljenje ožičenja za status napona baterije
  • Lemiti i montirati detektor pokreta

Završni korak:

  • postavite DC-DC pretvarač podešavanjem izlaznog napona 5v
  • spojite dva dijela kontrolera stanice na napajanje: žice za napajanje i očitanje napona

Za detektor pokreta i dugme napravio sam dodatne rupe na prednjoj strani.

Korak 3: Otpremanje firmvera na ESP32

Za ovaj projekt sam koristio univerzalni softver koji sam sam razvio

Molimo pogledajte github stranicu ESPHomeController. Ovo sadrži potpune upute za kompajliranje i postavljanje.

! Ako niste upoznati s kompilacijom i Arduinom, pogledajte korak Učitavanje spremnog firmvera

Čim prvi put učitate firmver, ESP32 će se pokrenuti u načinu konfiguracije (način pristupne tačke)

Trebali biste ih konfigurirati. U tu svrhu otvorite na bilo kojem popisu uređaja dostupan WiFi. Pronađite HomeController i povežite se s njim. Zarobljeni portal trebao bi se automatski pokrenuti. Ako ne unesete URL vašeg preglednika: 192.168.4.1 i vidjet ćete ekran za konfiguraciju

Slijedite upute i konfigurirajte WiFi vjerodajnice za svoju WiFi mrežu.

ESP će se nakon toga ponovno pokrenuti kao WiFi klijent i spojit će se na vaš Wifi.

Kako se sson firts povezivanje dogodi, automatski će montirati Spiffs datotečni sistem i preuzeti potrebne datoteke za web portal:

  • index.html
  • filebrowse.html
  • js/bundle.min.js.gz

Preuzimanje se događa iz mape

Sad možete vidjeti sadržaj datoteke putem web preglednika. za ovo sada trebate ip adresu vašeg ESP32

Možete ga pronaći na jedan od sljedećih načina:

  • Korištenje monitora serijskog porta za pregled ESP32 dnevnika
  • Korištenje bilo kojeg tcp skenera za skeniranje vaših mrežnih uređaja
  • Pritisnite dugme na meteorološkoj stanici i vidjet ćete informacije o sistemu

Stavite na pregledavanje https://192.168.0. XX/browse i vidjet ćete popis datoteka vašeg ESP -a

(192.168.0. XX je IP adresa vašeg uređaja

Za konačno podešavanje morate pripremiti konfiguracijske datoteke.

Korak 4: Otpremanje spremnog firmvera

Otpremanje spremnog firmvera
Otpremanje spremnog firmvera

Ovaj odjeljak je posebno za slušne osobe koje neće samostalno proizvoditi firmver. Potrebno je samo učitati "spreman" firmver

1. Preuzmite alate za otpremanje sa ove stranice

2. Preuzmite priložene (ekstrakt iz arhive) datoteke HomeController.bin i bootloader_qio_80m.bin na svoj tvrdi disk

3. Pokrenite ESP32 alatku za preuzimanje i unesite vrijednosti prema snimci zaslona

4. Pritisnite start

Korak 5: Konfiguracija

Prije početka pripreme konfiguracije potrebno vam je:

  1. Kreirajte svoj kanal na bazi stvari i ključa za svoj kanal. Pripremite 4 polja i pravilno ih imenujte Temperatura, Vlažnost, Pritisak, Napon
  2. Registrirajte se na Weather.com kako biste dobili svoj api ključ

Thingspeak je potreban za učitavanje vaših podataka i praćenje trendova i vrijednosti

Vrijeme je potrebno za dobijanje podataka o prognozi.

U redu, konačno trebate stvoriti datoteku services.json sa sljedećim sadržajem

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," Sleptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}, {" service ":" BME280Controller "," name ":" BME "," enabled ": true, "interval": 900000, "i2caddr": 118, "uselegacy": true, "temp_corr":-3.0, "hum_corr": 10.0}, {"service": "WeatherClientController", "name": "WeatherForecast", "enabled": true, "interval": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = hr -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," enabled ": true," interval ": 500}, {" enabled ":" true "," interval ": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, "cfmt": "%. 2f V", "acctype": 10}, {"service": "ThingSpeakController", "name": "ThingSpeak", "enabled": true, "interval": 1200000, "value": [1, 1, 1, 1, 0, 0, 0, 0], "apiKey": "thingspea kapi "}, {" enabled ": true," interval ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," pins ": [27]}]

! Molimo zamenite

  • thingspeakapi sa vašim api ključem thingspeak
  • weatherapi s vašim api ključem za vremensku prognozu
  • geokod sa vašom lokacijom za koju želite dobiti prognozu

Zatim pripremite drugu datoteku triggers.json

[{"type": "BMEToWeatherDisplay", "source": "BME", "destination": "WeatherDisplay"}, {"type": "TimeToWeatherDisplay", "source": "Time", "destination": "WeatherDisplay "}, {" type ":" WeatherForecastToWeatherDisplay "," source ":" WeatherForecast "," destination ":" WeatherDisplay "}, {" type ":" BMEToThingSpeak "," source ":" BME "," destination ": "ThingSpeak", "t_ch": 1, "h_ch": 2, "p_ch": 3}, {"type": "ButtonToWeatherDisplay", "source": "Button", "destination": "WeatherDisplay"}, { "type": "LDRToThingSpeak", "source": "LDR", "destination": "ThingSpeak", "ch": 4}]

Obje datoteke moraju biti nadograđene do korijena esp -a.

To možete učiniti putem preglednika https://192.168.0. XX/browse, gdje je https://192.168.0. XX IP adresa vašeg uređaja

Nakon učitavanja ESP se mora ponovo pokrenuti i sve je učinjeno kako treba. Esp će prikazati odgovarajući ekran kao na gornjoj fotografiji i video zapisu

Korak 6: Podešavanje i potrošnja energije

Tuning i potrošnja energije
Tuning i potrošnja energije

Koristim svoj uređaj s vezom na solarnu ploču i da bih bio siguran da može raditi "beskonačno"

potrošnja energije je važna i nakon nekoliko eksperimenata upotrijebio sam dva velika trika

Smanjite potrošnju pozadinske LED diode TFT ekrana

Prema mjerenju, on jede 15-20 mA (puno) pa sam koristio taktiku s detektorom pokreta. Savršeno radi Detektori pokreta koji mogu prepoznati svaku detekciju do 8-10 metara i podići napon na signalnom kabelu. Ovo su otvori tranzistora i pozadinski LED diode primaju snagu. Obično detektor zadržava ovo stanje do 10 sekundi što je više nego dovoljno za pregled monitora, ali ako nastavite kretanje signal je i dalje visok i LED svijetli.

Takav pristup mi daje veliku ekonomičnost, bez dodatnih efekata, ne nailazim na problem da vidim svoj ekran kad poželim

2. Smanjite potrošnju energije pomoću ESP32

Kad je ESP spojen na WiFi, on stalno jede 7-10 mA, govorim o konstantnom vremenu, a ne pokretanju i prvom povezivanju. To može biti prihvatljivo ako ste uvijek vidjeli stvarni datum i vrijeme, pristupite svom sistemu iz Apple kućnog kompleta

I za moju solarnu energiju u zimskom periodu trebalo je odgovarati radovima bez dodatnih izvora energije, Stoga sam odlučio povremeno staviti ESP32 u stanje mirovanja (prehrana je manja od 1 mA). Meni je to u redu, na primjer ESP spava 20 minuta, zatim se probudim, zaslon za osvježavanje (stvarni podaci i prognoza) šalje podatke na govor i nazad u način mirovanja

Minusi su:

  • Ekran s vremenom prikazuje zastarjele vrijednosti vremena
  • Stanica nije dostupna iz preglednika i Apple Home Kit -a za vrijeme spavanja

Na vama je da odlučite šta je važnije, to možete jednostavno ponovo konfigurirati.

Molimo pogledajte datoteku services.json i liniju

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," Sleptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}

"enableleep": true uopće omogućuje spavanje, ako tu postavite false ili uklonite paramater (false je zadano) ESP nikada neće zaspati

"interval spavanja": 900000 ovo je milis, ili 15 min, znači svakih 15 min ESP će se probuditi i raditi potrebno osoblje

Dakle, sada svi mogu lako igrati prema potrebi

Korak 7: Podešavanje senzora

Kako bi se smanjio utjecaj unutarnjeg grijanja na temperaturni senzor BME280

Firts Napravio sam cijev oko senzora i rupa. Hovewer u mom načinu rada kada je LED normalno isključen i ESP spava nije toliko važan. U drugim slučajevima BME280 senzor bi se trebao pomaknuti nekamo kako bi se isključio utjecaj unutarnjeg grijanja. Koliko god mali uticaj pronašao, stoga postoje dva parametra za kompenzaciju

"hum_corr": 10.0

što znači da će se te vrijednosti dodati nakon mjerenja

Drugo je kalibriranje mjerenja napona baterije, {"enabled": "true", "interval": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, " cfmt ":"%. 2f V "," acctype ": 10}, "cvalmin": 0.0

"cvalmax": 7.2

su u tu svrhu, jer se napon mjeri nakon razdjelnika otpornika i uspoređuje sa 3,3 V, igrajući se sa cvalmax vrijednošću možete postići precizno podešavanje napona sa vašom vrijednošću multimetra

Korak 8: Dodavanje uređaja u Apple Home Kit

Dodavanje uređaja u Apple Home Kit
Dodavanje uređaja u Apple Home Kit

Konačno, kada vaš uređaj ispravno radi, možete ga dodati u Apple Home Kit i moći ćete vidjeti

vrijednosti senzora na Appleovom početnom ekranu.

Prvo morate ponovo pokrenuti uređaj jer čim se uređaj pokrene, neće zaspati 20 minuta je više nego dovoljno

Zatim otvorite aplikaciju Home Kit na svom iOS uređaju i odaberite ili stvorite novi Home1. Pritisnite Dodaj (+)

2. Odaberite Dodaj dodatak.

3. Pritisnite Nemam kôd ili Ne mogu skenirati (dodat će se skeniranje)

4. ako sve ide u redu, trebali biste vidjeti svoj novi esp uređaj na listi (pogledajte sliku)

5. Odaberite uređaj i potvrdite dodavanje bez službenog certifikata

6. Upišite lozinku 11111111

7. To je sve! Trebali biste vidjeti da je uređaj uspješno uparen, u protivnom ponovo pokrenite postupak uparivanja.

Na temelju ovih postavki vidjet ćete dva uređaja na Appleu

1. Senzor temp. I Hum senzor, pri dubljem prikazu vrijednosti prikazat će se na cijelom ekranu

2. Senzor svjetla:) Apple zapravo može prikazati svjetlosni ambijent, ali ne i napon, stoga se napon baterije prikazuje u luksima

Korak 9: OTA: Ažuriranja putem bežične mreže

Prije početka bilo kakvog ažuriranja bolje je ponovno pokrenuti ESP32, kao što je već spomenuto, neće zaspati prvih 20 minuta

Postoje dvije mogućnosti ažuriranja

  1. Konfiguracija pomoću https://192.168.0. XX/browse možete pristupiti sistemu datoteka na ESP -u i promijeniti datoteke konfiguracije
  2. Možete potpuno ažurirati firmver. u tu svrhu prvo morate stvoriti novu. To se može učiniti putem Arduina ili Visual Studio IDE -a. Zatim unesite preglednik https://192.168.0. XX/update, odaberite svoj firmver i pritisnite update. Sačekajte dok se proces ne završi i dobićete odgovor OK, u suprotnom ponovite korak ponovo

Preporučuje se: