Taula de continguts:

ESP32: M5Stack amb DHT22: 10 passos
ESP32: M5Stack amb DHT22: 10 passos

Vídeo: ESP32: M5Stack amb DHT22: 10 passos

Vídeo: ESP32: M5Stack amb DHT22: 10 passos
Vídeo: Бесконтактный датчик температуры дальнего действия MLX90614-DCI с Arduino 2024, Juliol
Anonim
Image
Image
ESP32: M5Stack amb DHT22
ESP32: M5Stack amb DHT22
ESP32: M5Stack amb DHT22
ESP32: M5Stack amb DHT22

Parlem avui d’un ESP32 molt especial, perfecte per a Internet de les coses, que és M5Stack. Conté l’SP32 a l’interior i, fins i tot, afegeix una pantalla, teclat, amplificador, altaveu i bateria. Per tant, aquest dispositiu pot fer infinitat de coses. Quan vaig rebre aquest maquinari, ja tenia programari per a ESP32 i només es portava a la pantalla que s’utilitzava en aquest projecte, que és diferent. Tot i això, el codi font que utilitzarem és el mateix que s’utilitza al nostre vídeo TEMPERATURA I HUMITAT AMB PANTALLA OLED.

Al circuit actual, vull destacar específicament que tenim el M5Stack amb connexions positives i negatives, que s’alimenta amb un sensor DHT22. Tots dos estan connectats per un GPIO. Les dades es mostren al gràfic.

En aquest article, presentem M5Stack i discutim les seves aplicacions. He de destacar que aquest dispositiu té una entrada per a una targeta micro SD, un altaveu d’1W i una presa de bateria, i també té botons d’interacció, un connector i2c, un USB tipus C, E / S exposats, una pantalla TFT de dues polzades, entre altres funcions. Es mostra a la imatge superior. Podem dir que aquest dispositiu està preparat per a IoT, ja que ja inclou Bluetooth i ESP32 WiFi. També inclou un imant per fixar-se a superfícies metàl·liques.

T’ha agradat M5Stack? Feu clic a:

Pas 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Una de les innovacions del M5Stack és que, si es treu l’esquena, es pot encabir en diferents mòduls amb diferents funcions, com ara el mòdul GPS, GSM, LoRa, entre d’altres. Això es mostra a la imatge.

A continuació tinc més exemples de mòduls, que van des del RS485, el motor de corrent continu, el fabricant, el nucli i el control del motor pas a pas.

En realitat, aquesta és una manera molt ràpida d’elaborar un prototip. Antigament, era necessari comprar diversos xips de transistors i realitzar nombrosos muntatges, que requerien molt de temps i inversió. Només després va aparèixer el prototipatge del producte. Va ser llavors quan van aparèixer Arduino i Raspberry, que són plaques.

Ara, finalment, tenim el M5Stack, que és aquest quadre tancat llest per al seu ús. Això ens allibera d’haver de realitzar altres innombrables passos.

Altres models M5Stack es mostren a les imatges. Disposem d’un dispositiu amb teclats alfanumèrics, numèrics i de joc. Aquests us permeten treballar com si es tractés d’una mena d’ordinador. També tenim un exemple d’execució de programari, que es pot programar en MicroPython, Arduino, ESP-IDF, NodeJS, a més de Basic.

Pas 2: M5Stack Possibles aplicacions

M5Stack Possibles aplicacions
M5Stack Possibles aplicacions
M5Stack Possibles aplicacions
M5Stack Possibles aplicacions
M5Stack Possibles aplicacions
M5Stack Possibles aplicacions

Entre els exemples d’aplicacions M5Stack, tenim l’oscil·loscopi, com podeu veure a la imatge. També tenim una mena de taula de calculadores / eines de tall.

Què tal un velocímetre de bicicleta?

També pot ser un trepant remot, que s’imprimeix en 3D i es controla remotament mitjançant un control.

Tot plegat demostra que el control electrònic és molt més assequible actualment, de la mateixa manera que la programació d’aquests circuits s’ha fet més fàcil.

Pas 3: M5Stack - Pins

M5Stack - Pins
M5Stack - Pins

La part posterior del M5Stack es troba en aquesta imatge, que mostra que la potència està a 5 volts. La imatge revela a més que tenim tot el que existeix a ESP32 amb connectivitat.

Pas 4: Biblioteca DHT

Biblioteca DHT
Biblioteca DHT

Utilitzeu la lib SimpleDHT, que és la mateixa que he fet servir al vídeo: TEMPERATURA I HUMITAT AMB PANTALLA OLED.

Pas 5: Gestió de la biblioteca IDE Arduino

Gestió de la biblioteca IDE Arduino
Gestió de la biblioteca IDE Arduino

Al "Menú: Esbós -> Afegeix biblioteca -> Gestiona biblioteques", instal·leu les dues biblioteques que es mostren a la imatge següent. Recordeu que abans de tot això, heu d'instal·lar el nucli Arduino d'ESP32. Aquest vídeo us mostra com fer-ho it: COM INSTAL·LAR ARDUINO IDE A ESP32.

Pas 6: codi font

El codi font, com es va esmentar, és el mateix que vaig fer servir al vídeo: GRÀFIC DE TEMPERATURA AMB PANTALLA OLED. L'únic canvi que vaig fer en aquest projecte va ser en relació amb la mida de la pantalla.

Pas 7: M5StackDHTGraph.ino

Inclourem les biblioteques M5Stack.h i SimpleDHT.h i definirem els colors utilitzats a la pantalla, així com el pin de dades DHT. També construirem un objecte per a la comunicació amb el sensor, definirem la variable responsable de les lectures i indicarem el valor de l’eix X.

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

Continuem amb les definicions de posicionament de l'eix X i de l'eix Y, les coordenades de visualització de dades de temperatura i humitat, així com les variables que emmagatzemaran els valors llegits. Encara assenyalem la variable per imprimir el gràfic a la pantalla.

// 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 // definició da coordenada on escreveremos os dados de temperatura e umidade #define POS_X_DADOS 30 que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int temperatura = 0; // variável que armazenará o valor da coordenada Y para desenharmos uma linha de example // que varia os valores de 1 em 1 int linhaExemple = 20; int fator = 1; // indicarà se somaremos ou subtrairemos uma unidade na variável linhaExemple

Pas 8: M5StackDHTGraph.ino - Configuració

A la configuració, inicialitzem el M5Stack. Definim ordres per dibuixar el gràfic, configurem el tipus de lletra i els colors del text i posicionem el cursor per escriure.

configuració buida (buida) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela tota de prop M5. Lcd.fillScreen (BLACK); // os comandos a seguir irão desenhar as 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, ample, color) linha horizontal M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO + 1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // configura o tamnaho do text que escreveremos em tela M5. Lcd.setTextSize (3); // configura a cor branca per o text M5. Lcd.setTextColor (WHITE); // posiciona o cursor para escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // indicant una temperatura M5. Lcd.setCursor (POS_X_DADOS + 105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicant a umidade}

Pas 9: M5StackDHTGraph.ino: bucle

A la primera part del bucle, llegim la temperatura i la humitat, mapem el valor de les variables per col·locar-les al gràfic i dibuixem el punt de la pantalla que fa referència a aquests valors llegits des del sensor.

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int status = dht.read2 (DHTPIN, & temp, & umid, NULL); if (estat == SimpleDHTErrSuccess) {temperatura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // necessário pois o display tem 240px de altura e separamos apenas 180 para o gráfico // umidade puede ser lida de 0-100 int temperaturaMapeada = map (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = mapa (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 nuestra línea de ejemplo que fica variando M5. Lcd.drawPixel (POS_X_GRAFICO + leituraAtual, ALTURA_GRAFICO-linhaExemple, YELLOW);

A continuació, definim les possibilitats d’imprimir el gràfic a la pantalla.

// aqui controlem la nostra línia d’exemple, quan no es valora màxim decrementem o valorem // até um valor mínim determinat (no ens cas cas 10), i a partir daí, incrementa novament si (linhaExemple == 50) fator = -1; else if (linhaExemple == 10) fator = 1; // soma o valor de linhaExemple linhaExemple + = fator; // incrementa o contador de leitures realitzades leituraAtual ++; // se a leitura arribar em 270 (número màxim do eixo X) então limparemos a área do gráfico para voltarmos a desenhar. if (leituraAtual == 270) {// limpa a l'àrea tota do graphic 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 l'àrea on col·locem o valor da temperatura e da umidade 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, NEGRE);

// reposiciona o cursor para escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS + 50, POS_Y_DADOS); M5. Lcd.setTextColor (VERMELL); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // reposiciona o cursor para escrever a umidade M5. Lcd.setCursor (POS_X_DADOS + 165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); retard (1000); }

Pas 10: fitxers

T'ha agradat M5Stack? En voleu comprar un? Aneu a:

Descarregueu els fitxers:

PDF

INO

Recomanat: