Sommario:
- Passaggio 1: parti necessarie
- Passaggio 2: cablaggio e assemblaggio
- Passaggio 3: caricamento del firmware su ESP32
- Passaggio 4: caricamento del firmware pronto
- Passaggio 5: configurazione
- Passaggio 6: sintonizzazione e consumo energetico
- Passaggio 7: regolazione dei sensori
- Passaggio 8: aggiunta del dispositivo all'Apple Home Kit
- Passaggio 9: OTA: aggiornamenti via etere
Video: Stazione meteorologica ESP32 ad energia solare: 9 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
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
- 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
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
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:
- Crea il tuo canale su Thingspeak e chiave per il tuo canale. Prepara 4 campi e chiamali correttamente Temperatura, Umidità, Pressione, Tensione
- 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
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
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
- Configurazione utilizzando https://192.168.0. XX/browse è possibile accedere al proprio file system su ESP e modificare i file di configurazione
- 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:
Stazione meteorologica solare modulare: 5 passaggi (con immagini)
Stazione meteorologica solare modulare: uno dei progetti che volevo realizzare da tempo era una stazione meteorologica modulare. Modulare nel senso che possiamo aggiungere i sensori che vogliamo semplicemente cambiando il software. La Stazione Meteo Modulare è divisa in tre parti. La scheda principale ha il W
Stazione di ricarica del telefono ad energia solare: 4 passaggi
Stazione di ricarica del telefono ad energia solare: un telefono scarico è un problema comune del primo mondo. Fortunatamente, con questo circuito puoi usare la potenza del sole per alimentare il tuo telefono. Questo tutorial è SOLO per il lato circuito. L'eventuale contenimento effettivo del sistema deve essere acquisito altrove
Stazione meteorologica solare: 5 passaggi
Stazione meteorologica solare: hai mai desiderato informazioni meteorologiche in tempo reale dal tuo giardino? Ora puoi acquistare una stazione meteorologica nel negozio, ma quelle di solito richiedono batterie o devono essere collegate a una presa. Questa stazione meteorologica non ha bisogno di essere collegata al
ESP32 Stazione meteorologica solare: 4 passaggi (con immagini)
ESP32 Solar Weather Station: per il mio primo progetto IoT volevo costruire una stazione meteorologica e inviare i dati a data.sparkfun.com. Piccola correzione, quando ho deciso di aprire il mio account in Sparkfun, non accettavano più connessioni, quindi ho scegli un altro raccoglitore di dati IoT questo
Stazione meteorologica solare Raspberry Pi: 7 passaggi (con immagini)
Raspberry Pi Solar Weather Station: spronato dal completamento dei miei due progetti precedenti, la fotocamera compatta e la console di gioco portatile, volevo trovare una nuova sfida. La progressione naturale è stata un sistema remoto esterno… Volevo costruire una stazione meteorologica Raspberry Pi che