Sommario:

ESP8266 NodeMCU con indicatori e grafico BME280: 5 passaggi
ESP8266 NodeMCU con indicatori e grafico BME280: 5 passaggi

Video: ESP8266 NodeMCU con indicatori e grafico BME280: 5 passaggi

Video: ESP8266 NodeMCU con indicatori e grafico BME280: 5 passaggi
Video: ESP 8266-01 con DHT22, display OLED e WIFI 2024, Novembre
Anonim
ESP8266 NodeMCU con indicatori e grafico BME280
ESP8266 NodeMCU con indicatori e grafico BME280
ESP8266 NodeMCU con indicatori e grafico BME280
ESP8266 NodeMCU con indicatori e grafico BME280

Indicatori e grafico fantasiosi per la scheda di sviluppo NodeMCU ESP8266 con sensore di temperatura, umidità e pressione BME280. Thingspeak memorizzerà tutti i tuoi dati nel cloud per il recupero in qualsiasi momento per gli anni (si spera) a venire. Gli indicatori e il grafico vengono popolati dai dati memorizzati su Thingspeak e vengono aggiornati automaticamente ogni 5 minuti.

Articoli necessari:

Scheda di sviluppo NodeMCU ESP8266 ($ 3,79 da Banggood.com Hong Kong)

Bosch BME280 ($ 5,63 da Banggood.com Hong Kong)

Maglioni per tagliere ($ 3,09 da Banggood.com Hong Kong)

Tagliere ($ 2,28 da Banggood.com Hong Kong)

Alimentatore, gratuito se si dispone di un caricatore per telefono micro USB

Cavo micro USB, gratuito se ne hai già uno

Arduino IDE, download gratuito

Ottieni i file di codice.ino e. HTML qui

Passaggio 1: crea e configura i tuoi canali Thingspeak

Crea e configura i tuoi canali Thingspeak
Crea e configura i tuoi canali Thingspeak

1. Crea un account Thingspeak gratuito e un nuovo canale su https://thingspeak.com, chiama il canale "ESP8266-NodeMCU-12E-BME280"

2. Il nuovo canale dovrebbe avere 3 campi denominati Temperatura Umidità Pressione in quell'ordine specifico (Nota prima lettera maiuscola).

3. Prendi nota del tuo nuovo "ID canale" XXXXXX in "Impostazioni canale"

4. Fare clic sul collegamento "Chiavi API" e prendere nota della propria "Scrittura API" e "Lettura chiavi API" XXXXXXXXXXXXXXX. Inoltre, rendi questo canale pubblico in condivisione.

5. Creare un secondo canale Thingspeak che conterrà i dati High Low "Oggi" (da mezzanotte). Chiamalo "BME280 Daily High Low Data"

6. Questo nuovo canale dovrebbe avere 6 campi denominati Tmax Tmin Hmax Hmin Pmax Pmin in quell'ordine specifico (Nota prima lettera maiuscola).

7. Prendere nota di "ID canale" "BME280 Daily High Low Data", "Leggi" e "Scrivi chiavi API" proprio come nei passaggi precedenti.

Passaggio 2: configurare l'IDE Arduino, le librerie e configurare il BME280

Configura l'IDE Arduino, le librerie e configura il BME280
Configura l'IDE Arduino, le librerie e configura il BME280

8. Seguire le istruzioni per l'installazione dell'IDE Arduino e del core ESP8266 su

9. Avvia l'IDE Arduino in modo da poter installare le quattro librerie di cui avremo bisogno.

10. Avrai bisogno della libreria "Adafruit Unified Sensor Driver", installala nel "Library Manager" nell'IDE Arduino. Menu Sketch Includi libreria Gestisci librerie fai una ricerca per Tipo = "Consigliato" Argomento = "Sensori", quindi inserisci le parole Adafruit Unified Sensor Driver nella casella di ricerca. Quello che vuoi dice "Adafruit Unified Sensor Driver di Adafruit"

11. Inoltre, avrai anche bisogno della "Libreria Adafruit BME280" per installarla nel "Library Manager" nell'IDE Arduino. Menu Sketch Includi libreria Gestisci librerie fai una ricerca per Tipo = "Consigliato" Argomento = "Sensori" quindi inserisci le parole Libreria Adafruit BME280 nella casella di ricerca. Quello che vuoi dice "Adafruit BME280 Library di Adafruit"

12. Un'altra libreria di cui hai bisogno è Wire.h, installala nel "Library Manager" nell'IDE di Arduino. Menu, Sketch Includi libreria Gestisci librerie Esegui una ricerca per tipo = "Contribuito" Argomento = "Ingresso/uscita segnale", quindi inserisci la parola Wire nella casella di ricerca. Quello che vuoi dice "Wire Built-in by Arduino" Molto probabilmente nella parte inferiore della selezione.

13. Un'altra libreria, ESP8266WiFi, installala in "Library Manager" in Arduino IDE. Menu, Sketch Includi libreria Gestisci librerie Fai una ricerca per tipo = "Contribuito" Argomento = "Comunicazione", quindi inserisci la parola ESP8266wifi nella casella di ricerca. Quello che vuoi dice "ESP8266wifi integrato di Ivan Grokhotkov"

14. L'indirizzo I2C per BME280 è hardcoded nel file Adafruit_BME280.h (cercare la riga #define BME280_ADDRESS 0x77) all'interno della cartella Adafruit_BME280_Library. I moduli sensore BME di Adafruit sono cablati per utilizzare l'indirizzo I2C di 0x77. Ma il BME280 può avere un indirizzo I2C leggermente diverso (0x76) se il suo pin SDO esterno è messo a terra. Se stai utilizzando i moduli sensore di una terza parte, è probabile che l'indirizzo non corrisponda al valore predefinito nella libreria Adafruit. Ad esempio, per la maggior parte dei moduli sensore BME280 disponibili su eBay o Aliexpress, l'indirizzo I2C è 0x76. Se non si ottiene una risposta dal sensore utilizzando l'indirizzo predefinito impostato nel file Adafruit_BME280.h, potrebbe essere necessario modificarlo in 0x76.

Punti di connessione BME280 e ESP8266. ESP8266 3.3V a BME280 Vin, ESP8266 GND a BME280 GND, ESP8266 D4 a BME280 SCL, ESP8266 D3 a BME280 SDA. 15. Apri il file ESP8266-NodeMCU-12E-BME280.html fornito in un editor di testo e inserisci il tuo "ESP8266-NodeMCU-12E-BME280" (il primo canale che hai creato) "ID canale" e "Leggi chiave API" per il variabili chiave1 e canale1. Immettere anche "Leggi chiave API" e "ID canale" per "BME280 Daily High Low Data" (il secondo canale creato) per key2 e chan2. Inoltre, inserisci la differenza di fuso orario rispetto all'UTC. Come in -5 per me. Tutti i valori devono essere all'interno delle virgolette singole fornite 'XXXXX'. Salva ed esci dall'editor di testo.

Collega il tuo ESP8266 con il cavo USB al computer, quindi seleziona la porta seriale come porta USB.

Gli utenti Linux potrebbero dover cambiare la proprietà della porta USB per comunicare con /dev/ttyUSB0 come in 'sudo chown yourusername /dev/ttyUSB0' o qualunque cosa tu abbia selezionato come porta nella configurazione.

Passaggio 3: programma l'ESP8266 con l'IDE Arduino

Programma l'ESP8266 con l'IDE Arduino
Programma l'ESP8266 con l'IDE Arduino

16. Successivamente programmeremo l'ESP8266. Collega un cavo USB tra il tuo ESP8266 e il tuo computer.

Carica il file New_BME_Sensor.ino fornito nell'IDE di Arduino. Il tuo sensore BME280 dovrebbe essere agganciato a D3 (SDA) e D4 (SCL) su ESP8266. Inserisci il tuo "ESP8266-NodeMCU-12E-BME280" (il primo canale che hai creato) "Write Key" "Wireless SSID" e "Password" nella sezione corretta dello schizzo. Quindi fare clic sulla voce di menu "Schizzo" e "Carica". Dopo aver caricato lo schizzo (il progresso raggiunge il 100%) sul tuo ESP8266, puoi aprire il monitor seriale (l'icona in alto a destra sembra una lente d'ingrandimento) e vedere i tuoi dati stampati dopo 5 minuti, ogni 5 minuti. I dati vengono inviati a Thingspeak a intervalli di 5 minuti, quindi ci vorrà del tempo prima di avere dati significativi sul grafico, ma dovresti avere letture del misuratore dopo 5 minuti.

Assicurati di ottenere letture corrette dal BME280 nel monitor seriale.

La prima misurazione sarà probabilmente una nan non valida.

Attendi qualche minuto fino alla lettura successiva e verifica che le letture sembrino buone.

Passaggio 4: torna a Thingspeak per eseguire alcune modifiche ai dati

Torna a Thingspeak per fare un po' di ritocco dei dati
Torna a Thingspeak per fare un po' di ritocco dei dati

17. Ora, mentre i dati vengono caricati lentamente su Thingspeak, facciamo alcune modifiche per ottenere alcuni dati aggiuntivi da ciò che viene caricato. Torna al sito web di Thingspeak e nella pagina del canale "BME280 Daily High Low Data" di Thingspeak (il secondo canale che hai creato) fai clic sul pulsante verde "MATLAB Analysis". Seleziona il modello "Personalizzato (nessun codice di partenza)"

18. Denominare l'analisi MATLAB "Calcola Min Max Since Midnight".

19. Copia il codice MATLAB Analysis.txt nello spazio fornito. Immettere l'"ID canale" per "ESP8266-NodeMCU-12E-BME280" (il primo canale creato) in "readChannelID". Inserisci "BME280 Daily High Low Data" (il secondo canale che hai creato) Scrivi "Channel ID" e "Write Key" rispettivamente in writeNewChannelID e writeAPIKey. So che suona confuso (leggilo di nuovo). Fare clic su Salva ed esegui. Se lo hai fatto correttamente e il canale letto è pubblico, non vedrai errori e stampa correttamente i valori. Nota, potresti visualizzare un errore se non sono stati ancora caricati dati su quel canale. Nonostante l'errore continua. Se lo desideri, puoi rivisitare Fare clic su Salva ed esegui per assicurarti che funzioni una volta che i dati sono stati caricati.

20. Successivamente, dobbiamo creare un "controllo temporale" per attivare questo codice ogni 5 minuti e i nostri dati vengono scritti sul canale "BME280 Daily High Low Data" (il secondo canale che hai creato). Dalla pagina principale di "BME280 Daily High Low Data" (il secondo canale che hai creato) seleziona App in alto. Sotto le azioni seleziona "TimeControl" e poi il pulsante verde "New TimeControl". Chiamalo "Invia alte basse temperature ESP8266". Seleziona il tuo fuso orario, se necessario, e seleziona "Ricorrente" in Frequenza. Seleziona Minuto in Ricorrenza. Impostato per l'esecuzione ogni 5 minuti. L'azione dovrebbe essere MATLAB Analysis e "Code to Execute" è "Calcola Min Max Since Midnight". Risparmia tempo.

Passaggio 5: modifica il file HTML fornito

Modifica il file HTML fornito
Modifica il file HTML fornito

Modifica i file HTML e cerca i commenti che dicono "******** Change Me 1 of 8 ********" Modificali secondo le tue preferenze.

Appunti:

Alcuni campi di testo e il grafico settimanale non verranno compilati correttamente finché non avrai un giorno intero e un'intera settimana di dati per la sezione e il grafico 24 ore e settimana. Una volta che hai un mucchio di dati, puoi ingrandire i grafici con la rotellina del mouse (fare clic con il pulsante destro del mouse per ripristinare). Puoi anche avere un quarto indicatore (come si vede negli screenshot) da un altro sensore da un altro canale, ma ho comminato le parti pertinenti. Se ti senti savy, collegalo. Ci sono anche alcuni problemi di tempo di cui essere a conoscenza. Probabilmente non avrai i dati più aggiornati in assoluto, ma dovrebbero essere sempre meno di 5 minuti. Ciò deriva da quando viene attivato il controllo di temporizzazione, quando i dati sono stati inviati dall'ESP8266 e quando è stata caricata/aggiornata la pagina web.

Apri il file ESP8266-NodeMCU-12E-BME280.html fornito nel tuo browser web e dovresti vedere gli indicatori e il grafico popolati.

Ottieni i file di codice.ino e. HTML qui

Consigliato: