Obsah:

ESP32: M5Stack s DHT22: 10 krokov
ESP32: M5Stack s DHT22: 10 krokov

Video: ESP32: M5Stack s DHT22: 10 krokov

Video: ESP32: M5Stack s DHT22: 10 krokov
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, Júl
Anonim
Image
Image
ESP32: M5Stack s DHT22
ESP32: M5Stack s DHT22
ESP32: M5Stack s DHT22
ESP32: M5Stack s DHT22

Hovorme dnes o úplne špeciálnom ESP32, perfektnom pre internet vecí, ktorým je M5Stack. Vnútri obsahuje ESP32 a dokonca pridáva aj displej, klávesnicu, zosilňovač, reproduktor a batériu. Toto zariadenie teda dokáže nespočetné množstvo vecí. Keď som dostal tento hardvér, mal som už softvér pre ESP32 a portoval som ho iba na displej použitý v tomto projekte, ktorý je iný. Zdrojový kód, ktorý použijeme, je však rovnaký ako v našom videu TEPLOTA A VLHKOSŤ S OLED DISPLEJOM.

V dnešnom okruhu chcem konkrétne zdôrazniť, že tu máme M5Stack s kladným a záporným zapojením, ktorý sa napája na snímač DHT22. Oba sú prepojené pomocou GPIO. Údaje sú zobrazené v grafe.

V tomto článku si predstavíme M5Stack a prediskutujeme jeho aplikácie. Musím zdôrazniť, že toto zariadenie má vstup pre kartu micro SD, 1W reproduktor a zásuvku na batériu a tiež obsahuje interakčné tlačidlá, konektor i2c, USB typu C, exponované IO, dvojpalcový TFT displej, okrem iných funkcií. Je to znázornené na obrázku vyššie. Môžeme povedať, že toto zariadenie je pripravené na IoT, pretože už je vybavené rozhraním Bluetooth a ESP32 WiFi. Obsahuje tiež magnet na prichytenie na kovové povrchy.

Páčilo sa vám M5Stack? Kliknite:

Krok 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Jednou z inovácií M5Stack je, že ak zložíte chrbát, zmestia sa do vás rôzne moduly s rôznymi funkciami, ako napríklad modul GPS, GSM, LoRa. Toto je znázornené na obrázku.

Nasleduje niekoľko príkladov modulov, od RS485, DC Motor, Maker, Core až po ovládanie krokových motorov.

Toto je skutočne veľmi rýchly spôsob, ako zostaviť prototyp. V dávnych dobách bolo potrebné kúpiť niekoľko tranzistorových čipov a vykonať množstvo zostáv, čo si vyžadovalo veľa času a investícií. Až potom nasledovalo prototypovanie produktu. Práve vtedy sa objavili Arduino a Raspberry, čo sú taniere.

Teraz konečne máme M5Stack, čo je tento uzavretý box pripravený na použitie. To nás oslobodzuje od toho, že musíme vykonať ďalšie nespočetné množstvo krokov.

Ostatné modely M5Stack sú zobrazené na obrázkoch. Máme zariadenie s alfanumerickými, numerickými a hernými klávesnicami. Umožňujú vám pracovať, ako by to bol druh počítača. Máme tiež príklad spusteného softvéru, ktorý je možné okrem Basic naprogramovať aj v programoch MicroPython, Arduino, ESP-IDF, NodeJS.

Krok 2: Možné aplikácie M5Stack

Možné aplikácie M5Stack
Možné aplikácie M5Stack
Možné aplikácie M5Stack
Možné aplikácie M5Stack
Možné aplikácie M5Stack
Možné aplikácie M5Stack

Medzi príkladmi aplikácií M5Stack máme osciloskop, ako vidíte na obrázku. Máme tiež akúsi tabuľku kalkulačiek / rezných nástrojov.

Čo hovoríte na rýchlomer bicykla?

Môže to byť aj diaľkový vrták, ktorý je vytlačený v 3D a diaľkovo monitorovaný pomocou ovládača.

To všetko ukazuje, že ovládanie elektroniky je v dnešnej dobe oveľa dostupnejšie, rovnako ako sa programovanie týchto obvodov stalo jednoduchším.

Krok 3: M5Stack - piny

M5Stack - piny
M5Stack - piny

Zadná strana M5Stack je na tomto obrázku, ktorý ukazuje, že výkon je 5 voltov. Obrázok ďalej odhaľuje, že máme všetko, čo existuje v ESP32, s pripojením.

Krok 4: Knižnica DHT

Knižnica DHT
Knižnica DHT

Použite lib SimpleDHT, ktorý je ten istý, ktorý som použil vo videu: TEPLOTA A VLHKOSŤ S OLED DISPLEJOM.

Krok 5: Správa knižnice Arduino IDE

Správa knižnice Arduino IDE
Správa knižnice Arduino IDE

V „Menu: Skica -> Pridať knižnicu -> Spravovať knižnice“nainštalujeme dve knižnice zobrazené na obrázku nižšie. Nezabudnite, že pred tým všetkým musíte nainštalovať jadro Arduino ESP32. Toto video ukazuje, ako postupovať to: AKO Nainštalovať ARDUINO IDE do ESP32.

Krok 6: Zdrojový kód

Zdrojový kód, ako už bolo spomenuté, je ten istý, ktorý som použil vo videu: TEPLOTNÝ GRAF S OLED DISPLEJOM. Jediná zmena, ktorú som na tomto projekte vykonal, bola vo vzťahu k veľkosti displeja.

Krok 7: M5StackDHTGraph.ino

Zahrneme knižnice M5Stack.h a SimpleDHT.h a definujeme farby používané na displeji, ako aj dátový pin DHT. Tiež zostrojíme objekt na komunikáciu so senzorom, definujeme premennú zodpovednú za údaje a indikujeme hodnotu osi X.

// Libs do M5Stack e DHT #include #include // definicas das cores que serao utilizadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define // konštrutor do objeto para comunicar com o sensor SimpleDHT22 dht; // variável responavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Pokračujeme definíciami polohy osi X a osi Y, súradnicami zobrazovania údajov o teplote a vlhkosti a tiež premennými, ktoré budú ukladať načítané hodnoty. Stále ukazujeme na premennú na tlač grafu na displeji.

// definície polohy a rozlíšenia X a Y #definujte POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // definicio da coordenada onde escreveremos os dad_dex_d_d_ koľko 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; // indikácia sa týka niektorých subtrairemos uma unidade na variável linhaExemplo

Krok 8: M5StackDHTGraph.ino - nastavenie

V programe Setup inicializujeme M5Stack. Definujeme príkazy na kreslenie grafu, nakonfigurujeme farby písma a textu a umiestnime kurzor na písanie.

void setup (void) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela toda de preto M5. Lcd.fillScreen (BLACK); // čo môže znamenať viac ako dve rôzne varianty // drawFastVLine (x, y, width, color) line vertikálne 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 // konfigurácia tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // konfigurácia a kopírovanie textu v texte M5. Lcd.setTextColor (BIELY); // pozícia kurzora para escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // indikácia teploty M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

Krok 9: M5StackDHTGraph.ino - slučka

V prvej časti slučky odčítame teplotu a vlhkosť, zmapujeme hodnotu premenných pre umiestnenie do grafu a na obrazovku nakreslíme bod, ktorý odkazuje na tieto hodnoty načítané zo senzora.

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 // nutá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 (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 nossa linha de exemplo que fica variando M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, YELLOW);

Potom definujeme možnosti tlače grafiky na displej.

// 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; else if (linhaExemplo == 10) fator = 1; // soma o valor de linhaExemplo linhaExemplo += fator; // prírastky o lehotách realizácie 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, BLACK); 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, BLACK); M5. Lcd.fillRect (POS_X_DADOS+165, POS_Y_DADOS, 90, 30, ČIERNY);

// umiestnenie kurzora para teplota a teplota M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (ČERVENÁ); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // umiestnenie kurzora 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 ("%"); oneskorenie (1000); }

Krok 10: Súbory

Páčilo sa vám M5Stack? Chcete si jeden kúpiť? Prejdite na:

Stiahnite si súbory:

PDF

INO

Odporúča: