Sisukord:

ESP32 ilmajaam päikeseenergial: 9 sammu
ESP32 ilmajaam päikeseenergial: 9 sammu

Video: ESP32 ilmajaam päikeseenergial: 9 sammu

Video: ESP32 ilmajaam päikeseenergial: 9 sammu
Video: ultimate weather station using Arduino IoT cloud and esp32 #iot #shorts #arduino @Arduino 2024, Juuni
Anonim
Image
Image
ESP32 ilmajaam päikeseenergial
ESP32 ilmajaam päikeseenergial
ESP32 ilmajaam päikeseenergial
ESP32 ilmajaam päikeseenergial

Selles õpetuses ehitame WiFi -toega ilmajaama projekti.

Eesmärk on kujundada ilmajaam peaaegu kõigi võimalike omadustega:

  • Kuva praegused tingimused, aeg, temperatuur, niiskus, rõhk
  • Kuva järgmiste päevade prognoos
  • Värskendus eetris
  • Sisseehitatud veebisait konfigureerimiseks ja andmete esitamiseks
  • Ajaloostatistika jaoks laadige andmed pilve üles
  • Integreeritud Aple Home Kit'i või MQTT -ga
  • Sisseehitatud Accu töötab võimaliku laadimise või päikesepaneeliga ühendamisega

Ma ei saa lisada rohkem ja mitte rohkem kujutlusvõimet, mis veel peab või võib olla

Samm: vajalikud osad

Nõutavad osad
Nõutavad osad
Nõutavad osad
Nõutavad osad
Nõutavad osad
Nõutavad osad
  • ESP32 (olen kasutanud arendusmoodulit)
  • 2,8 "240x320 TFT LCD SPI ILI9341
  • Plastikust ümbris
  • 3 x 18650 Accu
  • Ilmaandur BME280 temperatuuri, niiskuse ja rõhu mõõtmiseks
  • USB liitium laadija moodul
  • DC-DC samm UP18650
  • patareihoidja (3 tk)
  • HC-SR505 Liikumisandur
  • 220 Om takisti
  • 2x 10 kOm takistid
  • TIP120 NPN transistorit (Darlington) saab kasutada mis tahes muu ühilduvaga
  • Nupud Juhtmed, lüliti, jootmisplaat….

Samm: juhtmestik ja kokkupanek

Juhtmestik ja kokkupanek
Juhtmestik ja kokkupanek
Juhtmestik ja kokkupanek
Juhtmestik ja kokkupanek
Juhtmestik ja kokkupanek
Juhtmestik ja kokkupanek
Juhtmestik ja kokkupanek
Juhtmestik ja kokkupanek

Esimene samm on jaama jõudude kokkupanek.

Olen jaganud plastkorpuse kahele parsile, millest ühte kasutatakse aku, lüliti, USB-laadija ja alalisvoolu alalisvoolu jaoks. Sellesse ossa panin akuhoidiku ja tegin aknad lülitile ja USB-laadijale. Pidage meeles, et USB -laadija moodul on üsna aeglane, seetõttu olen kasutanud allumiiniumplaati ja pannud sellele USB -laadija, kasutades Star 922 liimi.

Teine samm on kontrollerite kokkupanek.

Vaadake ühendusskeemi, kuidas seda ühendada

Olen kasutanud sel eesmärgil leivaplaati järgmiste sammudega

  • Joote ESP32 arendusplaat
  • Jootekilp TFT -ekraani hoidmiseks
  • Muude elektroonikakomponentide jootmine: BME280, takistid, nupud
  • Jootejuhtmed komponentide vahel vastavalt skeemile

Kolmas samm on valmistada leivaplaat plastkorpuse teisele osale. Olen printinud oma 3D -printerile kaks riba, kinnitanud need kruvidega aretusplaadile ja teinud ekraanile ristkülikukujulise lõike.

Liimisin plastkangide toed plastkorpuse korpuse külge. Nüüd, kui liim on kuiv, tuleb leivaplaadi kabiin kruvidega lahti võtta.

Järgmine samm on:

  • Jootetraat toiteallika jaoks
  • Jootetraat aku pinge oleku jaoks
  • Jootma ja paigaldama liikumisandurit

Viimane samm:

  • DC-DC muunduri seadistamine väljundpinge 5v abil
  • ühendage jaama kontrolleri kaks osa toitega: toitejuhtmed ja pinge näit

Liikumisanduri ja nupu jaoks olen teinud näo poolele täiendavad augud.

Samm: püsivara üleslaadimine ESP32 -sse

Selle projekti jaoks olen kasutanud universaalset tarkvara, mille olen ise välja töötanud

Palun vaadake githubi lehte ESPHomeController. See sisaldab täielikke kompileerimise ja seadistamise juhiseid.

! Kui te pole kompileerimise ja Arduinoga tuttav, vaadake samm Valmis püsivara üleslaadimine

Niipea, kui laadite püsivara esimest korda üles, käivitub ESP32 konfiguratsioonirežiimis (pääsupunkti režiim)

Peaksite need konfigureerima. Selleks avage mis tahes saadaolevate WiFi -seadmete loendis. Leidke HomeController ja looge sellega ühendus. Suletud portaal peaks automaatselt käivituma. Kui te seda ei tee, sisestage oma brauseri URL: 192.168.4.1 ja näete konfiguratsiooniekraani

Järgige juhiseid ja konfigureerige WiFi volitused oma WiFi võrku.

ESP taaskäivitub pärast seda WiFi -kliendina ja loob ühenduse teie Wifi -ga.

Kui sson firts ühendus juhtub, ühendab see automaatselt Spiffsi failisüsteemi ja laadib veebiportaali jaoks vajalikud failid alla:

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

Allalaadimine toimub kaustast

Nüüd näete faili sisu veebibrauseri kaudu. selleks peaksite nüüd oma ESP32 IP -aadressi sisestama

Selle leiate ühel järgmistest viisidest.

  • Sarjapordi monitori kasutamine ESP32 logide vaatamiseks
  • Mis tahes tcp -skanneri kasutamine võrguseadmete skannimiseks
  • Vajutage ilmajaama nuppu ja näete süsteemiteavet

Sirvige veebilehte https://192.168.0. XX/browse ja näete oma ESP failide loendit

(192.168.0. XX on teie seadme IP -aadress

Lõplikuks häälestamiseks peate ette valmistama konfiguratsioonifailid.

Samm: valmis püsivara üleslaadimine

Valmis püsivara üleslaadimine
Valmis püsivara üleslaadimine

See jaotis on mõeldud spetsiaalselt kuulajatele, kes ei kavatse püsivara ise toota. Peate lihtsalt üles laadima "valmis" püsivara

1. Laadige sellelt lehelt üleslaadimistööriistad

2. Laadige kõvakettale alla lisatud (väljavõte arhiividest) failid HomeController.bin ja bootloader_qio_80m.bin

3. Käivitage ESP32 allalaadimistööriist ja sisestage väärtused vastavalt ekraanipildile

4. Vajutage start

Samm: seadistamine

Enne konfiguratsiooni ettevalmistamise alustamist vajate:

  1. Looge oma kanal asjaomase jutu ja võtme jaoks. Valmistage ette 4 välja ja nimetage need õigesti temperatuur, niiskus, rõhk, pinge
  2. Registreeruge saidil Weather.com, et hankida oma api võti

Asjade rääkimine on vajalik teie andmete üleslaadimiseks ning suundumuste ja väärtuste jälgimiseks

Prognoosiandmete saamiseks on ilm vajalik.

Ok, lõpuks peate looma järgmise sisuga faili services.json

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," sleepptype ": 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", "lubatud": tõsi, "intervall": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = et -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", "lubatud": true, "interval": 1200000, "value": [1, 1, 1, 1, 0, 0, 0, 0], "apiKey": "thingspea kapi "}, {" lubatud ": tõsi," intervall ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," pins ": [27]}]

Palun asendage!

  • thingspeakapi oma thingspeak api võtmega
  • weatherapi oma ilmastiku api võtmega
  • geokood oma asukohaga, mille kohta soovite prognoosi saada

Valmistage ette teine fail 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}]

Mõlemad failid tuleb esp -i juure alla laadida.

Seda saate teha brauseri kaudu https://192.168.0. XX/browse, kus https://192.168.0. XX on teie seadme IP -aadress

Pärast üleslaadimist tuleb ESP uuesti käivitada ja kõik tehti õigesti. Esp näitab õiget ekraani nagu ülaltoodud fotol ja videol

6. samm: Tunning ja energiatarve

Tunning ja energiatarve
Tunning ja energiatarve

Kasutan oma seadet päikesepaneeliga ühenduses ja veendun, et see võib töötada „lõpmatult”

energiatarbimine on oluline ja pärast mitmeid katseid olen kasutanud kahte peamist nippi

Vähendage TFT -ekraani taustvalgusdioodi tarbimist

Mõõtmiste järgi sööb see 15-20 mA (palju), seetõttu olen kasutanud liikumisanduriga taktikat. See töötab suurepäraselt Liikumisandurid, mis suudavad tuvastada mis tahes detektsiooni kuni 8-10 meetrit ja tõsta signaalikaabli pinget. See on avad, mida transistor ja ümberringi LED saavad. Tavaliselt hoiab andur seda olekut kuni 10 sekundit, mis on rohkem kui monitori nägemiseks piisav, kuid kui jätkate liigutusi, on signaal endiselt kõrge ja LED süttib.

Selline lähenemine annab mulle suure majanduse, ilma täiendavate efektideta, ma ei kohtu ühegi probleemiga, et oma ekraani soovitud ajal näha

2. Vähendage energiatarvet ESP32 võrra

Kui ESP on WiFi-ga ühendatud, sööb see pidevalt 7-10 mA, ma räägin pidevast ajast, mitte käivitamisest ja esimesest ühendusest. See on vastuvõetav, kui olete alati näinud tegelikku kuupäeva ja kellaaega ning pääsete oma süsteemile juurde Apple'i kodukomplekti kaudu

Ka minu päikeseenergia jaoks talvel pidi see sobima töödega ilma täiendavate toiteallikateta, Seetõttu otsustasin ESP32 perioodiliselt unerežiimi lülitada (söömine on alla 1 mA). See on minu jaoks ok, näiteks ESP magab 20 minutit, siis ärkamine, ekraani värskendamine (tegelikud andmed ja prognoos) saadab andmed asjakõnele ja taas unerežiimi

Miinused on:

  • Ilmateade kuvab aegunud ajaväärtusi
  • Jaam ei ole unerežiimi ajal brauseri ja Apple Home Kiti kaudu juurdepääsetav

Teie otsustate, mis on olulisem, saate selle lihtsalt ümber konfigureerida.

Palun vaadake services.json faili ja rida

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

"enableleep": tõene võimaldab üldse magada, kui see pannakse vale või eemaldatakse parameeter (vale on vaikimisi) ESP ei maga kunagi

"uneintervall": 900000, see on millis ehk 15 minutit, tähendab, et iga 15 minuti järel ärkab ESP üles ja teeb vajalikud töötajad

Niisiis, nüüd saavad kõik hõlpsalt mängida vastavalt vajadusele

7. samm: andurite häälestamine

Sisemise kuumutamise mõju minimeerimiseks temperatuuriandurile BME280

Firts Tegin toru anduri ja aukude ümber. Hovewer minu režiimis, kui LED on tavaliselt välja lülitatud ja ESP magab, pole nii oluline. Muudel juhtudel peaks BME280 andur kuhugi liikuma, et välistada sisemise kuumutamise mõju. Kui vähe mõju ma leidsin, on selle kompenseerimiseks kaks parameetrit

"hum_corr": 10,0

mis tähendab, et need väärtused lisatakse pärast mõõtmist

Teine on aku pinge mõõtmise kalibreerimine, {"lubatud": "tõene", "intervall": 600000, "pin": 36, "teenus": "LDRkontroller", "nimi": "LDR", "cvalmin": 0,0, "cvalmax": 7,2, " cfmt ":"%. 2f V "," acctype ": 10}, "cvalmin": 0,0

"cvalmax": 7.2

on selleks otstarbeks, kuna pinget mõõdetakse pärast takistite jagajaid ja võrreldakse 3,3 V -ga, mängides cvalmax väärtusega, saate oma multimeetri väärtusega täpse pinge häälestamise

Samm: seadme lisamine Apple'i kodukomplekti

Seadme lisamine Apple'i kodukomplekti
Seadme lisamine Apple'i kodukomplekti

Lõpuks, kui teie seade töötab korralikult, saab selle Apple Home Kit'i lisada ja näete

andurite väärtused Apple'i avaekraanil.

Esmalt peate seadme taaskäivitama, sest kohe, kui seade käivitati, ei lähe see 20 minutiks magama, on rohkem kui küll

Avage oma iOS -i seadmes rakendus Home Kit ja valige või looge uus Home1. Vajutage Lisa (+)

2. Valige Lisa tarvik.

3. Vajutage nuppu Mul pole koodi või ei saa skannida (skaneerimine lisatakse)

4. kui kõik läheb hästi, peaksite oma uut esp -seadet loendis nägema (vt pilti)

5. Valige seade ja kinnitage lisamine ilma ametliku sertifikaadita

6. Sisestage parool 11111111

7. See kõik! Peaksite nägema, et seade on edukalt sidunud, vastasel juhul alustage sidumisprotsessi uuesti.

Selle sätte põhjal näete Apple'is kahte seadet

1. Temp sensor & Hum sensor, sügavale minnes kuvatakse väärtused täisekraanil

2. Valgusandur:) Tegelikult suudab Apple näidata kerget õhkkonda, kuid mitte pinget, seega näitab aku pinget luks

9. samm: OTA: üle õhu värskendused

Enne värskendamise alustamist on parem ESP32 taaskäivitada, nagu varem mainitud, ei lähe see esimese 20 minuti jooksul magama

Värskendamiseks on kaks võimalust

  1. Seadistamine https://192.168.0. XX/browse abil pääsete oma failisüsteemile juurde ESP -s ja saate muuta konfiguratsioonifaile
  2. Saate püsivara täielikult värskendada. selleks peate esmalt looma uue. Seda saab teha Arduino või Visual Studio IDE kaudu. Seejärel tippige brauserisse https://192.168.0. XX/update, valige oma püsivara ja vajutage update. Oodake, kuni protsess on lõpule jõudnud ja saate vastuse OK, vastasel korral korrake sammu uuesti

Soovitan: