Sadržaj:

ESP32: M5Stack s DHT22: 10 koraka
ESP32: M5Stack s DHT22: 10 koraka

Video: ESP32: M5Stack s DHT22: 10 koraka

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

Razgovarajmo danas o vrlo posebnom ESP32, savršenom za Internet stvari, a to je M5Stack. Unutra sadrži ESP32, pa čak dodaje i zaslon, tipkovnicu, 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 prenio na zaslon koji se koristi u ovom projektu, što je drugačije. Međutim, izvorni kôd koji ćemo koristiti isti je onaj koji smo koristili u našem videu TEMPERATURA I VLAŽNOST S OLED ZASLONOM.

U današnjem krugu posebno želim naglasiti da imamo M5Stack s pozitivnim i negativnim spojevima, koji se napaja pomoću senzora DHT22. Obje su povezane GPIO -om. 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 gumbe, i2c konektor, USB tip C, izložene IO-ove, dvo-inčni TFT zaslon, među ostalim značajkama. 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. Također uključuje magnet za pričvršćivanje na metalne površine.

Je 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 stati u različite module s različitim funkcijama, poput GPS modula, GSM -a, LoRa, između ostalih. To 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 tanjuri.

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 tipkovnicom. Oni vam omogućuju rad kao da je neka vrsta računala. 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 svojevrsnu tablicu kalkulatora / alata za rezanje.

Što kažete na brzinomjer za bicikl?

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

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

Korak 3: M5Stack - Igle

M5Stack - Igle
M5Stack - Igle

Stražnja strana M5Stacka je na ovoj slici, što pokazuje da je snaga na 5 volti. Slika dalje otkriva da imamo sve što postoji u ESP32 s povezivošću.

Korak 4: DHT knjižnica

Knjižnica DHT
Knjižnica DHT

Upotrijebite biblioteku SimpleDHT, istu koju sam koristio u videu: TEMPERATURA I VLAŽNOST S OLED -ZASLONOM.

Korak 5: Upravljanje Arduino IDE knjižnicom

Arduino IDE knjižnica Upravljanje
Arduino IDE knjižnica Upravljanje

U "Izbornik: Skica -> Dodaj biblioteku -> Upravljanje knjižnicama" instalirajmo dvije knjižnice 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 kôd, kao što je spomenuto, isti je koji sam koristio u videu: TEMPERATURNA GRAFIKA S OLED EKRANOM. Jedina promjena koju sam napravio na ovom projektu bila je u odnosu na veličinu zaslona.

Korak 7: M5StackDHTGraph.ino

Uključit ćemo knjižnice M5Stack.h i SimpleDHT.h, a definirat ćemo i boje koje se koriste na zaslonu, 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 // definição das cores que serão utilizadas #define CRNO 0x0000 #define CRVENO 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0xFFFFDdefine dode // DHF // konstruktor 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;

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 varijablu za ispis grafikona na zaslonu.

// definições do posicionamento dos eixos X e Y #define POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // definição da coordenada onde esodeverDos_OSOS_PADOS 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; // indicará se somaremos ou subtrairemos uma unidade na variável linhaExemplo

Korak 8: M5StackDHTGraph.ino - postavljanje

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

void setup (void) {Serial.begin (115200); // Inicializa 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 tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // konfiguracija a 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:"); // pokazuje 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 gráfico // neophodan pois o prikazu tempe 240px de altura e separamos apenas 180 para o gráfico // umidade podešava lidu od 0-100 int temperatureMapeada = map (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = karta (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);

Zatim definiramo mogućnosti ispisa grafike na zaslonu.

// 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; // 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, CRNI); 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, CRNO);

// izmjena kursora za podešavanje temperature M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (CRVENO); M5. Lcd.tisak (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.tisak (umidade); M5. Lcd.print ("%"); kašnjenje (1000); }

Korak 10: Datoteke

Je li vam se svidio M5Stack? Želite li kupiti jedan? Idite na:

Preuzmite datoteke:

PDF

INO

Preporučeni: