Sommario:

ESP32: M5Stack con DHT22: 10 passaggi
ESP32: M5Stack con DHT22: 10 passaggi

Video: ESP32: M5Stack con DHT22: 10 passaggi

Video: ESP32: M5Stack con DHT22: 10 passaggi
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Luglio
Anonim
Image
Image
ESP32: M5Stack con DHT22
ESP32: M5Stack con DHT22
ESP32: M5Stack con DHT22
ESP32: M5Stack con DHT22

Parliamo oggi di un ESP32 molto particolare, perfetto per l'Internet of Things, ovvero M5Stack. Contiene l'ESP32 all'interno e aggiunge persino display, tastiera, amplificatore, altoparlante e batteria. Pertanto, questo dispositivo può fare innumerevoli cose. Quando ho ricevuto questo hardware, avevo già il software per ESP32 e portato solo sul display utilizzato in questo progetto, che è diverso. Tuttavia, il codice sorgente che utilizzeremo è lo stesso utilizzato nel nostro video TEMPERATURA E UMIDITÀ CON DISPLAY OLED.

Nel circuito odierno voglio in particolare sottolineare che abbiamo l'M5Stack con connessioni positive e negative, che si alimenta con un sensore DHT22. Entrambi sono collegati da un GPIO. I dati vengono visualizzati nel grafico.

In questo articolo, introduciamo M5Stack e discutiamo delle sue applicazioni. Devo sottolineare che questo dispositivo ha un ingresso per una scheda micro SD, un altoparlante da 1 W e una presa per la batteria, e ha anche pulsanti di interazione, un connettore i2c, un USB di tipo C, IO esposti, un display TFT da due pollici, tra le altre caratteristiche. È mostrato nella foto sopra. Possiamo dire che questo dispositivo è pronto per IoT, poiché è già dotato di Bluetooth e WiFi ESP32. Include anche un magnete per il fissaggio a superfici metalliche.

Ti è piaciuto M5Stack? Fare clic su:

Passaggio 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Un'innovazione di M5Stack è che, togliendo la parte posteriore, è possibile inserire diversi moduli con funzioni diverse, come il modulo GPS, GSM, LoRa, tra gli altri. Questo è mostrato nell'immagine.

Ho altri esempi di moduli di seguito, che vanno da RS485, DC Motor, Maker, Core, al controllo del motore passo-passo.

Questo è in realtà un modo molto veloce per mettere insieme un prototipo. Ai vecchi tempi, era necessario acquistare diversi chip transistor ed eseguire numerosi assemblaggi, che richiedevano molto tempo e investimenti. Solo dopo è arrivata la prototipazione del prodotto. Fu allora che apparvero Arduino e Raspberry, che sono piatti.

Ora abbiamo finalmente M5Stack, che è questa scatola chiusa pronta per l'uso. Questo ci libera dal dover compiere altri innumerevoli passaggi.

Altri modelli M5Stack sono mostrati nelle immagini. Abbiamo un dispositivo con tastiere alfanumeriche, numeriche e di gioco. Questi ti permettono di lavorare come se fosse una specie di computer. Abbiamo anche un esempio di software in esecuzione, che può essere programmato in MicroPython, Arduino, ESP-IDF, NodeJS, oltre che in Basic.

Passaggio 2: possibili applicazioni di M5Stack

M5Stack Possibili applicazioni
M5Stack Possibili applicazioni
M5Stack Possibili applicazioni
M5Stack Possibili applicazioni
M5Stack Possibili applicazioni
M5Stack Possibili applicazioni

Tra gli esempi di applicazioni M5Stack, abbiamo l'oscilloscopio, come puoi vedere nell'immagine. Abbiamo anche una specie di calcolatrice/tavolo per utensili da taglio.

Che ne dici di un tachimetro per bicicletta?

Può anche essere un trapano a distanza, che viene stampato in 3D e monitorato a distanza da un controllo.

Tutto ciò dimostra che il controllo dell'elettronica è oggi molto più abbordabile, così come la programmazione di questi circuiti è diventata più semplice.

Passaggio 3: M5Stack - Pin

M5Stack - Perni
M5Stack - Perni

Il retro dell'M5Stack è in questa immagine, che mostra che l'alimentazione è a 5 volt. L'immagine rivela inoltre che abbiamo tutto ciò che esiste in ESP32 con connettività.

Passaggio 4: libreria DHT

Libreria DHT
Libreria DHT

Usa la libreria SimpleDHT, che è la stessa che ho usato nel video: TEMPERATURA E UMIDITÀ CON DISPLAY OLED.

Passaggio 5: gestione della libreria IDE Arduino

Arduino IDE Library Gestisci
Arduino IDE Library Gestisci

Nel "Menu: Schizzo -> Aggiungi libreria -> Gestisci librerie", installiamo le due librerie mostrate nell'immagine qui sotto. Ricorda che prima di tutto questo, devi installare il core Arduino di ESP32. Questo video ti mostra come fare it: COME INSTALLARE ARDUINO IDE IN ESP32.

Passaggio 6: Codice sorgente

Il codice sorgente, come detto, è lo stesso che ho usato nel video: GRAFICO TEMPERATURA CON DISPLAY OLED. L'unica modifica che ho apportato a questo progetto è stata in relazione alle dimensioni del display.

Passaggio 7: M5StackDHTGraph.ino

Includeremo le librerie M5Stack.h e SimpleDHT.h e definiremo i colori utilizzati nel display, nonché il pin dei dati DHT. Costruiremo anche un oggetto per la comunicazione con il sensore, definiremo la variabile responsabile delle letture e indicheremo il valore dell'asse X.

//Libs do M5Stack e DHT#include #include // definição das cores que serão utilizadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define DHTPIN 5 //pino de dados do DHT //construtor do objeto para comunicar com o sensor SimpleDHT22 dht; //variável responsavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Continuiamo con le definizioni di posizionamento dell'asse X e dell'asse Y, le coordinate di visualizzazione dei dati di temperatura e umidità, nonché le variabili che memorizzeranno i valori letti. Puntiamo ancora alla variabile per la stampa del grafico sul display.

//definições do posicionamento dos eixos X e Y#define POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 //definição da coordenada onde escreveremos os dados de escreveremos os dados de temperaturavariata e umidade #define POS_X_DADOS_200 #definição de temperatura_X_DA que armazenarão os valores lidos da umidode e temperatura int umidode = 0; int temperatura = 0; //variável que armazenará o valor da coordenada Y para desenharmos uma linha de exemplo //que varia os valores de 1 em 1 int linhaExemplo = 20; int fattore = 1; //indicará se somaremos ou subtrairemos uma unidade na variável linhaExemplo

Passaggio 8: M5StackDHTGraph.ino - Configurazione

In Setup, inizializziamo M5Stack. Definiamo i comandi per disegnare il grafico, configuriamo il carattere così come i colori del testo e posizioniamo il cursore per la scrittura.

void setup(void) { Serial.begin(115200); //Inizializzazione di M5Stack M5.begin(); //pinta a tela toda de preto M5. Lcd.fillScreen(BLACK); //i comandi vengono seguiti come segue come linhas dos eixos cartesianos na cor branca //drawFastVLine(x, y, width, color) linha vertical M5. Lcd.drawFastVLine(POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO, WHITE); //eixo Y //drawFastHLine(x, y, width, color) linha orizzontale M5. Lcd.drawFastHLine(POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); //eixo X //configura o tamnaho do texto que escreveremos in tela M5. Lcd.setTextSize(3); //configura un ramo per il testo M5. Lcd.setTextColor(WHITE); //posiziona il cursore per la scritta M5. Lcd.setCursor(POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print("T: "); //indicando una temperatura M5. Lcd.setCursor(POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print(" U: "); //indicando un umidode }

Passaggio 9: M5StackDHTGraph.ino - Ciclo

Nella prima parte del Loop si legge la temperatura e l'umidità, si mappa il valore delle variabili da posizionare sul grafico e si traccia sullo schermo il punto che fa riferimento a questi valori letti dal sensore.

void loop() { //Fazemos a leitura da temperatura e umiade float temp, umid; int status = dht.read2(DHTPIN, &temp, &umid, NULL); if (status == SimpleDHTERrSuccess) { temperatura = temp; umidode = umido; } //mapeando o valor das variáveis para colocar no gráfico //necessario pois o display tem 240px de altura e separamos apenas 180 para o gráfico //umidade pode ser lida de 0-100 int temperaturaMapeada = map(temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidodeMapeada = map(umidade, 0, 100, 0, ALTURA_GRAFICO); //desenha na tela o ponto referente aos valores lidos do sensor M5. Lcd.drawPixel(POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-temperaturaMapeada, RED); M5. Lcd.drawPixel(POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-umidadeMapeada, CYAN); //desenha na tela o ponto referente a nossa linha de exemplo que fica variando M5. Lcd.drawPixel(POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, YELLOW);

Quindi, definiamo le possibilità di stampare la grafica sul display.

//aqui controlamos nossa linha de exemplo, quando chega no valor máximo decrementamos o valor //até um valor mínimo determinado (no nosso caso 10), e a partir daí, incrementa novamente if(linhaExemplo == 50) fator = -1; else if(linhaExemplo == 10) fator = 1; //soma o valor de linhaExemplo linhaExemplo += fator; //incrementa o contador de leituras realizadas leituraAtual++; //se a leitura chegar em 270 (número máximo do eixo X) então limparemos a área do gráfico para voltarmos a desenhar. if(leituraAtual == 270) { //limpa a área toda do gráfico M5. Lcd.fillRect(POS_X_GRAFICO+1, POS_Y_GRAFICO-1, COMPRIMENTO_GRAFICO, ALTURA_GRAFICO-1, BLACK); leituraAtual = 1; //volta o contador de leitura para 1 (nova coordenada X) } //limpa a área onde colocamos o value da temperatura e da umiditàde M5. Lcd.fillRect(POS_X_DADOS+50, POS_Y_DADOS, 60, 30, BLACK); M5. Lcd.fillRect(POS_X_DADOS+165, POS_Y_DADOS, 90, 30, NERO);

//reposiciona o cursor para escrever a temperatura M5. Lcd.setCursor(POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor(ROSSO); M5. Lcd.print(temperatura); M5. Lcd.print((char)247); //reposiciona o cursor para escrever a umidode M5. Lcd.setCursor(POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor(CIANO); M5. Lcd.print(umido); M5. Lcd.print("%"); ritardo(1000); }

Passaggio 10: file

Ti è piaciuto M5Stack? Vuoi comprarne uno? Vai a:

Scarica i file:

PDF

IO NO

Consigliato: