INHOUDSOPGAWE:

ESP32: M5Stack met DHT22: 10 stappe
ESP32: M5Stack met DHT22: 10 stappe

Video: ESP32: M5Stack met DHT22: 10 stappe

Video: ESP32: M5Stack met DHT22: 10 stappe
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, November
Anonim
Image
Image
ESP32: M5Stack Met DHT22
ESP32: M5Stack Met DHT22
ESP32: M5Stack Met DHT22
ESP32: M5Stack Met DHT22

Kom ons praat vandag oor 'n baie spesiale ESP32, perfek vir die Internet of Things, wat M5Stack is. Dit bevat die ESP32 binne en voeg selfs 'n skerm, sleutelbord, versterker, luidspreker en battery by. Hierdie toestel kan dus talle dinge doen. Toe ek hierdie hardeware ontvang, het ek reeds sagteware vir ESP32 gehad en slegs na die skerm wat in hierdie projek gebruik is, oorgedra, wat anders is. Die bronkode wat ons sal gebruik, is egter dieselfde as in ons video TEMPERATUUR EN VOGTIGHEID MET OLED -DISPLAY.

In die huidige kring wil ek spesifiek beklemtoon dat ons die M5Stack het met positiewe en negatiewe verbindings, wat homself voed met 'n DHT22 -sensor. Albei is verbind deur 'n GPIO. Die data word in die grafiek vertoon.

In hierdie artikel, laat ons M5Stack bekendstel en die toepassings daarvan bespreek. Ek moet beklemtoon dat hierdie toestel 'n ingang het vir 'n micro SD-kaart, 'n 1W-luidspreker en 'n batterysok, en ook interaksieknoppies, 'n i2c-aansluiting, 'n USB-tipe C, blootgestelde IO's, 'n twee-duim TFT-skerm, onder ander funksies. Dit word op die foto hierbo getoon. Ons kan sê dat hierdie toestel gereed is vir IoT, want dit bevat reeds Bluetooth en ESP32 WiFi. Dit bevat ook 'n magneet om aan metaaloppervlaktes vasgemaak te word.

Het jy van M5Stack gehou? Klik:

Stap 1: M5Stack

M5Stapel
M5Stapel
M5Stapel
M5Stapel
M5Stapel
M5Stapel
M5Stapel
M5Stapel

Een vernuwing van die M5Stack is dat as u die rug afneem, u verskillende modules met verskillende funksies kan inpas, soos onder andere die GPS -module, GSM, LoRa. Dit word in die prent getoon.

Ek het meer voorbeelde van modules hieronder, wat wissel van RS485, DC Motor, Maker, Core tot stepper motor control.

Dit is eintlik 'n baie vinnige manier om 'n prototipe saam te stel. In die ou dae was dit nodig om verskeie transistorskyfies te koop en talle byeenkomste uit te voer, wat baie tyd en belegging verg. Eers daarna kom die prototipering van die produk. Dit is toe dat Arduino en Framboos verskyn, wat plate is.

Nou het ons uiteindelik die M5Stack, wat die gereed-vir-gebruik geslote boks is. Dit bevry ons van ander ontelbare stappe.

Ander M5Stack -modelle word in prente getoon. Ons het 'n toestel met alfanumerieke, numeriese en speletjie -sleutelborde. Hiermee kan u werk asof dit 'n soort rekenaar is. Ons het ook 'n voorbeeld van sagteware wat, behalwe Basic, in MicroPython, Arduino, ESP-IDF, NodeJS geprogrammeer kan word.

Stap 2: M5Stack moontlike toepassings

M5Stack Moontlike toepassings
M5Stack Moontlike toepassings
M5Stack Moontlike toepassings
M5Stack Moontlike toepassings
M5Stack Moontlike toepassings
M5Stack Moontlike toepassings

Onder die voorbeelde van M5Stack -toepassings het ons die ossilloskoop, soos u op die prent kan sien. Ons het ook 'n soort sakrekenaar / sny gereedskap tafel.

Hoe gaan dit met 'n fietssnelheidsmeter?

Dit kan ook 'n afstandboor wees, wat in 3D gedruk word en op afstand deur 'n kontrole gemonitor word.

Dit alles toon dat elektroniese beheer deesdae baie meer bekostigbaar is, net soos die programmering van hierdie stroombane makliker geword het.

Stap 3: M5Stack - penne

M5Stack - penne
M5Stack - penne

Die agterkant van die M5Stack is in hierdie beeld, wat toon dat die krag op 5 volt is. Die beeld onthul verder dat ons alles wat in ESP32 bestaan, met konneksie het.

Stap 4: DHT -biblioteek

DHT -biblioteek
DHT -biblioteek

Gebruik die SimpleDHT lib, wat dieselfde is as wat ek in die video gebruik het: TEMPERATUUR EN VOGTIGHEID MET OLED -DISPLAY.

Stap 5: Arduino IDE Library Manage

Arduino IDE Library Manage
Arduino IDE Library Manage

In die 'Spyskaart: Skets -> Voeg biblioteek by -> Beheer biblioteke', laat ons die twee biblioteke wat in die onderstaande prent verskyn, installeer. Onthou dat u voor dit alles die Arduino -kern van ESP32 moet installeer. dit: HOE OM ARDUINO IDE IN ESP32 INSTALLEER.

Stap 6: Bronkode

Die bronkode is, soos genoem, dieselfde as wat ek in die video gebruik het: TEMPERATUURGRAFIEK MET OLED -DISPLAY. Die enigste verandering wat ek aan hierdie projek aangebring het, was in verhouding tot die grootte van die skerm.

Stap 7: M5StackDHTGraph.ino

Ons sal die M5Stack.h- en SimpleDHT.h -biblioteke insluit, en ons sal die kleure wat in die skerm gebruik word, definieer, sowel as die DHT -datapennetjie. Ons bou ook 'n voorwerp vir kommunikasie met die sensor, definieer die veranderlike wat verantwoordelik is vir die metings en dui die waarde van die X-as aan.

// 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 // bouer vir 'n kommunikasie met 'n sensor SimpleDHT22 dht; // verskillende reaksies op die huidige lys van realisadas e indicador do valor no eixo X int leituraAtual = 1;

Ons gaan voort met die definisies van die posisies van die X-as en die Y-as, die koördinate van die temperatuur- en humiditeitsdata, sowel as die veranderlikes wat die geleesde waardes stoor. Ons wys nog steeds op die veranderlike om die grafiek op die skerm te druk.

// 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 op POS_deOS_deOS_deOS_deOS_deOS_deOSde_deOSde_deOSde_deOS que armazenarão os valores lidos da umidade e temperatuura int umidade = 0; int temperatuur = 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 fator = 1; // aanduidings dat daar somaremos of subtrairemos is om 'n eenvormige en uiteenlopende lyn te gebruik

Stap 8: M5StackDHTGraph.ino - Opstelling

In Setup initialiseer ons die M5Stack. Ons definieer opdragte om die grafiek te teken, stel die lettertipe sowel as tekskleure op en plaas die wyser vir skryf.

leemte opstel (leeg) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela toda de preto M5. Lcd.fillScreen (SWART); // 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; // eixo Y // drawFastHLine (x, y, breedte, kleur) linha horisontaal M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // konfigurasie of teks wat u kan stuur om M5. Lcd.setTextSize (3) te gebruik; // configura a cor branca para o texto M5. Lcd.setTextColor (WHITE); // posiciona o cursor para escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // dui op 'n temperatuur van M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // aanduiding van 'n opmerking}

Stap 9: M5StackDHTGraph.ino - Lus

In die eerste deel van die lus lees ons die temperatuur en humiditeit, karteer die waarde van die veranderlikes vir plasing op die grafiek en teken die punt op die skerm wat verwys na hierdie waardes wat deur die sensor gelees word.

void loop () {// Fazemos a leitura da temperatuura e umiade float temp, umid; int status = dht.read2 (DHTPIN, & temp, & umid, NULL); if (status == SimpleDHTErrSuccess) {temperatuura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // needsário 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 (temperatuur, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = kaart (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-temperatuuraMapeada, 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, GEEL);

Dan definieer ons die moontlikhede om die grafika op die skerm te druk.

// 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; anders as (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 en 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, SWART); leituraAtual = 1; // volta o contador de leitura para 1 (nova coordenada X)} // limpa a área onde colocamos o valor da temperatura e da umidade M5. Lcd.fillRect (POS_X_DADOS+50, POS_Y_DADOS, 60, 30, SWART); M5. Lcd.fillRect (POS_X_DADOS+165, POS_Y_DADOS, 90, 30, SWART);

// reposiciona o cursor for escrever a temperaturea M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (ROOI); M5. Lcd.print (temperatuur); M5. Lcd.print ((char) 247); // reposiciona o cursor for escrever a umidade M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); vertraging (1000); }

Stap 10: lêers

Hou jy van M5Stack? Wil jy een koop? Gaan na:

Laai die lêers af:

PDF

EK NEE

Aanbeveel: