Indholdsfortegnelse:
- Trin 1: Dele, der kræves
- Trin 2: Ledningsføring og samling
- Trin 3: Upload af firmware til ESP32
- Trin 4: Upload af klar firmware
- Trin 5: Konfiguration
- Trin 6: Tunning og strømforbrug
- Trin 7: Tuning af sensorer
- Trin 8: Tilføjelse af enheden til Apple Home Kit
- Trin 9: OTA: Over the Air -opdateringer
Video: ESP32 Weather Station Solar Powered: 9 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
I denne vejledning skal vi bygge et WiFi -aktiveret vejrstationsprojekt.
Målet er at designe vejrstation med næsten alle mulige dækninger:
- Vis aktuelle forhold, tid, temperatur, fugtighed, tryk
- Vis vejrudsigt for de næste dage
- Opdatering i luften
- Indbygget websted til konfiguration og datarepræsentation
- Upload data til skyen for historikstatistik
- Integreret med Aple Home Kit eller MQTT
- Uafhængig Accu drevet med mulig opladning eller tilslutning til solpanel
Jeg kan ikke tilføje mere og ikke mere fantasi, hvad der ellers må eller kan være
Trin 1: Dele, der kræves
- ESP32 (jeg har brugt dev -modul)
- 2,8 "240x320 TFT LCD SPI ILI9341
- Plastkasse
- 3 x 18650 Accu
- Vejrføler BME280 til måling af temperatur, luftfugtighed og tryk
- USB litium oplader modul
- DC-DC trin UP18650
- batteriholder (3 stk.)
- HC-SR505 Bevægelsessensor
- 220 Om modstand
- 2x 10 kOm modstande
- TIP120 NPN transistor (Darlington) kan bruges enhver anden kompatibel
- ButtonWires, switch, loddeplade….
Trin 2: Ledningsføring og samling
Første trin er samling af stationsbeføjelser.
Jeg har delt plastikhus på to pars, en af dem bruges til batteri, switch, USB-oplader og DC-DC træder ud I denne del sætter jeg batteriholder og laver vinduer til kontakten og usb-oplader. Vær opmærksom på usb -opladermodulet ganske heting derfor har jeg brugt alluminiumsplade og sat USB -oplader på dette ved hjælp af Star 922 lim.
Andet trin er at samle controllers del.
Se ledningsdiagram hvordan den skal tilsluttes
Jeg har brugt brødbræt til dette formål med følgende trin
- Lodde ESP32 dev board
- Loddemaskine til at beholde TFT -display
- Lodde andre elektroniske komponenter: BME280, modstande, knapper
- Lodningskabler mellem komponenter i henhold til diagram
Tredje trin er at forberede montering af brødbræt til den anden del af plastikhuset. Jeg har trykt to stænger på min 3d -printer, monteret dem på bredboard ved hjælp af skruer og foretaget rektangulær skæring til skærmen.
Jeg limede plaststænger til plastikkassen. Når limen nu er tør, skal brødbrætskabinen afmonteres med skruer.
Næste trin er:
- Lodningskabler til strømkilde
- Lodningskabler til batterispændingsstatus
- Bevægelsesdetektor til lodning og montering
Sidste trin:
- opsæt DC-DC-konverter ved at dæmpe udgangsspændingen 5v
- tilslut to dele af stationscontrolleren til strømmen: strømledninger og spændingsaflæsning
Til bevægelsesdetektoren og knappen har jeg lavet yderligere huller på forsiden.
Trin 3: Upload af firmware til ESP32
Til dette projekt har jeg brugt universal software, udviklet af mig selv
Se venligst github -siden ESPHomeController. Denne indeholder fuld instruktion i, hvordan man kompilerer og opsætter.
! Hvis du ikke er bekendt med kompilering og Arduino, skal du kigge på trin ved at uploade klar firmware
Så snart du uploader firmware første gang, starter ESP32 i konfigurationstilstand (Access Point -tilstand)
Du skal konfigurere dem. Til dette formål åbnes i en hvilken som helst enhedsliste over tilgængelig WiFi. Find HomeController og opret forbindelse til den. Captive portal skal starte automatisk. Hvis ikke indtast i din browser url: 192.168.4.1, og du vil se konfigurationsskærmen
Følg instruktionerne og konfigurer WiFi -legitimationsoplysninger til dit WiFi -netværk.
ESP genstarter derefter som WiFi -klient og opretter forbindelse til din Wifi.
Når sson firts -forbindelsen sker, vil den automatisk montere Spiffs -filsystemet og downloade nødvendige filer til webportalen:
- index.html
- filebrowse.html
- js/bundle.min.js.gz
Downloaden sker fra mappen
Nu kan du se filindhold via webbrowser. til dette skal du nu ip -adresse til din ESP32
Du kan finde det på en af følgende måder:
- Brug af seriel portmonitor til at se en ESP32 -log
- Brug af enhver tcp -scanner til at scanne dine netværksenheder
- Tryk på en knap på vejrstationen, og du vil se systemoplysninger
Indlæs gennem https://192.168.0. XX/browse, og du vil se en filliste over din ESP
(192.168.0. XX er din enheds IP -adresse
For den sidste tuning skal du forberede konfigurationsfiler.
Trin 4: Upload af klar firmware
Dette afsnit er specielt til auditive, der ikke selv vil producere firmware. Du skal bare uploade "klar" firmware
1. Download ikke flash -uploadværktøjer fra denne side
2. Download vedhæftede (udtræk fra arkiver) filer HomeController.bin og bootloader_qio_80m.bin til din harddisk
3. Start ESP32 -downloadværktøj, og indtast værdier i henhold til skærmbillede
4. Tryk på start
Trin 5: Konfiguration
Inden du starter forberedelsen af konfigurationen, har du brug for:
- Opret din kanal på thingspeak og nøglen til din kanal. Forbered 4 felter og navngiv dem korrekt Temperatur, luftfugtighed, tryk, spænding
- Registrer dig på Weather.com for at få din api -nøgle
Thingspeak er nødvendig for at uploade dine data og overvåge tendenser og værdier
Vejret er nødvendigt for at få prognosedata.
Ok, endelig skal du oprette services.json -fil med følgende indhold
[{"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", "aktiveret": sand, "interval": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = da -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]}]
! Udskift venligst
- thingspeakapi med din thingspeak api -nøgle
- weatherapi med din vejr -api -nøgle
- geokode med din placering, som du ønsker at få prognose for
End forberede anden fil 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}]
Begge filer skal uploades til roden af esp.
Du kan gøre dette via browser https://192.168.0. XX/browse, hvor https://192.168.0. XX er din enheds IP -adresse
Efter upload skal ESP genstartes, og alt blev gjort rigtigt. Esp viser den korrekte skærm som på billedet og videoen ovenfor
Trin 6: Tunning og strømforbrug
Jeg bruger min enhed med forbindelsen til solpanel og for at være sikker på, at den kan fungere "uendeligt"
strømforbrug er vigtigt, og efter flere eksperimenter har jeg brugt to store tricks
Reducer forbruget af baggrunds -LED'en på TFT -skærmen
Ifølge måling spiser den 15-20 mA (meget), derfor har jeg brugt taktik med bevægelsesdetektor. Det fungerer perfekt Bevægelsesdetektorer, der er i stand til at genkende enhver detektion op til 8-10 meter og øge spændingen på signalkablet. Dette er åbninger en transistor og baggrunds LED modtager en strøm. Normalt holder detektoren denne tilstand op til 10 sekunder, hvilket er mere end nok til at se skærmen, men hvis du fortsætter bevægelser, er signalet stadig højt, og LED lyser.
Sådan tilgang giver mig en stor økonomi, uden yderligere effekter, jeg møder ikke noget problem med at se min skærm, når jeg vil
2. Reducer strømforbruget med ESP32
Når ESP er forbundet til WiFi, spiser det konstant 7-10 mA, jeg taler om konstant tid, ikke opstart og første forbindelse. Dette kan være acceptabelt, hvis du altid har set faktisk dato og klokkeslæt, har adgang til dit system fra Apple home kit
Også for min solenergi om vinteren skulle den passe til værker uden ekstra strømkilder, Derfor besluttede jeg periodisk at sætte ESP32 på dvaletilstand (spisning er mindre end 1 mA). Dette er ok for mig, for eksempel sover ESP 20 minutter, end vågner, opdateringsskærm (faktiske data og prognose) sender data til tingspidsen og tilbage til dvaletilstand igen
Minusser er:
- Vejrskærmen viser forældede tidsværdier
- Stationen er ikke tilgængelig fra browseren og Apple Home Kit i søvntiden
Det er op til dig at beslutte, hvad der er vigtigere, du kan enkelt omkonfigurere det.
Se venligst filen services.json og linjen
[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}
"enableleep": true muliggør overhovedet søvn, hvis den er lagt falsk eller fjerner paramater (falsk er standard) vil ESP aldrig sove
"søvninterval": 900000 dette er millis, eller 15 minutter, betyder, at hvert 15. minut vågner ESP og udfører nødvendigt personale
Så nu kan alle let spille efter behov
Trin 7: Tuning af sensorer
For at minimere påvirkning af intern opvarmning til BME280 temperatursensor
Firts Jeg lavede noget rør omkring sensor og huller. Hovewer i min tilstand, når LED normalt er slukket, og ESP sover, er ikke så vigtigt. I andre tilfælde bør BME280 -sensoren bevæge sig et sted for at udelukke påvirkning af intern opvarmning. Enhver hvor lille indflydelse jeg fandt derfor er der to parametre at kompensere
"hum_corr": 10.0
hvilket betyder, at disse værdier tilføjes efter måling
For det andet er kalibrering af batterispændingsmåling, {"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
er til dette formål, fordi spænding måles efter modstandsdeleere og sammenlignes med 3,3 V ved at spille med cvalmax -værdi kan du nå den nøjagtige spændingstemning med din multimetr -værdi
Trin 8: Tilføjelse af enheden til Apple Home Kit
Endelig, når din enhed fungerer korrekt, kan den tilføjes til Apple Home Kit, og du vil kunne se
sensorværdier på Apple -startskærmen.
Først skal du genstarte enheden, da den begyndte at gå i dvale, 20 minutter er mere end nok
Åbn Home Kit -appen på din iOS -enhed, og vælg eller opret nyt Home1. Tryk på Tilføj (+)
2. Vælg Tilføj tilbehør.
3. Tryk på Jeg har ikke en kode eller kan ikke scanne (yderligere scanning tilføjes)
4. hvis alt går fint, skal du se din nye esp -enhed på en liste (se billede)
5. Vælg enhed, og bekræft tilføjelse uden officiel certificering
6. Indtast adgangskode 11111111
7. Det hele! Du skulle se den enhed parret med succes, ellers start parringsprocessen igen..
Baseret på denne indstilling vil du se to enheder på Apple
1. Temp sensor & Hum sensor, går dybt vil det vise værdier på fuld skærm
2. Lyssensor:) Faktisk er Apple i stand til at vise lysth Ambience, men ikke spænding, derfor vises batterispænding i Lux
Trin 9: OTA: Over the Air -opdateringer
Inden start er en opdatering bedre at genstarte ESP32, som før nævnt vil den ikke gå i dvale de første 20 minutter
Der er to muligheder for at opdatere
- Konfiguration ved hjælp af https://192.168.0. XX/browse du kan få adgang til dit filsystem på ESP og ændre konfigurationsfiler
- Du kan fuldstændigt opdatere firmware. til dette formål skal du først oprette en ny. Det kan gøres via Arduino eller Visual Studio IDE. Indtast derefter browseren https://192.168.0. XX/update, vælg din firmware, og tryk på opdater. Vent, indtil processen er færdig, og du får svar OK, ellers gentag trin igen
Anbefalede:
NaTaLia Weather Station: Arduino Solar Powered Weather Station Gjorde den rigtige vej: 8 trin (med billeder)
NaTaLia Weather Station: Arduino Solar Powered Weather Station Gjorde den rigtige vej: Efter 1 års vellykket drift på 2 forskellige steder deler jeg mine solcelledrevne vejrstation projektplaner og forklarer, hvordan det udviklede sig til et system, der virkelig kan overleve over lang tid perioder fra solenergi. Hvis du følger
DIY Weather Station & WiFi Sensor Station: 7 trin (med billeder)
DIY Weather Station & WiFi Sensor Station: I dette projekt vil jeg vise dig, hvordan du opretter en vejrstation sammen med en WiFi -sensorstation. Sensorstationen måler lokale temperatur- og fugtighedsdata og sender den via WiFi til vejrstationen. Vejrstationen viser derefter t
Solar Weather Station: 5 trin
Solar Weather Station: Har du nogensinde ønsket realtidsvejrinformation fra din baggård? Nu kan du købe en vejrstation i butikken, men dem kræver normalt batterier eller skal tilsluttes en stikkontakt. Denne vejrstation behøver ikke at være forbundet til
ESP32 Solar Weather Station: 4 trin (med billeder)
ESP32 Solar Weather Station: Til mit første IoT -projekt ville jeg bygge en vejrstation og sende dataene til data.sparkfun.com. Lille korrektion, da jeg besluttede at åbne min konto i Sparkfun, accepterede de ikke flere forbindelser, så jeg vælg en anden IoT -dataindsamler
Solar Powered WiFi Weather Station V1.0: 19 trin (med billeder)
Solcelledrevet WiFi vejrstation V1.0: I denne instruktør vil jeg vise dig, hvordan du bygger en solcelledrevet WiFi vejrstation med et Wemos -kort. Wemos D1 Mini Pro har en lille formfaktor og en lang række plug-and-play-skjolde, der gør den til en ideel løsning til hurtigt at få