Innehållsförteckning:

ESP32: M5Stack med DHT22: 10 steg
ESP32: M5Stack med DHT22: 10 steg

Video: ESP32: M5Stack med DHT22: 10 steg

Video: ESP32: M5Stack med DHT22: 10 steg
Video: Бесконтактный датчик температуры дальнего действия MLX90614-DCI с Arduino 2024, November
Anonim
Image
Image
ESP32: M5Stack med DHT22
ESP32: M5Stack med DHT22
ESP32: M5Stack med DHT22
ESP32: M5Stack med DHT22

Låt oss prata idag om en mycket speciell ESP32, perfekt för Internet of Things, som är M5Stack. Den innehåller ESP32 inuti och till och med lägger till en display, tangentbord, förstärkare, högtalare och batteri. Således kan denna enhet göra otaliga saker. När jag fick den här maskinvaran hade jag redan programvara för ESP32 och bara portat till skärmen som används i detta projekt, vilket är annorlunda. Källkoden som vi kommer att använda är dock samma som används i vår video TEMPERATUR OCH FUKTIGHET MED OLED -DISPLAY.

I dagens krets vill jag särskilt betona att vi har M5Stack med positiva och negativa anslutningar, som matar sig själv med en DHT22 -sensor. Båda är anslutna med en GPIO. Data visas i diagrammet.

I den här artikeln, låt oss introducera M5Stack och diskutera dess applikationer. Jag måste betona att den här enheten har en ingång för ett micro SD-kort, en 1W högtalare och ett batteriuttag, och har också interaktionsknappar, en i2c-kontakt, en USB typ C, exponerade IO: er, en två-tums TFT-skärm, bland andra funktioner. Det visas på bilden ovan. Vi kan säga att den här enheten är redo för IoT, eftersom den redan levereras med Bluetooth och ESP32 WiFi. Den innehåller också en magnet för fastsättning på metallytor.

Gillade du M5Stack? Klicka:

Steg 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

En nyhet med M5Stack är att om du tar av ryggen kan du passa in i olika moduler med olika funktioner, till exempel GPS -modulen, GSM, LoRa. Detta visas på bilden.

Jag har fler exempel på moduler nedan, allt från RS485, DC Motor, Maker, Core, till stegmotorstyrning.

Detta är faktiskt ett mycket snabbt sätt att sätta ihop en prototyp. I gamla dagar var det nödvändigt att köpa flera transistorchips och utföra många sammansättningar, vilket krävde mycket tid och investeringar. Först efter kom produktprototypen. Det var då som Arduino och hallon dök upp, som är tallrikar.

Nu har vi äntligen M5Stack, som är denna färdiga slutna låda. Detta befriar oss från att behöva utföra andra otaliga steg.

Andra M5Stack -modeller visas i bilder. Vi har en enhet med alfanumeriska, numeriska och speltangentbord. Dessa låter dig arbeta som om det är en sorts dator. Vi har också ett exempel på programvara som körs, som kan programmeras i MicroPython, Arduino, ESP-IDF, NodeJS, förutom Basic.

Steg 2: M5Stack Möjliga applikationer

M5Stack Möjliga applikationer
M5Stack Möjliga applikationer
M5Stack Möjliga applikationer
M5Stack Möjliga applikationer
M5Stack Möjliga applikationer
M5Stack Möjliga applikationer

Bland exemplen på M5Stack -applikationer har vi oscilloskopet, som du kan se på bilden. Vi har också ett slags räknare / skärverktygsbord.

Vad sägs om en cykelhastighetsmätare?

Det kan också vara en fjärrborra, som skrivs ut i 3D och övervakas på distans av en kontroll.

Allt detta visar att elektronikstyrning är mycket billigare nuförtiden, precis som programmeringen av dessa kretsar har blivit enklare.

Steg 3: M5Stack - Pins

M5Stack - Pins
M5Stack - Pins

Baksidan av M5Stack finns i den här bilden, vilket visar att effekten är på 5 volt. Bilden avslöjar vidare att vi har allt som finns i ESP32 med anslutning.

Steg 4: DHT -bibliotek

DHT -bibliotek
DHT -bibliotek

Använd SimpleDHT lib, som är samma som jag använde i videon: TEMPERATUR OCH FUKTIGHET MED OLED DISPLAY.

Steg 5: Arduino IDE Library Manage

Arduino IDE Library Manage
Arduino IDE Library Manage

I "Meny: Skiss -> Lägg till bibliotek -> Hantera bibliotek", låt oss installera de två biblioteken som visas på bilden nedan. Kom ihåg att innan allt detta måste du installera Arduino -kärnan i ESP32. Denna video visar hur du gör it: HUR DU INSTALLERAR ARDUINO IDE I ESP32.

Steg 6: Källkod

Källkoden är, som nämnts, densamma som jag använde i videon: TEMPERATURGRAF MED OLED -DISPLAY. Den enda ändringen jag gjorde i detta projekt var i förhållande till skärmens storlek.

Steg 7: M5StackDHTGraph.ino

Vi kommer att inkludera M5Stack.h- och SimpleDHT.h -biblioteken, och vi kommer att definiera färger som används i displayen, liksom DHT -datapinnen. Vi kommer också att konstruera ett objekt för kommunikation med sensorn, definiera variabeln som är ansvarig för avläsningarna och ange värdet på X-axeln.

// 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 GUL 0xFFE0 #define WHITE 0xFFFF #define DHTPIN 5 // pino // construtor 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;

Vi fortsätter med X-axel och Y-axels positioneringsdefinitioner, temperatur- och luftfuktighetsdata visar koordinater, samt variablerna som lagrar de lästa värdena. Vi pekar fortfarande på variabeln för att skriva ut diagrammet på displayen.

// definições gör posicionamento dos eixos X e Y # definierar 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 de tempera e umidade #define POS_X_DADOS 30 #define POS_Y_DADOS 200 // variáveis que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int temperatur = 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

Steg 8: M5StackDHTGraph.ino - Installation

I installationen initierar vi M5Stack. Vi definierar kommandon för att rita diagrammet, konfigurerar teckensnittet samt textfärger och placerar markören för att skriva.

void setup (void) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela toda de preto M5. Lcd.fillScreen (SVART); // 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, bredd, färg) linha horisontell M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // konfiguration o tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // konfigura 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:"); // angerando a Temperatura M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

Steg 9: M5StackDHTGraph.ino - Loop

I den första delen av slingan läser vi temperatur och luftfuktighet, kartlägger värdet på variablerna för placering på grafen och ritar den punkt på skärmen som hänvisar till dessa värden avlästa från sensorn.

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 // 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 (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = map (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, GUL);

Sedan definierar vi möjligheterna att skriva ut grafiken på displayen.

// 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; annars om (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 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, SVART); 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, SVART); M5. Lcd.fillRect (POS_X_DADOS+165, POS_Y_DADOS, 90, 30, SVART);

// reposiciona o cursor para escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (RÖD); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // reposiciona o 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 ("%"); fördröjning (1000); }

Steg 10: Filer

Gillade du M5Stack? Vill du köpa en? Gå till:

Ladda ner filerna:

PDF

INO

Rekommenderad: