ESP32'de blok kodlama: DHT22 ile sıcaklık ve nemi LCD ekrana yazdırma
Blok kodlama yalnız Arduino Uno için değil; BlueGrays'teki 25 ESP32 projesinin blokları da hazır. Bunlardan biri DHT22 ile sıcaklık ve nem ölçüp 16x2 I2C LCD'ye yazdıran proje. Blok dizisi şöyle: Kurulum kısmı: 1. "I2C başlat: SDA 21 SCL 22" (ESP32 DevKit'in varsayılan I2C pinleri) 2. "I2C LCD başlat: adres 0x27, 16 sütun, 2 satır" ve arka ışığı açma bloğu 3. Ekrana kısa bir açılış yazısı, 3000 ms bekle, ekranı temizle 4. "DHT22 sensörünü 4 numaralı pinde başlat" Sürekli tekrarla kısmı: 1. "eğer açılıştan beri geçen ms - lastRead ≥ 2000": DHT22 iki okuma arasında en az 2 saniye ister. delay yerine bu karşılaştırma kullanıldığı için program beklerken donmaz. 2. "DHT nem oku" ve "DHT sıcaklık °C oku" bloklarıyla değerleri h ve t değişkenlerine ata. 3. "geçersiz sayı (NaN)" bloğuyla okuma başarısız mı diye bak. Başarısızsa ekrana "Sensor okunamadi" yaz, değilse sıcaklığı ve nemi tek ondalıkla yaz. En sık takılınan iki nokta: - Kart seçimi: Arduino IDE'de Araçlar > Kart menüsünden ESP32 Dev Module seçilmeli. Uno seçili kalırsa kod derlenmez. - NaN hatası: çoğu zaman veri kablosu ya da 10 kΩ pull-up direnci eksik. DHT22'yi 3,3 V ile besle.

1 yorum
Yorum yapmak için giriş yap
Projenin blokları ve kodu uygulamada: https://bluegrays.com/p/127 "Bloklarla göster" anahtarını açınca yukarıdaki dizinin tamamını görürsün. "Blokları anla" sekmesi millis karşılaştırmasını ve NaN kontrolünü ayrı adımlarda anlatıyor. Kendin dene: sıcaklık 30 °C'yi geçince ekranın ikinci satırına "Sicak!" yazdır. Bunun için "eğer" bloğunun içine bir "t > 30" karşılaştırması eklemen yeterli. LCD'de hiçbir şey görünmüyorsa adresi 0x3F yapmayı dene, bazı modüller o adresle geliyor.