Innehållsförteckning:
- Steg 1: Delar som krävs
- Steg 2: Kabeldragning och montering
- Steg 3: Ladda upp firmware till ESP32
- Steg 4: Överföring av klar firmware
- Steg 5: Konfiguration
- Steg 6: Tunning och strömförbrukning
- Steg 7: Sensorer Tuning
- Steg 8: Lägga till enhet till Apple Home Kit
- Steg 9: OTA: Uppdateringar över luften
Video: ESP32 Weather Station Solar Powered: 9 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
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
- 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
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
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:
- 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
- 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
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
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
- Konfiguration med https://192.168.0. XX/browse du kan komma åt ditt filsystem på ESP och ändra konfigurationsfiler
- 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:
NaTaLia Weather Station: Arduino Solar Powered Weather Station Gjord på rätt sätt: 8 steg (med bilder)
NaTaLia väderstation: Arduino soldriven väderstation gjord på rätt sätt: Efter 1 års framgångsrik drift på 2 olika platser delar jag mina solcellsdrivna väderstationsprojektplaner och förklarar hur det utvecklades till ett system som verkligen kan överleva över lång tid perioder från solenergi. Om du följer
DIY Weather Station & WiFi Sensor Station: 7 steg (med bilder)
DIY Weather Station & WiFi Sensor Station: I det här projektet kommer jag att visa dig hur du skapar en väderstation tillsammans med en WiFi -sensorstation. Sensorstationen mäter lokala temperatur- och luftfuktighetsdata och skickar den via WiFi till väderstationen. Väderstationen visar sedan t
Solar Weather Station: 5 steg
Solar Weather Station: Har du någonsin önskat dig väderinformation i realtid från din bakgård? Nu kan du köpa en väderstation i butiken men de kräver vanligtvis batterier eller måste anslutas till ett uttag. Denna väderstation behöver inte vara ansluten till
ESP32 Solar Weather Station: 4 steg (med bilder)
ESP32 Solar Weather Station: För mitt första IoT -projekt ville jag bygga en väderstation och skicka data till data.sparkfun.com. Liten korrigering när jag bestämde mig för att öppna mitt konto i Sparkfun accepterade de inte fler anslutningar, så jag välj en annan IoT -datainsamlare
Solar Powered WiFi Weather Station V1.0: 19 steg (med bilder)
Solar Powered WiFi Weather Station V1.0: I den här instruktionsboken ska jag visa dig hur du bygger en soldriven WiFi -väderstation med ett Wemos -kort. Wemos D1 Mini Pro har en liten formfaktor och ett brett utbud av plug-and-play-skärmar som gör den till en idealisk lösning för att snabbt få