Tartalomjegyzék:

ESP32 időjárás állomás napelemmel: 9 lépés
ESP32 időjárás állomás napelemmel: 9 lépés

Videó: ESP32 időjárás állomás napelemmel: 9 lépés

Videó: ESP32 időjárás állomás napelemmel: 9 lépés
Videó: Internet weather station. ESP32-2432s024 2024, Június
Anonim
Image
Image
ESP32 időjárás állomás napelemmel
ESP32 időjárás állomás napelemmel
ESP32 időjárás állomás napelemmel
ESP32 időjárás állomás napelemmel

Ebben az oktatóanyagban WiFi -kompatibilis időjárás -állomás projektet fogunk építeni.

A cél az időjárás -állomás kialakítása szinte minden lehetséges jellemzővel:

  • Jelenítse meg az aktuális körülményeket, időt, hőmérsékletet, páratartalmat, nyomást
  • Mutassa az előrejelzést a következő napokra
  • Frissítés az adásban
  • Beépített weboldal a konfigurációhoz és az adatok megjelenítéséhez
  • Töltsön fel adatokat a felhőbe az előzménystatisztikákhoz
  • Integrált Aple Home Kit vagy MQTT
  • A beépített Accu tápellátás lehetséges feltöltéssel vagy napelemhez való csatlakoztatással

Nem tudok hozzátenni többet és nem több képzelőerőt, hogy mi más kell vagy lehet

1. lépés: Szükséges alkatrészek

Szükséges alkatrészek
Szükséges alkatrészek
Szükséges alkatrészek
Szükséges alkatrészek
Szükséges alkatrészek
Szükséges alkatrészek
  • ESP32 (dev modult használtam)
  • 2,8 "240x320 TFT LCD SPI ILI9341
  • Műanyag tok
  • 3 x 18650 Accu
  • BME280 időjárás -érzékelő hőmérséklet, páratartalom és nyomás mérésére
  • USB lítium töltő modul
  • DC-DC lépés UP18650
  • elemtartó (3 db)
  • HC-SR505 Mozgásérzékelő
  • 220 Om ellenállás
  • 2x 10 kOm ellenállás
  • A TIP120 NPN tranzisztor (Darlington) bármilyen más kompatibilis használható
  • Gomb vezetékek, kapcsoló, forrasztótábla….

2. lépés: Kábelezés és összeszerelés

Kábelezés és összeszerelés
Kábelezés és összeszerelés
Kábelezés és összeszerelés
Kábelezés és összeszerelés
Kábelezés és összeszerelés
Kábelezés és összeszerelés
Kábelezés és összeszerelés
Kábelezés és összeszerelés

Az első lépés az állomás teljesítményének összeállítása.

Két műanyag házat osztottam fel két elemre, az egyiket akkumulátorra, kapcsolóra, USB töltőre és DC-DC lépcsőre. Ebbe a részbe elemtartót tettem, és ablakokat készítettem a kapcsolóhoz és az USB töltőhöz. Ügyeljen arra, hogy az usb töltőmodul eléggé véget ér, ezért alluminium lemezt használtam, és Star 922 ragasztóval tettem rá az USB töltőt.

A második lépés a vezérlőelemek összeszerelése.

Tekintse meg a kapcsolási rajzot, hogyan kell csatlakoztatni

Erre a célra a kenyértáblát használtam a következő lépésekkel

  • Forrasztás ESP32 fejlesztőtábla
  • Forrasztópajzs a TFT kijelző megtartásához
  • Forrasztás más elektronikus alkatrészek: BME280, ellenállások, gombok
  • Forrasztási huzalozás az alkatrészek között az ábra szerint

A harmadik lépés a kenyértábla rögzítésének előkészítése a műanyag tok második részére. Két sávot nyomtam a 3D nyomtatómra, csavarokkal rögzítettem őket a tenyésztőtáblára, és négyszögletes vágást végeztem a kijelzőhöz.

A műanyag tok testéhez ragasztottam műanyag rudakat. Most, amikor a ragasztó megszáradt, a kenyeretábla fülkéjét csavarokkal kell leszerelni.

A következő lépés:

  • Forrasztó huzalozás az áramforráshoz
  • Forrasztó huzalozás az akkumulátor feszültségének állapotához
  • Forrasztás és rögzítés mozgásérzékelő

Utolsó lépés:

  • DC-DC átalakító beállítása 5 V kimeneti feszültség tuningolásával
  • csatlakoztassa az állomásvezérlő két részét az áramellátáshoz: tápkábeleket és feszültségleolvasást

A mozgásérzékelőhöz és a gombhoz további lyukakat készítettem az előlapon.

3. lépés: Firmware feltöltése az ESP32 -re

Ehhez a projekthez univerzális szoftvert használtam, amelyet magam fejlesztettem

Kérjük, nézze meg a github ESPHomeController oldalát. Ez teljes útmutatást tartalmaz a fordításhoz és a beállításhoz.

! Ha nem ismeri a fordítást és az Arduino -t, nézze meg a Kész firmware feltöltése lépést

Amint először tölti fel a firmware -t, az ESP32 konfigurációs módban indul (Access Point mód)

Be kell állítania őket. Ebből a célból nyissa meg a rendelkezésre álló WiFi bármely eszközlistáját. Keresse meg a HomeControllert, és csatlakozzon hozzá. A rögzített portálnak automatikusan el kell indulnia. Ha nem, írja be a böngésző URL -címét: 192.168.4.1, és megjelenik a konfigurációs képernyő

Kövesse az utasításokat, és konfigurálja a WiFi hitelesítő adatokat a WiFi hálózathoz.

Az ESP ezután WiFi kliensként újraindul, és csatlakozik a Wifi -hez.

Ahogy az sson firts kapcsolat létrejön, automatikusan felcsatolja a Spiffs fájlrendszert, és letölti a szükséges fájlokat a webportálhoz:

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

A letöltés a https://github.com/Yurik72/ESPHomeController/tree/… mappából történik

Most a webböngészőn keresztül láthatja a fájlok tartalmát. ehhez most meg kell adnia az ESP32 címét

Az alábbi módok egyikével találhatja meg:

  • Soros portfigyelő használata az ESP32 naplók megtekintéséhez
  • Bármilyen tcp szkenner használata a hálózati eszközök vizsgálatához
  • Nyomjon meg egy gombot az időjárás állomáson, és látni fogja a rendszerinformációkat

Tegye a böngészőbe a https://192.168.0. XX/browse böngészőt, és megjelenik az ESP fájllistája

(192.168.0. XX az eszköz IP -címe

A végső hangoláshoz elő kell készítenie a konfigurációs fájlokat.

4. lépés: Kész firmware feltöltése

Kész Firmware feltöltése
Kész Firmware feltöltése

Ez a rész kifejezetten azoknak a hallóknak szól, akik nem fognak firmware -t készíteni egyedül. Csak fel kell töltenie a "kész" firmware -t

1. Töltse le a flash feltöltési eszközöket erről az oldalról

2. Töltse le a csatolt (kivonat az archívumból) HomeController.bin és bootloader_qio_80m.bin fájlokat a merevlemezére

3. Indítsa el az ESP32 letöltő eszközt, és írja be az értékeket a képernyőkép szerint

4. Nyomja meg a start gombot

5. lépés: Konfiguráció

A konfiguráció előkészítésének megkezdése előtt szüksége van:

  1. Hozd létre csatornádat a csatornádhoz tartozó dolgokról és kulcsokról. Készítsen elő négy mezőt, és nevezze el őket megfelelően: hőmérséklet, páratartalom, nyomás, feszültség
  2. Regisztráljon a Weather.com webhelyen, hogy megszerezze az api kulcsát

A Thingspeak szükséges az adatok feltöltéséhez, valamint a trendek és értékek nyomon követéséhez

Az időjárás szükséges az előrejelzési adatok megszerzéséhez.

Ok, végül létre kell hoznia a services.json fájlt a következő tartalommal

[{"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", "enabled": true, "interval": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = hu -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]}]

Kérjük, cserélje ki

  • thingspeakapi a thingspeak api kulccsal
  • weatherapi az időjárási api kulccsal
  • geokódot a tartózkodási helyével kapcsolatban, amelyre előrejelzést szeretne kapni

Készítse elő a triggers.json második fájlt

[{"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}]

Mindkét fájlt fel kell tölteni az esp gyökerébe.

Ezt megteheti a https://192.168.0. XX/browse böngészőn keresztül, ahol a https://192.168.0. XX az eszköz IP -címe

A feltöltés után az ESP -t újra kell indítani, és minden rendben volt. Az Esp a megfelelő képernyőt jeleníti meg, mint a fenti fotón és videón

6. lépés: Tunning és energiafogyasztás

Tunning és energiafogyasztás
Tunning és energiafogyasztás

A készüléket a napelemhez csatlakoztatva használom, és biztos vagyok benne, hogy "végtelenül" működik

Az energiafogyasztás fontos, és több kísérlet után két fő trükköt használtam

Csökkentse a TFT képernyő háttérvilágításának fogyasztását

A mérések szerint 15-20 mA-t fogyaszt (sok), ezért taktikát használtam a mozgásérzékelővel. Tökéletesen működik Mozgásérzékelők, amelyek képesek felismerni akár 8-10 méteres észlelést, és növelni a feszültséget a jelkáberen. Ez egy tranzisztor és egy backround Led nyílás. Általában az érzékelő ezt az állapotot 10 másodpercig tartja, ami több, mint elegendő a monitor látásához, de ha folytatja a mozgást, a jel továbbra is magas, és a LED világít.

Ez a megközelítés nagy gazdaságot eredményez számomra, további hatások nélkül, nem találkozom semmilyen problémával, hogy amikor akarom, lássam a képernyőt

2. Csökkentse az energiafogyasztást az ESP32 segítségével

Amikor az ESP csatlakozik a WiFi-hez, folyamatosan 7-10 mA-t fogyaszt, állandó időről beszélek, nem indításról és első csatlakozásról. Ez elfogadható, ha mindig látja a tényleges dátumot és időt, és az Apple otthoni készletéből fér hozzá a rendszerhez

A téli napenergiám számára is a kiegészítő áramforrások nélküli munkákhoz kellett illeszkednie, Ezért úgy döntöttem, hogy rendszeresen bekapcsolom az ESP32 -t alvó üzemmódba (az evés kevesebb, mint 1 mA). Ez nekem rendben van, például az ESP 20 percet alszik, majd felébred, a képernyő frissítése (tényleges adatok és előrejelzés) adatokat küld a beszélőnek, és ismét alvó módba

A mínuszok:

  • Az Időjárás képernyő elavult időértékeket jelenít meg
  • Az állomás nem érhető el a böngészőből és az Apple Home Kitből alvás közben

Ön dönti el, hogy mi a fontosabb, ezt egyszerűen átkonfigurálhatja.

Kérjük, nézze meg a services.json fájlt és sort

[{"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": a true egyáltalán engedélyezi az alvást, ha hamis értéket állít be, vagy eltávolítja a paramétert (hamis az alapértelmezett) Az ESP soha nem fog aludni

"alvóintervallum": 900000 ez ezredmillió vagy 15 perc, ami azt jelenti, hogy minden 15 percben az ESP felébred, és szükséges személyzetet végez

Tehát most mindenki könnyedén játszhat a szükségesség szerint

7. lépés: Az érzékelők hangolása

A belső fűtés BME280 hőmérséklet -érzékelőre gyakorolt hatásának minimalizálása érdekében

Firts Csináltam egy csövet az érzékelő és a lyukak körül. Hovewer módomban, amikor a LED normál esetben ki van kapcsolva, és az ESP alszik, nem olyan fontos. Más esetekben a BME280 érzékelőnek el kell mozdulnia valahová, hogy kizárja a belső fűtés hatását. Bármilyen csekély befolyást is találtam, ezért két paramétert kell kompenzálni

"hum_corr": 10.0

ami azt jelenti, hogy ezeket az értékeket hozzáadjuk a mérés után

A második az akkumulátor feszültségmérésének kalibrálása, {"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

erre a célra szolgálnak, mivel a feszültséget az ellenállások elválasztói után mérik, és összehasonlítják a 3,3 V -tal, és a cvalmax értékkel játszva elérheti a pontos feszültséghangolást a multiméteres értékével

8. lépés: Eszköz hozzáadása az Apple Home Kit -hez

Eszköz hozzáadása az Apple Home Kit -hez
Eszköz hozzáadása az Apple Home Kit -hez

Végül, amikor eszköze megfelelően működik, hozzáadható az Apple Home Kit csomaghoz, és látni fogja

érzékelők értékeit az Apple kezdőképernyőjén.

Először újra kell indítania az eszközt, mivel a készülék elindulása után nem fog aludni 20 perc több, mint elég

Ezután nyissa meg a Home Kit alkalmazást iOS -eszközén, és válassza ki, vagy hozzon létre új Home1 -et. Nyomja meg a Hozzáadás gombot (+)

2. Válassza a Kiegészítő hozzáadása lehetőséget.

3. Nyomja meg a Nincs kódom vagy nem tudok szkennel gombot (a szkennelés további részleteit hozzáadjuk)

4. ha minden jól megy, látnia kell az új esp -eszközt egy listában (lásd a képet)

5. Válassza ki az eszközt, és erősítse meg a hozzáadást hivatalos tanúsítvány nélkül

6. Írja be a jelszót 11111111

7. Ez minden! Látnia kell az eszköz sikeres párosítását, különben indítsa újra a párosítási folyamatot.

A beállítás alapján két eszközt fog látni az Apple -en

1. Hőmérséklet érzékelő és Hum érzékelő, mélyen haladva megjeleníti az értékeket a teljes képernyőn

2. Fényérzékelő:) Valójában az Apple képes megjeleníteni a könnyű környezetet, de nem a feszültséget, ezért az akkumulátor feszültsége luxban jelenik meg

9. lépés: OTA: Air over Air frissítések

A frissítés megkezdése előtt jobb újraindítani az ESP32 -t, amint azt korábban említettük, nem fog aludni az első 20 percben

Két lehetőség van a frissítésre

  1. Konfiguráció a https://192.168.0. XX/browse segítségével elérheti fájlrendszerét az ESP -n, és módosíthatja a konfigurációs fájlokat
  2. Teljesen frissítheti a firmware -t. ehhez először újat kell létrehoznia. Ezt megteheti az Arduino vagy a Visual Studio IDE segítségével. Ezután írja be a böngészőbe a https://192.168.0. XX/update fájlt, válassza ki a firmware -t, és nyomja meg a frissítés gombot. Várjon, amíg a folyamat befejeződik, és a válasz rendben lesz, ellenkező esetben ismételje meg a lépést

Ajánlott: