Indholdsfortegnelse:

ESP32 Weather Station Solar Powered: 9 trin
ESP32 Weather Station Solar Powered: 9 trin

Video: ESP32 Weather Station Solar Powered: 9 trin

Video: ESP32 Weather Station Solar Powered: 9 trin
Video: Solar Weather Station [WiFi, MQTT, Smart Home, ESP8266] 2024, November
Anonim
Image
Image
ESP32 Weather Station Solar Powered
ESP32 Weather Station Solar Powered
ESP32 Weather Station Solar Powered
ESP32 Weather Station Solar Powered

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

Påkrævede dele
Påkrævede dele
Påkrævede dele
Påkrævede dele
Påkrævede dele
Påkrævede dele
  • 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

Ledninger og samling
Ledninger og samling
Ledninger og samling
Ledninger og samling
Ledninger og samling
Ledninger og samling
Ledninger og samling
Ledninger 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

Upload af klar firmware
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:

  1. Opret din kanal på thingspeak og nøglen til din kanal. Forbered 4 felter og navngiv dem korrekt Temperatur, luftfugtighed, tryk, spænding
  2. 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

Tunning og strømforbrug
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

Føjer enhed til Apple Home Kit
Føjer enhed 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

  1. Konfiguration ved hjælp af https://192.168.0. XX/browse du kan få adgang til dit filsystem på ESP og ændre konfigurationsfiler
  2. 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: