İçindekiler:

ESP32: DHT22 ile M5Stack: 10 Adım
ESP32: DHT22 ile M5Stack: 10 Adım

Video: ESP32: DHT22 ile M5Stack: 10 Adım

Video: ESP32: DHT22 ile M5Stack: 10 Adım
Video: This ESP32 is on FIRE - M5Stack Core [review] 2024, Temmuz
Anonim
Image
Image
ESP32: DHT22 ile M5Stack
ESP32: DHT22 ile M5Stack
ESP32: DHT22 ile M5Stack
ESP32: DHT22 ile M5Stack

Bugün, M5Stack olan Nesnelerin İnterneti için mükemmel olan çok özel bir ESP32'den bahsedelim. İçinde ESP32'yi içerir ve hatta bir ekrana, klavyeye, amplifikatöre, hoparlöre ve pile ekler. Böylece, bu cihaz sayısız şey yapabilir. Bu donanımı aldığımda, zaten ESP32 için yazılımım vardı ve sadece bu projede kullanılan ekrana taşıdım, bu farklı. Ancak kullanacağımız kaynak kodu, OLED EKRANLI SICAKLIK VE NEM videomuzda kullanılanla aynıdır.

Bugünkü devrede, pozitif ve negatif bağlantılı, kendisini bir DHT22 sensörü ile besleyen M5Stack'e sahip olduğumuzu özellikle vurgulamak istiyorum. Her ikisi de bir GPIO ile bağlanır. Veriler grafikte görüntülenir.

Bu yazımızda M5Stack'i tanıtalım ve uygulamalarını tartışalım. Bu cihazın bir micro SD kart girişi, 1W Hoparlör ve pil yuvası olduğunu ve ayrıca etkileşim düğmeleri, i2c konektörü, USB tip C, açık IO'lar, iki inç TFT ekranı olduğunu vurgulamam gerekiyor. diğer özellikler arasında. Yukarıdaki resimde gösterilmiştir. Zaten Bluetooth ve ESP32 WiFi ile geldiği için bu cihazın IoT için hazır olduğunu söyleyebiliriz. Ayrıca metal yüzeylere tutturmak için bir mıknatıs içerir.

M5Stack'i beğendiniz mi? Tıklayın:

1. Adım: M5Stack

M5Yığın
M5Yığın
M5Yığın
M5Yığın
M5Yığın
M5Yığın
M5Yığın
M5Yığın

M5Stack'in bir yeniliği, arkayı çıkarırsanız, diğerlerinin yanı sıra GPS modülü, GSM, LoRa gibi farklı işlevlere sahip farklı modüllere sığabilmenizdir. Bu resimde gösterilmiştir.

Aşağıda RS485, DC Motor, Maker, Core'dan step motor kontrolüne kadar daha fazla modül örneğim var.

Bu aslında bir prototipi bir araya getirmenin çok hızlı bir yoludur. Eski günlerde, birkaç transistör çipi satın almak ve çok fazla zaman ve yatırım gerektiren çok sayıda montaj yapmak gerekiyordu. Ancak ürün prototiplemesinden sonra geldi. O zaman plaka olan Arduino ve Raspberry ortaya çıktı.

Şimdi nihayet kullanıma hazır bu kapalı kutu olan M5Stack'e sahibiz. Bu, bizi başka sayısız adım atmaktan kurtarır.

Diğer M5Stack modelleri resimlerde gösterilmiştir. Alfanümerik, sayısal ve oyun klavyeleri olan bir cihazımız var. Bunlar, bir tür bilgisayarmış gibi çalışmanıza izin verir. Ayrıca Basic'e ek olarak MicroPython, Arduino, ESP-IDF, NodeJS'de programlanabilen çalışan bir yazılım örneğimiz var.

2. Adım: M5Stack Olası Uygulamalar

M5Stack Olası Uygulamalar
M5Stack Olası Uygulamalar
M5Stack Olası Uygulamalar
M5Stack Olası Uygulamalar
M5Stack Olası Uygulamalar
M5Stack Olası Uygulamalar

M5Stack uygulama örnekleri arasında görselde de göreceğiniz gibi osiloskop bulunmaktadır. Ayrıca bir çeşit hesap makinesi / kesici alet masamız var.

Bisiklet hız göstergesine ne dersiniz?

Ayrıca, 3D olarak basılan ve bir kumanda ile uzaktan izlenen bir uzaktan matkap da olabilir.

Bütün bunlar, bu devrelerin programlanmasının daha kolay hale geldiği gibi, bugünlerde elektronik kontrolün çok daha uygun olduğunu gösteriyor.

3. Adım: M5Stack - Pinler

M5Stack - Pimler
M5Stack - Pimler

M5Stack'in arkası, gücün 5 voltta olduğunu gösteren bu görüntüde. Görüntü ayrıca, bağlantı ile ESP32'de var olan her şeye sahip olduğumuzu ortaya koyuyor.

4. Adım: DHT Kitaplığı

DHT Kitaplığı
DHT Kitaplığı

Videoda kullandığımla aynı olan SimpleDHT lib'i kullanın: OLED EKRANLI SICAKLIK VE NEM.

Adım 5: Arduino IDE Kitaplığı Yönetimi

Arduino IDE Kitaplığı Yönetimi
Arduino IDE Kitaplığı Yönetimi

"Menü: Sketch -> Add Library -> Manage Libraries" kısmından aşağıdaki resimde görülen iki kütüphaneyi kuralım. Tüm bunlardan önce ESP32'nin Arduino çekirdeğini kurmanız gerektiğini unutmayın. Bu videoda nasıl yapacağınız gösterilmektedir. o: ESP32'DE ARDUINO IDE NASIL KURULUR.

Adım 6: Kaynak Kodu

Kaynak kodu, bahsettiğim gibi, videoda kullandığımla aynı: OLED EKRANLI SICAKLIK GRAFİĞİ. Bu projede yaptığım tek değişiklik ekranın boyutuyla ilgiliydi.

Adım 7: M5StackDHTGraph.ino

M5Stack.h ve SimpleDHT.h kitaplıklarını dahil edeceğiz ve DHT veri pininin yanı sıra ekranda kullanılan renkleri tanımlayacağız. Ayrıca sensörle iletişim için bir nesne oluşturacağız, okumalardan sorumlu değişkeni tanımlayacağız ve X ekseninin değerini belirteceğiz.

//Lib'ler M5Stack e DHT#include #include // çekirdekleri tanımla // DHT tanımla #DHTPIN 5 tanımla // kurucu ortak iletişim için nesne yapmak için sensör SimpleDHT22 dht; //değişken yanıtlar por contar o número de leituras realizadas ve gösterge do valor no eixo X int leituraAtual = 1;

X ekseni ve Y ekseni konumlandırma tanımları, sıcaklık ve nem veri görüntüleme koordinatları ve okunan değerleri saklayacak değişkenler ile devam ediyoruz. Grafiği ekrana yazdırmak için hala değişkene işaret ediyoruz.

//definições dos eixos X e Y#define POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 //dosya ve dos'un tam olarak tanımlandığı 30 que armazenarão os valores lidos da umidade ve temperatura int umidade = 0; int sıcaklık = 0; //variável que armazenará o valor da coordenada Y para desenharmos uma linha de exemplo // 1 em 1 em 1 değişken değişkenler için geçerli Örnek = 20; int faktör = 1; //indicará se somaremos ou subtrairemos uma unidade na variável linhaExemplo

Adım 8: M5StackDHTGraph.ino - Kurulum

Kurulumda M5Stack'i başlatıyoruz. Grafiği çizmek için komutları tanımlar, yazı tipini ve metin renklerini yapılandırır ve imleci yazmak için konumlandırırız.

void setup(void) { Serial.begin(115200); //Inicializa veya M5Stack M5.begin(); // M5. Lcd.fillScreen(BLACK); //Çizim için bir seguir irão desenhar as linhas dos eixos cartesianos na cor branca //drawFastVLine(x, y, genişlik, renk) linha dikey M5. Lcd.drawFastVLine(POS_X_GRAFICO, POS_Y_GRAFICO, ALTURA_GRAFICO); //eixo Y //drawFastHLine(x, y, genişlik, renk) linha yatay M5. Lcd.drawFastHLine(POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, BEYAZ); //eixo X //yapılandırma veya tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize(3); //M5. Lcd.setTextColor(WHITE); //M5. Lcd.setCursor(POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print("T:"); // bir sıcaklık göstergesi M5. Lcd.setCursor(POS_X_DADOS+105, POS_Y_DADOS); M5. Lcd.print(" U: "); // bir umidade işaretle }

Adım 9: M5StackDHTGraph.ino - Döngü

Döngünün ilk bölümünde, sıcaklık ve nemi okuyoruz, değişkenlerin değerini grafik üzerinde yerleştirmek için haritalıyoruz ve sensörden okunan bu değerlere atıfta bulunan noktayı ekranda çiziyoruz.

void loop() { //Fazemos bir leitura da temperatura e umiade float temp, umid; int durum = dht.read2(DHTPIN, &temp, &umid, NULL); if (durum == SimpleDHTERrSuccess) { sıcaklık = sıcaklık; umidade = umid; } //gereksiz değerlere göre değişkenler için de geçerlidir //Gerekli konumları görüntüle 240px de altura ve ayraçlar apenas 180 para biriminde //umidade pode ser lida de 0-100 int sıcaklıkMapeada = map(temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = map(umidade, 0, 100, 0, ALTURA_GRAFICO); //Harekete geçirme ve değer biçme sensörü M5. Lcd.drawPixel(POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-temperaturaMapeada, RED); M5. Lcd.drawPixel(POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-umidadeMapeada, CYAN); //M5. Lcd.drawPixel(POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, YELLOW);

Ardından, grafiği ekrana yazdırma olasılıklarını tanımlarız.

//Aqui controlamos nossa linha de exemplo, qudo chega no valor máximo decreamentamos o valor // en um valor minimo determinado (nosso caso 10 yok), e bir partir daí, artan novamente if(linhaExemplo == 50) fator = -1 else if(linhaExemplo == 10) faktör = 1; //soma o valor de linhaExemplo linhaExemplo += fator; //artırma ya da boş zamanların gerçekleştirilmesi, gerçeklerin yerine getirilmesiAtual++; // bir leitura chegar em 270 (en fazla X eixo X) en az bir grafik çizer. if(leituraAtual == 270) { //Grafic M5. Lcd.fillRect(POS_X_GRAFICO+1, POS_Y_GRAFICO-1, COMPRIMENTO_GRAFICO, ALTURA_GRAFICO-1, SİYAH); leituraAtual = 1; //Volta veya leitura de leitura para 1 (nova uyumlu X) } //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, SİYAH);

// bir sıcaklık ayarı için imleç yerine imleç M5. Lcd.setCursor(POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor(KIRMIZI); M5. Lcd.print(sıcaklık); M5. Lcd.print((char)247); //bir geçiş noktası için imleç yerine yeniden konumlanma M5. Lcd.setCursor(POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor(CYAN); M5. Lcd.print(aralık); M5. Lcd.print("%"); gecikme(1000); }

Adım 10: Dosyalar

M5Stack'i beğendiniz mi? Bir tane satın almak ister misiniz? Şu adrese gidin:

Dosyaları indirin:

PDF

BEN HAYIR

Önerilen: