Sisällysluettelo:
- Vaihe 1: Tarvittavat osat
- Vaihe 2: Johdotus ja kokoonpano
- Vaihe 3: Laiteohjelmiston lataaminen ESP32 -järjestelmään
- Vaihe 4: Valmiiden laiteohjelmistojen lataaminen
- Vaihe 5: Määritykset
- Vaihe 6: Viritys ja virrankulutus
- Vaihe 7: Anturien viritys
- Vaihe 8: Laitteen lisääminen Apple Home Kitiin
- Vaihe 9: OTA: Over the Air -päivitykset
Video: ESP32 -sääasema aurinkovoimalla: 9 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Tässä opetusohjelmassa aiomme rakentaa WiFi -yhteensopivan sääasemaprojektin.
Tavoitteena on suunnitella sääasema, jossa on lähes kaikki mahdolliset ominaisuudet:
- Näytä nykyiset olosuhteet, aika, lämpötila, kosteus, paine
- Näytä ennuste seuraaville päiville
- Päivitys ilmassa
- Sisäänrakennettu verkkosivusto kokoonpanoa ja tietojen esittelyä varten
- Lataa tiedot pilveen historiatietoja varten
- Integroitu Aple Home Kitin tai MQTT: n kanssa
- Sisäänrakennettu Accu -virtalähde ja mahdollinen lataus tai liitäntä aurinkopaneeliin
En voi lisätä enempää enkä mielikuvitusta, mitä muuta pitää tai voi olla
Vaihe 1: Tarvittavat osat
- ESP32 (olen käyttänyt dev -moduulia)
- 2,8 "240 x 320 TFT LCD SPI ILI9341
- Muovikotelo
- 3 x 18650 Accu
- Sääanturi BME280 lämpötilan, kosteuden ja paineen mittaamiseen
- USB -litiumlaturimoduuli
- DC-DC-askel UP18650
- paristopidike (3kpl)
- HC-SR505 Liiketunnistin
- 220 Om vastus
- 2x 10 kOm vastukset
- TIP120 NPN -transistoria (Darlington) voidaan käyttää minkä tahansa muun yhteensopivan kanssa
- PainikkeetJohdot, kytkin, juotoskortti….
Vaihe 2: Johdotus ja kokoonpano
Ensimmäinen askel on asemavaltuuksien kokoaminen.
Olen jakanut muovikotelon kahteen palkkiin, joista toista käytetään akussa, kytkimessä, USB-laturissa ja DC-DC-askeleessa. Tähän osaan laitan akun pidikkeen ja teen ikkunat kytkimelle ja USB-laturille. Huomaa, että usb -laturimoduuli on melko pitkä, joten olen käyttänyt allumiinilevyä ja laittanut USB -laturin tähän Star 922 -liimalla.
Toinen vaihe on ohjainten kokoaminen.
Katso kytkentäkaavio, miten se tulee kytkeä
Olen käyttänyt leipätaulua tähän tarkoitukseen seuraavien vaiheiden avulla
- Juotos ESP32 -kehityskortti
- Juotosuoja TFT -näytön pitämiseksi
- Muiden elektronisten komponenttien juottaminen: BME280, vastukset, painikkeet
- Juotosjohdotus komponenttien välillä kaavion mukaisesti
Kolmas vaihe on valmistella leipälevyn asennus muovikotelon toiseen osaan. Olen tulostanut 3D -tulostimelleni kaksi palkkia, kiinnittänyt ne jalostuslevylle ruuveilla ja tehnyt suorakaiteen muotoisen leikkauksen näyttöruudulle.
Liimasin muovitankojen tuet muovikotelon runkoon. Kun liima on kuivaa, irrota leipälevyn ohjaamo ruuveilla.
Seuraava vaihe on:
- Juotosjohdot virtalähteelle
- Juotosjohdotus akun jännitetilalle
- Juotos- ja kiinnitystunnistin
Viimeinen vaihe:
- aseta DC-DC-muunnin tunneloimalla lähtöjännite 5v
- kytke kaksi asemaohjaimen osaa virtalähteeseen: virtajohdot ja jännitteen lukema
Liiketunnistimelle ja painikkeelle olen tehnyt ylimääräisiä reikiä etupuolelle.
Vaihe 3: Laiteohjelmiston lataaminen ESP32 -järjestelmään
Tässä projektissa olen käyttänyt universaaleja ohjelmistoja, jotka olen itse kehittänyt
Katsokaa github -sivua ESPHomeController. Tämä sisältää täydelliset ohjeet kääntämisestä ja asennuksesta.
! Jos et tunne kokoamista ja Arduinoa, katso vaihe Lataa valmis laiteohjelmisto
Heti kun lataat laiteohjelmiston ensimmäisen kerran, ESP32 käynnistyy kokoonpanotilassa (tukiasematila)
Sinun pitäisi määrittää ne. Avaa tätä varten missä tahansa käytettävissä olevien WiFi -laitteiden luettelossa. Etsi HomeController ja muodosta yhteys siihen. Vankeusportaalin pitäisi käynnistyä automaattisesti. Jos et, kirjoita selaimesi URL -osoite: 192.168.4.1 ja näet määritysnäytön
Noudata ohjeita ja määritä WiFi -kirjautumistiedot WiFi -verkkoon.
ESP käynnistyy sen jälkeen uudelleen WiFi -asiakkaana ja muodostaa yhteyden Wifi -verkkoon.
Kun sson firts -yhteys tapahtuu, se asentaa automaattisesti Spiffs -tiedostojärjestelmän ja lataa tarvittavat tiedostot verkkoportaalia varten:
- index.html
- filebrowse.html
- js/bundle.min.js.gz
Lataus tapahtuu https://github.com/Yurik72/ESPHomeController/tree/… -kansiosta
Nyt voit nähdä tiedoston sisällön verkkoselaimen kautta. tätä varten sinun pitäisi nyt ip -osoite ESP32
Löydät sen jollakin seuraavista tavoista:
- Sarjaporttimonitorin käyttäminen ESP32 -lokien katseluun
- Käytä mitä tahansa tcp -skanneria verkkolaitteiden skannaamiseen
- Paina sääaseman painiketta ja näet järjestelmätiedot
Laita selaamaan https://192.168.0. XX/browse ja näet ESP -tiedostoluettelon
(192.168.0. XX on laitteesi IP -osoite
Lopullista viritystä varten sinun on valmisteltava kokoonpanotiedostot.
Vaihe 4: Valmiiden laiteohjelmistojen lataaminen
Tämä osio on tarkoitettu erityisesti kuulijoille, jotka eivät aio tuottaa laiteohjelmistoa itse. Sinun tarvitsee vain ladata "valmis" laiteohjelmisto
1. Lataa flash -lataustyökalut tältä sivulta
2. Lataa liitetyt (ote arkistosta) tiedostot HomeController.bin ja bootloader_qio_80m.bin kiintolevyllesi
3. Käynnistä ESP32 -lataustyökalu ja anna arvot kuvakaappauksen mukaan
4. Paina käynnistyspainiketta
Vaihe 5: Määritykset
Ennen kokoonpanon valmistelun aloittamista tarvitset:
- Luo kanavasi kanavasi asioista ja avaimista. Valmista 4 kenttää ja nimeä ne oikein Lämpötila, Kosteus, Paine, Jännite
- Rekisteröidy Weather.com -sivustoon saadaksesi api -avaimesi
Thingspeakia tarvitaan tietojen lataamiseen ja trendien ja arvojen seuraamiseen
Säätiedot ovat välttämättömiä ennustetietojen saamiseksi.
Ok, lopulta sinun on luotava services.json -tiedosto, jossa on seuraava sisältö
[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," sleepptype ": 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 = fi -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 "}, {" käytössä ": true," interval ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," nastat ": [27]}]
Vaihda
- thingspeakapi kanssa thingspeak -api -avaimesi
- weatherapi sää -api -avaimellasi
- geokoodi sijaintisi kanssa, jolle haluat saada ennusteen
Valmistele toinen tiedosto triggers.json
[{"type": "BMEToWeatherDisplay", "source": "BME", "määränpää": "WeatherDisplay"}, {"type": "TimeToWeatherDisplay", "source": "Time", "destination": "WeatherDisplay "}, {" type ":" WeatherForecastToWeatherDisplay "," source ":" WeatherForecast "," määränpää ":" WeatherDisplay "}, {" type ":" BMEToThingSpeak "," source ":" BME "," destination ": "ThingSpeak", "t_ch": 1, "h_ch": 2, "p_ch": 3}, {"type": "ButtonToWeatherDisplay", "source": "Button", "määränpää": "WeatherDisplay"}, { "type": "LDRToThingSpeak", "source": "LDR", "määränpää": "ThingSpeak", "ch": 4}]
Molemmat tiedostot on ladattava esp -juurelle.
Voit tehdä tämän selaimen kautta https://192.168.0. XX/browse, jossa https://192.168.0. XX on laitteesi IP -osoite
Lataamisen jälkeen ESP on käynnistettävä uudelleen ja kaikki on tehty oikein. Esp näyttää oikean näytön, kuten yllä olevassa valokuvassa ja videossa
Vaihe 6: Viritys ja virrankulutus
Käytän laitettani aurinkopaneeliliitännällä ja varmistaakseni, että se voi toimia "loputtomasti"
virrankulutus on tärkeää ja useiden kokeilujen jälkeen olen käyttänyt kahta suurta temppua
Vähennä TFT -näytön taustavalon kulutusta
Mittauksen mukaan se syö 15-20 mA (paljon), joten olen käyttänyt taktiikkaa liiketunnistimen kanssa. Se toimii täydellisesti. Tämä on aukkoja, joissa transistori ja taustamuotoiset LEDit saavat virran. Yleensä ilmaisin pitää tämän tilan jopa 10 sekunnissa, mikä on enemmän kuin tarpeeksi nähdäksesi näytön, mutta jos jatkat liikkeitä, signaali on edelleen korkea ja LED palaa.
Tällainen lähestymistapa antaa minulle suuren talouden ilman lisävaikutuksia, en tapaa mitään ongelmia nähdäkseni näyttöäni milloin haluan
2. Vähennä virrankulutusta ESP32: lla
Kun ESP on kytketty WiFi-verkkoon, se syö jatkuvasti 7-10 mA, puhun vakioajasta, ei käynnistyksestä ja ensimmäisestä yhteydestä. Tämä voidaan hyväksyä, jos olet aina nähnyt todellisen päivämäärän ja kellonajan, päästä järjestelmään Applen kotisarjasta
Myös aurinkovoimallani talvella se vastasi töitä ilman lisävirtalähteitä, Siksi päätin laittaa ESP32: n ajoittain lepotilaan (syöminen on alle 1 mA). Tämä on ok minulle, esimerkiksi ESP nukkuu 20 minuuttia, kuin herää, päivitä näyttö (todelliset tiedot ja ennuste) lähettää tiedot puhekielelle ja takaisin lepotilaan
Miinukset ovat:
- Säänäyttö näyttää vanhentuneet aika -arvot
- Asemaa ei voi käyttää selaimesta ja Apple Home Kitistä lepotilan aikana
Sinun on päätettävä, mikä on tärkeämpää, voit yksinkertaisesti määrittää sen uudelleen.
Katso services.json -tiedosto ja rivi
[{"service": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," enableleep ": true," sleepptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}
"enableleep": true mahdollistaa nukkumisen kokonaan, jos se asetetaan väärin tai poistetaan parametri (false on oletus) ESP ei koskaan nuku
"uniaika": 900000 tämä on millis tai 15 min, tarkoittaa joka 15 min ESP herää ja tekee tarvittavaa henkilökuntaa
Joten nyt jokainen voi helposti pelata tarpeen mukaan
Vaihe 7: Anturien viritys
Sisäisen lämmityksen vaikutuksen minimoimiseksi BME280 -lämpötila -anturiin
Firts Tein putken anturin ja reikien ympärille. Hovewer tilassa, kun LED on normaalisti sammutettu ja ESP nukkuu, ei ole niin tärkeä. Muissa tapauksissa BME280 -anturin pitäisi liikkua jonnekin, jotta sisäinen lämmitys ei vaikuta siihen. Kuinka pieni vaikutus havaitsin, joten on kaksi parametria kompensoitavaksi
"hum_corr": 10.0
eli nämä arvot lisätään mittauksen jälkeen
Toinen on kalibroida akun jännitteen mittaus, {"käytössä": "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
ovat tätä tarkoitusta varten, koska jännite mitataan vastusten jakajien jälkeen ja verrataan 3,3 V: een, kun pelaat cvalmax -arvolla, voit saavuttaa tarkan jännitteen virityksen multimetriarvolla
Vaihe 8: Laitteen lisääminen Apple Home Kitiin
Lopuksi, kun laitteesi toimii oikein, se voidaan lisätä Apple Home Kitiin ja näet
anturien arvot Applen aloitusnäytössä.
Ensin sinun on käynnistettävä laite uudelleen, sillä heti kun laite käynnistettiin, se ei mene nukkumaan 20 minuuttia on enemmän kuin tarpeeksi
Avaa sitten Home Kit -sovellus iOS -laitteellasi ja valitse tai luo uusi Home1. Paina Lisää (+)
2. Valitse Lisää lisävaruste.
3. Paina Minulla ei ole koodia tai En voi skannata (lisää skannauksesta lisätään)
4. jos kaikki menee hyvin, sinun pitäisi nähdä uusi esp -laitteesi luettelossa (katso kuva)
5. Valitse laite ja vahvista lisääminen ilman virallista sertifiointia
6. Kirjoita salasana 11111111
7. Se kaikki! Sinun pitäisi nähdä, että laite on pariliitetty onnistuneesti, muutoin aloita pariliitos uudelleen.
Thid -asetuksen perusteella näet kaksi laitetta Applella
1. Lämpötila -anturi ja hum -anturi, syvälle meneminen näyttää arvot koko näytöllä
2. Valoanturi:) Itse asiassa Apple pystyy näyttämään kevyen ympäristön, mutta ei jännitettä, joten akun jännite näkyy Luxissa
Vaihe 9: OTA: Over the Air -päivitykset
Ennen päivityksen aloittamista on parempi käynnistää ESP32 uudelleen, kuten aiemmin mainittiin, se ei mene nukkumaan ensimmäisten 20 minuutin aikana
Päivitykseen on kaksi mahdollisuutta
- Konfigurointi käyttämällä https://192.168.0. XX/browsea voit käyttää tiedostojärjestelmääsi ESP: llä ja muuttaa kokoonpanotiedostoja
- Voit päivittää laiteohjelmiston kokonaan. tätä varten sinun on ensin luotava uusi. Se voidaan tehdä Arduinon tai Visual Studio IDE: n kautta. Kirjoita sitten selaimeen https://192.168.0. XX/update, valitse laiteohjelmisto ja paina päivitä. Odota, kunnes prosessi on valmis, ja saat vastauksen OK. Muussa tapauksessa toista vaihe uudelleen
Suositeltava:
Akkukäyttöiset LED -valot aurinkovoimalla: 11 vaihetta (kuvien kanssa)
Paristokäyttöiset LED -valot aurinkoenergialla: Vaimoni opettaa ihmisiä saippuan valmistukseen, useimmat hänen luokistaan olivat illalla ja täällä talvella pimenee noin klo 16.30, joillakin hänen oppilaistaan oli vaikeuksia löytää talo. Meillä oli kyltti edessä, mutta jopa katuvalolla
Aurinkovoimalla toimiva valaistu terraario: 15 vaihetta (kuvilla)
Solar Powered Light-Up Terrarium: K: Mitä saat, kun ylität yövalon leikekirjan kanssa? . Se kuvaa mökkiä, jonka poikaystäväni ja minä vuokrasimme las
Sähkömoottori aurinkovoimalla: 3 vaihetta
Sähkömoottori aurinkovoimalla: Tavoite: rakentaa yksinkertainen sähkömoottori, joka käyttää mini -aurinkopaneeleja - nopea käyttäen vain muutamia komponentteja: liukuva pyörivä rauta vähemmän, kelarauta vähemmän, ruoko -kytkin, 3 neodyymimagneettilevyä, tehostustehostin (VALINNAINEN) , mini aurinkopaneelit
Aurinkovoimalla toimiva turva -anturi: 4 vaihetta
Aurinkovoimalla toimiva turvatunnistin: Tässä yksinkertaisessa ja edullisessa turvatunnistimessa on muutamia merkittäviä ominaisuuksia, jotka saattavat kiinnostaa harrastajia: Aurinkokäyttöinen pienellä aurinkokennolla ladattavalla litiumakun latauspiirillä voidaan saada virtaa USB -kaapelilla ensimmäistä latausta tai akkua varten
Aurinkovoimalla toimiva LED -pysäköintianturi: 8 vaihetta (kuvilla)
Aurinkovoimalla toimiva LED -pysäköintianturi: Autotallissamme ei ole paljon syvyyttä, ja sen lopussa on kaapit, jotka vähentävät syvyyttä entisestään. Vaimoni auto on vain tarpeeksi lyhyt sopimaan, mutta se on lähellä. Tein tämän anturin yksinkertaistamaan pysäköintiprosessia ja varmistamaan, että auto oli täynnä