Kazalo:

ESP32: M5Stack z DHT22: 10 korakov
ESP32: M5Stack z DHT22: 10 korakov

Video: ESP32: M5Stack z DHT22: 10 korakov

Video: ESP32: M5Stack z DHT22: 10 korakov
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Julij
Anonim
Image
Image
ESP32: M5Stack z DHT22
ESP32: M5Stack z DHT22
ESP32: M5Stack z DHT22
ESP32: M5Stack z DHT22

Danes se pogovorimo o zelo posebnem ESP32, ki je kot nalašč za internet stvari, to je M5Stack. V notranjosti vsebuje ESP32 in celo doda zaslon, tipkovnico, ojačevalnik, zvočnik in baterijo. Tako lahko ta naprava naredi nešteto stvari. Ko sem prejel to strojno opremo, sem že imel programsko opremo za ESP32 in sem jo prenesel samo na zaslon, ki se uporablja v tem projektu, kar je drugače. Izvorna koda, ki jo bomo uporabili, je enaka tisti, ki smo jo uporabili v našem videu TEMPERATURA IN VLAŽNOST Z OLEDNIM ZASLONOM.

V današnjem vezju želim posebej poudariti, da imamo M5Stack s pozitivnimi in negativnimi povezavami, ki se napaja s senzorjem DHT22. Oba sta povezana z GPIO. Podatki so prikazani v grafikonu.

V tem članku predstavimo M5Stack in se pogovorimo o njegovih aplikacijah. Poudariti moram, da ima ta naprava vhod za kartico micro SD, 1W zvočnik in vtičnico za baterijo, poleg tega pa ima tudi interakcijske gumbe, priključek i2c, USB tip C, izpostavljene vmesnike, dva-palčni zaslon TFT, med drugimi lastnostmi. To je prikazano na zgornji sliki. Lahko rečemo, da je ta naprava pripravljena za IoT, saj že ima Bluetooth in ESP32 WiFi. Vključuje tudi magnet za pritrditev na kovinske površine.

Vam je bil M5Stack všeč? Kliknite:

1. korak: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Ena od inovacij M5Stack je, da lahko, če vzamete hrbet, vgradite različne module z različnimi funkcijami, kot so modul GPS, GSM, LoRa, med drugim. To je prikazano na sliki.

Spodaj imam več primerov modulov, od RS485, enosmernega motorja, izdelovalca, jedra do krmiljenja koračnega motorja.

To je pravzaprav zelo hiter način za sestavljanje prototipa. V starih časih je bilo treba kupiti več tranzistorskih čipov in izvesti številne sklope, kar je zahtevalo veliko časa in naložb. Šele potem je prišlo do izdelave prototipov izdelka. Takrat sta se pojavila Arduino in Raspberry, ki sta plošči.

Končno imamo M5Stack, to je zaprta škatla, pripravljena za uporabo. To nas osvobaja opravljanja drugih neštetih korakov.

Drugi modeli M5Stack so prikazani na slikah. Imamo napravo z alfanumerično, številsko in igralno tipkovnico. Ti vam omogočajo delo, kot da je nekakšen računalnik. Imamo tudi primer izvajanja programske opreme, ki jo lahko poleg Basic programiramo v MicroPythonu, Arduinu, ESP-IDF, NodeJS.

Korak: M5Stack Možne aplikacije

M5Stack Možne aplikacije
M5Stack Možne aplikacije
M5Stack Možne aplikacije
M5Stack Možne aplikacije
M5Stack Možne aplikacije
M5Stack Možne aplikacije

Med primeri aplikacij M5Stack imamo osciloskop, kot lahko vidite na sliki. Imamo tudi nekakšno tabelo kalkulatorja / rezalnega orodja.

Kaj pa merilnik hitrosti za kolo?

Lahko je tudi vrtalnik na daljavo, ki je natisnjen v 3D in na daljavo nadziran s krmilnikom.

Vse to kaže, da je krmiljenje elektronike v teh dneh veliko bolj dostopno, prav tako kot je postalo lažje programiranje teh vezij.

3. korak: M5Stack - Zatiči

M5Stack - Zatiči
M5Stack - Zatiči

Zadnji del M5Stack je na tej sliki, kar kaže, da je moč pri 5 voltih. Slika nadalje razkriva, da imamo vse, kar obstaja v ESP32, s povezljivostjo.

4. korak: Knjižnica DHT

Knjižnica DHT
Knjižnica DHT

Uporabite knjižnico SimpleDHT, ki je enaka tisti, ki sem jo uporabil v videoposnetku: TEMPERATURA IN VLAGNOST Z OLEDNIM ZASLONOM.

5. korak: Upravljanje knjižnice Arduino IDE

Upravljanje knjižnice IDE Arduino
Upravljanje knjižnice IDE Arduino

V "Meni: Sketch -> Dodaj knjižnico -> Upravljanje knjižnic" namestimo dve knjižnici, prikazani na spodnji sliki. Ne pozabite, da morate pred vsem tem namestiti jedro Arduino ESP32. Ta video vam pokaže, kako to storite it: KAKO NAMESTITE ARDUINO IDE V ESP32.

6. korak: izvorna koda

Kot je omenjeno, je izvorna koda enaka tisti, ki sem jo uporabil v videoposnetku: TEMPERATURNI GRAF Z OLEDNIM ZASLONOM. Edina sprememba v tem projektu je bila v zvezi z velikostjo zaslona.

7. korak: M5StackDHTGraph.ino

Vključili bomo knjižnici M5Stack.h in SimpleDHT.h ter opredelili barve, ki se uporabljajo na zaslonu, kot tudi podatkovni zatič DHT. Konstruirali bomo tudi objekt za komunikacijo s senzorjem, opredelili spremenljivko, odgovorno za odčitke, in navedli vrednost osi X.

// Libs do M5Stack e DHT #include #include // definiraj das cores que serão utilizadas #define BLACK 0x0000 #define RDEČE 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0xFFFFF dode // DHE // konstruktor do objeta para comunicar com o senzor SimpleDHT22 dht; // variaável responsavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Nadaljujemo z opredelitvami pozicioniranja osi X in Y, koordinatami prikaza podatkov o temperaturi in vlažnosti ter spremenljivkami, ki bodo shranjevale odčitane vrednosti. Še vedno kažemo na spremenljivko za tiskanje grafikona na zaslonu.

// 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 escreverede os POSOS_ADOS_PADOS 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

8. korak: M5StackDHTGraph.ino - nastavitev

V nastavitvah inicializiramo M5Stack. Določimo ukaze za risanje grafa, konfiguriramo pisavo in barve besedila ter postavimo kazalec za pisanje.

void setup (void) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela toda de preto 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, širina, barva) linha vodoravna M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, BELA); // eixo X // konfiguracija tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // konfiguriramo a cor branca para ali texto M5. Lcd.setTextColor (BELO); // pozicija kurzorja za escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // označuje temperaturo M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

9. korak: M5StackDHTGraph.ino - Zanka

V prvem delu zanke beremo temperaturo in vlažnost, preslikamo vrednost spremenljivk za umestitev na graf in narišemo točko na zaslonu, ki se nanaša na te vrednosti, prebrane s senzorja.

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 // potrebno stanje glede prikaza tem 240px de altura e separamos apenas 180 para o gráfico // umidade nastavitev lide od 0-100 int temperatureMapeada = map (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = zemljevid (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, RDEČA); 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);

Nato določimo možnosti tiskanja grafike na zaslonu.

// aqui controlamos nossa linha de exemplo, quando chega no valor máximo decrementamos o valor // até um valor mínimo deterado (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; // dodatek 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, ČRNA); leituraAtual = 1; // volta o contador de leitura para 1 (nova coordenada X)} // limpa a area onde 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, ČRNO);

// Repoziciona o kurzorju za nastavitev temperature M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (RDEČA); M5. Lcd.tisk (temperatura); M5. Lcd.tisk ((char) 247); // repoziciona o kurzorju za izklop in umerjanje M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.tisk (umidade); M5. Lcd.print ("%"); zamuda (1000); }

10. korak: Datoteke

Vam je bil všeč M5Stack? Si ga želite kupiti? Pojdite na:

Prenesite datoteke:

PDF

JAZ NE

Priporočena: