Daftar Isi:

ESP32: M5Stack Dengan DHT22: 10 Langkah
ESP32: M5Stack Dengan DHT22: 10 Langkah

Video: ESP32: M5Stack Dengan DHT22: 10 Langkah

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

Mari kita bicara hari ini tentang ESP32 yang sangat spesial, sempurna untuk Internet of Things, yaitu M5Stack. Ini berisi ESP32 di dalamnya dan bahkan menambahkan pada layar, keyboard, amplifier, speaker, dan baterai. Dengan demikian, perangkat ini dapat melakukan banyak hal. Ketika saya menerima perangkat keras ini, saya sudah memiliki perangkat lunak untuk ESP32 dan hanya porting ke tampilan yang digunakan dalam proyek ini, yang berbeda. Namun, kode sumber yang akan kita gunakan sama dengan yang digunakan dalam video TEMPERATURE AND HUMIDITY WITH OLED DISPLAY.

Di sirkuit hari ini, saya secara khusus ingin menekankan bahwa kami memiliki M5Stack dengan koneksi positif dan negatif, yang memberi makan dirinya sendiri dengan sensor DHT22. Keduanya terhubung oleh GPIO. Data ditampilkan dalam grafik.

Pada artikel ini, mari perkenalkan M5Stack dan diskusikan aplikasinya. Perlu saya tekankan bahwa perangkat ini memiliki input untuk kartu micro SD, Speaker 1W, dan soket baterai, dan juga memiliki tombol interaksi, konektor i2c, USB tipe C, IO terbuka, layar TFT dua inci, di antara fitur lainnya. Itu ditunjukkan pada gambar di atas. Kita dapat mengatakan perangkat ini siap untuk IoT, karena sudah dilengkapi dengan Bluetooth dan WiFi ESP32. Ini juga termasuk magnet untuk menempel pada permukaan logam.

Apakah Anda menyukai M5Stack? Klik:

Langkah 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Salah satu inovasi dari M5Stack adalah, jika Anda melepas bagian belakangnya, Anda dapat memasukkan modul yang berbeda dengan fungsi yang berbeda, seperti modul GPS, GSM, LoRa, dan lainnya. Ini ditunjukkan pada gambar.

Lebih banyak contoh modul di bawah ini, mulai dari RS485, Motor DC, Maker, Core, hingga kontrol motor stepper.

Ini sebenarnya cara yang sangat cepat untuk menyusun prototipe. Di masa lalu, perlu untuk membeli beberapa chip transistor dan melakukan banyak perakitan, yang membutuhkan banyak waktu dan investasi. Baru setelah itu muncul prototyping produk. Saat itulah Arduino dan Raspberry muncul, yang merupakan piring.

Sekarang, kami akhirnya memiliki M5Stack, yang merupakan kotak tertutup yang siap digunakan ini. Ini membebaskan kita dari keharusan melakukan langkah-langkah lain yang tak terhitung banyaknya.

Model M5Stack lainnya ditampilkan dalam gambar. Kami memiliki perangkat dengan keyboard alfanumerik, numerik, dan game. Ini memungkinkan Anda untuk bekerja seolah-olah itu semacam komputer. Kami juga memiliki contoh perangkat lunak yang berjalan, yang dapat diprogram di MicroPython, Arduino, ESP-IDF, NodeJS, selain Basic.

Langkah 2: M5Stack Kemungkinan Aplikasi

M5Stack Kemungkinan Aplikasi
M5Stack Kemungkinan Aplikasi
M5Stack Kemungkinan Aplikasi
M5Stack Kemungkinan Aplikasi
M5Stack Kemungkinan Aplikasi
M5Stack Kemungkinan Aplikasi

Di antara contoh aplikasi M5Stack, kami memiliki osiloskop, seperti yang Anda lihat pada gambar. Kami juga memiliki semacam kalkulator / alat pemotong meja.

Bagaimana dengan speedometer sepeda?

Ini juga bisa berupa bor jarak jauh, yang dicetak dalam 3D dan dipantau dari jarak jauh oleh sebuah kontrol.

Semua ini menunjukkan bahwa kontrol elektronik jauh lebih terjangkau akhir-akhir ini, seperti halnya pemrograman sirkuit ini menjadi lebih mudah.

Langkah 3: M5Stack - Pin

M5Stack - Pin
M5Stack - Pin

Bagian belakang M5Stack ada di gambar ini, yang menunjukkan bahwa daya berada pada 5 volt. Gambar lebih lanjut mengungkapkan bahwa kami memiliki semua yang ada di ESP32 dengan konektivitas.

Langkah 4: Perpustakaan DHT

Perpustakaan DHT
Perpustakaan DHT

Gunakan lib SimpleDHT, yang sama dengan yang saya gunakan dalam video: TEMPERATURE AND HUMIDITY WITH OLED DISPLAY.

Langkah 5: Kelola Perpustakaan IDE Arduino

Pengelolaan Perpustakaan IDE Arduino
Pengelolaan Perpustakaan IDE Arduino

Dalam "Menu: Sketch -> Add Library -> Manage Libraries," mari kita instal dua library yang ditunjukkan pada gambar di bawah. Ingat bahwa sebelum semua ini, Anda perlu menginstal inti Arduino dari ESP32. Video ini menunjukkan cara melakukannya itu: CARA INSTAL ARDUINO IDE DI ESP32.

Langkah 6: Kode Sumber

Kode sumber, seperti yang disebutkan, sama dengan yang saya gunakan dalam video: TEMPERATURE GRAPH WITH OLED DISPLAY. Satu-satunya perubahan yang saya buat untuk proyek ini adalah terkait dengan ukuran layar.

Langkah 7: M5StackDHTGraph.ino

Kami akan menyertakan pustaka M5Stack.h dan SimpleDHT.h, dan kami akan menentukan warna yang digunakan dalam tampilan, serta pin data DHT. Kami juga akan membuat objek untuk komunikasi dengan sensor, menentukan variabel yang bertanggung jawab untuk pembacaan, dan menunjukkan nilai sumbu X.

//Libs melakukan M5Stack dan DHT#include #include // definição das cores que serão utilizadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define KUNING 0xFFE0 #define WHITE 0xFFFF #define DHTPIN //konstrutor melakukan objek untuk komunikasi komunikasi sensor SimpleDHT22 dht; //variável responsavel por contar o número de leituras realizadas and indicator do valor no eixo X int leiturAtual = 1;

Kami melanjutkan dengan definisi posisi sumbu X dan sumbu Y, koordinat tampilan data suhu dan kelembaban, serta variabel yang akan menyimpan nilai yang dibaca. Kami masih menunjuk ke variabel untuk mencetak grafik di layar.

//menentukan melakukan posicionamento dos eixos X e Y#menentukan POS_X_GRAFICO 30 #menentukan POS_Y_GRAFICO 3 #menentukan ALTURA_GRAFICO 180 #menentukan COMPRIMENTO_GRAFICO 270 //menentukan o da coordenada onde escreveremos os dados de que armazenarão os valores lidos da umidade dan suhu int umidade = 0; int suhu = 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 faktor = 1; //indicará se somaremos ou subtrairemos uma unidade na variável linhaContoh

Langkah 8: M5StackDHTGraph.ino - Setup

Di Setup, kami menginisialisasi M5Stack. Kami mendefinisikan perintah untuk menggambar grafik, mengkonfigurasi font serta warna teks, dan posisi kursor untuk menulis.

void setup(void) { Serial.begin(115200); //Inisialisasi dari M5Stack M5.begin(); //pinta sebuah tela toda de preto M5. Lcd.fillScreen(HITAM); //os perintahkan 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, lebar, warna) linha horizontal M5. Lcd.drawFastHLine(POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); //eixo X //konfigurasi dan lakukan teks untuk escreveremos em tele M5. Lcd.setTextSize(3); //mengonfigurasi cor branca untuk teks M5. Lcd.setTextColor(WHITE); //posisi kursor untuk escrita M5. Lcd.setCursor(POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print("T: "); //indikasikan suhu M5. Lcd.setCursor(POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print("U: "); //indicando a umidade }

Langkah 9: M5StackDHTGraph.ino - Loop

Di bagian pertama Loop, kita membaca suhu dan kelembaban, memetakan nilai variabel untuk penempatan pada grafik, dan menggambar titik di layar yang mengacu pada nilai yang dibaca dari sensor.

void loop() { //Fazemos a leitura da temperatur dan umiade float temp, umid; int status = dht.read2(DHTPIN, &temp, &umid, NULL); if (status == SimpleDHTErrSuccess) { suhu = suhu; umidade = umid; } //peando o valor das variáveis para colocar no gráfico //perlu pois o waktu tampilan 240px de altura dan separamos apenas 180 untuk gráfico //umidade pode ser lida de 0-100 int temperatureaMapeada = peta(temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = peta(umidade, 0, 100, 0, ALTURA_GRAFICO); //desenha na tela o ponto referente aos valores lidos do sensor M5. Lcd.drawPixel(POS_X_GRAFICO+leiturAtual, ALTURA_GRAFICO-temperaturaMapeada, RED); M5. Lcd.drawPixel(POS_X_GRAFICO+leiturAtual, ALTURA_GRAFICO-umidadeMapeada, CYAN); //desenha na tela o ponto referente a nossa linha de exemplo que fica variando M5. Lcd.drawPixel(POS_X_GRAFICO+leiturAtual, ALTURA_GRAFICO-linhaExemplo, YELLOW);

Kemudian, kami menentukan kemungkinan mencetak grafik di layar.

//aqui controlamos nossa linha de exemplo, quando chega no valor máximo decrementamos o valor //até um valor mínimo determinado (no 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 linhaContoh linhaContoh += fator; //incrementa o contador de leituras realisasi leiturAtual++; //se a leitura chegar em 270 (número máximo do eixo X) eno limparemos a área do gráfico para voltarmos a desenhar. if(leiturAtual == 270) { //limpa area untuk melakukan gráfico M5. Lcd.fillRect(POS_X_GRAFICO+1, POS_Y_GRAFICO-1, COMPRIMENTO_GRAFICO, ALTURA_GRAFICO-1, BLACK); leiuraAtual = 1; //volta o contador de leitura para 1 (nova coordenada X) } //limpa a area onde colocamos o valor da temperatur dan 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, HITAM);

//reposisi kursor untuk menyimpan suhu M5. Lcd.setCursor(POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor(MERAH); M5. Lcd.print(suhu); M5. Lcd.print((char)247); //reposisi atau kursor untuk menyimpan umidade M5. Lcd.setCursor(POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor(CYAN); M5. Lcd.print(umidade); M5. Lcd.print("%"); penundaan (1000); }

Langkah 10: File

Apakah Anda menyukai M5Stack? Ingin membeli satu? Buka:

Unduh file:

PDF

SAYA TIDAK

Direkomendasikan: