Sommario:
- Passaggio 1: crea e configura i tuoi canali Thingspeak
- Passaggio 2: configurare l'IDE Arduino, le librerie e configurare il BME280
- Passaggio 3: programma l'ESP8266 con l'IDE Arduino
- Passaggio 4: torna a Thingspeak per eseguire alcune modifiche ai dati
- Passaggio 5: modifica il file HTML fornito
Video: ESP8266 NodeMCU con indicatori e grafico BME280: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
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
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
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
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
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 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:
Orologio con grafico a barre IOT (ESP8266 + custodia stampata in 3D): 5 passaggi (con immagini)
Orologio con grafico a barre IOT (ESP8266 + custodia stampata in 3D): Ciao, in questo Instructables ti spiegherò come costruire un orologio con grafico a barre IOT 256 LED. Questo orologio non è molto difficile da realizzare, non è molto costoso ma dovrai essere paziente per dire l'ora ^^ ma è piacevole da fare e pieno di insegnamento.Per ma
Indicatori del livello dell'acqua/mangime: 10 passaggi (con immagini)
Indicatori del livello dell'acqua/mangime: in questo tutorial ti mostrerò come ho realizzato un indicatore del livello dell'acqua senza l'uso di micro processori, micro controller, Raspberry Pi, Arduino ecc. Quando si tratta di elettronica, sono un completo " manichino". Uso un po' di componenti elettronici
Stai al sicuro usando questa luce per bici con indicatori di direzione: 5 passaggi (con immagini)
Stai al sicuro usando questa luce per bici con indicatori di direzione: amo andare in bicicletta, di solito la uso per andare a scuola. In inverno, molto spesso fuori è ancora buio ed è difficile per gli altri veicoli vedere i miei indicatori di direzione. Quindi è un grosso pericolo perché i camion potrebbero non vedere che voglio
Indicatori per auto OLED ESP32 abilitati Wi-Fi: 3 passaggi (con immagini)
Indicatori per auto OLED ESP32 abilitati Wi-Fi: prima le introduzioni… Costruisco indicatori per auto come una sorta di hobby di accensione e spegnimento. Vedi https://www.instructables.com/id/Remote-Car-Monit… e https://www.instructables.com/id/Remote-Car-Monit… per due esempi più recenti. mi piace particolarmente
Interfaccia wireless Bluetooth per calibri e indicatori Mitutoyo: 8 passaggi (con immagini)
Interfaccia wireless Bluetooth per calibri e indicatori Mitutoyo: oggi nel mondo esistono milioni di calibri, micrometri, indicatori e altri dispositivi Mitutoyo Digimatic. Molte persone come me usano questi dispositivi per raccogliere dati direttamente in un PC. Ciò elimina la necessità di accedere e digitare a volte centinaia