Inhoudsopgave:

ESP32 weerstation op zonne-energie - Ajarnpa
ESP32 weerstation op zonne-energie - Ajarnpa

Video: ESP32 weerstation op zonne-energie - Ajarnpa

Video: ESP32 weerstation op zonne-energie - Ajarnpa
Video: Arduino uno - wireless weather station - solar 2024, November
Anonim
Image
Image
ESP32 Weerstation op zonne-energie
ESP32 Weerstation op zonne-energie
ESP32 Weerstation op zonne-energie
ESP32 Weerstation op zonne-energie

In deze tutorial gaan we een wifi-enabled weerstationproject bouwen.

Het doel is om weerstation te ontwerpen met bijna alle mogelijke kenmerken:

  • Toon huidige omstandigheden, tijd, temperatuur, vochtigheid, druk
  • Toon weersvoorspelling voor de komende dagen
  • Update in de lucht
  • Ingebouwde website voor configuratie en gegevensweergave
  • Gegevens uploaden naar de cloud voor geschiedenisstatistieken
  • Geïntegreerd met Aple Home Kit of MQTT
  • Indepeded Accu aangedreven met mogelijk opladen of aansluiten op zonnepaneel

Ik kan niet meer en niet meer verbeeldingskracht toevoegen wat anders moet of kan zijn

Stap 1: Onderdelen die nodig zijn

Onderdelen die nodig zijn
Onderdelen die nodig zijn
Onderdelen die nodig zijn
Onderdelen die nodig zijn
Onderdelen die nodig zijn
Onderdelen die nodig zijn
  • ESP32 (ik heb dev-module gebruikt)
  • 2.8" 240x320 TFT LCD SPI ILI9341
  • Plastic verpakking
  • 3 x 18650 Accu
  • Weersensor BME280 voor het meten van temperatuur, vochtigheid en druk
  • USB-lithiumladermodule
  • DC-DC stap UP18650
  • batterijhouder (3st)
  • HC-SR505 Bewegingsdetector
  • 220 Om weerstand
  • 2x 10 kOm weerstanden
  • TIP120 NPN-transistor (Darlington) kan elke andere compatibele worden gebruikt
  • ButtonWires, schakelaar, soldeerbord….

Stap 2: Bedrading en montage

Bedrading en montage
Bedrading en montage
Bedrading en montage
Bedrading en montage
Bedrading en montage
Bedrading en montage
Bedrading en montage
Bedrading en montage

De eerste stap is het samenstellen van de stationsbevoegdheden.

Ik heb de plastic behuizing in twee delen verdeeld, een ervan wordt gebruikt voor batterij, schakelaar, USB-oplader en DC-DC stap uit. In dit deel heb ik de batterijhouder geplaatst en vensters gemaakt voor de schakelaar en USB-oplader. Houd er rekening mee dat de USB-oplaadmodule behoorlijk aan het veranderen is, daarom heb ik een aluminiumplaat gebruikt en hierop een USB-oplader geplaatst met Star 922-lijm.

De tweede stap is het monteren van de controllers.

Zie bedradingsschema hoe het moet worden aangesloten

Ik heb hiervoor Breadboard gebruikt met de volgende stappen:

  • Soldeer ESP32 ontwikkelbord
  • Soldeerschild om TFT-display te behouden
  • Soldeer andere elektronische componenten: BME280, weerstanden, knoppen
  • Soldeer bedrading tussen componenten volgens schema

De derde stap is het voorbereiden van de montage van de broodplank op het tweede deel van de plastic behuizing. Ik heb op mijn 3D-printer twee staven afgedrukt, deze met schroeven op het bord bevestigd en rechthoekig gesneden voor het beeldscherm.

Ik heb plastic staven op de behuizing van de plastic behuizing gelijmd. Als de lijm nu droog is, kan de cabine van de broodplank met schroeven worden losgemaakt.

Volgende stap is:

  • Soldeer bedrading voor stroombron:
  • Soldeerbedrading voor de batterijspanningsstatus
  • Soldeer en monteer bewegingsdetector

Laatste stap:

  • setup DC-DC converter door uitgangsspanning 5v. af te stemmen
  • sluit twee delen van de stationcontroller aan op de voeding: stroomdraden en spanningsmeting

Voor de bewegingsdetector en knop heb ik extra gaten aan de voorkant gemaakt.

Stap 3: Firmware uploaden naar ESP32

Voor dit project heb ik universele software gebruikt, die ik zelf heb ontwikkeld

Neem eens een kijkje op de github-pagina ESPHomeController. Deze bevat volledige instructies voor het compileren en instellen.

! Als je niet bekend bent met compilatie en Arduino, kijk dan eens naar stap Klaar firmware uploaden

Zodra u de eerste keer firmware uploadt, start de ESP32 in de configuratiemodus (Access Point-modus)

Je moet ze configureren. Open hiervoor in elk apparaat een lijst met beschikbare WiFi. Zoek HomeController en maak er verbinding mee. Captive portal zou automatisch moeten starten. Zo niet, voer dan de url van uw browser in: 192.168.4.1 en u ziet het configuratiescherm

Volg de instructies en configureer WiFi-inloggegevens voor uw WiFi-netwerk.

De ESP start daarna opnieuw op als wifi-client en maakt verbinding met je wifi.

Als de eerste verbinding tot stand komt, wordt het Spiffs-bestandssysteem automatisch geactiveerd en worden de vereiste bestanden voor de webportal gedownload:

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

Downloaden gebeurt vanuit de https://github.com/Yurik72/ESPHomeController/tree/… map

Nu kunt u de bestandsinhoud bekijken via een webbrowser. hiervoor moet je nu het ip-adres van je ESP32

U kunt het op een van de volgende manieren vinden:

  • Seriële poortmonitor gebruiken om ESP32-logboeken te bekijken
  • Elke tcp-scanner gebruiken om uw netwerkapparaten te scannen
  • Druk op een knop op het weerstation en u ziet systeeminformatie

Zet in browse https://192.168.0. XX/browse en je ziet een lijst met bestanden van je ESP

(192.168.0. XX is het IP-adres van uw apparaat

Voor de uiteindelijke afstemming moet u configuratiebestanden voorbereiden.

Stap 4: Klaar firmware uploaden

Klaar firmware uploaden
Klaar firmware uploaden

Dit gedeelte is speciaal bedoeld voor mensen die niet zelf firmware gaan produceren. U hoeft alleen "ready" firmware te uploaden

1. Download flash-uploadtools vanaf deze pagina

2. Download bijgevoegde (uittreksel uit archieven) bestanden HomeController.bin en bootloader_qio_80m.bin naar uw harde schijf

3. Start ESP32 downloadtool en voer waarden in volgens screenshot

4. Druk op start

Stap 5: Configuratie

Voordat u begint met het voorbereiden van de configuratie, heeft u het volgende nodig:

  1. Maak je kanaal op de thingspeak en de sleutel voor je kanaal. Bereid 4 velden voor en noem ze correct Temperatuur, Vochtigheid, Druk, Spanning
  2. Registreer u op Weather.com om uw api-sleutel te verkrijgen

Thingspeak is nodig om uw gegevens te uploaden en trends en waarden te volgen

Het weer is nodig om voorspellingsgegevens te krijgen.

Ok, eindelijk moet je een services.json-bestand maken met de volgende inhoud:

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

!Vervang a.u.b.

  • thingspeakapi met je thingspeak api-sleutel
  • weatherapi met uw weer-api-sleutel
  • geocode met uw locatie waarvoor u de prognose wilt verkrijgen

Bereid dan het tweede bestand triggers.json voor

[{"type":"BMEToWeatherDisplay", "source":"BME", "destination":"WeatherDisplay"}, {"type":"TimeToWeatherDisplay", "source":"Tijd", "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}]

Beide bestanden moeten worden geüpload naar de hoofdmap van esp.

U kunt dit doen via browser https://192.168.0. XX/browse, waarbij https://192.168.0. XX het IP-adres van uw apparaat is

Na het uploaden moest de ESP opnieuw worden opgestart en alles was goed gedaan. Esp zal het juiste scherm tonen zoals op de foto en video hierboven

Stap 6: Tuning en stroomverbruik

Tuning en stroomverbruik
Tuning en stroomverbruik

Ik gebruik mijn apparaat met de verbinding met Solar Panel en om er zeker van te zijn dat het "oneindig" kan werken

stroomverbruik is belangrijk en na verschillende experimenten heb ik twee belangrijke trucs gebruikt

Verminder het verbruik van de achtergrond-LED van het TFT-scherm

Volgens de meting eet hij 15-20 mA (veel) daarom heb ik tactieken gebruikt met bewegingsdetector. Het werkt perfect Bewegingsdetectoren die elke detectie tot 8-10 meter kunnen herkennen en de spanning op de signaalkabel kunnen verhogen. Dit is het openen van een transistor en backround Led krijgt een stroom. Gewoonlijk houdt de detector deze status tot 10 sec, wat meer dan genoeg is om de monitor te zien, maar als je doorgaat met bewegen, is het signaal nog steeds hoog en brandt de LED.

Een dergelijke aanpak geeft me een grote economie, zonder extra effecten, ik heb geen enkel probleem om mijn scherm te zien wanneer ik wil

2. Verminder stroomverbruik door ESP32

Wanneer ESP is verbonden met wifi, eet het constant 7-10 mA, ik heb het over constante tijd, niet opstarten en eerste verbinding. Dit kan acceptabel zijn als u altijd de werkelijke datum en tijd kunt zien, toegang tot uw systeem via de Apple Home Kit

Ook voor mijn zonne-energie in de winter moest het passen bij werken zonder extra stroombronnen, Daarom heb ik besloten om ESP32 periodiek in de slaapstand te zetten (eten is minder dan 1 mA). Dit is ok voor mij, ESP slaapt bijvoorbeeld 20 minuten, wordt dan wakker, ververs het scherm (werkelijke gegevens en voorspelling) stuurt gegevens naar de thingspeak en weer terug naar de slaapmodus

Minpunten zijn:

  • Het weerscherm geeft verouderde tijdwaarden weer
  • Station is tijdens de slaaptijd niet toegankelijk vanuit de browser en Apple Home Kit

Het is aan jou om te beslissen wat belangrijker is, dat kun je eenvoudig opnieuw configureren.

Kijk eens naar het services.json-bestand en de regel

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

"enablesleep":true maakt slaap helemaal mogelijk, indien onwaar geplaatst of paramater verwijderd (false is standaard) ESP zal nooit slapen

"slaapinterval": 900000 dit is millis, of 15 min, betekent dat elke 15 min ESP wakker wordt en het nodige personeel doet

Dus nu kan iedereen gemakkelijk spelen volgens de noodzaak

Stap 7: Sensoren afstemmen

Om de impact van interne verwarming op de BME280-temperatuursensor te minimaliseren

Eerst heb ik wat buis rond de sensor en gaten gedaan. Hovewer in mijn modus wanneer LED normaal is uitgeschakeld en ESP slaapt, is niet zo belangrijk. In andere gevallen moet de BME280-sensor ergens heen gaan om invloed van interne verwarming uit te sluiten. Hoe klein de invloed ook is die ik heb gevonden, daarom zijn er twee parameters om te compenseren

"hum_corr":10.0

wat betekent dat die waarden na meting worden toegevoegd

Ten tweede is het kalibreren van de batterijspanningsmeting, {"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

zijn voor dit doel, omdat de spanning wordt gemeten na de weerstandsverdelers en vergeleken met 3,3 V, spelend met de cvalmax-waarde, kunt u exacte spanningsafstemming bereiken met uw multimeter-waarde

Stap 8: Apparaat toevoegen aan Apple Home Kit

Apparaat toevoegen aan Apple Home Kit
Apparaat toevoegen aan Apple Home Kit

Als je apparaat eindelijk goed werkt, kan het worden toegevoegd aan Apple Home Kit en kun je zien

sensorwaarden op het Apple-startscherm.

Eerst moet je het apparaat opnieuw opstarten, zodra het apparaat is gestart, gaat het niet in slaap 20 minuten is meer dan genoeg

Open vervolgens de Home Kit-app op uw iOS-apparaat en selecteer of maak een nieuwe Home1. Druk op Toevoegen (+)

2. Selecteer Accessoire toevoegen.

3. Druk op Ik heb geen code of kan niet scannen (verder scannen wordt toegevoegd)

4. als alles goed gaat, zou je je nieuwe esp-apparaat in een lijst moeten zien (zie afbeelding)

5. Selecteer een apparaat en bevestig het toevoegen zonder officiële certificering

6. Typ wachtwoord 11111111

7. Dat alles! U zou moeten zien dat het apparaat succesvol is gekoppeld, anders start u het koppelingsproces opnieuw.

Op basis van deze instelling zie je twee apparaten op de Apple

1. Temp-sensor & Hum-sensor, als je diep gaat, worden de waarden op het volledige scherm weergegeven

2. Lichtsensor:) Eigenlijk kan Apple licht Ambience weergeven, maar geen spanning, daarom wordt de batterijspanning weergegeven in Lux

Stap 9: OTA: Over the Air-updates

Voordat u begint met updaten, is het beter om ESP32 opnieuw op te starten, zoals eerder vermeld, gaat het de eerste 20 minuten niet in slaap

Er zijn twee mogelijkheden om te updaten

  1. Configuratie met behulp van https://192.168.0. XX/browse hebt u toegang tot uw bestandssysteem op ESP en kunt u configuratiebestanden wijzigen
  2. U kunt de firmware volledig updaten. hiervoor moet u eerst een nieuwe aanmaken. Het kan worden gedaan via Arduino of Visual Studio IDE. Typ vervolgens in browser https://192.168.0. XX/update, selecteer uw firmware en druk op update. Wacht tot het proces is voltooid en je antwoord OK krijgt, herhaal anders de stap opnieuw

Aanbevolen: