Sommario:

Stazione meteorologica ESP32 ad energia solare: 9 passaggi
Stazione meteorologica ESP32 ad energia solare: 9 passaggi

Video: Stazione meteorologica ESP32 ad energia solare: 9 passaggi

Video: Stazione meteorologica ESP32 ad energia solare: 9 passaggi
Video: ECOWITT GW1101: stazione meteorologica integrabile HOME ASSISTANT 2024, Dicembre
Anonim
Image
Image
ESP32 Stazione meteorologica ad energia solare
ESP32 Stazione meteorologica ad energia solare
ESP32 Stazione meteorologica ad energia solare
ESP32 Stazione meteorologica ad energia solare

In questo tutorial costruiremo un progetto di stazione meteorologica abilitata per WiFi.

L'obiettivo è progettare una stazione meteorologica con quasi tutte le caratteristiche possibili:

  • Mostra le condizioni attuali, l'ora, la temperatura, l'umidità, la pressione
  • Mostra previsioni per i prossimi giorni
  • Aggiornamento in onda
  • Sito web integrato per la configurazione e la rappresentazione dei dati
  • Carica i dati nel cloud per le statistiche della cronologia
  • Integrato con Aple Home Kit o MQTT
  • Accumulatore autonomo con eventuale ricarica o collegamento a pannello solare

Non posso aggiungere altro e non più fantasia cos'altro deve o può essere

Passaggio 1: parti necessarie

Parti che sono necessarie
Parti che sono necessarie
Parti che sono necessarie
Parti che sono necessarie
Parti che sono necessarie
Parti che sono necessarie
  • ESP32 (ho usato il modulo di sviluppo)
  • LCD TFT da 2,8" 240x320 SPI ILI9341
  • Contenitore di plastica
  • 3 x 18650 Accu
  • Sensore meteorologico BME280 per misurare temperatura, umidità e pressione
  • Modulo caricabatterie al litio USB
  • Passo DC-DC UP18650
  • portabatterie (3pz)
  • HC-SR505 Rilevatore di movimento
  • Resistenza da 220 Om
  • 2 resistenze da 10 kOm
  • Il transistor NPN TIP120 (Darlington) può essere utilizzato con qualsiasi altro compatibile
  • ButtonWires, interruttore, scheda di saldatura….

Passaggio 2: cablaggio e assemblaggio

Cablaggio e assemblaggio
Cablaggio e assemblaggio
Cablaggio e assemblaggio
Cablaggio e assemblaggio
Cablaggio e assemblaggio
Cablaggio e assemblaggio
Cablaggio e assemblaggio
Cablaggio e assemblaggio

Il primo passo è l'assemblaggio dei poteri della stazione.

Ho diviso la custodia di plastica su due parti, una delle quali utilizzata per batteria, interruttore, caricabatterie USB e uscita DC-DC In questa parte metto il portabatteria e creo finestre per l'interruttore e il caricabatterie USB. Tieni presente che il modulo del caricatore USB è abbastanza caldo, quindi ho usato una piastra di alluminio e ho messo il caricatore USB su questo usando la colla Star 922.

Il secondo passo è assemblare la parte dei controller.

Vedere lo schema elettrico come dovrebbe essere collegato

Ho usato il tagliere per questo scopo con i seguenti passaggi

  • Saldare la scheda di sviluppo ESP32
  • Scudo a saldare per mantenere il display TFT
  • Saldare altri componenti elettronici: BME280, resistori, pulsanti
  • Cablaggio a saldare tra i componenti secondo lo schema

Il terzo passo è preparare il montaggio del breadboard sulla seconda parte della custodia in plastica. Ho stampato sulla mia stampante 3d due barre, le ho montate su bredboard con le viti e ho fatto un taglio rettangolare per lo schermo del display.

Ho incollato i supporti delle barre di plastica al corpo della custodia in plastica. Ora, quando la colla è asciutta, la cabina del breadboard può essere smontata con le viti.

Il prossimo passo è:

  • Cablaggio a saldare per fonte di alimentazione
  • Cablaggio a saldare per lo stato della tensione della batteria
  • Saldare e montare il rilevatore di movimento

Passo finale:

  • impostare il convertitore DC-DC sintonizzando la tensione di uscita 5v
  • collegare due parti del controller della stazione all'alimentazione: cavi di alimentazione e lettura della tensione

Per il rilevatore di movimento e il pulsante ho fatto dei fori aggiuntivi sul lato frontale.

Passaggio 3: caricamento del firmware su ESP32

Per questo progetto ho utilizzato un software universale, sviluppato da me

Si prega di dare un'occhiata alla pagina github ESPHomeController. Questo contiene istruzioni complete su come compilare e configurare.

! Se non hai familiarità con la compilazione e Arduino, dai un'occhiata al passaggio Caricamento del firmware pronto

Non appena si carica il firmware per la prima volta, ESP32 si avvierà in modalità di configurazione (modalità Access Point)

Dovresti configurarli. A questo scopo aprire in qualsiasi dispositivo l'elenco dei WiFi disponibili. Trova HomeController e connettiti ad esso. Il Captive Portal dovrebbe avviarsi automaticamente. In caso contrario, inserisci l'URL del tuo browser: 192.168.4.1 e vedrai la schermata di configurazione

Segui le istruzioni e configura le credenziali WiFi per la tua rete WiFi.

L'ESP si riavvierà successivamente come client WiFi e si collegherà al tuo Wifi.

Quando si verifica la prima connessione, sson monterà automaticamente il file system Spiffs e scaricherà i file richiesti per il portale web:

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

Il download avviene dalla cartella

Ora puoi vedere il contenuto del file tramite il browser web. per questo dovresti ora indirizzo IP del tuo ESP32

Puoi trovarlo in uno dei seguenti modi:

  • Utilizzo del monitor della porta seriale per visualizzare i registri di ESP32
  • Utilizzo di qualsiasi scanner tcp per eseguire la scansione dei dispositivi di rete
  • Premi un pulsante sulla stazione meteo e vedrai le informazioni di sistema

Metti in navigazione https://192.168.0. XX/browse e vedrai un elenco di file del tuo ESP

(192.168.0. XX è l'indirizzo IP del tuo dispositivo

Per la messa a punto finale è necessario preparare i file di configurazione.

Passaggio 4: caricamento del firmware pronto

Caricamento del firmware pronto
Caricamento del firmware pronto

Questa sezione è specifica per gli uditori che non produrranno il firmware da soli. Hai solo bisogno di caricare il firmware "pronto"

1. Scarica gli strumenti di caricamento flash da questa pagina

2. Scarica i file allegati (estratti dagli archivi) HomeController.bin e bootloader_qio_80m.bin sul tuo disco rigido

3. Avviare lo strumento di download ESP32 e inserire i valori in base allo screenshot

4. Premere start

Passaggio 5: configurazione

Prima di iniziare la preparazione della configurazione è necessario:

  1. Crea il tuo canale su Thingspeak e chiave per il tuo canale. Prepara 4 campi e chiamali correttamente Temperatura, Umidità, Pressione, Tensione
  2. Registrati su Weather.com per ottenere la tua chiave API

Thingspeak è necessario per caricare i tuoi dati e monitorare tendenze e valori

Le condizioni meteorologiche sono necessarie per ottenere i dati di previsione.

Ok, finalmente devi creare il file services.json con il seguente contenuto

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

!Si prega di sostituire

  • thingspeakapi con la tua chiave api thingspeak
  • weatherapi con la tua chiave API meteo
  • geocodifica con la tua posizione per la quale desideri ottenere la previsione

Quindi preparare il secondo file 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}]

Entrambi i file devono essere caricati nella radice di esp.

Puoi farlo tramite il browser https://192.168.0. XX/browse, dove https://192.168.0. XX è l'indirizzo IP del tuo dispositivo

Dopo aver caricato l'ESP deve essere riavviato e tutto è stato fatto bene. Esp mostrerà la schermata corretta come nella foto e nel video sopra

Passaggio 6: sintonizzazione e consumo energetico

Accordatura e consumo energetico
Accordatura e consumo energetico

Sto usando il mio dispositivo con la connessione al Pannello Solare e per essere sicuro che possa funzionare "all'infinito"

i consumi energetici sono importanti e dopo diversi esperimenti ho usato due trucchi principali

Riduce il consumo del LED di sfondo dello schermo TFT

Secondo la misurazione sta mangiando 15-20 mA (molto) quindi ho usato tattiche con il rilevatore di movimento. Funziona perfettamente Rilevatori di movimento in grado di riconoscere qualsiasi rilevamento fino a 8-10 metri e aumentare la tensione sul cavo di segnale. Questo è l'apertura di un transistor e il LED di fondo riceve un'alimentazione. Di solito il rilevatore mantiene questo stato fino a 10 secondi che è più che sufficiente per vedere il monitor, ma se si continuano i movimenti il segnale è ancora alto e il LED è acceso.

Tale approccio mi dà una grande economia, senza effetti aggiuntivi, non incontro alcun problema per vedere il mio schermo quando voglio

2. Riduci il consumo energetico di ESP32

Quando ESP è connesso al WiFi, consuma costantemente 7-10 mA, sto parlando di tempo costante, non di avvio e prima connessione. Questo può essere accettabile se hai sempre visto la data e l'ora effettive, accedi al tuo sistema dal kit di casa Apple

Per il mio solare anche d'inverno era da abbinare a lavori senza fonti di energia aggiuntive, Pertanto ho deciso di mettere periodicamente ESP32 in modalità di sospensione (il consumo è inferiore a 1 mA). Questo va bene per me, ad esempio ESP sta dormendo 20 minuti, quindi si sveglia, aggiorna lo schermo (dati effettivi e previsioni) invia i dati al thingspeak e torna di nuovo in modalità di sospensione

Gli svantaggi sono:

  • La schermata del tempo mostra i valori dell'ora obsoleti
  • La stazione non è accessibile dal browser e dall'Apple Home Kit durante il tempo di sospensione

Sta a te decidere cosa è più importante, puoi semplicemente riconfigurarlo.

Si prega di dare un'occhiata al file services.json e alla riga

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

"enablesleep": true abilita la sospensione del tutto, se viene inserito false o rimuove il parametro (false è l'impostazione predefinita) ESP non andrà mai in sospensione

"sleepinterval": 900000 questo è millis, o 15 min, significa che ogni 15 min ESP si sveglierà e farà il personale necessario

Quindi, ora tutti possono facilmente giocare secondo necessità

Passaggio 7: regolazione dei sensori

Per ridurre al minimo l'impatto del riscaldamento interno sul sensore di temperatura BME280

Prima ho fatto un tubo attorno al sensore e ai fori. Tuttavia, nella mia modalità, quando il LED normalmente è spento e l'ESP sta dormendo, non è così importante. In altri casi il sensore BME280 dovrebbe spostarsi da qualche parte per escludere l'influenza del riscaldamento interno. Qualunque sia la piccola influenza che ho trovato, quindi ci sono due parametri da compensare

"hum_corr":10.0

che significa che quei valori verranno aggiunti dopo la misurazione

Il secondo è calibrare la misurazione della tensione della batteria, {"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

sono per questo scopo, poiché la tensione viene misurata dopo i divisori delle resistenze e confrontata con 3,3 V, giocando con il valore cvalmax puoi raggiungere l'esatta regolazione della tensione con il valore del tuo multimetro

Passaggio 8: aggiunta del dispositivo all'Apple Home Kit

Aggiunta del dispositivo all'Apple Home Kit
Aggiunta del dispositivo all'Apple Home Kit

Infine, quando il tuo dispositivo funziona correttamente, può essere aggiunto a Apple Home Kit e sarai in grado di vedere

i valori dei sensori sulla schermata iniziale di Apple.

Per prima cosa è necessario riavviare il dispositivo, non appena il dispositivo viene avviato non andrà in sospensione 20 minuti sono più che sufficienti

Quindi apri l'app Home Kit sul tuo dispositivo iOS e seleziona o crea una nuova Home1. Premi Aggiungi (+)

2. Selezionare Aggiungi accessorio.

3. Premere Non ho un codice o Impossibile eseguire la scansione (verranno aggiunti ulteriori dati di scansione)

4. se tutto va bene dovresti vedere il tuo nuovo dispositivo esp in un elenco (vedi foto)

5. Seleziona il dispositivo e conferma l'aggiunta senza certificazione ufficiale

6. Digitare la password 11111111

7. Questo è tutto! Dovresti vedere che il dispositivo è stato accoppiato con successo, altrimenti ricomincia il processo di associazione..

In base a questa impostazione vedrai due dispositivi su Apple

1. Sensore di temperatura e sensore di ronzio, andando in profondità visualizzerà i valori a schermo intero

2. Sensore di luce:) In realtà Apple è in grado di mostrare l'ambiente luminoso, ma non il voltaggio, quindi la tensione della batteria viene visualizzata in Lux

Passaggio 9: OTA: aggiornamenti via etere

Prima di iniziare qualsiasi aggiornamento è meglio riavviare ESP32, come detto prima non andrà a dormire i primi 20 minuti

Ci sono due possibilità per aggiornare

  1. Configurazione utilizzando https://192.168.0. XX/browse è possibile accedere al proprio file system su ESP e modificare i file di configurazione
  2. Puoi aggiornare completamente il firmware. per questo scopo prima è necessario crearne uno nuovo. Può essere fatto tramite Arduino o Visual Studio IDE. Quindi digitare nel browser https://192.168.0. XX/update, selezionare il firmware e premere update. Attendi fino al termine del processo e riceverai una risposta OK, altrimenti ripeti nuovamente il passaggio

Consigliato: