INHOUDSOPGAWE:

ESP32 Weerstasie Sonkrag: 9 stappe
ESP32 Weerstasie Sonkrag: 9 stappe

Video: ESP32 Weerstasie Sonkrag: 9 stappe

Video: ESP32 Weerstasie Sonkrag: 9 stappe
Video: Solar Tracker Circuit !! 2024, Junie
Anonim
Image
Image
ESP32 Weerstasie Sonkrag
ESP32 Weerstasie Sonkrag
ESP32 Weerstasie Sonkrag
ESP32 Weerstasie Sonkrag

In hierdie tutoriaal gaan ons 'n WiFi -weerstasieprojek bou.

Die doelwit is om die weerstasie met byna alle moontlike velle te ontwerp:

  • Toon huidige toestande, tyd, temperatuur, humiditeit, druk
  • Wys die weervoorspelling vir die volgende dae
  • Opdatering op die lug
  • Ingeboude webwerf vir konfigurasie en data -voorstelling
  • Laai data na die wolk vir geskiedenisstatistieke
  • Geïntegreer met Aple Home Kit of MQTT
  • Onafhanklike Accu aangedryf met moontlike herlaai of koppel aan sonpaneel

Ek kan nie meer en nie meer verbeelding byvoeg wat nog moet of kan wees nie

Stap 1: Onderdele wat benodig word

Onderdele wat benodig word
Onderdele wat benodig word
Onderdele wat benodig word
Onderdele wat benodig word
Onderdele wat benodig word
Onderdele wat benodig word
  • ESP32 (ek het dev module gebruik)
  • 2.8 "240x320 TFT LCD SPI ILI9341
  • Plastiekkas
  • 3 x 18650 Akk
  • Weersensor BME280 om temperatuur, humiditeit en druk te meet
  • USB litium laaier module
  • DC-DC stap UP18650
  • batteryhouer (3 stuks)
  • Bewegingsmelder HC-SR505
  • 220 Om weerstand
  • 2x 10 kOm weerstande
  • TIP120 NPN transistor (Darlington) kan enige ander versoenbare gebruik word
  • Knopdrade, skakelaar, soldeerbord ….

Stap 2: Bedrading en montering

Bedrading en montering
Bedrading en montering
Bedrading en montering
Bedrading en montering
Bedrading en montering
Bedrading en montering
Bedrading en montering
Bedrading en montering

Die eerste stap is die samestelling van stasiekragte.

Ek het die plastiekkas op twee pars verdeel, een daarvan vir battery, skakelaar, USB-laaier en DC-DC stap uit. In hierdie deel sit ek die batteryhouer en maak vensters vir die skakelaar en usb-laaier. Wees bewus van die USB -laadmodule, daarom het ek 'n alluminiumplaat gebruik en 'n USB -laaier daarop gesit met Star 922 -gom.

Tweede stap is die samestelling van beheerders.

Sien die bedradingsdiagram hoe dit verbind moet word

Ek het broodbord vir hierdie doel gebruik met die volgende stappe

  • Soldeer ESP32 dev board
  • Soldeerskerm om TFT -skerm te behou
  • Soldeer ander elektroniese komponente: BME280, weerstande, knoppies
  • Bedrading van soldeersel tussen komponente volgens diagram

Die derde stap is die voorbereiding van die montering van die broodbord op die tweede deel van die plastiekkas. Ek het twee stawe op my 3d -drukker gedruk, dit met skroewe op die bord geplaas en 'n reghoekige sny vir die skerm gemaak.

Ek het plastiekstawe aan die liggaam van plastiekhouers vasgeplak. As die gom nou droog is, word die broodbordkajuit met skroewe losgemaak.

Volgende stap is:

  • Soldeerbedrading vir kragbron
  • Soldeerkabels vir die batteryspanningstatus
  • Bewegingsdetektor vir soldeer en monteer

Laaste stap:

  • stel DC-DC-omskakelaar op deur die uitsetspanning 5v te versterk
  • verbind twee dele van die stasiebeheerder met die krag: kragdrade en spanningslesing

Vir die bewegingsmelder en knoppie het ek 'n ekstra gaatjie aan die voorkant gemaak.

Stap 3: Laai firmware op na ESP32

Vir hierdie projek het ek universele sagteware gebruik, wat ek self ontwikkel het

Kyk gerus na die github -bladsy ESPHomeController. Dit bevat volledige instruksies oor hoe om op te stel en op te stel.

! As u nie vertroud is met die opstel en Arduino nie, kyk dan na die oplaai van klaargemaakte firmware

Sodra u die eerste keer firmware oplaai, begin die ESP32 in die konfigurasiemodus (toegangspuntmodus)

U moet dit instel. Maak vir hierdie doel 'n lys met beskikbare WiFi -toestelle oop. Soek HomeController en maak 'n verbinding daarmee. Gevange portaal moet outomaties begin. As dit nie die URL van u blaaier is nie, voer 192.168.4.1 in, en u sal die konfigurasie skerm sien

Volg die instruksies en stel WiFi -geloofsbriewe in op u WiFi -netwerk.

Die ESP begin daarna weer as WiFi -kliënt en maak verbinding met u Wifi.

Namate die verbinding met sson firts plaasvind, word die Spiffs -lêerstelsel outomaties geïnstalleer en die nodige lêers vir die webportaal afgelaai:

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

Aflaai vind plaas vanaf die gids

Nou kan u lêerinhoud via die webblaaier sien. hiervoor moet u nou die IP -adres van u ESP32

U kan dit op een van die volgende maniere vind:

  • Gebruik die seriële poortmonitor om 'n ESP32 -logboek te sien
  • Gebruik enige tcp -skandeerder om u netwerktoestelle te skandeer
  • Druk 'n knoppie op die weerstasie en u sien stelselinligting

Gaan na https://192.168.0. XX/browse en u sien 'n lys met lêers van u ESP

(192.168.0. XX is die IP -adres van u toestel

Vir die finale stemming moet u konfigurasie lêers voorberei.

Stap 4: Laai gereed Firmware op

Laai gereed Firmware op
Laai gereed Firmware op

Hierdie afdeling is spesiaal vir ouditiewe mense wat nie self firmware wil vervaardig nie. U hoef net 'gereed' firmware op te laai

1. Laai flitsoplaai -instrumente vanaf hierdie bladsy af

2. Laai aangehegte (uittreksel uit argiewe) lêers HomeController.bin en bootloader_qio_80m.bin op u hardeskyf af

3. Begin ESP32 -aflaaihulpmiddel en voer waardes in volgens skermkiekie

4. Druk begin

Stap 5: Konfigurasie

Voordat u met die voorbereiding van die konfigurasie begin, benodig u:

  1. Skep u kanaal op die dingetoon en sleutel vir u kanaal. Berei vier veld voor en noem dit behoorlik temperatuur, humiditeit, druk, spanning
  2. Registreer op Weather.com om u api -sleutel te bekom

Thingspeak is nodig om u data op te laai en tendense en waardes te monitor

Weer is nodig om voorspellingsdata te kry.

Ok, uiteindelik moet u services.json -lêer met die volgende inhoud skep

[{"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", "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 asseblief

  • thingspeakapi met u thingspeak api -sleutel
  • weatherapi met u weer -api -sleutel
  • geokode met u ligging waarvoor u voorspelling wil verkry

Dan berei die tweede lêer triggers.json voor

[{"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}]

Beide lêers moet na die wortel van esp.

U kan dit doen via die blaaier https://192.168.0. XX/browse, waar https://192.168.0. XX die IP -adres van u toestel is

Na die oplaai moet die ESP weer begin word en alles is reg gedoen. Esp sal die regte skerm wys soos op die foto en video hierbo

Stap 6: Tunning en kragverbruik

Slank en kragverbruik
Slank en kragverbruik

Ek gebruik my toestel met die verbinding met die sonpaneel en om seker te wees dat dit 'oneindig' kan werk

kragverbruik is belangrik, en na 'n paar eksperimente het ek twee belangrike truuks gebruik

Verminder die verbruik van die agtergrond -LED van die TFT -skerm

Volgens meting eet dit 15-20 mA (baie), daarom gebruik ek taktiek met 'n bewegingsdetektor. Dit werk perfek Bewegingsdetektore wat enige opsporing tot 8-10 meter kan herken en spanning op die seinkabel kan verhoog. Dit is openinge wat 'n transistor en LED in die agtergrond ontvang. Gewoonlik hou die detektor hierdie toestand tot 10 sekondes, wat meer as genoeg is om die monitor te sien, maar as u voortgaan met bewegings, is die sein steeds hoog en die LED beligting.

Hierdie benadering gee my 'n groot ekonomie, sonder bykomende gevolge; ek het geen probleme om my skerm te sien as ek wil nie

2. Verminder kragverbruik met ESP32

As ESP aan WiFi gekoppel is, eet dit voortdurend 7-10 mA, ek praat van konstante tyd, nie opstart en eerste verbinding nie. Dit kan aanvaarbaar wees as u altyd die werklike datum en tyd sien, toegang tot u stelsel verkry vanaf die Apple Home Kit

Vir my sonkrag, ook in die winter, moes dit by werke aansluit sonder addisionele kragbronne, Daarom het ek besluit om ESP32 periodiek in die slaapmodus te plaas (eet is minder as 1 mA). Dit is vir my ok, byvoorbeeld, ESP slaap 20 minute, as om wakker te word, verfris skerm (werklike data en voorspelling) stuur data na die dingespiek en keer weer terug na die slaapmodus

Minusse is:

  • Weerskerm vertoon verouderde tydwaardes
  • Die stasie is nie toeganklik vanaf die blaaier en Apple Home Kit gedurende die slaaptyd nie

Dit is aan u om te besluit wat die belangrikste is; u kan dit eenvoudig herkonfigureer.

Kyk na die services.json -lêer en -reël

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

"maak slaap": waar maak slaap moontlik, as dit vals gestel word of paramater verwyder word (vals is standaard) sal ESP nooit slaap nie

"slaapinterval": 900000, dit is millis, of 15 minute, beteken dat elke 15 minute ESP wakker word en die nodige personeel doen

Dus, nou kan almal maklik speel volgens die nodigheid

Stap 7: Sensors tuning

Om die impak van interne verwarming op BME280 temperatuursensor tot 'n minimum te beperk

Ek het 'n buis om die sensor en gate gemaak. Hovewer in my modus as LED normaalweg af is en ESP slaap, is nie so belangrik nie. In ander gevalle moet die BME280 -sensor êrens heen beweeg om die invloed van interne verwarming uit te sluit. Hoe klein ek ook al gevind het, is daar twee parameters om te vergoed

"hum_corr": 10.0

Dit beteken dat die waardes bygevoeg sal word na meting

Tweedens is die kalibrasie van die batteryspanningmeting, {"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

word vir hierdie doeleindes, omdat die spanning na die weerstandsverdelers gemeet word en in vergelyking met 3,3 V, as u met die cvalmax -waarde speel, kan u die presiese spanningsafstemming bereik met u multimetriewaarde

Stap 8: Voeg toestel by Apple Home Kit

Voeg toestel by Apple Home Kit
Voeg toestel by Apple Home Kit

Uiteindelik, as u toestel behoorlik werk, kan dit by die Apple Home Kit gevoeg word, en u kan dit sien

sensors waardes op die Apple -tuisskerm.

Eerstens moet u die toestel herlaai, aangesien dit eers 20 minute aan die slaap geraak het toe die toestel begin het

Maak dan die Home Kit -app op u iOS -toestel oop en kies of skep 'n nuwe Home1. Druk Voeg (+)

2. Kies Voeg bykomstigheid by.

3. Druk Ek het nie 'n kode of kan nie skandeer nie (verder word skandering bygevoeg)

4. As alles goed gaan, moet u u nuwe esp -toestel in 'n lys sien (sien prentjie)

5. Kies die toestel en bevestig die toevoeging sonder amptelike sertifisering

6. Tik wagwoord 11111111

7. Dit alles! U behoort die toestel suksesvol gekoppel te sien, anders begin u die koppelingsproses weer.

Op grond van die instelling, sal u twee toestelle op die Apple sien

1. Temp sensor & Hum sensor, diep gaan dit waardes op volle skerm vertoon

2. Lichtsensor:) Eintlik kan Apple ligte atmosfeer toon, maar nie spanning nie, daarom word die batteryspanning in Lux vertoon

Stap 9: OTA: opdaterings oor die lug

Voor die aanvang van 'n opdatering is dit beter om ESP32 weer te begin, soos voorheen genoem, dit sal nie die eerste 20 minute gaan slaap nie

Daar is twee moontlikhede om by te werk

  1. Konfigurasie met behulp van https://192.168.0. XX/browse, u het toegang tot u lêerstelsel op ESP en konfigurasielêers verander
  2. U kan die firmware volledig opdateer. Vir hierdie doeleindes moet u eers 'n nuwe een skep. Dit kan gedoen word via Arduino of Visual Studio IDE. Tik dan die blaaier https://192.168.0. XX/update in, kies u firmware en druk op update. Wag totdat die proses afgehandel is, en u sal die antwoord kry, anders herhaal stap weer

Aanbeveel: