Innholdsfortegnelse:

ESP32 Værstasjon Solcelledrevet: 9 trinn
ESP32 Værstasjon Solcelledrevet: 9 trinn

Video: ESP32 Værstasjon Solcelledrevet: 9 trinn

Video: ESP32 Værstasjon Solcelledrevet: 9 trinn
Video: ESP32 IoT Weather Station 2024, Juni
Anonim
Image
Image
ESP32 Værstasjon Solar Powered
ESP32 Værstasjon Solar Powered
ESP32 Værstasjon Solar Powered
ESP32 Værstasjon Solar Powered

I denne opplæringen skal vi bygge et WiFi -aktivert værstasjonsprosjekt.

Målet er å designe værstasjon med nesten alle mulige fjærer:

  • Vis nåværende forhold, tid, temperatur, fuktighet, trykk
  • Vis værmelding for de neste dagene
  • Oppdatering på lufta
  • Innebygd nettsted for konfigurasjon og datarepresentasjon
  • Last opp data til skyen for historikkstatistikk
  • Integrert med Aple Home Kit eller MQTT
  • Indepeded Accu drevet med mulig lading eller koble til solcellepanel

Jeg kan ikke legge til mer og ikke mer fantasi hva annet må eller kan være

Trinn 1: Deler som kreves

Deler som kreves
Deler som kreves
Deler som kreves
Deler som kreves
Deler som kreves
Deler som kreves
  • ESP32 (jeg har brukt dev -modul)
  • 2,8 "240x320 TFT LCD SPI ILI9341
  • Plastikk eske
  • 3 x 18650 Accu
  • Værsensor BME280 for å måle temperatur, fuktighet og trykk
  • USB litium ladermodul
  • DC-DC trinn UP18650
  • batteriholder (3 stk)
  • HC-SR505 Bevegelsesdetektor
  • 220 Om motstand
  • 2x 10 kOm motstander
  • TIP120 NPN transistor (Darlington) kan brukes hvilken som helst annen kompatibel
  • ButtonWires, switch, loddetavle….

Trinn 2: Kabling og montering

Kabling og montering
Kabling og montering
Kabling og montering
Kabling og montering
Kabling og montering
Kabling og montering
Kabling og montering
Kabling og montering

Første trinn er å sette sammen stasjonsmakter.

Jeg har delt plastkasse på to pars, en av dem som brukes til batteri, bryter, USB-lader og DC-DC går ut I denne delen setter jeg batteriholder og lager vinduer til bryteren og USB-laderen. Vær oppmerksom på usb -ladermodulen ganske heting derfor har jeg brukt alluminiumplate og satt USB -lader på denne ved hjelp av Star 922 lim.

Det andre trinnet er å sette sammen kontrollerne.

Se koblingsskjema for hvordan den skal kobles til

Jeg har brukt brødbrett til dette formålet med følgende trinn

  • Lodde ESP32 dev board
  • Loddeskjerm for å beholde TFT -skjermen
  • Lodding andre elektroniske komponenter: BME280, motstander, knapper
  • Loddeledninger mellom komponenter i henhold til diagram

Tredje trinn er å forberede montering av brødbrett til den andre delen av plasthuset. Jeg har skrevet ut to barer på min 3d -skriver, montert dem på bredboard med skruer og laget rektangulær skjæring for skjermen.

Jeg limte plaststenger på kroppen av plastkassen. Når limet er tørt, kan brettbrettshytten demonteres med skruer.

Neste trinn er:

  • Loddetråd for strømkilde
  • Loddetråd for batterispenningsstatus
  • Bevegelsesdetektor for lodding og montering

Siste trinn:

  • konfigurer DC-DC-omformer ved å tune utgangsspenningen 5v
  • koble to deler av stasjonskontrolleren til strømmen: strømledninger og spenningsmåling

For bevegelsesdetektoren og knappen har jeg gjort ytterligere hull på forsiden.

Trinn 3: Last opp fastvare til ESP32

Til dette prosjektet har jeg brukt universell programvare, utviklet av meg selv

Ta en titt på github -siden ESPHomeController. Denne inneholder full instruksjon om hvordan du kompilerer og konfigurerer.

! Hvis du ikke er kjent med kompilering og Arduino, kan du se på trinnet Last opp klar fastvare

Så snart du laster opp fastvare første gang starter ESP32 i konfigurasjonsmodus (tilgangspunktmodus)

Du bør konfigurere dem. For dette formålet, åpne i en hvilken som helst enhetsliste over tilgjengelig WiFi. Finn HomeController og koble til den. Captive portal skal starte automatisk. Hvis ikke, skriv inn nettleserens url: 192.168.4.1, og du vil se konfigurasjonsskjermen

Følg instruksjonene og konfigurer WiFi -legitimasjon til ditt WiFi -nettverk.

ESP starter på nytt etter det som WiFi -klient og kobles til Wifi.

Når sson firts -tilkoblingen skjer, vil den automatisk montere Spiffs -filsystemet og laste ned nødvendige filer for webportalen:

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

Nedlastingen skjer fra mappen

Nå kan du se filinnhold via nettleser. for dette bør du nå ip -adressen til ESP32

Du kan finne den på en av følgende måter:

  • Bruke seriell portmonitor for å se en ESP32 -logger
  • Bruk en hvilken som helst tcp -skanner for å skanne nettverksenhetene dine
  • Trykk på en knapp på værstasjonen, og du vil se systeminformasjon

Sett inn bla gjennom https://192.168.0. XX/browse, og du vil se en filliste over din ESP

(192.168.0. XX er IP -adressen til enheten din

For den siste tuningen må du forberede konfigurasjonsfiler.

Trinn 4: Last opp klar fastvare

Laster opp klar fastvare
Laster opp klar fastvare

Denne delen er spesielt for hørselshemmede som ikke kommer til å produsere fastvare selv. Du trenger bare å laste opp "klar" fastvare

1. Last ned verktøy for opplasting av flash fra denne siden

2. Last ned vedlagte (utdrag fra arkiver) filer HomeController.bin og bootloader_qio_80m.bin til harddisken

3. Start nedlastingsverktøyet for ESP32 og skriv inn verdier i henhold til skjermbilde

4. Trykk på start

Trinn 5: Konfigurasjon

Før du starter forberedelsen av konfigurasjonen trenger du:

  1. Lag kanalen din på Thingspeak og nøkkelen for kanalen din. Forbered 4 felt og gi dem riktig navn Temperatur, fuktighet, trykk, spenning
  2. Registrer deg på Weather.com for å få api -nøkkelen din

Thingspeak er nødvendig for å laste opp dataene dine og overvåke trender og verdier

Været er nødvendig for å få prognosedata.

Ok, endelig må du lage services.json -fil med følgende innhold

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

! Vennligst bytt ut

  • thingspeakapi med din thingspeak api -nøkkel
  • weatherapi med din vær -api -nøkkel
  • geokode med posisjonen du vil ha prognose for

Enn forberede den andre 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}]

Begge filene må opplastes til roten til esp.

Du kan gjøre dette via nettleseren https://192.168.0. XX/browse, hvor https://192.168.0. XX er IP -adressen til enheten din

Etter opplasting må ESP startes på nytt og alt ble gjort riktig. Esp vil vise den riktige skjermen som på bildet og videoen ovenfor

Trinn 6: Tunning og strømforbruk

Tunning og strømforbruk
Tunning og strømforbruk

Jeg bruker enheten min med tilkoblingen til solcellepanel og for å være sikker på at den kan fungere "uendelig"

strømforbruk er viktig, og etter flere eksperimenter har jeg brukt to store triks

Reduser forbruket av bakgrunns -LED -en på TFT -skjermen

Ifølge måling spiser den 15-20 mA (mye), derfor har jeg brukt taktikk med bevegelsesdetektor. Den fungerer perfekt Bevegelsesdetektorer som er i stand til å gjenkjenne enhver deteksjon opp til 8-10 meter og øke spenningen på signalkabelen. Dette er åpninger en transistor og bakgrunns LED mottar en strøm. Vanligvis holder detektoren denne tilstanden i opptil 10 sekunder, noe som er mer enn nok til å se skjermen, men hvis du fortsetter bevegelsene er signalet fortsatt høyt og LED lyser.

En slik tilnærming gir meg en stor økonomi, uten ekstra effekter. Jeg møter ikke noe problem med å se skjermen min når jeg vil

2. Reduser strømforbruket med ESP32

Når ESP er koblet til WiFi, spiser det konstant 7-10 mA, jeg snakker om konstant tid, ikke oppstart og første tilkobling. Dette kan være akseptabelt hvis du alltid har sett faktisk dato og klokkeslett, få tilgang til systemet ditt fra Apple Home Kit

For min solenergi også om vinteren var det å matche til verk uten ekstra strømkilder, Derfor bestemte jeg meg for å sette ESP32 med jevne mellomrom i hvilemodus (spise er mindre enn 1 mA). Dette er ok for meg, for eksempel sover ESP 20 minutter, enn å våkne, oppdateringsskjermbildet (faktiske data og prognoser) sender data til tinghøyden og tilbake til hvilemodus igjen

Minuser er:

  • Værskjermbildet viser utdaterte tidsverdier
  • Stasjonen er ikke tilgjengelig fra nettleseren og Apple Home Kit under søvntiden

Det er opp til deg å bestemme hva som er viktigere, du kan enkelt konfigurere det på nytt.

Ta en titt på services.json -filen og -linjen

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

"enableleep": true muliggjør søvn i det hele tatt, hvis det er lagt feil eller fjerner paramater (falsk er standard) vil ESP aldri sove

"søvnintervall": 900000 dette er millis, eller 15 minutter, betyr at hvert 15. minutt vil ESP våkne og gjøre nødvendig personale

Så nå kan alle enkelt spille etter behov

Trinn 7: Sensorer Tuning

For å minimere påvirkningen av intern oppvarming til BME280 temperatursensor

Firts Jeg gjorde litt rør rundt sensor og hull. Hovewer i min modus når LED normalt er slått av og ESP sover er ikke så viktig. I andre tilfeller bør BME280 -sensoren bevege seg et sted for å utelukke påvirkning av intern oppvarming. Hvor liten innflytelse jeg fant derfor er det to parametere å kompensere

"hum_corr": 10.0

som betyr at disse verdiene vil bli lagt til etter måling

For det andre er kalibrering av batterispenningsmå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 for dette formålet, fordi spenning måles etter motstandsdelere og sammenlignes med 3,3 V, ved å spille med cvalmax -verdi kan du nå nøyaktig spenningsjustering med multimetr -verdien

Trinn 8: Legge til enhet i Apple Home Kit

Legger til enhet i Apple Home Kit
Legger til enhet i Apple Home Kit

Til slutt, når enheten din fungerer som den skal, kan den legges til Apple Home Kit og du kan se

sensorverdier på Apple -startskjermen.

Først må du starte enheten på nytt, så snart enheten startet, vil den ikke gå i dvale. 20 minutter er mer enn nok

Åpne Home Kit -appen på iOS -enheten din, og velg eller opprett nytt Home1. Trykk på Legg til (+)

2. Velg Legg til tilbehør.

3. Trykk på Jeg har ikke en kode eller kan ikke skanne (videre skanning legges til)

4. hvis alt går bra, bør du se den nye esp -enheten i en liste (se bilde)

5. Velg enhet og bekreft å legge til uten offisiell sertifisering

6. Skriv inn passord 11111111

7. Det hele! Du bør se at enheten ble paret vellykket, ellers kan du starte paringen på nytt.

Basert på innstillingen vil du se to enheter på Apple

1. Temp sensor & Hum sensor, går dypt vil det vise verdier på fullskjerm

2. Lyssensor:) Faktisk er Apple i stand til å vise lys Ambience, men ikke spenning, derfor vises batterispenning i Lux

Trinn 9: OTA: Over the Air -oppdateringer

Før du starter en oppdatering er det bedre å starte ESP32 på nytt, som nevnt før vil den ikke gå i dvale de første 20 minuttene

Det er to muligheter for oppdatering

  1. Konfigurasjon ved hjelp av https://192.168.0. XX/browse du kan få tilgang til filsystemet ditt på ESP og endre konfigurasjonsfiler
  2. Du kan fullstendig oppdatere fastvaren. For dette formål må du først lage en ny. Det kan gjøres via Arduino eller Visual Studio IDE. Skriv deretter inn nettleseren https://192.168.0. XX/update, velg fastvaren og trykk oppdater. Vent til prosessen er ferdig, og du får svar OK, ellers gjentar du trinnet igjen

Anbefalt: