Përmbajtje:

ESP32: M5Stack Me DHT22: 10 hapa
ESP32: M5Stack Me DHT22: 10 hapa

Video: ESP32: M5Stack Me DHT22: 10 hapa

Video: ESP32: M5Stack Me DHT22: 10 hapa
Video: Introduction to M5Stack Core2 ESP32 2" Display Development Module -Robojax 2024, Nëntor
Anonim
Image
Image
ESP32: M5Stack Me DHT22
ESP32: M5Stack Me DHT22
ESP32: M5Stack Me DHT22
ESP32: M5Stack Me DHT22

Le të flasim sot për një ESP32 shumë të veçantë, të përsosur për Internetin e Gjërave, që është M5Stack. Ai përmban ESP32 brenda dhe madje shton një ekran, tastierë, amplifikator, altoparlant dhe bateri. Kështu, kjo pajisje mund të bëjë gjëra të panumërta. Kur mora këtë pajisje, unë tashmë kisha softuer për ESP32 dhe u transferova vetëm në ekranin e përdorur në këtë projekt, i cili është i ndryshëm. Sidoqoftë, kodi burimor që do të përdorim është i njëjti që përdoret në videon tonë TEMPERATURA DHE LUMTSIA ME DISPLAY OLED.

Në qarkun e sotëm, në mënyrë specifike dua të theksoj se kemi M5Stack me lidhje pozitive dhe negative, i cili ushqehet vetë me një sensor DHT22. Të dy janë të lidhur me një GPIO. Të dhënat shfaqen në tabelë.

Në këtë artikull, le të prezantojmë M5Stack dhe të diskutojmë aplikimet e tij. Më duhet të theksoj se kjo pajisje ka një hyrje për një kartë micro SD, një altoparlant 1W dhe një prizë baterie, dhe gjithashtu ka butona ndërveprimi, një lidhës i2c, një USB tip C, IO të ekspozuar, një ekran TFT dy inç, ndër veçori të tjera. Shtë treguar në foton e mësipërme. Mund të themi se kjo pajisje është gati për IoT, pasi tashmë vjen me Bluetooth dhe ESP32 WiFi. Ai gjithashtu përfshin një magnet për ngjitje në sipërfaqet metalike.

A ju pëlqeu M5Stack? Klikoni:

Hapi 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Një risi e M5Stack është se, nëse hiqni shpinën, mund të përshtateni në module të ndryshme me funksione të ndryshme, të tilla si moduli GPS, GSM, LoRa, ndër të tjera. Kjo është treguar në imazh.

Unë kam më shumë shembuj të moduleve më poshtë, duke filluar nga RS485, DC Motor, Maker, Core, deri te kontrolli i motorit stepper.

Kjo është në të vërtetë një mënyrë shumë e shpejtë për të bashkuar një prototip. Në ditët e vjetra, ishte e nevojshme të blini disa patate të skuqura transistor dhe të kryeni montime të shumta, të cilat kërkonin shumë kohë dhe investime. Vetëm pasi erdhi prototipizimi i produktit. Ishte atëherë që u shfaqën Arduino dhe mjedra, të cilat janë pjata.

Tani, më në fund kemi M5Stack, i cili është kjo kuti e mbyllur gati për përdorim. Kjo na çliron nga nevoja për të kryer hapa të tjerë të panumërt.

Modele të tjera M5Stack tregohen në imazhe. Ne kemi një pajisje me tastierë alfanumerike, numerike dhe lojëra. Këto ju lejojnë të punoni sikur të jetë një lloj kompjuteri. Ne gjithashtu kemi një shembull të funksionimit të softuerit, i cili mund të programohet në MicroPython, Arduino, ESP-IDF, NodeJS, përveç Basic.

Hapi 2: Aplikimet e mundshme M5Stack

M5Stack Aplikimet e Mundshme
M5Stack Aplikimet e Mundshme
M5Stack Aplikimet e Mundshme
M5Stack Aplikimet e Mundshme
M5Stack Aplikimet e Mundshme
M5Stack Aplikimet e Mundshme

Ndër shembujt e aplikacioneve M5Stack, ne kemi oshiloskopin, siç mund ta shihni në imazh. Ne gjithashtu kemi një lloj tabele llogaritëse / mjetesh prerëse.

Po një shpejtësimatës biçikletash?

Mund të jetë gjithashtu një stërvitje në distancë, e cila shtypet në 3D dhe monitorohet nga distanca nga një kontroll.

E gjithë kjo tregon se kontrolli elektronik është shumë më i përballueshëm këto ditë, ashtu si programimi i këtyre qarqeve është bërë më i lehtë.

Hapi 3: M5Stack - Kunjat

M5Stack - Kunjat
M5Stack - Kunjat

Pjesa e pasme e M5Stack është në këtë imazh, i cili tregon se fuqia është në 5 volt. Imazhi më tej zbulon se ne kemi gjithçka që ekziston në ESP32 me lidhje.

Hapi 4: Biblioteka DHT

Biblioteka DHT
Biblioteka DHT

Përdorni librin SimpleDHT, i cili është i njëjti që kam përdorur në video: TEMPERATURA DHE LAGESHTSIA ME DISPLAY OLED.

Hapi 5: Menaxhoni Bibliotekën Arduino IDE

Menaxhoni Bibliotekën Arduino IDE
Menaxhoni Bibliotekën Arduino IDE

Në "Menu: Skicë -> Shto Bibliotekë -> Menaxhoni Bibliotekat", le të instalojmë dy bibliotekat e paraqitura në imazhin më poshtë. Mos harroni se para gjithë kësaj, ju duhet të instaloni bërthamën Arduino të ESP32. Kjo video ju tregon se si të bëni ajo: SI T IN INSTALOJ ARDUINO IDE N E ESP32.

Hapi 6: Kodi Burimor

Kodi burimor, siç u përmend, është i njëjtë me atë që kam përdorur në video: TRAJTIMI I TEMPERATURES ME DISPLAY OLED. Ndryshimi i vetëm që kam bërë në këtë projekt ishte në lidhje me madhësinë e ekranit.

Hapi 7: M5StackDHTGraph.ino

Ne do të përfshijmë bibliotekat M5Stack.h dhe SimpleDHT.h, dhe do të përcaktojmë ngjyrat e përdorura në ekran, si dhe pinin e të dhënave DHT. Ne gjithashtu do të ndërtojmë një objekt për komunikim me sensorin, do të përcaktojmë ndryshoren përgjegjëse për leximet dhe do të tregojmë vlerën e boshtit X.

// Libs do M5Stack e DHT #përfshijnë #include // definoni das cores que serão utilisadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0xFFFF #DHFOFT 0 // konstruktor për të përcaktuar komunikimin e sensorit SimpleDHT22 dht; // variável responsavel for contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Ne vazhdojmë me përkufizimet e pozicionimit të boshtit X dhe boshtit Y, koordinatat e shfaqjes së të dhënave të temperaturës dhe lagështisë, si dhe variablat që do të ruajnë vlerat e lexuara. Ne ende tregojmë variablin për printimin e tabelës në ekran.

// përkufizime të bëra me dozën eixos X e Y #përcaktoni POS_X_GRAFICO 30 #përcaktoni POS_Y_GRAFICO 3 #përcaktoni ALTURA_GRAFICO 180 #përcaktoni COMPRIMENTO_GRAFICO 270 // definoni 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 exemplo // 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

Hapi 8: M5StackDHTGraph.ino - Konfigurimi

Në Setup, ne fillojmë M5Stack. Ne përcaktojmë komandat për vizatimin e grafikut, konfigurojmë fontin si dhe ngjyrat e tekstit dhe pozicionojmë kursorin për të shkruar.

void setup (void) {Serial.begin (115200); // Inicializa o M5Stack M5.filloj (); // pinta a tela toda de preto M5. Lcd.fillScreen (E ZI); // 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, WHITE) // eixo Y // drawFastHLine (x, y, gjerësia, ngjyra) linha horizontale M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // konfigurimi ose plotësimi i teksteve që do të shfaqen në tela M5. Lcd.setTextSize (3); // konfiguroni a cor branca para o texto M5. Lcd.setTextColor (E BARDH); // poziciona ose kursori për escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // tregon një temperaturë M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // tregon një umidade}

Hapi 9: M5StackDHTGraph.ino - Lak

Në pjesën e parë të Loop, ne lexojmë temperaturën dhe lagështinë, hartojmë vlerën e variablave për vendosje në grafik dhe vizatojmë pikën në ekran që i referohet këtyre vlerave të lexuara nga sensori.

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int status = dht.read2 (DHTPIN, & temp, & umid, NULL); nëse (statusi == SimpleDHTErrSuccess) {temperatura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // e nevojshme për të shfaqur tem 240px de altura e separamos apenas 180 para o gráfico // umidade pode ser lida de 0-100 int temperaturaMapeada = hartë (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = harta (umidade, 0, 100, 0, ALTURA_GRAFICO); // desenha na tela ose ponto referente aos valores lidos do sensor M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-temperaturaMapeada, KUQ); M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-umidadeMapeada, CYAN); // deshenha tela ose ponto referente a nossa linha de exemplo que fica variando M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, YELLOW);

Pastaj, ne përcaktojmë mundësitë e printimit të grafikut në ekran.

// aqui controlamos nossa linha de exemplo, quando chega no valor máximo decmentamos o valor // até um valor mínimo determinado (no nosso caso 10), e a partir daí, incrementa novamente if (linhaExemplo == 50) fator = -1; përndryshe nëse (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 limo 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, ZI); leituraAtual = 1; // volta o contador de leitura para 1 (novordinata 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, ZI); M5. Lcd.fillRect (POS_X_DADOS+165, POS_Y_DADOS, 90, 30, ZI);

// reposiciona ose kursori për ruajtjen e temperaturës M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (KUQ); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // reposiciona ose kursori për ruajtjen e një umidade M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); vonesa (1000); }

Hapi 10: Skedarët

Ju pëlqeu M5Stack? Dëshironi të blini një? Shkoni në:

Shkarkoni skedarët:

PDF

INO

Recommended: