Isi kandungan:

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, Julai
Anonim
Image
Image
ESP32: M5Stack Dengan DHT22
ESP32: M5Stack Dengan DHT22
ESP32: M5Stack Dengan DHT22
ESP32: M5Stack Dengan DHT22

Mari kita bincangkan hari ini mengenai ESP32 yang sangat istimewa, sesuai untuk Internet of Things, iaitu M5Stack. Ini mengandungi ESP32 di dalam dan bahkan menambah pada paparan, papan kekunci, penguat, pembesar suara, dan bateri. Oleh itu, peranti ini dapat melakukan banyak perkara. Semasa menerima perkakasan ini, saya sudah mempunyai perisian untuk ESP32 dan hanya dipindahkan ke paparan yang digunakan dalam projek ini, yang berbeza. Walau bagaimanapun, kod sumber yang akan kami gunakan adalah sama dengan yang digunakan dalam video TEMPERATUR DAN HUMIDITY DENGAN OLED DISPLAY.

Dalam litar hari ini, saya secara khusus ingin menekankan bahawa kita mempunyai M5Stack dengan hubungan positif dan negatif, yang memenuhi dirinya dengan sensor DHT22. Kedua-duanya dihubungkan oleh GPIO. Data dipaparkan dalam carta.

Dalam artikel ini, mari kita memperkenalkan M5Stack dan membincangkan aplikasinya. Saya perlu menekankan bahawa peranti ini mempunyai input untuk kad SD mikro, Speaker 1W, dan soket bateri, dan juga mempunyai butang interaksi, penyambung i2c, USB jenis C, IO yang terdedah, paparan TFT dua inci, antara ciri lain. Ia ditunjukkan dalam gambar di atas. Kita boleh mengatakan bahawa peranti ini sudah siap untuk IoT, kerana ia sudah dilengkapi dengan Bluetooth dan WiFi ESP32. Ia juga dilengkapi magnet untuk melekatkan permukaan logam.

Adakah anda menyukai M5Stack? Klik:

Langkah 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

Salah satu inovasi M5Stack ialah, jika anda melabuhkan punggung, anda boleh memuatkan modul yang berbeza dengan fungsi yang berbeza, seperti modul GPS, GSM, LoRa, antara lain. Ini ditunjukkan dalam gambar.

Saya mempunyai lebih banyak contoh modul di bawah ini, mulai dari RS485, DC Motor, Maker, Core, hingga stepper motor control.

Ini sebenarnya cara yang sangat cepat untuk mengumpulkan prototaip. Pada masa lalu, perlu membeli beberapa cip transistor dan melakukan banyak pemasangan, yang memerlukan banyak masa dan pelaburan. Hanya selepas munculnya prototaip produk. Pada masa itulah Arduino dan Raspberry muncul, yang merupakan pinggan.

Sekarang, kita akhirnya mempunyai M5Stack, yang merupakan kotak tertutup siap pakai ini. Ini membebaskan kita daripada melakukan langkah lain yang tidak terkira jumlahnya.

Model M5Stack lain ditunjukkan dalam gambar. Kami mempunyai peranti dengan papan kekunci alfanumerik, angka, dan permainan. Ini membolehkan anda bekerja seolah-olah jenis komputer. Kami juga mempunyai contoh perisian yang berjalan, yang dapat diprogram dalam MicroPython, Arduino, ESP-IDF, NodeJS, selain Basic.

Langkah 2: Aplikasi Kemungkinan M5Stack

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

Di antara contoh aplikasi M5Stack, kami mempunyai osiloskop, seperti yang anda lihat dalam gambar. Kami juga mempunyai jenis kalkulator / meja alat pemotong.

Bagaimana dengan speedometer basikal?

Ini juga boleh menjadi latihan jarak jauh, yang dicetak dalam 3D dan dipantau dari jarak jauh oleh alat kawalan.

Semua ini menunjukkan bahawa kawalan elektronik jauh lebih berpatutan hari ini, sama seperti pengaturcaraan litar ini menjadi lebih mudah.

Langkah 3: M5Stack - Pin

M5Stack - Pin
M5Stack - Pin

Bahagian belakang M5Stack terdapat dalam gambar ini, yang menunjukkan bahawa kuasa berada pada 5 volt. Imej itu selanjutnya menunjukkan bahawa kita mempunyai semua yang ada dalam ESP32 dengan sambungan.

Langkah 4: Perpustakaan DHT

Perpustakaan DHT
Perpustakaan DHT

Gunakan lib SimpleDHT, yang sama dengan yang saya gunakan dalam video: SUHU DAN KEMANUSIAAN DENGAN TAMPILAN OLED.

Langkah 5: Uruskan Perpustakaan Arduino IDE

Arduino IDE Library Menguruskan
Arduino IDE Library Menguruskan

Dalam "Menu: Sketsa -> Tambahkan Perpustakaan -> Urus Perpustakaan," mari kita pasang dua perpustakaan yang ditunjukkan dalam gambar di bawah. Ingat bahawa sebelum semua ini, anda perlu memasang teras Arduino ESP32. Video ini menunjukkan cara anda melakukannya it: CARA MEMASANG ARDUINO IDE DI ESP32.

Langkah 6: Kod Sumber

Kod sumber, seperti yang disebutkan, sama dengan yang saya gunakan dalam video: TEMPERATURE GRAPH WITH OLED DISPLAY. Satu-satunya perubahan yang saya buat pada projek ini adalah berkaitan dengan ukuran paparan.

Langkah 7: M5StackDHTGraph.ino

Kami akan memasukkan perpustakaan M5Stack.h dan SimpleDHT.h, dan kami akan menentukan warna yang digunakan di paparan, serta pin data DHT. Kami juga akan membina objek untuk komunikasi dengan sensor, menentukan pemboleh ubah yang bertanggungjawab untuk pembacaan, dan menunjukkan nilai paksi-X.

// 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 0xFFFFFFD // 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;

Kami meneruskan definisi kedudukan paksi-X dan paksi-Y, koordinat paparan data suhu dan kelembapan, serta pemboleh ubah yang akan menyimpan nilai yang dibaca. Kami masih menunjukkan pemboleh ubah untuk mencetak carta pada paparan.

// definições do posicionamento dos eixos X e Y #efinisikan POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // definição da coordenada_dos_dos_dos_dos_dos_dos_dos_dos_dos_dos_dos_dos_dos_dos_dos_dos_dos_dos_dos_Dos_Dos_Dos_Afos_Afos_Afos_Afos_Anda_Anda_Anda_Anda_Anda_AfOSAOSAOS_DOSAOSAOSA 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

Langkah 8: M5StackDHTGraph.ino - Persediaan

Dalam Persediaan, kami memulakan M5Stack. Kami menentukan perintah untuk menggambar grafik, mengkonfigurasi font serta warna teks, dan meletakkan kursor untuk menulis.

persediaan kosong (tidak sah) {Serial.begin (115200); // Inicializa o M5Stack M5.begin (); // pinta a tela toda de preto M5. Lcd.fillScreen (HITAM); // os comandos a seguir irão desenhar sebagai 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 mendatar M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO + 1, COMPRIMENTO_GRAFICO, PUTIH); // eixo X // configura o tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3); // configura a cor branca para o texto M5. Lcd.setTextColor (PUTIH); // posiciona o kursor untuk escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // indicando a temperatura M5. Lcd.setCursor (POS_X_DADOS + 105, POS_Y_DADOS); M5. Lcd.print ("U:"); // indicando a umidade}

Langkah 9: M5StackDHTGraph.ino - Gelung

Di bahagian pertama Gelung, kami membaca suhu dan kelembapan, memetakan nilai pemboleh ubah untuk penempatan pada grafik, dan menarik titik pada skrin yang merujuk kepada nilai-nilai ini yang dibaca dari sensor.

gelung kekosongan () {// Fazemos a leitura da temperatura e umiade float temp, umid; status int = dht.read2 (DHTPIN, & temp, & umid, NULL); jika (status == SimpleDHTErrSuccess) {temperatura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // requá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 = 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 + leituraAtual, ALTURA_GRAFICO-temperaturaMapeada, MERAH); 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, KUNING);

Kemudian, kami menentukan kemungkinan mencetak grafik pada paparan.

// 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; lain jika (linhaExemplo == 10) fator = 1; // soma o valor de linhaExemplo linhaExemplo + = fator; // incrementa o contador de leituras realizadas leituraAtual ++; // se a leitura chegar em 270 (nero máximo do eixo X) então limparemos a área do gráfico para voltarmos a desenhar. jika (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, HITAM); M5. Lcd.fillRect (POS_X_DADOS + 165, POS_Y_DADOS, 90, 30, HITAM);

// reposiciona o kursor untuk escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS + 50, POS_Y_DADOS); M5. Lcd.setTextColor (MERAH); M5. Lcd.print (temperatura); M5. Lcd.print ((char) 247); // reposiciona o kursor untuk pengawal umidade M5. Lcd.setCursor (POS_X_DADOS + 165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); kelewatan (1000); }

Langkah 10: Fail

Adakah anda suka M5Stack? Mahu beli satu? Pergi ke:

Muat turun fail:

PDF

INO

Disyorkan: