Innehållsförteckning:

ESP32 Weather Station Solar Powered: 9 steg
ESP32 Weather Station Solar Powered: 9 steg

Video: ESP32 Weather Station Solar Powered: 9 steg

Video: ESP32 Weather Station Solar Powered: 9 steg
Video: DIY Solar Powered WiFi Weather Station V3.0 || Monitoring Wind and Rainfall 2024, Juni
Anonim
Image
Image
ESP32 Väderstation Solar Powered
ESP32 Väderstation Solar Powered
ESP32 Väderstation Solar Powered
ESP32 Väderstation Solar Powered

I denna handledning ska vi bygga ett WiFi -aktiverat väderstationprojekt.

Målet är att designa väderstation med nästan alla möjliga fästen:

  • Visa aktuella förhållanden, tid, temperatur, fuktighet, tryck
  • Visa prognos för de kommande dagarna
  • Uppdatering i luften
  • Inbyggd webbplats för konfiguration och datarepresentation
  • Ladda upp data till molnet för historikstatistik
  • Integrerad med Aple Home Kit eller MQTT
  • Indepeded Accu drivs med möjlig laddning eller anslut till solpanel

Jag kan inte lägga till mer och inte mer fantasi vad annat måste eller kan vara

Steg 1: Delar som krävs

Delar som krävs
Delar som krävs
Delar som krävs
Delar som krävs
Delar som krävs
Delar som krävs
  • ESP32 (jag har använt dev -modul)
  • 2,8 "240x320 TFT LCD SPI ILI9341
  • Plastfodral
  • 3 x 18650 Accu
  • Vädergivare BME280 för att mäta temperatur, luftfuktighet och tryck
  • USB litium laddare modul
  • DC-DC steg UP18650
  • batterihållare (3 st)
  • HC-SR505 Rörelsedetektor
  • 220 Om motstånd
  • 2x 10 kOm motstånd
  • TIP120 NPN -transistor (Darlington) kan användas vilken annan kompatibel som helst
  • ButtonWires, switch, lödkort….

Steg 2: Kabeldragning och montering

Kabeldragning och montering
Kabeldragning och montering
Kabeldragning och montering
Kabeldragning och montering
Kabeldragning och montering
Kabeldragning och montering
Kabeldragning och montering
Kabeldragning och montering

Första steget är sammansättning av stationsbefogenheter.

Jag har delat plastfodralet på två pars, en av dem används för batteri, switch, USB-laddare och DC-DC steg ut I denna del sätter jag batterihållare och gör fönster för switch och usb-laddare. Var medveten om usb -laddarmodulen ganska heting därför har jag använt alluminiumplatta och lagt USB -laddare på denna med Star 922 -lim.

Det andra steget är att montera styrenhetens del.

Se kopplingsschema hur den ska anslutas

Jag har använt brödbräda för detta ändamål med följande steg

  • Löd ESP32 dev board
  • Lödskydd för att behålla TFT -skärm
  • Lödning av andra elektroniska komponenter: BME280, motstånd, knappar
  • Lödkablar mellan komponenter enligt diagram

Det tredje steget är att förbereda montering av brödbräda till den andra delen av plasthuset. Jag har skrivit ut två staplar på min 3d -skrivare, monterat dem på bredboard med skruvar och gjort rektangulär skärning för skärmen.

Jag limmade plaststångsstöd på plasthöljet. När limet är torrt kan brödbrädans hytt demonteras med skruvar.

Nästa steg är:

  • Lödkablar för strömkälla
  • Lödkablar för batterispänningsstatus
  • Löd- och monteringsrörelsedetektor

Sista steget:

  • konfigurera DC-DC-omvandlare genom att tända utspänningen 5v
  • anslut två delar av stationsstyrenheten till ström: strömkablar och spänningsmätning

För rörelsedetektorn och knappen har jag gjort ytterligare hål på framsidan.

Steg 3: Ladda upp firmware till ESP32

För detta projekt har jag använt universell programvara, utvecklad av mig själv

Ta en titt på github -sidan ESPHomeController. Den innehåller fullständig instruktion om hur du kompilerar och konfigurerar.

! Om du inte är bekant med kompilering och Arduino kan du titta på ett steg Ladda upp färdig firmware

Så snart du laddar upp firmware första gången startar ESP32 i konfigurationsläge (åtkomstpunktsläge)

Du bör konfigurera dem. För detta ändamål öppnas i valfri enhetslista över tillgängligt WiFi. Hitta HomeController och anslut till den. Captive portal ska starta automatiskt. Om inte, skriv in din webbläsares webbadress: 192.168.4.1 och du kommer att se konfigurationsskärmen

Följ instruktionerna och konfigurera WiFi -referenser till ditt WiFi -nätverk.

ESP startar om efter det som WiFi -klient och ansluter till ditt Wifi.

När sson firts -anslutningen sker kommer den automatiskt att montera Spiffs filsystem och ladda ner nödvändiga filer för webbportalen:

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

Nedladdningen sker från mappen

Nu kan du se filinnehåll via webbläsaren. för detta bör du nu ip -adressen till din ESP32

Du kan hitta den på något av följande sätt:

  • Använd seriell portmonitor för att se en ESP32 -loggar
  • Använd någon tcp -skanner för att skanna dina nätverksenheter
  • Tryck på en knapp på väderstationen så ser du systeminformation

Sätt i bläddra https://192.168.0. XX/browse och du kommer att se en fillista med din ESP

(192.168.0. XX är enhetens IP -adress

För den sista inställningen måste du förbereda konfigurationsfiler.

Steg 4: Överföring av klar firmware

Uppladdning av klar firmware
Uppladdning av klar firmware

Det här avsnittet är speciellt för hörsel som inte kommer att producera firmware själv. Du behöver bara ladda upp "klar" firmware

1. Ladda ner flashöverföringsverktyg från den här sidan

2. Ladda ner bifogade (utdrag från arkiv) filer HomeController.bin och bootloader_qio_80m.bin till din hårddisk

3. Starta nedladdningsverktyget för ESP32 och ange värden enligt skärmdump

4. Tryck på start

Steg 5: Konfiguration

Innan du börjar förbereda konfigurationen behöver du:

  1. Skapa din kanal på thingspeak och nyckeln för din kanal. Förbered 4 fält och namnge dem korrekt Temperatur, luftfuktighet, tryck, spänning
  2. Registrera dig på Weather.com för att få din api -nyckel

Thingspeak behövs för att ladda upp dina data och övervaka trender och värden

Väder är nödvändigt för att få prognosdata.

Ok, äntligen behöver du skapa services.json -fil med följande innehåll

[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," sleeptype ": 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 = sv -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]}]

! Byt ut

  • thingspeakapi med din thingspeak api -nyckel
  • weatherapi med din väder -api -nyckel
  • geokod med din plats som du vill få prognos för

Än förbereda andra filen 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}]

Båda filerna måste laddas upp till roten av esp.

Du kan göra detta via webbläsaren https://192.168.0. XX/browse, där https://192.168.0. XX är din enhets IP -adress

Efter uppladdning måste ESP startas om och allt gjordes rätt. Esp visar rätt skärm som på bilden och videon ovan

Steg 6: Tunning och strömförbrukning

Tunning och strömförbrukning
Tunning och strömförbrukning

Jag använder min enhet med anslutningen till solpanelen och för att vara säker på att den kan fungera "oändligt"

strömförbrukningen är viktig och efter flera experiment har jag använt två stora knep

Minska förbrukningen av bakgrunds -LED på TFT -skärmen

Enligt mätning äter den 15-20 mA (mycket) därför har jag använt taktik med rörelsedetektor. Det fungerar perfekt Rörelsedetektorer kan känna igen alla detekteringar upp till 8-10 meter och höja spänningen på signalkabeln. Detta är öppningar en transistor och backround -LED tar emot en ström. Vanligtvis håller detektorn detta tillstånd upp till 10 sekunder vilket är mer än tillräckligt för att se bildskärmen, men om du fortsätter rörelserna är signalen fortfarande hög och lysdioden lyser.

Ett sådant tillvägagångssätt ger mig en stor ekonomi, utan ytterligare effekter, jag stöter inte på några problem att se min skärm när jag vill

2. Minska strömförbrukningen med ESP32

När ESP är anslutet till WiFi äter det ständigt 7-10 mA, jag pratar om konstant tid, inte start och första anslutning. Detta kan vara acceptabelt om du alltid har sett aktuellt datum och tid, tillgång till ditt system från Apples hemmakit

För min solkraft också på vintern var det att matcha till verk utan extra kraftkällor, Därför bestämde jag mig för att regelbundet sätta ESP32 på viloläge (äta är mindre än 1 mA). Detta är ok för mig, till exempel sover ESP 20 minuter, än att vakna, uppdatera skärmen (faktiska data och prognos) skickar data till thingspeak och tillbaka till viloläge igen

Minus är:

  • Väderskärmen visar föråldrade tidsvärden
  • Stationen är inte tillgänglig från webbläsaren och Apple Home Kit under sömntiden

Det är upp till dig att bestämma vad som är viktigare, du kan enkelt konfigurera om det.

Ta en titt på services.json -fil och rad

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

"möjliggör sömn": sant möjliggör sömn alls, om det läggs fel eller tar bort paramater (falskt är standard) kommer ESP aldrig att sova

"sömnintervall": 900000 detta är millis, eller 15 minuter, betyder att var 15: e minut kommer ESP att vakna och göra nödvändig personal

Så nu kan alla enkelt spela efter behov

Steg 7: Sensorer Tuning

För att minimera påverkan av intern uppvärmning till BME280 temperaturgivare

Firts Jag gjorde lite rör runt sensor och hål. Hovewer i mitt läge när lysdioden normalt är släckt och ESP sover är inte så viktigt. I andra fall bör BME280 -sensorn flytta någonstans för att utesluta påverkan av intern uppvärmning. Hur litet inflytande som helst jag fann därför finns det två parametrar att kompensera

"hum_corr": 10.0

vilket betyder att dessa värden kommer att läggas till efter mätning

För det andra är kalibrering av batterispänningsmätning, {"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

är för detta ändamål, eftersom spänning mäts efter motståndsdelare och jämförs med 3,3 V, genom att spela med cvalmax -värde kan du nå exakt spänningsinställning med ditt multimetrvärde

Steg 8: Lägga till enhet till Apple Home Kit

Lägger till enhet till Apple Home Kit
Lägger till enhet till Apple Home Kit

Slutligen när din enhet fungerar korrekt kan den läggas till i Apple Home Kit och du kommer att kunna se

sensorvärden på Apples startskärm.

Först måste du starta om enheten, så snart som enheten startade kommer den inte att somna 20 minuter är mer än tillräckligt

Öppna Home Kit -appen på din iOS -enhet och välj eller skapa ett nytt hem1. Tryck på Lägg till (+)

2. Välj Lägg till tillbehör.

3. Tryck på Jag har ingen kod eller kan inte skanna (ytterligare skanning läggs till)

4. om allt går bra bör du se din nya esp -enhet i en lista (se bild)

5. Välj enhet och bekräfta att du lägger till utan officiell certifiering

6. Skriv lösenord 11111111

7. Det allt! Du bör se att enheten parkopplades framgångsrikt, annars kan du börja para ihop igen.

Baserat på inställningen ser du två enheter på Apple

1. Temp sensor & Hum sensor, när du går djupt kommer det att visa värden på helskärm

2. Ljussensor:) Egentligen kan Apple visa ljus atmosfär, men inte spänning, därför visas batterispänning i Lux

Steg 9: OTA: Uppdateringar över luften

Innan du börjar uppdatera är det bättre att starta om ESP32, som tidigare nämnts kommer den inte att somna de första 20 minuterna

Det finns två möjligheter att uppdatera

  1. Konfiguration med https://192.168.0. XX/browse du kan komma åt ditt filsystem på ESP och ändra konfigurationsfiler
  2. Du kan fullständigt uppdatera firmware. För detta ändamål måste du först skapa en ny. Det kan göras via Arduino eller Visual Studio IDE. Skriv sedan in webbläsaren https://192.168.0. XX/update, välj din firmware och tryck på uppdatera. Vänta tills processen är klar och du får svar OK, annars upprepa steget igen

Rekommenderad: