İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu öğreticide, tümü Blynk, bir esp32, bir DHT22 ve bir BMP180 kullanarak hava sıcaklığını, nemi ve basıncı izleyen bir hava monitörü oluşturacaksınız.
Gereçler
- esp32 Mikrodenetleyici
- DHT22
- BMP180
1. Adım: Blynk'i Kurun
Sonuçları dünyanın her yerinde gerçek zamanlı olarak görebilmeniz için bu proje için Blynk'e ihtiyacınız olacak. Blynk'i nasıl kuracağınızı önceki öğreticimde görebilirsiniz.
Adım 2: Kitaplıkları Kurun
Kurmanız gereken ilk kütüphane SparkFun RHT03 Arduino Kütüphanesidir, bunu https://learn.sparkfun.com/tutorials/rht03-dht22-humidity-and-temperature-sensor-hookup-guide?_ga= adresinden indirebilirsiniz. 2.53575016.1755727564.1559404402-688583549.149606940#kütüphane kurulumu. İndirdikten sonra Arduino IDE'yi açın ve Sketch > Include Library > Add. ZIP Library… seçeneğine gidin ve az önce indirdiğiniz.zip dosyasını seçin.
Yüklemeniz gereken ikinci kitaplık Adafruit BMP085 Kitaplığı'dır, bunu Sketch > Include Library > Manage Libraries…'e gidip 'BMP085' aratarak yükleyebilirsiniz.
Adım 3: Devreyi Bağlayın
Şimdi devreyi bağlamanız gerekiyor, oldukça kolay bir devre. Yukarıdaki devre şemalarına bakın.
4. Adım: Blynk için Uygulamayı Oluşturun
Verileri alabilmeniz ve uygulamada size grafik olarak gösterilmesini sağlayabilmeniz için Blynk'te uygulamaya ihtiyacınız olacak. İnşa etmek için yukarıdaki resimleri kullanın.
Widget'lar:
- 2x Göstergeler
- 1x Yatay seviye
Sıcaklık Göstergesi Ayarları:
- isim: Sıcaklık
- Renk: Turuncu/Sarı
- Giriş: V5 0-100
- Etiket: /pin/°C
Yenileme Aralığı: 1sn
Nem Göstergesi Ayarları:
- isim: Nem
- Renk: Açık Mavi
- Giriş V6 0-100
- Etiket: /pin/%
- Yenileme Aralığı: 1sn
Basınç Seviyesi Ayarları
- İsim: Basınç
- Renk: Turuncu/Sarı
- Giriş: V7 950-1050
- Döndürme Ekseni: Kapalı
- Yenileme Aralığı: 1sn
Adım 5: Kodu Yükleyin
Artık kod için hazırız. Kodu yüklemeden önce birkaç değişiklik yapmanız gerekecek, char auth = "YourAuthToken"; satırını bulun. ve YourAuthToken'ı daha önce yazdığınız Auth Token ile değiştirin ve wifi kullanıyorsanız char ssid = "YourNetworkName"; ve YourNetworkName'i ağ adınızla değiştirin ve char pass = "YourPassword" satırını bulun; ve YourPassword'ünüzü Wifi şifrenizle değiştirin. Bunu yaptıktan sonra şimdi kodu yükleyebilirsiniz.
#define BLYNK_PRINT Seri #include
#Dahil etmek
#Dahil etmek
#Dahil etmek
#Dahil etmek
#Dahil etmek
/////////////////////
// Pin Tanımları // /////////////////// const int DHT22_DATA_PIN = 27; // DHT22 data pin const int FLAME_SENSOR_DATA_PIN = 32; // Alev Sensörü veri pini //////////////////////// // RHT03 Nesne Oluşturma // ////////// //////////////// RHT03 sağ; // Bu, sensörle etkileşim kurmak için kullanacağımız bir RTH03 nesnesi oluşturur //////////////////////// // BMP180/BMP085 Nesne Oluşturma // //////////////////////// Adafruit_BMP085 bmp; // Blynk Uygulamasında Auth Token almalısınız. // Proje Ayarlarına gidin (somun simgesi). char auth = "YourAuthToken"; // WiFi kimlik bilgileriniz. // Açık ağlar için şifreyi "" olarak ayarlayın. char ssid = "AğAdınız"; char pass = "Parolanız"; BlynkTimer zamanlayıcı; void sendSensor() { int updateRet = rht.update(); if (updateRet == 1) { // nem(), tempC() ve tempF() işlevleri çağrılabilir -- // başarılı bir güncellemeden sonra() -- son nem ve sıcaklığı almak için // değer yüzer en sonNem = rht.nem(); float lastTempC = rht.tempC(); float lastTempF = rht.tempF(); float lastPressure = bmp.readPressure()/100; Blynk.virtualWrite(V5, en sonTempC); Blynk.virtualWrite(V6, en son Nem); Blynk.virtualWrite(V7, en sonBasınç); } else { // Güncelleme başarısız olursa, tekrar denemeden önce RHT_READ_INTERVAL_MS ms geciktirmeyi deneyin. gecikme(RHT_READ_INTERVAL_MS); } } void setup() { // Hata ayıklama konsolu Serial.begin(9600); Blynk.begin(auth, ssid, pass); // Sunucuyu da belirtebilirsiniz: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAdresi(192, 168, 1, 100), 8080); rht.begin(DHT22_DATA_PIN); if (!bmp.begin()) { Serial.println("Geçerli bir BMP085/BMP180 sensörü bulunamadı, kablolamayı kontrol edin!"); while (1) {} } // Her saniyede bir çağrılacak bir fonksiyon ayarlayın timer.setInterval(1000L, sendSensor); } geçersiz döngü() { Blynk.run(); zamanlayıcı.run(); }
6. Adım: Tamamlandı
Aferin, devre şimdi tamamlandı ve artık güç verilen ve telefonunuza sıcaklık, nem ve basınç verilerini göndereceği bir yere yerleştirilebilir!