Sisällysluettelo:

ESP32 -sääasema aurinkovoimalla: 9 vaihetta
ESP32 -sääasema aurinkovoimalla: 9 vaihetta

Video: ESP32 -sääasema aurinkovoimalla: 9 vaihetta

Video: ESP32 -sääasema aurinkovoimalla: 9 vaihetta
Video: Arskan uuden version esittely; perusasetukset ja sääntöjen luonti sääntöpohjien avulla 2024, Kesäkuu
Anonim
Image
Image
ESP32 -sääasema aurinkovoimalla
ESP32 -sääasema aurinkovoimalla
ESP32 -sääasema aurinkovoimalla
ESP32 -sääasema aurinkovoimalla

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

Tarvittavat osat
Tarvittavat osat
Tarvittavat osat
Tarvittavat osat
Tarvittavat osat
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

Johdotus ja kokoonpano
Johdotus ja kokoonpano
Johdotus ja kokoonpano
Johdotus ja kokoonpano
Johdotus ja kokoonpano
Johdotus ja kokoonpano
Johdotus ja kokoonpano
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

Valmiiden laiteohjelmistojen lataaminen
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:

  1. Luo kanavasi kanavasi asioista ja avaimista. Valmista 4 kenttää ja nimeä ne oikein Lämpötila, Kosteus, Paine, Jännite
  2. 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

Tunning ja virrankulutus
Tunning 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

Laitteen lisääminen Apple Home Kitiin
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

  1. Konfigurointi käyttämällä https://192.168.0. XX/browsea voit käyttää tiedostojärjestelmääsi ESP: llä ja muuttaa kokoonpanotiedostoja
  2. 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: