Kazalo:

Solarna vremenska postaja ESP32: 9 korakov
Solarna vremenska postaja ESP32: 9 korakov

Video: Solarna vremenska postaja ESP32: 9 korakov

Video: Solarna vremenska postaja ESP32: 9 korakov
Video: Arduino uno - wireless weather station - solar 2024, Junij
Anonim
Image
Image
Vremenska postaja ESP32 na sončno energijo
Vremenska postaja ESP32 na sončno energijo
Vremenska postaja ESP32 na sončno energijo
Vremenska postaja ESP32 na sončno energijo

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

Deli, ki so potrebni
Deli, ki so potrebni
Deli, ki so potrebni
Deli, ki so potrebni
Deli, ki so potrebni
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

Ožičenje in montaža
Ožičenje in montaža
Ožičenje in montaža
Ožičenje in montaža
Ožičenje in montaža
Ožičenje in montaža
Ožičenje in montaža
Ožičenje in montaža

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

Nalaganje pripravljene vdelane programske opreme
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:

  1. Ustvarite svoj kanal na podlagi stvari in ključa za vaš kanal. Pripravite 4 polja in jih pravilno poimenujte Temperatura, Vlažnost, Tlak, Napetost
  2. 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

Uglaševanje in poraba energije
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

Dodajanje naprave v Apple Home Kit
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

  1. Konfiguracija s https://192.168.0. XX/browse Dostop do datotečnega sistema v sistemu ESP in spreminjanje konfiguracijskih datotek
  2. 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: