Obsah:

ESP32: M5Stack s DHT22: 10 kroků
ESP32: M5Stack s DHT22: 10 kroků

Video: ESP32: M5Stack s DHT22: 10 kroků

Video: ESP32: M5Stack s DHT22: 10 kroků
Video: Arduino návody | Senzor BME280 | Měření teploty, vlhkosti a tlaku 2024, Červenec
Anonim
Image
Image
ESP32: M5Stack s DHT22
ESP32: M5Stack s DHT22
ESP32: M5Stack s DHT22
ESP32: M5Stack s DHT22

Pojďme si dnes promluvit o velmi speciálním ESP32, perfektním pro internet věcí, kterým je M5Stack. Obsahuje ESP32 uvnitř a dokonce přidává displej, klávesnici, zesilovač, reproduktor a baterii. Toto zařízení tedy dokáže nespočet věcí. Když jsem obdržel tento hardware, měl jsem již software pro ESP32 a portoval jsem pouze na displej použitý v tomto projektu, což je jiné. Zdrojový kód, který použijeme, je však stejný jako v našem videu TEPLOTA A VLHKOST S OLED DISPLEJEM.

V dnešním okruhu chci konkrétně zdůraznit, že tu máme M5Stack s kladným a záporným spojením, který se sám napájí senzorem DHT22. Oba jsou propojeny GPIO. Data jsou zobrazena v grafu.

V tomto článku si představíme M5Stack a probereme jeho aplikace. Musím zdůraznit, že toto zařízení má vstup pro kartu micro SD, 1W reproduktor a zásuvku pro baterie a také má interakční tlačítka, konektor i2c, USB typu C, exponované IO, dvoupalcový TFT displej, mimo jiné funkce. Je to znázorněno na obrázku výše. Můžeme říci, že toto zařízení je připraveno pro IoT, protože již přichází s Bluetooth a ESP32 WiFi. Obsahuje také magnet pro připevnění na kovové povrchy.

Líbil se vám software M5Stack? Klikněte na:

Krok 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Jednou z novinek M5Stack je, že pokud sundáte záda, můžete se vejít do různých modulů s různými funkcemi, jako je mimo jiné modul GPS, GSM, LoRa. To je znázorněno na obrázku.

Níže mám více příkladů modulů, od RS485, DC Motor, Maker, Core, až po řízení krokových motorů.

Toto je vlastně velmi rychlý způsob, jak sestavit prototyp. Za starých časů bylo nutné koupit několik tranzistorových čipů a provést řadu sestav, což vyžadovalo spoustu času a investic. Teprve poté došlo k prototypování produktu. Tehdy se objevilo Arduino a Raspberry, což jsou talíře.

Nyní konečně máme M5Stack, což je tento uzavřený box připravený k použití. To nás osvobozuje od nutnosti provádět další nesčetné kroky.

Další modely M5Stack jsou zobrazeny na obrázcích. Máme zařízení s alfanumerickou, numerickou a herní klávesnicí. Ty vám umožní pracovat, jako by se jednalo o druh počítače. Máme také příklad spuštěného softwaru, který lze kromě Basic naprogramovat také v MicroPython, Arduino, ESP-IDF, NodeJS.

Krok 2: Možné aplikace M5Stack

Možné aplikace M5Stack
Možné aplikace M5Stack
Možné aplikace M5Stack
Možné aplikace M5Stack
Možné aplikace M5Stack
Možné aplikace M5Stack

Mezi příklady aplikací M5Stack máme osciloskop, jak můžete vidět na obrázku. Máme také jakousi tabulku kalkulaček / řezných nástrojů.

Co třeba rychloměr na kolo?

Může to být také vzdálená vrtačka, která je vytištěna ve 3D a monitorována dálkově pomocí ovládacího prvku.

To vše ukazuje, že ovládání elektroniky je v dnešní době mnohem dostupnější, stejně jako se programování těchto obvodů stalo snazším.

Krok 3: M5Stack - piny

M5Stack - piny
M5Stack - piny

Na tomto obrázku je zadní strana M5Stack, která ukazuje, že výkon je 5 voltů. Obrázek dále ukazuje, že máme vše, co existuje v ESP32 s konektivitou.

Krok 4: Knihovna DHT

Knihovna DHT
Knihovna DHT

Použijte lib SimpleDHT, který je stejný jako ve videu: TEPLOTA A VLHKOST S OLED DISPLAY.

Krok 5: Správa knihovny Arduino IDE

Správa knihovny Arduino IDE
Správa knihovny Arduino IDE

V části „Nabídka: Skica -> Přidat knihovnu -> Spravovat knihovny“nainstalujeme dvě knihovny zobrazené na obrázku níže. Pamatujte, že před tím vším musíte nainstalovat jádro Arduino ESP32. Toto video ukazuje, jak postupovat it: JAK INSTALOVAT ARDUINO IDE DO ESP32.

Krok 6: Zdrojový kód

Jak již bylo zmíněno, zdrojový kód je stejný jako ve videu: TEPLOTNÍ GRAF S OLED DISPLAY. Jediná změna, kterou jsem u tohoto projektu provedl, byla ve vztahu k velikosti displeje.

Krok 7: M5StackDHTGraph.ino

Zahrneme knihovny M5Stack.h a SimpleDHT.h a definujeme barvy použité na displeji a také datový pin DHT. Také zkonstruujeme objekt pro komunikaci se senzorem, definujeme proměnnou odpovědnou za odečty a označíme hodnotu osy X.

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

Pokračujeme definicemi polohování osy X a Y, souřadnicemi zobrazení údajů o teplotě a vlhkosti a také proměnnými, které budou ukládat načtené hodnoty. Stále ukazujeme na proměnnou pro tisk grafu na displeji.

// definice polohy a umístění X e Y #definujte 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 dex_ # 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; // indikace se projevují jako subtrairemos uma unidade na variável linhaExemplo

Krok 8: M5StackDHTGraph.ino - Nastavení

V nastavení inicializujeme M5Stack. Definujeme příkazy pro kreslení grafu, konfigurujeme písmo a barvy textu a umístíme kurzor pro psaní.

void setup (void) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela toda de preto M5. Lcd.fillScreen (BLACK); // osa a segir 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 // konfigurace o tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // konfigurace a připojení k textu M5. Lcd.setTextColor (BÍLÉ); // pozice kurzoru para escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // indikace teploty a teploty M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

Krok 9: M5StackDHTGraph.ino - Smyčka

V první části smyčky odečteme teplotu a vlhkost, namapujeme hodnotu proměnných pro umístění do grafu a na obrazovku nakreslíme bod, který odkazuje na tyto hodnoty načtené ze senzoru.

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);

Poté definujeme možnosti tisku 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; // inkrementace 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, 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, ČERNÝ);

// reposiciona or cursor para escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (ČERVENÁ); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // reposiciona or 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 ("%"); zpoždění (1000); }

Krok 10: Soubory

Líbil se vám software M5Stack? Chcete si jeden koupit? Přejděte na:

Stáhnout soubory:

PDF

INO

Doporučuje: