Sommario:

Stazione meteo WiFi ESP32 con sensore BME280: 7 passaggi (con immagini)
Stazione meteo WiFi ESP32 con sensore BME280: 7 passaggi (con immagini)

Video: Stazione meteo WiFi ESP32 con sensore BME280: 7 passaggi (con immagini)

Video: Stazione meteo WiFi ESP32 con sensore BME280: 7 passaggi (con immagini)
Video: Progetto ESP8266: Stazione meteo Wi-Fi e fasi lunari con Display Nextion 2024, Luglio
Anonim
Image
Image
Stazione meteo WiFi ESP32 con sensore BME280
Stazione meteo WiFi ESP32 con sensore BME280
Stazione meteo WiFi ESP32 con sensore BME280
Stazione meteo WiFi ESP32 con sensore BME280

Cari amici benvenuti in un altro tutorial! In questo tutorial costruiremo un progetto di stazione meteorologica abilitata al WiFi! Useremo per la prima volta il nuovo, impressionante chip ESP32 insieme a un display Nextion.

In questo video, lo realizzeremo. È un altro progetto di stazione meteorologica che conosco, ma questa volta usiamo il nuovo chip ESP32! Usiamo anche il nuovo sensore BME280 che misura la temperatura, l'umidità e la pressione barometrica. Quando accendiamo il progetto, si connette alla rete WiFi e recupererà le previsioni del tempo per la mia posizione dal sito web openweathermap. Quindi visualizzerà le previsioni su questo Nextion Touch Display da 3,2 pollici insieme alle letture del sensore! Le letture vengono aggiornate ogni due secondi e le previsioni del tempo ogni ora! Come puoi vedere, in questo progetto utilizziamo le ultime tecnologie a disposizione di un produttore oggi! Se sei un veterano del fai-da-te, puoi costruire questo progetto in cinque minuti.

Se sei un principiante, devi guardare un paio di video prima di tentare questo progetto. Puoi trovare collegamenti a questi video in questo Instructable, non preoccuparti.

Iniziamo!

Passaggio 1: ottenere tutte le parti

Ottieni tutte le parti
Ottieni tutte le parti

Per realizzare questo progetto abbiamo bisogno delle seguenti parti:

  • Una scheda ESP32 ▶
  • Un sensore BME280 I2C ▶
  • Un display Nextion da 3,2” ▶
  • Un piccolo tagliere ▶
  • Alcuni fili ▶

Il costo del progetto è di circa 30$.

Invece dell'ESP32, potremmo usare il chip ESP8266 più economico, ma ho deciso di usare l'ESP32 per acquisire esperienza con esso e vedere cosa funziona e cosa no.

Passaggio 2: ESP32

Image
Image
L'ESP32
L'ESP32

Questo è il primo progetto che ho realizzato con il nuovo chip ESP32.

Se non lo conosci, il chip ESP32 è il successore del popolare chip ESP8266 che abbiamo usato molte volte in passato. L'ESP32 è una bestia! Offre due 32 core di elaborazione che operano a 160MHz, un'enorme quantità di memoria, WiFi, Bluetooth e molte altre funzionalità con un costo di circa 7$! Roba incredibile!

Si prega di guardare la recensione dettagliata che ho preparato per questa scheda. Ho allegato il video su questo Instructable. Aiuterà a capire perché questo chip cambierà per sempre il modo in cui creiamo le cose!

Passaggio 3: il display Nextion

Image
Image
Sensore BME280
Sensore BME280

Inoltre, questo è il primo progetto che realizzo con un display touch Nextion.

I display Nextion sono un nuovo tipo di display. Hanno il proprio processore ARM sul retro che è responsabile della guida del display e della creazione dell'interfaccia utente grafica. Quindi, possiamo usarli con qualsiasi microcontrollore e ottenere risultati spettacolari.

Ho preparato un Instructable dettagliato su questo display Nextion che spiega in modo approfondito come funzionano, come usarli e i loro svantaggi. Puoi leggerlo cliccando qui:

Passaggio 4: sensore BME280

Sensore BME280
Sensore BME280

Il BME280 in un nuovo fantastico sensore Bosch.

Finora stavo usando il sensore BMP180 che può misurare la temperatura e la pressione barometrica. Il sensore BME280 può misurare temperatura, umidità e pressione barometrica! Quant'è fico! Abbiamo solo bisogno di un sensore per costruire una stazione meteorologica completa!

Inoltre, il sensore è di dimensioni molto ridotte e molto facile da usare. Il modulo che useremo oggi utilizza l'interfaccia I2C, quindi rende la comunicazione con Arduino molto semplice. Dobbiamo solo collegare l'alimentazione e altri due fili per farlo funzionare.

Esistono già molte librerie sviluppate per questo sensore, quindi possiamo utilizzarlo nei nostri progetti molto facilmente! Il costo del sensore è di circa 5$. Puoi ottenerlo qui ▶

NOTA: abbiamo bisogno del sensore BME280. C'è anche un sensore BMP280 che non offre la misurazione dell'umidità. Fai attenzione a ordinare il sensore di cui hai bisogno.

Passaggio 5: collegamento delle parti

Collegamento delle parti
Collegamento delle parti
Collegamento delle parti
Collegamento delle parti
Collegamento delle parti
Collegamento delle parti

Il collegamento delle parti è semplice come si può vedere dal diagramma schematico.

Poiché il sensore BME280 utilizza l'interfaccia I2C, abbiamo solo bisogno di collegare due fili per comunicare con ESP32. Ho collegato il sensore ai pin 26 e 27. In teoria, ogni pin digitale della scheda ESP32 può essere utilizzato con periferiche I2C. In pratica però ho scoperto che alcuni pin non funzionavano perché riservati ad altri usi. I pin 26 e 27 funzionano alla grande!

Per inviare i dati al display, dobbiamo solo collegare un filo al pin TX0 dell'ESP32. Ho dovuto piegare il pin in questo modo per collegare il filo femmina del display poiché la scheda ESP32 è troppo grande per questa breadboard.

Dopo aver collegato le parti, dobbiamo caricare il codice su ESP32 e dobbiamo caricare la GUI sul display Nextion. Se hai problemi a caricare il programma sulla scheda ESP32, tieni premuto il pulsante BOOT dopo aver premuto il pulsante di caricamento sull'IDE Arduino.

Per caricare la GUI sul display Nextion, copia il file WeatherStation.tft che condividerò con te su una scheda SD vuota. Inserisci la scheda SD nello slot per schede SD sul retro del display. Quindi accendi il display e la GUI verrà caricata. Quindi rimuovere la scheda SD e collegare nuovamente l'alimentazione.

Dopo aver caricato con successo il codice il progetto si connetterà alla rete WiFi, otterrà le previsioni del tempo dal sito openweathermap.org e visualizzerà le letture dal sensore. Vediamo ora il lato software del progetto.

Step 6: Il Codice del Progetto

Il Codice del Progetto
Il Codice del Progetto
Il Codice del Progetto
Il Codice del Progetto
Il Codice del Progetto
Il Codice del Progetto

Per analizzare i dati meteo, abbiamo bisogno dell'eccellente libreria Arduino JSON. Abbiamo anche bisogno di una libreria per il sensore.

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:

Vediamo ora il codice.

Per prima cosa dobbiamo impostare l'SSID e la password della nostra rete WiFi. Successivamente, dobbiamo inserire l'APIKEY gratuita dal sito Web operweathermap.org. Per creare la tua chiave API, devi registrarti sul sito web. Ottenere i dati e le previsioni meteorologiche attuali è gratuito, ma il sito Web offre più opzioni se sei disposto a pagare un po' di soldi. Successivamente, dobbiamo trovare l'id della nostra posizione. Trova la tua posizione e copia l'ID che si trova nell'URL della tua posizione.

Quindi inserisci l'id della tua città nella variabile CityID. Inoltre, inserisci l'altitudine della tua città in questa variabile. Questo valore è necessario per letture accurate della pressione barometrica dal sensore.

const char* ssid = "yourSSID";const char* password = "yourPassword"; String CityID = "253394"; //Sparta, Grecia String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Altitudine a Sparta, Grecia

Ora siamo pronti per andare avanti.

All'inizio inizializziamo il sensore e ci colleghiamo alla rete WiFi. Quindi richiediamo i dati meteo dal server.

Riceviamo una risposta con i dati meteo in formato JSON. Prima di inviare i dati alla libreria JSON, elimino manualmente alcuni caratteri che mi causavano problemi. Quindi la libreria JSON prende il sopravvento e possiamo facilmente salvare i dati di cui abbiamo bisogno in variabili. Dopo aver conservato i dati in variabili, non ci resta che visualizzarli sullo schermo e attendere un'ora prima di richiedere nuovi dati al server. Le uniche informazioni che presento sono le previsioni del tempo, ma puoi visualizzare più informazioni se lo desideri. Tutto qui salvato in variabili. Quindi leggiamo la temperatura, l'umidità e la pressione atmosferica dal sensore e inviamo i dati al display Nextion.

Per aggiornare il display, inviamo semplicemente alcuni comandi alla porta seriale in questo modo:

void showConnectingIcon(){ Serial.println(); String command = "weatherIcon.pic=3"; Serial.print(comando); endNextionCommand(); }

La GUI di Nextion è composta da uno sfondo, alcune caselle di testo e un'immagine che cambia a seconda delle previsioni del tempo. Si prega di guardare il tutorial sul display Nextion per ulteriori informazioni. Puoi progettare rapidamente la tua GUI se lo desideri e visualizzare più cose su di essa.

Come sempre trovate il codice del progetto allegato a questo Instructable

Passaggio 7: considerazioni finali e miglioramenti

Considerazioni finali e miglioramenti
Considerazioni finali e miglioramenti

Come puoi vedere, un maker esperto oggi può costruire progetti entusiasmanti in poche ore con poche righe di codice e solo tre parti! Un progetto del genere sarebbe stato impossibile da realizzare anche solo due anni fa!

Ovviamente questo è solo l'inizio del progetto. Vorrei aggiungere molte funzionalità, come grafici, funzionalità touch che ora mancano, forse un display più grande e, naturalmente, un bellissimo involucro stampato in 3D. Progetterò anche una GUI e delle icone dall'aspetto migliore. Ho delle idee molto fresche da implementare!

Mi piacerebbe sentire la tua opinione sul progetto di oggi. Che tipo di funzionalità vuoi che aggiunga al progetto? Ti piace come sembra? Come vuoi vederlo evolvere? Per favore pubblica le tue idee nella sezione commenti qui sotto; Adoro leggere i tuoi pensieri!

Concorso Wireless
Concorso Wireless
Concorso Wireless
Concorso Wireless

Secondo classificato al Wireless Contest

Consigliato: