Taula de continguts:

Estació meteorològica ESP32 Alimentació solar: 9 passos
Estació meteorològica ESP32 Alimentació solar: 9 passos

Vídeo: Estació meteorològica ESP32 Alimentació solar: 9 passos

Vídeo: Estació meteorològica ESP32 Alimentació solar: 9 passos
Vídeo: DIY Solar Powered WiFi Weather Station V3.0 || Monitoring Wind and Rainfall 2024, Desembre
Anonim
Image
Image
Estació meteorològica ESP32 amb energia solar
Estació meteorològica ESP32 amb energia solar
Estació meteorològica ESP32 amb energia solar
Estació meteorològica ESP32 amb energia solar

En aquest tutorial crearem un projecte d'estació meteorològica habilitada per a WiFi.

L'objectiu és dissenyar l'estació meteorològica amb gairebé totes les plomes possibles:

  • Mostra les condicions actuals, el temps, la temperatura, la humitat i la pressió
  • Mostra la previsió per als propers dies
  • Actualització en antena
  • Lloc web integrat per a la configuració i representació de dades
  • Pengeu dades al núvol per obtenir estadístiques de l'historial
  • Integrat amb Aple Home Kit o MQTT
  • Accu indepeded alimentat amb possible recàrrega o connexió a panell solar

No puc afegir més ni més imaginació, què més pot o pot ser

Pas 1: parts necessàries

Parts que es requereixen
Parts que es requereixen
Parts que es requereixen
Parts que es requereixen
Parts que es requereixen
Parts que es requereixen
  • ESP32 (he utilitzat el mòdul dev)
  • LCD TFT de 2,8 "240x320 SPI ILI9341
  • Estoig de plàstic
  • 3 x 18650 Accu
  • Sensor meteorològic BME280 per mesurar la temperatura, la humitat i la pressió
  • Mòdul de carregador de liti USB
  • Pas DC-DC UP18650
  • suport de la bateria (3pc)
  • Detector de moviment HC-SR505
  • Resistència 220 Om
  • 2x resistències de 10 kOm
  • El transistor TIP120 NPN (Darlington) es pot utilitzar qualsevol altre compatible
  • ButtonWires, interruptor, placa de soldadura …

Pas 2: cablejat i muntatge

Cablatge i muntatge
Cablatge i muntatge
Cablatge i muntatge
Cablatge i muntatge
Cablatge i muntatge
Cablatge i muntatge
Cablatge i muntatge
Cablatge i muntatge

El primer pas és el muntatge de les potències de les estacions.

He dividit la caixa de plàstic en dues pares, una d'elles s'utilitza per a la bateria, l'interruptor, el carregador USB i la sortida de CC-CC. Tingueu en compte que el mòdul de carregador USB us ha estat molt fàcil, per tant, he utilitzat placa d'alumini i he posat carregador USB en aquest amb la cola Star 922.

El segon pas és muntar la part dels controladors.

Vegeu el diagrama de cablejat com s’ha de connectar

He utilitzat Bread Board per a aquest propòsit amb els passos següents

  • Taula de desenvolupament de soldadura ESP32
  • Escut de soldadura per mantenir la pantalla TFT
  • Soldar altres components electrònics: BME280, resistències, botons
  • Cablatge de soldadura entre components segons el diagrama

El tercer pas és preparar el muntatge de la taula de pa a la segona part de la caixa de plàstic. He imprès dues barres a la meva impressora 3D, les he muntat a la pissarra mitjançant cargols i faig un tall rectangular per a la pantalla.

Vaig enganxar suports de barres de plàstic al cos de la caixa de plàstic. Ara, quan la cola està seca, la cabina de la taula de pa es desmuntarà mitjançant cargols.

El següent pas és:

  • Cablatge de soldadura per a font d'alimentació
  • Cablatge de soldadura per a l'estat de la tensió de la bateria
  • Detector de moviment de soldadura i muntatge

Pas final:

  • configuració del convertidor CC-CC ajustant el voltatge de sortida 5v
  • connecteu dues parts del controlador d’estació a l’alimentació: cables d’alimentació i lectura de voltatge

Per al detector de moviment i el botó he fet uns forats addicionals a la cara.

Pas 3: càrrega del firmware a ESP32

Per a aquest projecte he utilitzat programari universal, desenvolupat per mi mateix

Feu una ullada a la pàgina de github ESPHomeController. Conté instruccions completes sobre com compilar i configurar.

! Si no esteu familiaritzat amb la compilació i Arduino, feu un cop d'ull: carregueu el microprogramari a punt

Tan bon punt carregueu el firmware per primera vegada, l'ESP32 s'iniciarà en mode de configuració (mode de punt d'accés)

Hauríeu de configurar-los. Amb aquest propòsit obriu a qualsevol llista de dispositius de WiFi disponible. Cerqueu HomeController i connecteu-vos-hi. El portal captiu s'hauria d'iniciar automàticament. Si no, introduïu l'URL del navegador: 192.168.4.1 i veureu la pantalla de configuració

Seguiu les instruccions i configureu les credencials WiFi a la vostra xarxa WiFi.

L’ESP es reiniciarà després com a client WiFi i es connectarà al vostre wifi.

A mesura que es produeixi la connexió sson first, es muntarà automàticament el sistema de fitxers Spiffs i es descarregaran els fitxers necessaris per al portal web:

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

La baixada es produeix des de la carpeta

Ara podeu veure el contingut del fitxer mitjançant el navegador web. per a això, ara hauríeu d'adreça IP del vostre ESP32

El podeu trobar per una de les maneres següents:

  • Utilitzant el monitor de port sèrie per veure registres ESP32
  • Utilitzar qualsevol escàner TCP per escanejar els vostres dispositius de xarxa
  • Premeu un botó a l'estació meteorològica i veureu la informació del sistema

Poseu-lo a navegar https://192.168.0. XX/browse i veureu una llista de fitxers del vostre ESP

(192.168.0. XX és l'adreça IP del vostre dispositiu

Per a l'ajust final, heu de preparar fitxers de configuració.

Pas 4: Càrrega de microprogramari llest

S'està carregant el microprogramari llest
S'està carregant el microprogramari llest

Aquesta secció és especialment per a auditius que no produiran firmware per vosaltres mateixos. Només cal que pengeu el firmware "llest"

1. Descarregueu eines de càrrega flash des d'aquesta pàgina

2. Baixeu els fitxers adjunts (extrets dels arxius) HomeController.bin i bootloader_qio_80m.bin al vostre disc dur

3. Inicieu l'eina de descàrrega ESP32 i introduïu els valors segons la captura de pantalla

4. Premeu Inici

Pas 5: configuració

Abans de començar la preparació de la configuració cal:

  1. Creeu el vostre canal a les coses i la clau del vostre canal. Prepareu 4 camps i anomeneu-los adequadament Temperatura, Humitat, Pressió, Voltatge
  2. Registreu-vos a Weather.com per obtenir la vostra clau API

Calen Thingspeak per penjar les vostres dades i controlar les tendències i els valors

El temps és necessari per obtenir dades de previsió.

D’acord, finalment cal crear un fitxer services.json amb el contingut següent

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

Si us plau, substituïu

  • thingspeakapi amb la vostra tecla api Thingspeak
  • weatherapi amb la vostra tecla api meteorològica
  • geocodi amb la vostra ubicació per a la qual voleu obtenir la previsió

Preparar el segon fitxer triggers.json

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

Els dos fitxers s'han de desplaçar a l'arrel de l'esp.

Podeu fer-ho mitjançant el navegador https://192.168.0. XX/browse, on https://192.168.0. XX és l'adreça IP del vostre dispositiu

Després de carregar l'ESP, s'ha de reiniciar i s'ha fet tot bé. Esp mostrarà la pantalla adequada tal com apareix a la foto i al vídeo de dalt

Pas 6: Sintonització i consum d'energia

Sintonització i consum d'energia
Sintonització i consum d'energia

Estic fent servir el meu dispositiu amb la connexió al panell solar i per estar segur que pot funcionar "infinitament"

el consum d'energia és important i després de diversos experiments he utilitzat dos trucs principals

Reduir el consum del LED de fons de la pantalla TFT

Segons la mesura, menja 15-20 mA (molt), per tant, he utilitzat tàctiques amb detector de moviment. Funciona perfectament amb detectors de moviment capaços de reconèixer qualsevol detecció de fins a 8-10 metres i augmentar la tensió al cable de senyal. Es tracta d'obertures d'un transistor i el LED de fons reben una alimentació. Normalment, el detector manté aquest estat fins a 10 segons, cosa que és suficient per veure el monitor, però si continueu els moviments, el senyal continua sent alt i el LED s’encén.

Aquest enfocament em dóna una gran economia, sense efectes addicionals, no trobo cap problema per veure la meva pantalla quan vulgui

2. Reduïu el consum d'energia mitjançant ESP32

Quan l’ESP està connectat a WiFi, menja constantment entre 7 i 10 mA, parlo de temps constant, no d’inici i primera connexió. Això és acceptable si sempre heu vist la data i l'hora reals i accediu al vostre sistema des del kit casolà d'Apple

Per a la meva energia solar a l’hivern també havia de coincidir amb les obres sense fonts d’energia addicionals, Per tant, vaig decidir posar periòdicament ESP32 al mode de repòs (menjar és inferior a 1 mA). Això és correcte per a mi, per exemple, l'ESP dorm 20 minuts, després de despertar, actualitzar la pantalla (dades reals i previsió) envia dades al thingspeak i torna al mode de repòs

Els menys són:

  • La pantalla del temps mostra valors de temps obsolets
  • No es pot accedir a Station des del navegador ni l’Apple Home Kit durant el temps de repòs

Depèn de vosaltres decidir què és més important; podeu reconfigurar-ho senzillament.

Consulteu el fitxer i la línia services.json

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

"enableleep": true permet dormir en absolut, si es posa allà false o elimina el paràmetre (false és per defecte) l'ESP mai dormirà

"sleepinterval": 900000 això és mil·lis, o 15 min, vol dir que cada 15 min es despertarà ESP i farà personal necessari

Per tant, ara tothom pot jugar fàcilment segons la necessitat

Pas 7: Sintonització dels sensors

Per minimitzar l’impacte de la calefacció interna al sensor de temperatura BME280

Primer vaig fer un tub al voltant del sensor i dels forats. Hovewer en el meu mode quan el LED normalment està apagat i ESP està dormint no és tan important. En altres casos, el sensor BME280 s'ha de moure a algun lloc per excloure la influència de l'escalfament intern. Qualsevol influència petita que he trobat, per tant, hi ha dos paràmetres a compensar

"hum_corr": 10.0

que significa que aquests valors s'afegiran després del mesurament

El segon és calibrar la mesura del voltatge de la bateria, {"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

són per a aquest propòsit, perquè la tensió es mesura després dels divisors de resistències i es compara amb 3,3 V, jugant amb el valor cvalmax es pot arribar a sintonitzar la tensió exacta amb el seu valor multimetr

Pas 8: afegir un dispositiu al kit Apple Home

Addició de dispositiu al kit Apple Home
Addició de dispositiu al kit Apple Home

Finalment, quan el dispositiu funcioni correctament, es pot afegir a Apple Home Kit i podreu veure-ho

valors dels sensors a la pantalla inicial d’Apple.

En primer lloc, heu de reiniciar el dispositiu, ja que el dispositiu es va iniciar, no es posarà a dormir 20 minuts, és més que suficient

Obriu l'aplicació Home Kit al vostre dispositiu iOS i seleccioneu o creeu Home1 nou. Premeu Afegeix (+)

2. Seleccioneu Afegeix accessori.

3. Premeu No tinc codi o No puc escanejar (més endavant s'afegirà l'escaneig)

4. si tot va bé, hauríeu de veure el vostre nou dispositiu esp en una llista (veure imatge)

5. Seleccioneu el dispositiu i confirmeu l'afegit sense certificació oficial

6. Escriviu la contrasenya 11111111

7. Que tot! Hauríeu de veure que el dispositiu s'ha emparellat correctament; en cas contrari, torneu a iniciar el procés de sincronització..

Segons aquesta configuració, veureu dos dispositius a l'Apple

1. Sensor de temperatura i sensor d’humor, aprofundint, mostrarà valors a pantalla completa

2. Sensor de llum:) En realitat, Apple és capaç de mostrar un ambient lleuger, però no tensió, per tant, el voltatge de la bateria es mostra a Lux

Pas 9: OTA: actualitzacions a través de l'aire

Abans de començar qualsevol actualització, és millor reiniciar ESP32, com ja s'ha dit, no s'endormirà els primers 20 minuts

Hi ha dues possibilitats per actualitzar

  1. Configuració mitjançant https://192.168.0. XX/browse podeu accedir al vostre sistema de fitxers a ESP i canviar els fitxers de configuració
  2. Podeu actualitzar completament el firmware. per a això, primer cal crear-ne un de nou. Es pot fer mitjançant Arduino o Visual Studio IDE. A continuació, escriviu el navegador https://192.168.0. XX/update, seleccioneu el firmware i premeu Actualitza. Espereu fins que s'acabi el procés i obtindreu la resposta OK, en cas contrari repetiu el pas de nou

Recomanat: