Sadržaj:

ESP32: M5Stack sa DHT22: 10 koraka
ESP32: M5Stack sa DHT22: 10 koraka

Video: ESP32: M5Stack sa DHT22: 10 koraka

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

Razgovarajmo danas o vrlo posebnom ESP32, savršenom za Internet stvari, a to je M5Stack. Unutra sadrži ESP32, pa čak dodaje i ekran, tastaturu, pojačalo, zvučnik i bateriju. Dakle, ovaj uređaj može učiniti bezbroj stvari. Kad sam dobio ovaj hardver, već sam imao softver za ESP32 i samo sam ga portirao na ekran koji se koristi u ovom projektu, koji je drugačiji. Međutim, izvorni kôd koji ćemo koristiti isti je onaj koji se koristi u našem videu TEMPERATURA I VLAŽNOST S OLED EKRANOM.

U današnjem krugu posebno želim naglasiti da imamo M5Stack s pozitivnim i negativnim vezama, koji se napaja pomoću DHT22 senzora. Oboje je povezano putem GPIO -a. Podaci se prikazuju na grafikonu.

U ovom članku predstavimo M5Stack i razgovarajmo o njegovim primjenama. Moram naglasiti da ovaj uređaj ima ulaz za mikro SD karticu, zvučnik od 1 W i utičnicu za bateriju, a također ima i interakcijske tipke, i2c konektor, USB tip C, izložene IO, dvo-inčni TFT ekran, između ostalih karakteristika. To je prikazano na gornjoj slici. Možemo reći da je ovaj uređaj spreman za IoT jer već dolazi s Bluetoothom i ESP32 WiFi. Sadrži i magnet za pričvršćivanje na metalne površine.

Da li vam se svidio M5Stack? Kliknite:

Korak 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Jedna od inovacija M5Stack -a je da, ako skinete stražnju stranu, možete uklopiti različite module s različitim funkcijama, poput GPS modula, GSM -a, LoRa, između ostalih. Ovo je prikazano na slici.

U nastavku imam još primjera modula, u rasponu od RS485, istosmjernog motora, proizvođača, jezgre do upravljanja koračnim motorom.

Ovo je zapravo vrlo brz način sastavljanja prototipa. U stara vremena bilo je potrebno kupiti nekoliko tranzistorskih čipova i izvesti brojne sklopove, što je zahtijevalo puno vremena i ulaganja. Tek nakon što je došlo do prototipiranja proizvoda. Tada su se pojavili Arduino i Malina, koji su ploče.

Konačno imamo M5Stack, zatvorenu kutiju spremnu za upotrebu. To nas oslobađa od toga da moramo izvesti druge bezbrojne korake.

Ostali modeli M5Stack prikazani su na slikama. Imamo uređaj sa alfanumeričkom, numeričkom i igraćom tastaturom. Oni vam omogućuju rad kao da je neka vrsta računara. Imamo i primjer pokrenutog softvera, koji se može programirati u MicroPythonu, Arduinu, ESP-IDF-u, NodeJS-u, uz Basic.

Korak 2: M5Stack Moguće aplikacije

M5Stack Moguće aplikacije
M5Stack Moguće aplikacije
M5Stack Moguće aplikacije
M5Stack Moguće aplikacije
M5Stack Moguće aplikacije
M5Stack Moguće aplikacije

Među primjerima aplikacija M5Stack imamo osciloskop, kao što možete vidjeti na slici. Imamo i neku vrstu tablice kalkulatora / alata za rezanje.

Šta kažete na brzinomjer za bicikl?

To može biti i daljinska bušilica, koja se štampa u 3D -u i daljinski nadzire kontrolom.

Sve ovo pokazuje da je kontrola elektronike ovih dana mnogo pristupačnija, baš kao što je i programiranje ovih kola postalo lakše.

Korak 3: M5Stack - Igle

M5Stack - Igle
M5Stack - Igle

Stražnji dio M5Stack -a je na ovoj slici, što pokazuje da je snaga na 5 volti. Slika dalje otkriva da imamo sve što postoji u ESP32 sa povezivanjem.

Korak 4: DHT biblioteka

Biblioteka DHT
Biblioteka DHT

Koristite SimpleDHT lib, isti koji sam koristio u videu: TEMPERATURA I VLAŽNOST SA OLED EKRANOM.

Korak 5: Upravljanje Arduino IDE bibliotekom

Arduino IDE biblioteka Upravljanje
Arduino IDE biblioteka Upravljanje

U "Izbornik: Sketch -> Dodaj biblioteku -> Upravljanje bibliotekama" instalirajmo dvije biblioteke prikazane na donjoj slici. Upamtite da prije svega ovoga morate instalirati Arduino jezgru ESP32. Ovaj video prikazuje kako to učiniti it: KAKO INSTALIRATI ARDUINO IDE U ESP32.

Korak 6: Izvorni kod

Izvorni kod, kao što je spomenuto, isti je koji sam koristio u videu: TEMPERATURNA GRAFIKA SA OLED EKRANOM. Jedina promjena koju sam napravio na ovom projektu bila je u odnosu na veličinu ekrana.

Korak 7: M5StackDHTGraph.ino

Uključićemo biblioteke M5Stack.h i SimpleDHT.h, a definisaćemo i boje koje se koriste na ekranu, kao i DHT pin podataka. Također ćemo konstruirati objekt za komunikaciju sa senzorom, definirati varijablu odgovornu za očitanja i naznačiti vrijednost osi X.

// Libs do M5Stack e DHT #include #include // definiranje das cores que serão utilizadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #deteine YELLOW 0xFFE0 #define WHITE 0xFFFIN #dof // konstruktor za objektiv para komunikatora sa senzorom SimpleDHT22 dht; // varijable responsavel por contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1;

Nastavljamo s definicijama pozicioniranja na osi X i Y, koordinatama za prikaz podataka o temperaturi i vlažnosti, kao i varijablama koje će pohraniti pročitane vrijednosti. I dalje ukazujemo na promenljivu za štampanje grafikona na ekranu.

// definišemo do pozicioniranja dos eixos X e Y #definiraj POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // definiraj da uskladiš POSOS_PADOS que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int temperatura = 0; // varijable 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; // pokazuje da se somaremos ou subtrairemos uma unidade na različitoj linhaExemplo

Korak 8: M5StackDHTGraph.ino - postavljanje

U programu Setup pokrećemo M5Stack. Definiramo naredbe za crtanje grafikona, konfiguriramo font kao i boje teksta i pozicioniramo kursor za pisanje.

void setup (void) {Serial.begin (115200); // Pokretanje 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, boja) linha vodoravna M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, BIJELA); // eixo X // konfiguracija o tekstualnom tekstualnom tekstu M5. Lcd.setTextSize (3); // konfigurira cor branca para ili texto M5. Lcd.setTextColor (BIJELO); // pozicija kursora za escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // prikazuje temperaturu M5. Lcd.setCursor (POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

Korak 9: M5StackDHTGraph.ino - Petlja

U prvom dijelu petlje čitamo temperaturu i vlažnost, preslikavamo vrijednost varijabli za postavljanje na grafikon i crtamo točku na ekranu koja se odnosi na ove vrijednosti očitane sa 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 grafico // potrebno stanje radi prikaza tempe 240px de altura i odvojeni apeni 180 para o gariku // umidade podešene vrijednosti servera od 0-100 int temperatureMapeada = map (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = mapa (umidade, 0, 100, 0, ALTURA_GRAFICO); // desenha na tela o ponto referencu aos valores lidos to 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 referenca a nossa linha de exemplo que fica variando M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, YELLOW);

Zatim definiramo mogućnosti ispisa grafike na ekranu.

// 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; // dodatak o kontaktu de leituras realizadas leituraAtual ++; // se može postaviti na čeg 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 area toda do gráfico M5. Lcd.fillRect (POS_X_GRAFICO+1, POS_Y_GRAFICO-1, COMPRIMENTO_GRAFICO, ALTURA_GRAFICO-1, CRNI); leituraAtual = 1; // napon o kontaktu de leitura paragraf 1 (nova koordenada X)} // ograničenje područja i kolokamos o valoriranju temperature i umidanju 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, CRNO);

// repozicioniranje kursora za podešavanje temperature M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (CRVENO); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // repozicioniranje kursora za okretanje i umidadu M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); kašnjenje (1000); }

Korak 10: Datoteke

Da li vam se svidio M5Stack? Želite li kupiti jednu? Idite na:

Preuzmite datoteke:

PDF

JA NE

Preporučuje se: