Inhoudsopgave:
- Stap 1: Onderdelen die nodig zijn
- Stap 2: Bedrading en montage
- Stap 3: Firmware uploaden naar ESP32
- Stap 4: Klaar firmware uploaden
- Stap 5: Configuratie
- Stap 6: Tuning en stroomverbruik
- Stap 7: Sensoren afstemmen
- Stap 8: Apparaat toevoegen aan Apple Home Kit
- Stap 9: OTA: Over the Air-updates
Video: ESP32 weerstation op zonne-energie - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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
- 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
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
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:
- Maak je kanaal op de thingspeak en de sleutel voor je kanaal. Bereid 4 velden voor en noem ze correct Temperatuur, Vochtigheid, Druk, Spanning
- 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
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
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
- Configuratie met behulp van https://192.168.0. XX/browse hebt u toegang tot uw bestandssysteem op ESP en kunt u configuratiebestanden wijzigen
- 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:
Modulair zonne-weerstation: 5 stappen (met afbeeldingen)
Modulair zonne-weerstation: Een van de projecten die ik al een tijdje wilde bouwen, was een modulair weerstation. Modulair in de zin dat we de gewenste sensoren kunnen toevoegen door gewoon de software te wijzigen. Het modulaire weerstation is in drie delen verdeeld. Het moederbord heeft de W
ESP32 Weathercloud-weerstation: 16 stappen (met afbeeldingen)
ESP32 Weathercloud Weather Station: Vorig jaar publiceerde ik mijn grootste Instructable tot nu toe genaamd Arduino Weathercloud Weather Station. Het was erg populair zou ik zeggen. Het was te zien op de Instructables-homepage, Arduino-blog, Wiznet-museum, Instructables Instagram, Arduino Instagr
Verbonden weerstation met ESP32: 3 stappen
Verbonden weerstation met ESP32: in deze tutorial leer je hoe je een weerstation instelt op basis van ESP32 en hoe je de meetwaarden op afstand kunt volgen, zowel via de Blynk-app als via een website
Zonne-weerstation: 5 stappen
Zonne-weerstation: heb je ooit realtime weersinformatie uit je achtertuin willen hebben? Nu zou je een weerstation in de winkel kunnen kopen, maar die hebben meestal batterijen nodig of moeten op een stopcontact worden aangesloten. Dit weerstation hoeft niet aangesloten te worden op de
ESP32 zonne-weerstation: 4 stappen (met afbeeldingen)
ESP32 Solar Weather Station: voor mijn eerste IoT-project wilde ik een weerstation bouwen en de gegevens naar data.sparkfun.com sturen. Kleine correctie, toen ik besloot mijn account in Sparkfun te openen, accepteerden ze geen verbindingen meer, dus ik kies een andere IoT-gegevensverzamelaar d