ESP32 ile Nesnelerin İnterneti: tüm simülasyonlar
Her simülasyon tarayıcında, deterministik olarak, hesap ve donanım gerekmeden çalışır. Her biri bir üniteye bağlı; notlar, kod ve quiz için üniteyi aç.
ESP32 pin planlayıcı
Bir projenin her bağlantısı için pin ve görev seç (çıkış, giriş, ADC, PWM, I²C, DAC, dokunma). Planlayıcı flash pinlerini, yalnız-giriş pinlerini, açılış (strapping) pinlerini ve Wi-Fi açıkken çalışmayan ADC2'yi işaretler.
| Bağlantı | Görev | GPIO | Denetim |
|---|---|---|---|
| DHT22 veri | Uygun | ||
| LDR (ışık) | Uygun | ||
| Toprak nemi | Çalışmaz ADC2 kanalı: Wi-Fi açıkken analogRead çalışmaz. ADC1 (32–39) kullan. | ||
| Pompa rölesi | Uygun | ||
| Pencere servosu | Dikkat GPIO 12 açılışta HIGH ise flash gerilimi 1,8 V seçilir, kart açılmayabilir. | ||
| BME280 / OLED SDA | Uygun | ||
| BME280 / OLED SCL | Uygun |
Wi-Fi bağlantı durumları ve yeniden bağlanma
Erişim noktası bir süre kapanır, sinyal zayıflar. Sabit beklemeyle ve üstel geri çekilmeyle yeniden bağlanmayı karşılaştır: deneme sayısı, kopuk kalınan süre ve AP geri gelince toparlanma süresi.
- bağlı
WL_CONNECTED - bağlanıyor
WL_IDLE_STATUS - bekliyor
WL_DISCONNECTED - AP yok
WL_NO_SSID_AVAIL
REST oyun alanı: ESP32 web sunucusu
Seradaki ESP32'nin küçük REST API'sine istek gönder: GET /api/sensor, PUT /api/led, POST /api/schedules. Ham HTTP isteğini ve yanıtını, durum kodlarını (200, 201, 400, 401, 404, 405, 422) ve JSON gövdeyi gör.
- –Henüz istek yok
Tarayıcıda MQTT broker'ı
Üç simüle cihaz ve bir pano aynı broker'a bağlı. Joker karakterli (+ ve #) abonelikler kur, mesaj yayımla, kalıcı (retained) mesajı ve bir cihazın kablosunu çekince yayımlanan son vasiyeti (LWT) izle.
sera/01/led/set Q1sera/02/fan/set Q1- –Bir şey yayımla ya da cihazlara telemetri gönderttir.
QoS 0, 1, 2: kayıplı bağlantıda teslim
Paket kaybı oranını artır ve aynı 20 mesajı üç QoS düzeyiyle gönder. Kaybolan, yinelenen ve teslim edilen mesajları, toplam paket sayısını ve her mesajın el sıkışma dizisini gör.
| QoS | Teslim | Kayıp | Yinelenen | Paket |
|---|---|---|---|---|
| 0 at most once | 16/20 | 4 | 0 | 20 |
| 1 at least once | 20/20 | 0 | 4 | 59 |
| 2 exactly once | 20/20 | 0 | 0 | 106 |
- #1gönderen → broker PUBLISH kayboldu
- #1gönderen → broker PUBLISH DUP kayboldu
- #1gönderen → broker PUBLISH DUP
- #1broker → gönderen PUBACK
- #2gönderen → broker PUBLISH
- #2broker → gönderen PUBACK
- #3gönderen → broker PUBLISH
- #3broker → gönderen PUBACK
- #4gönderen → broker PUBLISH
- #4broker → gönderen PUBACK
- #5gönderen → broker PUBLISH
- #5broker → gönderen PUBACK kayboldu
- #5gönderen → broker PUBLISH DUP
- #5broker → gönderen PUBACK
- #6gönderen → broker PUBLISH kayboldu
- #6gönderen → broker PUBLISH DUP
- #6broker → gönderen PUBACK
5. ünite: MQTT güvenilirliği: QoS, kalıcı mesaj, son vasiyet
Sensörden buluta: yük ve trafik hesabı
DHT22/BME280 okumasını JSON, CSV ya da 8 baytlık ikili yük olarak gönder. Yayın aralığı, QoS, TLS ve "değişince bildir" ölü bandıyla paket boyutunu, günlük mesaj ve veri miktarını hesapla.
Uzaktan eyleyici: idempotent komut ve cihaz gölgesi
Kayıplı bir bağlantıda röleye 20 komut gönder. "Çevir" (toggle) komutu yinelenen teslimde durumu bozar; "ayarla" (set) ve komut kimliği bozmaz. Altta istenen/bildirilen gölge farkını gör.
| Komut | Son röle | Beklenen | Uygulanan | Sonuç |
|---|---|---|---|---|
| toggle ("çevir") | KAPALI | KAPALI | 24 | doğru |
| set {"on": true/false} | KAPALI | KAPALI | 24 | doğru |
| set + komut kimliği | KAPALI | KAPALI | 20 | doğru |
Cihaz gölgesi
Canlı pano: halka tampon, seyreltme, uyarı
Üç cihazdan gelen telemetriyi canlı çiz. Halka tampon boyutunu ve ekrana çizilecek nokta sayısını değiştir; min/max seyreltmenin tepeleri koruduğunu ve histerezisli eşik uyarısını izle.
Güç bütçesi: derin uyku ve pil ömrü
Sürekli açık, modem uykusu, hafif uyku ve derin uyku kiplerini karşılaştır. Uyanma aralığı, uyanık kalma süresi, pil kapasitesi ve kartın uyku akımıyla ortalama akımı ve pil ömrünü hesapla.
OTA güncelleme: A/B bölümleri ve geri dönüş
Yeni yazılımı çalışmayan bölüme indir, doğrula, yeniden başlat. Kendi sınamasını geçemeyen sürümün eski bölüme geri döndüğünü ve geçersiz olayların durumu değiştirmediğini adım adım izle.
- –"Güncellemeyi başlat"a bas.
IoT güvenlik denetimi ve MQTT ACL
Bir cihaz kurulumunu denetle (TLS, sertifika doğrulama, anonim erişim, ortak parola, depodaki sırlar, imzalı OTA) ve risk puanını düşür. Altta Mosquitto tarzı ACL yaz ve hangi kullanıcının hangi konuya yazabildiğini sına.
- Trafik düz metin: parola ve veriler ağda okunur.
- Broker herkese açık: herkes abone olup komut yayımlayabilir.
- Tek cihaz ele geçerse hepsi ele geçer; tek cihazı iptal edemezsin.
- Sır git geçmişinde: silmek yetmez, parolayı değiştir.
- ACL yok: bir cihaz başka cihazın komut konusuna yazabilir.
- İmzasız OTA: ağdaki herkes cihaza yazılım yükleyebilir.
- Hata ayıklama kapısı açık: fiziksel ya da ağ erişimiyle sırlar okunur.
- Sertifika doğrulanmıyor: araya giren saldırgan broker gibi davranabilir.
| kullanıcı / istemci | konu | işlem | karar |
|---|---|---|---|
| sera-01 / sera-01 | sera/01/sicaklik | write | izin (satır 4) |
| sera-01 / sera-01 | sera/02/fan/set | write | ret |
| pano / pano-web | sera/02/fan/set | read | izin (satır 8) |
| pano / pano-web | sera/02/fan/set | write | izin (satır 9) |
| admin / cli | sera/03/kapi/ac | write | ret (satır 12) |
| sera-03 / sera-03 | clients/sera-03/durum | write | izin (satır 2) |
BLE: GATT hizmetleri ve reklam aralığı
Çevresel algılama, pil ve özel LED hizmetinin özelliklerini oku ve yaz; değerin küçük-endian baytlarını gör. Reklam aralığı ve verici gücüyle ortalama akımı, keşif süresini ve düğme pil ömrünü karşılaştır.
| Hizmet / özellik | UUID | Özellikler |
|---|---|---|
| Çevresel algılama | 0x181A | |
| ↳ Sıcaklık | 0x2A6E | read, notify |
| ↳ Bağıl nem | 0x2A6F | read, notify |
| Pil | 0x180F | |
| ↳ Pil düzeyi | 0x2A19 | read, notify |
| LED (özel hizmet) | 19b10000… | |
| ↳ LED durumu | 19b10001… | read, write |
Akıllı sera: kural motoru
EĞER … İSE … kurallarıyla pencere, fan, ısıtıcı, sulama ve alarmı yönet. 24 saatlik sera gününü dış hava ve bulutlulukla benzet; konfor yüzdesi, aşırı sıcak/soğuk dakika, röle anahtarlama sayısı ve enerjiyle kurallarını puanla.
10. ünite: Akıllı ev ve akıllı sera: kural motoru ve sistem mimarisi
3B akıllı sera: cihazlar, broker ve MQTT paketleri
Seranın 24 saatini kural motoruyla oynat. Sensör düğümü her 10 dakikada sıcaklık yayımlar, eyleyici düğümü durum değiştirince kalıcı durum mesajı yollar; her paket broker'dan geçerek abonelerine uçar. Panodan elle komut gönder, pencere, fan, ısıtıcı ve sulamanın sahnede değiştiğini izle.
3B sahne yükleniyor…
Sürükle: döndür · iki parmak / tekerlek: yakınlaş · sağ tuş: kaydır
- telemetri
- komut
- durum (retained)
- 11:00
sera/01/sicaklik26.8 sensor → broker → actuator, dashboard - 10:50
sera/01/sicaklik26.2 sensor → broker → actuator, dashboard - 10:40
sera/01/sicaklik25.7 sensor → broker → actuator, dashboard - 10:30
sera/01/sicaklik25.1 sensor → broker → actuator, dashboard
