Cuprins:

ESP32: M5Stack Cu DHT22: 10 pași
ESP32: M5Stack Cu DHT22: 10 pași

Video: ESP32: M5Stack Cu DHT22: 10 pași

Video: ESP32: M5Stack Cu DHT22: 10 pași
Video: Non-Contact Long Range MLX90614-DCI Temperature Sensor with Arduino 2024, Noiembrie
Anonim
Image
Image
ESP32: M5Stack Cu DHT22
ESP32: M5Stack Cu DHT22
ESP32: M5Stack Cu DHT22
ESP32: M5Stack Cu DHT22

Să vorbim astăzi despre un ESP32 foarte special, perfect pentru Internetul obiectelor, care este M5Stack. Conține ESP32 în interior și chiar adaugă pe un afișaj, tastatură, amplificator, difuzor și baterie. Astfel, acest dispozitiv poate face nenumărate lucruri. Când am primit acest hardware, aveam deja software pentru ESP32 și eram portat doar pe afișajul utilizat în acest proiect, care este diferit. Cu toate acestea, codul sursă pe care îl vom folosi este același cu cel folosit în videoclipul nostru TEMPERATURĂ ȘI UMIDITATE CU AFIȘARE OLED.

În circuitul de astăzi, vreau să subliniez în mod specific că avem M5Stack cu conexiuni pozitive și negative, care se alimentează cu un senzor DHT22. Ambele sunt conectate printr-un GPIO. Datele sunt afișate în grafic.

În acest articol, să prezentăm M5Stack și să discutăm aplicațiile sale. Trebuie să subliniez că acest dispozitiv are o intrare pentru un card micro SD, un difuzor de 1W și o priză pentru baterie și are, de asemenea, butoane de interacțiune, un conector i2c, un USB de tip C, IO-uri expuse, un afișaj TFT de doi inci, printre alte caracteristici. Este afișat în imaginea de mai sus. Putem spune că acest dispozitiv este gata pentru IoT, deoarece vine deja cu Bluetooth și ESP32 WiFi. De asemenea, include un magnet pentru fixarea pe suprafețe metalice.

Ți-a plăcut M5Stack? Faceți clic pe:

Pasul 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

O inovație a M5Stack este că, dacă scoateți spatele, vă puteți încadra în diferite module cu funcții diferite, cum ar fi modulul GPS, GSM, LoRa, printre altele. Acest lucru este afișat în imagine.

Mai jos am mai multe exemple de module, de la RS485, DC Motor, Maker, Core, până la controlul motorului pas cu pas.

Acesta este de fapt o modalitate foarte rapidă de a pune împreună un prototip. Pe vremuri, era necesar să cumpărați mai multe cipuri de tranzistoare și să efectuați numeroase ansambluri, care necesitau mult timp și investiții. Abia după aceea a apărut prototiparea produsului. Atunci au apărut Arduino și Raspberry, care sunt plăci.

Acum, avem în sfârșit M5Stack, care este această cutie închisă gata de utilizare. Acest lucru ne eliberează de a trebui să parcurgem alți pași nenumărați.

Alte modele M5Stack sunt prezentate în imagini. Avem un dispozitiv cu tastaturi alfanumerice, numerice și de joc. Acestea vă permit să lucrați ca și cum ar fi un fel de computer. Avem, de asemenea, un exemplu de software care rulează, care poate fi programat în MicroPython, Arduino, ESP-IDF, NodeJS, pe lângă Basic.

Pasul 2: M5Stack Aplicații posibile

M5Stack Aplicații posibile
M5Stack Aplicații posibile
M5Stack Aplicații posibile
M5Stack Aplicații posibile
M5Stack Aplicații posibile
M5Stack Aplicații posibile

Printre exemplele de aplicații M5Stack, avem osciloscopul, așa cum puteți vedea în imagine. Avem, de asemenea, un fel de masă pentru calculator / instrument de tăiere.

Ce zici de un vitezometru pentru bicicletă?

Poate fi, de asemenea, un burghiu de la distanță, care este tipărit în 3D și monitorizat de la distanță printr-un control.

Toate acestea arată că controlul electronic este mult mai accesibil în zilele noastre, la fel cum programarea acestor circuite a devenit mai ușoară.

Pasul 3: M5Stack - Pinii

M5Stack - Pinii
M5Stack - Pinii

Partea din spate a M5Stack se află în această imagine, care arată că puterea este la 5 volți. Imaginea arată în continuare că avem tot ceea ce există în ESP32 cu conectivitate.

Pasul 4: Biblioteca DHT

Biblioteca DHT
Biblioteca DHT

Utilizați lib SimpleDHT, care este aceeași pe care am folosit-o în videoclip: TEMPERATURĂ ȘI UMIDITATE CU AFIȘARE OLED.

Pasul 5: Arduino IDE Library Manage

Arduino IDE Library Manage
Arduino IDE Library Manage

În „Meniu: Schiță -> Adăugare bibliotecă -> Gestionare biblioteci”, să instalăm cele două biblioteci afișate în imaginea de mai jos. Amintiți-vă că, înainte de toate acestea, trebuie să instalați nucleul Arduino al ESP32. Acest videoclip vă arată cum să faceți it: CUM SE INSTALEAZĂ IDE ARDUINO ÎN ESP32.

Pasul 6: Cod sursă

Codul sursă, așa cum am menționat, este același pe care l-am folosit în videoclip: TEMPERATURE GRAPH CU OLED DISPLAY. Singura modificare pe care am făcut-o acestui proiect a fost în raport cu dimensiunea afișajului.

Pasul 7: M5StackDHTGraph.ino

Vom include bibliotecile M5Stack.h și SimpleDHT.h și vom defini culorile utilizate pe afișaj, precum și pinul de date DHT. De asemenea, vom construi un obiect pentru comunicarea cu senzorul, vom defini variabila responsabilă pentru citiri și vom indica valoarea axei X.

// Libs do M5Stack e DHT # include #include // definição das cores that serão usedadas #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 for comunicar com o sensor SimpleDHT22 dht; // variável responsavel por contar o number de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Continuăm cu definițiile de poziționare pe axa X și pe axa Y, coordonatele de afișare a datelor de temperatură și umiditate, precum și variabilele care vor stoca valorile citite. Mai indicăm variabila pentru imprimarea diagramei pe afișaj.

// 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 temperatura e umidade #define POS_X_DADOS 30 care armazenarão os valores lidos da umidade și 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 linhaExemplo = 20; int fator = 1; // indicará se somaremos ou subtrairemos uma unidade na variável linhaExemplo

Pasul 8: M5StackDHTGraph.ino - Configurare

În Setup, inițializăm M5Stack. Definim comenzi pentru desenarea graficului, configurăm fontul, precum și culorile textului și poziționăm cursorul pentru scriere.

configurare nulă (nulă) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela toată de aproape 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, width, color) linha horizontal M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO + 1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // configura o tamnaho do text that escreveremos em tela M5. Lcd.setTextSize (3); // configura a cor branca pentru o text M5. Lcd.setTextColor (WHITE); // posiciona o cursor para escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // indicând o temperatură M5. Lcd.setCursor (POS_X_DADOS + 105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

Pasul 9: M5StackDHTGraph.ino - Buclă

În prima parte a buclei, citim temperatura și umiditatea, mapăm valoarea variabilelor pentru plasarea pe grafic și desenăm punctul de pe ecran care se referă la aceste valori citite de la senzor.

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; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // necesário pois o display tem 240px de altura e separamos apenas 180 para o gráfico // umidade poate fi lida de 0-100 int temperaturaMapeada = map (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = 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 noastra linha de exemplu care fica varianta M5. Lcd.drawPixel (POS_X_GRAFICO + leituraAtual, ALTURA_GRAFICO-linhaExemplo, YELLOW);

Apoi, definim posibilitățile de imprimare a graficului pe ecran.

// aqui controlamos nossa linha de example, when chega no valor maximum decrementamos o valor // até um valor minimum determinado (no nosso case 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 ajunge em 270 (număr maxim do eixo X) então limparemos a área do gráfico para voltarmos a desenhar. if (leituraAtual == 270) {// limpa a areală toată do grafică 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 zonă unde colocamos 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, BLACK);

// reposiciona o cursor para escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS + 50, POS_Y_DADOS); M5. Lcd.setTextColor (RED); 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 ("%"); întârziere (1000); }

Pasul 10: Fișiere

Ți-a plăcut M5Stack? Doriți să cumpărați unul? Accesați:

Descărcați fișierele:

PDF

EU NU

Recomandat: