Kazalo:
- 1. korak: Deli, ki so potrebni
- 2. korak: Ožičenje in sestavljanje
- 3. korak: nalaganje vdelane programske opreme v ESP32
- 4. korak: Nalaganje pripravljene vdelane programske opreme
- 5. korak: Konfiguracija
- 6. korak: Uglaševanje in poraba energije
- 7. korak: Uglaševanje senzorjev
- 8. korak: Dodajanje naprave v Apple Home Kit
- 9. korak: OTA: Posodobitve po zraku
Video: Solarna vremenska postaja ESP32: 9 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
V tej vadnici bomo zgradili projekt vremenske postaje, ki podpira WiFi.
Cilj je oblikovanje vremenske postaje s skoraj vsemi možnimi podvigi:
- Prikažite trenutne razmere, čas, temperaturo, vlažnost, tlak
- Pokaži napoved za naslednje dni
- Posodobitev v živo
- Vgrajeno spletno mesto za konfiguracijo in predstavitev podatkov
- Naložite podatke v oblak za statistiko zgodovine
- Vgrajen z Aple Home Kit ali MQTT
- Brezstopenjsko napajanje Accu z možnim polnjenjem ali priključitvijo na sončno celico
Ne morem dodati več in ne več domišljije, kaj bi moralo biti ali še biti
1. korak: Deli, ki so potrebni
- ESP32 (uporabljal sem dev modul)
- 2,8 "240x320 TFT LCD SPI ILI9341
- Plastično ohišje
- 3 x 18650 Accu
- Vremenski senzor BME280 za merjenje temperature, vlažnosti in tlaka
- USB litijev polnilni modul
- DC-DC korak UP18650
- držalo za baterije (3 kos)
- HC-SR505 Detektor gibanja
- 220 Om upor
- 2x 10 kOm uporov
- TIP120 NPN tranzistor (Darlington) lahko uporabite kateri koli drug kompatibilen
- ButtonWires, stikalo, spajkalna plošča….
2. korak: Ožičenje in sestavljanje
Prvi korak je sestavljanje postaj.
Plastično ohišje sem razdelil na dve pari, od katerih se ena uporablja za baterijo, stikalo, polnilnik USB in izhod DC-DC. V ta del sem vstavil nosilec baterije in naredil okna za stikalo in polnilec USB. Zavedajte se, da je polnilni modul USB precej vroč, zato sem uporabil aluminijasto ploščo in nanjo z lepilom Star 922 namestil polnilnik USB.
Drugi korak je sestavljanje dela krmilnikov.
Oglejte si diagram ožičenja, kako naj bo priključen
V ta namen sem uporabil ploščo za kruh z naslednjimi koraki
- Spajkalna plošča za razvijalce ESP32
- Spajkalni ščit za ohranjanje TFT zaslona
- Spajkajte druge elektronske komponente: BME280, upore, gumbe
- Spajkanje ožičenja med sestavnimi deli po diagramu
Tretji korak je priprava pritrditve deske za kruh na drugi del plastičnega ohišja. Na svoj 3D tiskalnik sem natisnil dve palici, jih z vijaki pritrdil na ploščo in naredil pravokotno rezanje zaslona.
Na telo plastičnega ohišja sem prilepil nosilce iz plastičnih palic. Zdaj, ko se lepilo posuši, kabino plošče za kruh odstranite z vijaki.
Naslednji korak je:
- Spajkanje ožičenja za vir energije
- Spajkanje ožičenja za stanje napetosti akumulatorja
- Spajkajte in montirajte detektor gibanja
Zadnji korak:
- nastavite DC-DC pretvornik z uglaševanjem izhodne napetosti 5v
- na napajanje priključite dva dela krmilnika postaje: napajalne žice in odčitavanje napetosti
Za detektor gibanja in gumb sem naredil dodatne luknje na sprednji strani.
3. korak: nalaganje vdelane programske opreme v ESP32
Za ta projekt sem uporabil univerzalno programsko opremo, ki sem jo razvil sam
Oglejte si stran github ESPHomeController, ki vsebuje popolna navodila za sestavljanje in nastavitev.
! Če niste seznanjeni s prevajanjem in Arduinom, poglejte korak Nalaganje pripravljene vdelane programske opreme
Takoj, ko prvič naložite vdelano programsko opremo, se bo ESP32 zagnal v načinu konfiguracije (način dostopne točke)
Morali bi jih konfigurirati. V ta namen odprite kateri koli seznam naprav, ki so na voljo WiFi. Poiščite HomeController in se povežite z njim. Zaprti portal bi se moral samodejno zagnati. Če ne vnesete URL -ja brskalnika: 192.168.4.1, boste videli konfiguracijski zaslon
Sledite navodilom in konfigurirajte poverilnice WiFi v svojem omrežju WiFi.
ESP se bo nato znova zagnal kot odjemalec WiFi in se povezal z vašim Wifi.
Ko pride do povezave sson firts, bo samodejno namestil datotečni sistem Spiffs in prenesel potrebne datoteke za spletni portal:
- index.html
- filebrowse.html
- js/bundle.min.js.gz
Prenos poteka iz mape
Zdaj lahko vsebino datoteke vidite prek spletnega brskalnika. za to morate zdaj naslov IP vašega ESP32
Najdete ga na enega od naslednjih načinov:
- Za ogled dnevnikov ESP32 uporabite monitor serijskih vrat
- Za skeniranje omrežnih naprav uporabite kateri koli bralnik tcp
- Pritisnite gumb na vremenski postaji in videli boste sistemske informacije
Vstavite brskanje https://192.168.0. XX/browse in videli boste seznam datotek vašega ESP
(192.168.0. XX je naslov IP vaše naprave
Za končno nastavitev morate pripraviti konfiguracijske datoteke.
4. korak: Nalaganje pripravljene vdelane programske opreme
Ta razdelek je posebej za slušne, ki ne bodo sami izdelovali vdelane programske opreme. Naložiti morate le "pripravljeno" vdelano programsko opremo
1. S te strani prenesite orodja za nalaganje bliskavice
2. Prenesite priložene (izvleček iz arhiva) datoteke HomeController.bin in bootloader_qio_80m.bin na trdi disk
3. Zaženite orodje za prenos ESP32 in vnesite vrednosti glede na posnetek zaslona
4. Pritisnite start
5. korak: Konfiguracija
Preden začnete s pripravo konfiguracije, morate:
- Ustvarite svoj kanal na podlagi stvari in ključa za vaš kanal. Pripravite 4 polja in jih pravilno poimenujte Temperatura, Vlažnost, Tlak, Napetost
- Registrirajte se na spletnem mestu Weather.com in pridobite svoj ključ api
Thingspeak so potrebni za nalaganje vaših podatkov ter spremljanje trendov in vrednot
Vreme je potrebno za pridobitev napovednih podatkov.
V redu, končno morate ustvariti datoteko services.json z naslednjo vsebino
[{"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 = sl -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," enabled ": true," interval ": 500}, {" omogočeno ":" 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]}]
! Prosimo, zamenjajte
- thingspeakapi z vašim api ključem thingspeak
- weatherapi z vašim ključem za vremenski api
- geokoda z vašo lokacijo, za katero želite pridobiti napoved
Nato pripravite drugo datoteko 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}]
Obe datoteki je treba nadgraditi do korena esp.
To lahko storite prek brskalnika https://192.168.0. XX/browse, kjer je https://192.168.0. XX naslov IP vaše naprave
Po nalaganju je treba znova zagnati ESP in vse narediti pravilno. Esp bo prikazal ustrezen zaslon, kot na zgornji fotografiji in videoposnetku
6. korak: Uglaševanje in poraba energije
Uporabljam svojo napravo s povezavo s solarno ploščo in sem prepričan, da lahko deluje "neskončno"
poraba energije je pomembna in po več poskusih sem uporabil dva glavna trika
Zmanjšajte porabo ozadja LED na zaslonu TFT
Po meritvah poje 15-20 mA (veliko), zato sem uporabil taktiko z detektorjem gibanja. Odlično deluje Detektorji gibanja, ki lahko prepoznajo vsako zaznavanje do 8-10 metrov in dvignejo napetost na signalnem kablu. To je odprtina tranzistorja in nazaj Led prejemajo moč. Običajno detektor ohranja to stanje do 10 sekund, kar je več kot dovolj za ogled monitorja, če pa nadaljujete z gibanjem, je signal še vedno visok in sveti LED.
Tak pristop mi daje veliko ekonomičnost, brez dodatnih učinkov, ne naletim na težave, da bi videl svoj zaslon, ko želim
2. Zmanjšajte porabo energije za ESP32
Ko je ESP povezan z WiFi, nenehno poje 7-10 mA, govorim o konstantnem času, ne o zagonu in prvi povezavi. To je lahko sprejemljivo, če ste vedno videli dejanski datum in uro, do svojega sistema dostopate iz domačega kompleta Apple
Tudi moja sončna energija v zimskem času se je ujemala z deli brez dodatnih virov energije, Zato sem se odločil, da občasno preklopim ESP32 v način spanja (prehranjevanje je manj kot 1 mA). To je zame v redu, na primer ESP spi 20 minut, potem pa se zbudi, osveži zaslon (dejanski podatki in napoved) pošlje podatke v govornik in se spet vrne v način spanja
Minusi so:
- Vremenski zaslon prikazuje zastarele časovne vrednosti
- Postaja med spanjem ni dostopna iz brskalnika in Apple Home Kit
Odločite se, kaj je pomembnejše, to lahko preprosto konfigurirate.
Oglejte si datoteko in vrstico services.json
[{"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 sploh omogoči spanje, če ga postavite false ali odstranite paramater (false je privzeto) ESP ne bo nikoli zaspal
"interval spanja": 900000 to je milis ali 15 minut, pomeni, da se bo vsakih 15 minut ESP zbudil in opravil potrebno osebje
Tako lahko zdaj vsakdo zlahka igra po potrebi
7. korak: Uglaševanje senzorjev
Za zmanjšanje vpliva notranjega ogrevanja na temperaturni senzor BME280
Firts sem naredil nekaj cevi okoli senzorja in lukenj. Hovewer v mojem načinu, ko je LED običajno izklopljen in ESP spi, ni tako pomemben. V drugih primerih se mora senzor BME280 nekam premakniti, da izključi vpliv notranjega ogrevanja. Kakor koli majhen vpliv sem odkril, zato obstajata dva parametra za kompenzacijo
"hum_corr": 10.0
kar pomeni, da bodo te vrednosti dodane po meritvi
Drugi je umerjanje merjenja napetosti akumulatorja, {"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
so za te namene, ker se napetost meri po delilnikih uporov in v primerjavi s 3,3 V, če igrate z vrednostjo cvalmax, lahko z vrednostjo multimetra dosežete natančno nastavitev napetosti
8. korak: Dodajanje naprave v Apple Home Kit
Ko naprava pravilno deluje, jo lahko dodate v Apple Home Kit in videli boste
senzorjev na začetnem zaslonu Apple.
Najprej morate znova zagnati napravo, saj takoj po zagonu naprava ne bo zaspala 20 minut je več kot dovolj
Nato odprite aplikacijo Home Kit App v napravi iOS in izberite ali ustvarite novega Home1. Pritisnite Dodaj (+)
2. Izberite Dodaj dodatek.
3. Pritisnite Nimam kode ali Ne morem skenirati (dodano bo nadaljevanje skeniranja)
4. če je vse v redu, bi morali svojo novo napravo esp videti na seznamu (glej sliko)
5. Izberite napravo in potrdite dodajanje brez uradnega potrdila
6. Vnesite geslo 11111111
7. To Vse! Ta naprava bi morala biti uspešno seznanjena, sicer pa znova začnite postopek seznanjanja.
Na podlagi te nastavitve boste v Appleu videli dve napravi
1. Senzor temp in senzor Hum, ki segajo globoko, bodo prikazale vrednosti na celotnem zaslonu
2. Senzor svetlobe:) Pravzaprav Apple lahko prikaže svetlobni ambient, ne pa tudi napetosti, zato se napetost baterije prikazuje v luksuzu
9. korak: OTA: Posodobitve po zraku
Pred vsakim posodabljanjem je bolje, da znova zaženete ESP32, kot je bilo že omenjeno, prvih 20 minut ne bo zaspal
Obstajata dve možnosti za posodobitev
- Konfiguracija s https://192.168.0. XX/browse Dostop do datotečnega sistema v sistemu ESP in spreminjanje konfiguracijskih datotek
- Popolnoma lahko posodobite vdelano programsko opremo. za te namene morate najprej ustvariti novega. To lahko storite prek Arduino ali Visual Studio IDE. Nato vnesite brskalnik https://192.168.0. XX/update, izberite vdelano programsko opremo in pritisnite update. Počakajte, da se postopek zaključi in odgovor bo v redu, sicer ponovite korak znova
Priporočena:
Profesionalna vremenska postaja z uporabo ESP8266 in ESP32 DIY: 9 korakov (s slikami)
Profesionalna vremenska postaja z uporabo ESP8266 in ESP32 DIY: LineaMeteoStazione je popolna vremenska postaja, ki jo je mogoče povezati s profesionalnimi senzorji podjetja Sensirion, pa tudi z nekaterimi komponentami instrumenta Davis (merilnik dežja, anemometer) Projekt je namenjen kot DIY vremenska postaja
Vremenska postaja NaTaLia: Vremenska postaja Arduino s sončno energijo Na pravi poti: 8 korakov (s slikami)
Vremenska postaja NaTaLia: Vremenska postaja na sončni pogon Arduino je ravnala pravilno: 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 razvila v sistem, ki lahko resnično preživi dolgo časa obdobja iz sončne energije. Če sledite
Vremenska postaja in senzorska postaja DIY: 7 korakov (s slikami)
Vremenska postaja in senzorska postaja DIY: V tem projektu vam bom pokazal, kako skupaj s senzorsko postajo WiFi ustvariti vremensko postajo. Senzorska postaja meri lokalne podatke o temperaturi in vlažnosti ter jih prek WiFi pošlje vremenski postaji. Vremenska postaja nato prikaže t
Vremenska postaja ESP32 Weathercloud: 16 korakov (s slikami)
Vremenska postaja ESP32 Weathercloud: Lani sem izdal svojo največjo dosedanjo navodilo z imenom Arduino Weathercloud Weather Station. Rekel bi, da je bil zelo priljubljen. Predstavljeno je bilo na domači strani Instructables, spletnem dnevniku Arduino, muzeju Wiznet, Instructables Instagram, Arduino Instagr
Vremenska postaja ESP8266/ESP32 s TFT LCD (i): 8 korakov
Vremenska postaja ESP8266/ESP32 s TFT LCD (i): Pozdravljeni! V tem kratkem navodilu bi rad predstavil svoj drugi projekt Esp8266 WS. Ker sem objavil svoj prvi projekt ESP, sem si želel narediti drugega. Tako sem imel nekaj prostega časa za predelavo stare izvorne kode, ki je ustrezala mojim potrebam. Torej, če vas ne moti