Innholdsfortegnelse:

ESP32: M5Stack med DHT22: 10 trinn
ESP32: M5Stack med DHT22: 10 trinn

Video: ESP32: M5Stack med DHT22: 10 trinn

Video: ESP32: M5Stack med DHT22: 10 trinn
Video: Measure Temperature and Humidity using M5Stack Core 2 with DHT11 and DHT22 - Robojax 2024, November
Anonim
Image
Image
ESP32: M5Stack med DHT22
ESP32: M5Stack med DHT22
ESP32: M5Stack med DHT22
ESP32: M5Stack med DHT22

La oss snakke i dag om en veldig spesiell ESP32, perfekt for tingenes internett, som er M5Stack. Den inneholder ESP32 på innsiden og til og med på en skjerm, tastatur, forsterker, høyttaler og batteri. Dermed kan denne enheten gjøre utallige ting. Da jeg mottok denne maskinvaren, hadde jeg allerede programvare for ESP32 og bare portet til skjermen som ble brukt i dette prosjektet, noe som er annerledes. Imidlertid er kildekoden vi vil bruke den samme som i vår video TEMPERATUR OG FUKTIGHET MED OLED DISPLAY.

I dagens krets vil jeg spesielt understreke at vi har M5Stack med positive og negative tilkoblinger, som mater seg selv med en DHT22 -sensor. Begge er forbundet med en GPIO. Dataene vises i diagrammet.

I denne artikkelen, la oss introdusere M5Stack og diskutere applikasjonene. Jeg må understreke at denne enheten har inngang for et micro SD-kort, en 1W høyttaler og en batteriuttak, og har også interaksjonsknapper, en i2c-kontakt, en USB type C, synlige IOer, en to-tommers TFT-skjerm, blant andre funksjoner. Det er vist på bildet ovenfor. Vi kan si at denne enheten er klar for IoT, siden den allerede kommer med Bluetooth og ESP32 WiFi. Den inneholder også en magnet for festing til metalloverflater.

Likte du M5Stack? Klikk:

Trinn 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

En innovasjon av M5Stack er at hvis du tar av ryggen, kan du passe inn i forskjellige moduler med forskjellige funksjoner, for eksempel GPS -modulen, GSM, LoRa. Dette er vist på bildet.

Jeg har flere eksempler på moduler nedenfor, alt fra RS485, DC Motor, Maker, Core, til trinnmotorstyring.

Dette er faktisk en veldig rask måte å sette sammen en prototype. I gamle dager var det nødvendig å kjøpe flere transistorbrikker og utføre mange samlinger, noe som krevde mye tid og investering. Først etter kom produktprototypen. Det var da Arduino og bringebær dukket opp, som er tallerkener.

Nå har vi endelig M5Stack, som er denne lukkede esken som er klar til bruk. Dette frigjør oss fra å måtte utføre andre utallige trinn.

Andre M5Stack -modeller er vist i bilder. Vi har en enhet med alfanumeriske, numeriske og spilltastaturer. Disse lar deg jobbe som om det er en slags datamaskin. Vi har også et eksempel på programvare som kjører, som kan programmeres i MicroPython, Arduino, ESP-IDF, NodeJS, i tillegg til Basic.

Trinn 2: M5Stack Mulige applikasjoner

M5Stack Mulige applikasjoner
M5Stack Mulige applikasjoner
M5Stack Mulige applikasjoner
M5Stack Mulige applikasjoner
M5Stack Mulige applikasjoner
M5Stack Mulige applikasjoner

Blant eksemplene på M5Stack -applikasjoner har vi oscilloskopet, som du kan se på bildet. Vi har også en slags kalkulator / skjæreverktøybord.

Hva med et sykkelturteller?

Det kan også være en ekstern drill, som skrives ut i 3D og overvåkes eksternt av en kontroll.

Alt dette viser at elektronikkstyring er mye rimeligere i disse dager, akkurat som programmeringen av disse kretsene har blitt enklere.

Trinn 3: M5Stack - Pins

M5Stack - Pins
M5Stack - Pins

Baksiden av M5Stack er på dette bildet, som viser at effekten er på 5 volt. Bildet avslører videre at vi har alt som finnes i ESP32 med tilkobling.

Trinn 4: DHT -bibliotek

DHT bibliotek
DHT bibliotek

Bruk SimpleDHT lib, som er den samme som jeg brukte i videoen: TEMPERATUR OG FUKTIGHET MED OLED DISPLAY.

Trinn 5: Arduino IDE Library Manage

Arduino IDE Library Manage
Arduino IDE Library Manage

I "Meny: Skisse -> Legg til bibliotek -> Administrer biblioteker", la oss installere de to bibliotekene som vises på bildet nedenfor. Husk at før alt dette må du installere Arduino -kjernen i ESP32. Denne videoen viser deg hvordan du gjør it: HVORDAN INSTALLERE ARDUINO IDE I ESP32.

Trinn 6: Kildekode

Kildekoden er som nevnt den samme som jeg brukte i videoen: TEMPERATURGRAF MED OLED DISPLAY. Den eneste endringen jeg gjorde i dette prosjektet var i forhold til størrelsen på skjermen.

Trinn 7: M5StackDHTGraph.ino

Vi vil inkludere bibliotekene M5Stack.h og SimpleDHT.h, og vi vil definere farger som brukes i displayet, samt DHT -datapinnen. Vi vil også konstruere et objekt for kommunikasjon med sensoren, definere variabelen som er ansvarlig for avlesningene, og angi verdien av X-aksen.

// 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 YELLOW 0xFFE0 #define WHITE 0xFFFF #define DHTPIN 5 // pino // construtor do objeto para comunicar com o sensor SimpleDHT22 dht; // variabel responsavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Vi fortsetter med posisjoneringsdefinisjoner for X-aksen og Y-aksen, temperatur- og fuktighetsdata viser koordinater, samt variablene som vil lagre verdiene som er lest. Vi peker fortsatt på variabelen for å skrive ut diagrammet på displayet.

// definições gjøre posicionamento dos eixos X e Y # definerer 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 temperatura 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

Trinn 8: M5StackDHTGraph.ino - Oppsett

I Setup initialiserer vi M5Stack. Vi definerer kommandoer for å tegne grafen, konfigurerer skriften samt tekstfarger og plasserer markøren for skriving.

void -oppsett (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, bredde, farge) linha horisontal M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // konfigurasjon av tekst som kan sendes til M5. Lcd.setTextSize (3); // konfigura a cor branca para o texto M5. Lcd.setTextColor (WHITE); // posisiona o cursor para escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // angir temperatura M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

Trinn 9: M5StackDHTGraph.ino - Loop

I den første delen av sløyfen leser vi temperatur og fuktighet, kartlegger verdien av variablene for plassering på grafen og tegner punktet på skjermen som refererer til disse verdiene som er lest fra sensoren.

void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int status = dht.read2 (DHTPIN, & temp, & umid, NULL); hvis (status == SimpleDHTErrSuccess) {temperatura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // necessá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);

Deretter definerer vi mulighetene for å skrive ut grafikken på skjermen.

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

// reposiciona o cursor for 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 ((røyke) 247); // reposiciona o cursor for escrever a umidade M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); forsinkelse (1000); }

Trinn 10: Filer

Likte du M5Stack? Vil du kjøpe en? Gå til:

Last ned filene:

PDF

INO

Anbefalt: