Neler Yeni

ESP32, bir röle ve Xiaomi sıcaklık sensörü ile termostat yapılabilir mi?

Katılım
26 Mart 2020
Mesajlar
299
Dahası  
Reaksiyon skoru
70
İsim
Abdüssamet Karataş
Youtube'da bunun yapılabildiğini gördüm fakat benim yapmak istediğim, akıllı telefon üzerinden evin sıcaklığını görebileceğim, istediğim dereceye ayarladığımda evin sıcaklığı ayarladığım sıcaklıktan düşükse devreye girecek, o sıcaklığa geldiğinde devreden çıkacak bir sistem olmalı. İstediğim sıcaklığı da her seferinde kodlarda değişiklik yaparak değil de uygulama üzerinden ok tuşları veya slider gibi bir şeyle kontrol edebilmeliyim.

Bu istediklerimi ChatGPT'ye, Gemini'a ve birkaç yapay zekaya daha sordum. Hepsinden bunu yapabileceğim sonucunu aldım. Fakat söyle bir sorun var, kodlama hakkında hiçbir fikrim yok. Onun için de yapay zekadan yardım aldım ve bana aşağıya yazdığım kodu verdi. Size sorum bu kod çalışır mı, hata var mı, ya da bu sistem hakkında önerebileceğiniz herhangi bir şey var mı?

Bu arada neden kendin deneyip görmüyorsun derseniz, elimde şu anda ESP32 yok, buradan alacağım yanıtlara göre sipariş vereceğim.

#include "SPI.h"
#include "BLEDevice.h"
#include "BLEScan.h"
#include "BLEAdvertisedDevice.h"
#include "WiFi.h"
#include "BlynkSimpleEsp32.h"

#define RELAY_PIN 5
#define LED_PIN 2
#define SCAN_TIME 10 // BLE tarama süresi (saniye)

char auth[] = "BLYNK_AUTH_TOKEN"; // Blynk kimlik doğrulama anahtarını buraya gir
char ssid[] = "WiFi_ADI"; // WiFi ağ adı
char pass[] = "WiFi_SIFRE"; // WiFi şifresi

BLEScan *pBLEScan;
float current_temp = -100;
float set_temp = 24.0; // Varsayılan sıcaklık ayarı (telefon üzerinden değiştirilebilir)

BLYNK_WRITE(V0) {
set_temp = param.asFloat(); // Blynk uygulamasından gelen sıcaklık değeri
}

class MyAdvertisedDeviceCallbacks : public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice advertisedDevice) {
if (advertisedDevice.haveName() && advertisedDevice.haveServiceData() && advertisedDevice.getName() == "ATC_XXXXXX") {
std::string data = advertisedDevice.getServiceData();
uint8_t *rawData = (uint8_t *)data.data();

if (data.length() >= 6) {
int temp_raw = (rawData[2] << 8) | rawData[1];
current_temp = temp_raw / 10.0;
Serial.printf("Okunan Sıcaklık: %.1f°C\n", current_temp);
}
}
}
};

void setup() {
Serial.begin(115200);
pinMode(RELAY_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
digitalWrite(RELAY_PIN, HIGH);

WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("WiFi bağlanıyor...");
}
Serial.println("WiFi bağlantısı başarılı!");
Blynk.begin(auth, ssid, pass);

BLEDevice::init("");
pBLEScan = BLEDevice::getScan();
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(true);
pBLEScan->setInterval(100);
pBLEScan->setWindow(99);
}

void loop() {
Serial.println("BLE taraması başlatılıyor...");
pBLEScan->start(SCAN_TIME);
Serial.printf("Mevcut sıcaklık: %.1f°C | Ayarlanan sıcaklık: %.1f°C\n", current_temp, set_temp);

if (current_temp < set_temp) {
digitalWrite(RELAY_PIN, LOW);
Serial.println("Röle Açık (Kombi Açık)");
} else {
digitalWrite(RELAY_PIN, HIGH);
Serial.println("Röle Kapalı (Kombi Kapalı)");
}
Blynk.run();
delay(5000);
}
 
Katılım
25 Ocak 2025
Mesajlar
446
Dahası  
Reaksiyon skoru
158
İsim
ömer faruk
esp ile web server oluşturup sensör verilerini okuyabilir buna göre manual ya da otomatik aç kapa yaptırabilirsin başka bir şeye röle ile ama bunu sadece aynı wifi ağına bağlıyken yapabilirsin , eğer kodlama bilgin yoksa bunun uzaktan erişimini yapmak senin için zor olur
 

lmperıo

80+
Katılım
29 Kasım 2024
Mesajlar
35
Dahası  
Reaksiyon skoru
14
İsim
Imperıo
Amacın programlama ve kodlamayı öğrenip ESP vs. sistemlerde kendini geliştirmek ise gereken kitleri aldıktan sonra üzerinde çalışmalar yaparak rahatlıkla istediğini yapabilirsin.
Şayet sadece kullanım amacı ile böyle bir işe girişeceksen hazır akıllı ev sistemleri ürünler var. İstediğin gibi uzaktan kontrolü de sağlanıyor. İyi derece kodlama bilmene de gerek yok. Bu ürünleri alarak istediğini rahatlıkla halledebilirsin.
 
Katılım
25 Ocak 2025
Mesajlar
446
Dahası  
Reaksiyon skoru
158
İsim
ömer faruk
1739778422191.png

Mesaj otomatik birleştirildi:

ben yapay ışıkta büyüyen bitkilerim için böyle bi şey yapmıştım bilgisayarıma uzaktan bağlanıp onun üzerinden kontrol ediyodum ihtiyacım olduğunda çok basit de bi şey gpt fazlasıyla yazar bunu
 
Top Bottom