1. sayfa
Şimdi şöyle konuya biraz bilgimle girmek istiyorum ben olsam, esp32 veya nodemcu-esp8266 bir kart kullanırdım Anladığım sen ios uyumlu akıllı sistem yapmak istiyorsun. ben tv aydınlatmam tv panel aydınlatmamı bir nodemcu ile role kullanarak apple home üzerinden ledleri yakabildiğim bir sistem yaptım biraz bilgin varsa şöyle söylim arduino ide ile https://github.com/Mixiaoxiao/Arduino-HomeKit-ESP8266 bu kütüphaneyi kullandım. burda 4'lu role ile 4 lamba yakıp söndürebiliyorum akıllı prizde yapabilirim bir tür uzaktan kontrol swich yaptım. senin olaya gelelim. esp8266 ile telegrama mesaj attırabiliyorsun biraz google araması yaparak görürsün. iletişim kısmını burdan halletmek gerek. yani aşağıdan biri sizin zilimi çaldı telegramdan mesaj gelicek muhtemelen whatsapp türüde vardır araştırmak lazım. burda biraz elektronik bilgisi lazım gerisi kodlaması kolay verdiğim kütüphanede camera sistemide var burdan ios üzerinden kamerenıda izlersin kapıdaki geri kalan kısımda ise kamera verisinin girişini zile bastığında gelen veriyi nodemcuya bağlayabilmek. ben şimdi kendi sistemimi anlatıcam kodlarını vericem. bir nodemcu8266 bir 4lu 5v role, (2 role kullandım) ve led lambalar. arduino ide üzerinden nodemcuyu bağladım ve verdiğim kütüphanede bir swich örneği oluşturdum sonra düzenledim ; aydınlatma.ino kodları; ------------------------------------------------------------------------- #include <Arduino.h> #include <arduino_homekit_server.h> #include "wifi_info.h" #define LOG_D(fmt, ...) printf_P(PSTR(fmt "\n") , ##__VA_ARGS__); void setup() { Serial.begin(115200); wifi_connect(); // WiFi bağlantısını başlat // homekit_storage_reset(); // yeni bir projede burayı aç ios tanımlamayı yap geri bu hale getir my_homekit_setup(); } void loop() { my_homekit_loop(); checkConnection(); // Bağlantı durumunu kontrol et delay(10); } //============================== // HomeKit setup and loop //============================== // access your HomeKit characteristics defined in my_accessory.c extern "C" homekit_server_config_t config; extern "C" homekit_characteristic_t cha_switch_on; extern "C" homekit_characteristic_t cha_switch_on2; extern "C" homekit_characteristic_t cha_switch_on3; extern "C" homekit_characteristic_t cha_switch_on4; static uint32_t next_heap_millis = 0; #define PIN_SWITCH 2 #define PIN_SWITCH2 5 #define PIN_SWITCH3 0 #define PIN_SWITCH4 4 void cha_switch_on_setter(const homekit_value_t value) { bool on = value.bool_value; cha_switch_on.value.bool_value = on; //sync the value LOG_D("Switch: %s", on ? "ON" : "OFF"); digitalWrite(PIN_SWITCH, on ? LOW : HIGH); } void cha_switch_on_setter2(const homekit_value_t value) { bool on = value.bool_value; cha_switch_on2.value.bool_value = on; //sync the value LOG_D("Switch: %s", on ? "ON" : "OFF"); digitalWrite(PIN_SWITCH2, on ? LOW : HIGH); } void cha_switch_on_setter3(const homekit_value_t value) { bool on = value.bool_value; cha_switch_on3.value.bool_value = on; //sync the value LOG_D("Switch: %s", on ? "ON" : "OFF"); digitalWrite(PIN_SWITCH3, on ? LOW : HIGH); } void cha_switch_on_setter4(const homekit_value_t value) { bool on = value.bool_value; cha_switch_on4.value.bool_value = on; //sync the value LOG_D("Switch: %s", on ? "ON" : "OFF"); digitalWrite(PIN_SWITCH4, on ? LOW : HIGH); } void my_homekit_setup() { pinMode(PIN_SWITCH, OUTPUT); digitalWrite(PIN_SWITCH, HIGH); pinMode(PIN_SWITCH2, OUTPUT); digitalWrite(PIN_SWITCH2, HIGH); pinMode(PIN_SWITCH3, OUTPUT); digitalWrite(PIN_SWITCH3, HIGH); pinMode(PIN_SWITCH4, OUTPUT); digitalWrite(PIN_SWITCH4, HIGH); //Add the .setter function to get the switch-event sent from iOS Home APP. //The .setter should be added before arduino_homekit_setup. //HomeKit sever uses the .setter_ex internally, see homekit_accessories_init function. //Maybe this is a legacy design issue in the original esp-homekit library, //and I have no reason to modify this "feature". cha_switch_on.setter = cha_switch_on_setter; cha_switch_on2.setter = cha_switch_on_setter2; cha_switch_on3.setter = cha_switch_on_setter3; cha_switch_on4.setter = cha_switch_on_setter4; arduino_homekit_setup(&config); //report the switch value to HomeKit if it is changed (e.g. by a physical button) //bool switch_is_on = true/false; //cha_switch_on.value.bool_value = switch_is_on; //homekit_characteristic_notify(&cha_switch_on, cha_switch_on.value); } void my_homekit_loop() { arduino_homekit_loop(); const uint32_t t = millis(); if (t > next_heap_millis) { // show heap info every 5 seconds next_heap_millis = t + 5 * 1000; LOG_D("Free heap: %d, HomeKit clients: %d", ESP.getFreeHeap(), arduino_homekit_connected_clients_count()); } } my_accessory.c kodları : -------------------------------------------------------------------------- #include <homekit/homekit.h> #include <homekit/characteristics.h> void my_accessory_identify(homekit_value_t _value) { printf("accessory identify\n"); } homekit_characteristic_t cha_switch_on = HOMEKIT_CHARACTERISTIC_(ON, false); homekit_characteristic_t cha_switch_on2 = HOMEKIT_CHARACTERISTIC_(ON, false); homekit_characteristic_t cha_switch_on3 = HOMEKIT_CHARACTERISTIC_(ON, false); homekit_characteristic_t cha_switch_on4 = HOMEKIT_CHARACTERISTIC_(ON, false); // format: string; HAP section 9.62; max length 64 homekit_characteristic_t cha_name = HOMEKIT_CHARACTERISTIC_(NAME, "tv"); homekit_accessory_t *accessories[] = { HOMEKIT_ACCESSORY(.id=1, .category=homekit_accessory_category_switch, .services=(homekit_service_t*[]) { HOMEKIT_SERVICE(ACCESSORY_INFORMATION, .characteristics=(homekit_characteristic_t*[]) { HOMEKIT_CHARACTERISTIC(NAME, "tv"), HOMEKIT_CHARACTERISTIC(MANUFACTURER, "tv HomeKit"), HOMEKIT_CHARACTERISTIC(SERIAL_NUMBER, "3458421"), HOMEKIT_CHARACTERISTIC(MODEL, "ESP8266"), HOMEKIT_CHARACTERISTIC(FIRMWARE_REVISION, "3.0"), HOMEKIT_CHARACTERISTIC(IDENTIFY, my_accessory_identify), NULL }), HOMEKIT_SERVICE(SWITCH, .primary=true, .characteristics=(homekit_characteristic_t*[]){ &cha_switch_on, &cha_name, NULL }), NULL }), HOMEKIT_ACCESSORY(.id=2, .category=homekit_accessory_category_switch, .services=(homekit_service_t*[]) { HOMEKIT_SERVICE(ACCESSORY_INFORMATION, .characteristics=(homekit_characteristic_t*[]) { HOMEKIT_CHARACTERISTIC(NAME, "Switch2"), HOMEKIT_CHARACTERISTIC(MANUFACTURER, "Arduino HomeKit"), HOMEKIT_CHARACTERISTIC(SERIAL_NUMBER, "0123456"), HOMEKIT_CHARACTERISTIC(MODEL, "ESP8266/ESP32"), HOMEKIT_CHARACTERISTIC(FIRMWARE_REVISION, "1.0"), HOMEKIT_CHARACTERISTIC(IDENTIFY, my_accessory_identify), NULL }), HOMEKIT_SERVICE(SWITCH, .primary=true, .characteristics=(homekit_characteristic_t*[]){ &cha_switch_on2, &cha_name, NULL }), NULL }), HOMEKIT_ACCESSORY(.id=3, .category=homekit_accessory_category_switch, .services=(homekit_service_t*[]) { HOMEKIT_SERVICE(ACCESSORY_INFORMATION, .characteristics=(homekit_characteristic_t*[]) { HOMEKIT_CHARACTERISTIC(NAME, "Switch3"), HOMEKIT_CHARACTERISTIC(MANUFACTURER, "Arduino HomeKit"), HOMEKIT_CHARACTERISTIC(SERIAL_NUMBER, "0123456"), HOMEKIT_CHARACTERISTIC(MODEL, "ESP8266/ESP32"), HOMEKIT_CHARACTERISTIC(FIRMWARE_REVISION, "1.0"), HOMEKIT_CHARACTERISTIC(IDENTIFY, my_accessory_identify), NULL }), HOMEKIT_SERVICE(SWITCH, .primary=true, .characteristics=(homekit_characteristic_t*[]){ &cha_switch_on3, &cha_name, NULL }), NULL }), HOMEKIT_ACCESSORY(.id=4, .category=homekit_accessory_category_switch, .services=(homekit_service_t*[]) { HOMEKIT_SERVICE(ACCESSORY_INFORMATION, .characteristics=(homekit_characteristic_t*[]) { HOMEKIT_CHARACTERISTIC(NAME, "Switch4"), HOMEKIT_CHARACTERISTIC(MANUFACTURER, "Arduino HomeKit"), HOMEKIT_CHARACTERISTIC(SERIAL_NUMBER, "0123456"), HOMEKIT_CHARACTERISTIC(MODEL, "ESP8266/ESP32"), HOMEKIT_CHARACTERISTIC(FIRMWARE_REVISION, "1.0"), HOMEKIT_CHARACTERISTIC(IDENTIFY, my_accessory_identify), NULL }), HOMEKIT_SERVICE(SWITCH, .primary=true, .characteristics=(homekit_characteristic_t*[]){ &cha_switch_on4, &cha_name, NULL }), NULL }), NULL }; homekit_server_config_t config = { .accessories = accessories, .password = "123-44-567" }; wifi_info.h kodları ; ------------------------------------------------------------------------- /* * wifi_info.h * * Oluşturulma tarihi: 2023-12-02 * Yazar: SkyHan */ #ifndef WIFI_INFO_H_ #define WIFI_INFO_H_ #if defined(ESP8266) #include <ESP8266WiFi.h> // ESP8266 için WiFi kütüphanesi #elif defined(ESP32) #include <WiFi.h> #endif const char *ssid = "wifi adı"; const char *password = "wifi_şifren"; void wifi_connect() { WiFi.persistent(false); WiFi.mode(WIFI_STA); WiFi.setAutoReconnect(true); WiFi.begin(ssid, password); Serial.println("WiFi connecting..."); while (!WiFi.isConnected()) { delay(100); Serial.print("."); } Serial.print("\n"); Serial.printf("WiFi connected, IP: %s\n", WiFi.localIP().toString().c_str()); } void sendHeartbeat() { // TODO: HomeKit'e bir 'kalp atışı' gönderme işlemi buraya eklenecek } void checkConnection() { if (WiFi.status() != WL_CONNECTED) { Serial.println("WiFi bağlantısı kesildi! Yeniden bağlanılıyor..."); wifi_connect(); // Bağlantıyı yeniden kur } } #endif |
şimdi burda aydınlatma.ino da kullandığım kodlar benim rolelerin kullanımı swich1 den 4 e kadar yaptım. burda önemli olan my accesory dosyasında apple home kit uyumlu cihaz için uygun karakteristik kodları bulmakta https://github.com/apple/HomeKitADK onuda burdan faydalanabilirsin. ve myaccessory.c kodlarında homekit_accessory_t *accessories[] = ...bu kısmı düzenlemen gerek şifre belirlemelisin wifi.info.h da wifi bilgilerini girmen gerek. tabi ben sabit bir ev ağı kullanıyorum bunu daha sonra değiştirmek istediğinde kodları düzenleyip tekrar yüklemen gerek. eğer herkes kullansın istersen wifimanager.h entegre etmelisin kodlara. gelelim bağlantılara ben iki role kullandım bunların biri d0 biri d4 pinine bağlı bir gnd birde vcc pinine bağlı bunlar role ile nodemcu bağlantısı. roleyede ledler bağlı burda d0-d5 pinleri dışardan veri girişi örneğin camera örneğin hareket sensörü örneğin role yada zile bastığında gelen veri. üstün körü anlattım geri kalan kısımda soruların olursa yardımcı olmaya çalışırım. şuan apple home da kullanıyorum. ve planım odamdaki akıllı prizleride böyle sistemler yapıcam tavandaki spottan tavan ledlerine kahve makinesine kadar yapıcam. dışarda bunlara 3000 tl harcıyacağıma rolelerle esp8266 ile çözebiliyorum gerisi kod bilgisi. ben bunları fikir olarak paylaştım bir elin nesi var iki elin sesi var mantığı. şimdi senin şemalarda gnd bağlantısı var 24 volt vcc bağlantısı var bu 24 voltu bir adaptör eklemen gerek nodemcu 5v verir max. ses1 ses2 mesela bunlar d0 ve d1 pinlerine bağlayabilirsin |
şimdi burda aydınlatma.ino da kullandığım kodlar benim rolelerin kullanımı swich1 den 4 e kadar yaptım. burda önemli olan my accesory dosyasında apple home kit uyumlu cihaz için uygun karakteristik kodları bulmakta https://github.com/apple/HomeKitADK onuda burdan faydalanabilirsin. ve myaccessory.c kodlarında homekit_accessory_t *accessories[] = ...bu kısmı düzenlemen gerek şifre belirlemelisin wifi.info.h da wifi bilgilerini girmen gerek. tabi ben sabit bir ev ağı kullanıyorum bunu daha sonra değiştirmek istediğinde kodları düzenleyip tekrar yüklemen gerek. eğer herkes kullansın istersen wifimanager.h entegre etmelisin kodlara. gelelim bağlantılara ben iki role kullandım bunların biri d0 biri d4 pinine bağlı bir gnd birde vcc pinine bağlı bunlar role ile nodemcu bağlantısı. roleyede ledler bağlı burda d0-d5 pinleri dışardan veri girişi örneğin camera örneğin hareket sensörü örneğin role yada zile bastığında gelen veri. üstün körü anlattım geri kalan kısımda soruların olursa yardımcı olmaya çalışırım. şuan apple home da kullanıyorum. ve planım odamdaki akıllı prizleride böyle sistemler yapıcam tavandaki spottan tavan ledlerine kahve makinesine kadar yapıcam. dışarda bunlara 3000 tl harcıyacağıma rolelerle esp8266 ile çözebiliyorum gerisi kod bilgisi. ben bunları fikir olarak paylaştım bir elin nesi var iki elin sesi var mantığı. şimdi senin şemalarda gnd bağlantısı var 24 volt vcc bağlantısı var bu 24 voltu bir adaptör eklemen gerek nodemcu 5v verir max. ses1 ses2 mesela bunlar d0 ve d1 pinlerine bağlayabilirsin video ve data yıda diğer pinlere sonra gerisi kodlama kısmı İlk olarak, ESP8266'yı bina sokak kapısı diafon sisteminize bağlamalısınız. Bunun için diafon sisteminizin çalışma prensibini anlamak ve ESP8266'nın hangi noktalara bağlanacağını belirlemek önemli olacak. yani istediğini yapmak zor uğraştırıcı ama imkansız değil. |
Evet uzaktan kapı açma işlemini yaptım. Zaten basitti. Alt zil çaldığında kısmını yapmak için değerleri ölçmem gerekiyor onun için iki kişiye ihtiyacım olduğu için şimdilik kaldı. Gps veya smartthink cihazları ile dış kapıya yaklaşınca kapı açılmasını yapacağım. Onun için iyileşmem lazım dışarısı soğuk =(((( https://www.tiktok.com/@seranyayinda/video/7331776899498134789?is_from_webapp=1&sender_device=pc&web_id=7287868708252501510 |
Kapıyı dışardan tuya ile gps açma olayı stabil olmadı. Samsung s23 ultra tuya ile uyum sorunu var gibi. Kapı zilim de bir ara çalışmıyordu. Sonradan ekrana arama gelmemeye başladı. Şimdi düzeldi. Ama geçe kafasına göre kapı zili çalıyor. Birde kapı zilim geçikmeli. Tuya kapı zillerin hepsi mi öyle bilmiyorum ama hiç memnun değilim. O değişecek. Gps ile kapı açmayı şöyle çözmeyi düşünüyorum. Smart think google ve alexa gps deneyeceğim. Belki o tam istediğim gibi stabil olur. Kapıya yaklaşınca otomatik kapık açılsın diye. Bir şey daha var. Tetikleme yapan pille çalışan bir bluetooth cihazı varmı mesela samsung tag la olur mu bilmiyorum samsung tag yaklaşınca kapı tetiklensin gibi. Daha yakın mesafeyi algılayan. Gps nerde tepki vereceği çok net değil. nfc tag ile kapı açma yapabiliyorum. Benim belirlediğim mac cihazlarına. Buda onun videosu, elimde nfc kart olduğu için onu kullandım çok büyük olduğu için öyle üste açtım. Yuvarlak nfc ler gelince onu yapıştıracağım. https://www.tiktok.com/@seranyayinda/video/7333315870388735238 Aşağıdaki zil olayını da çözdüm. Malzemeleri bekliyorum. Onlar gelince zil çalma olayını yapacağım. Sesli konuşma kısmını da çözerim gibi. Kamera kısmı benim için imkansız gibi. Kapıya kamera bağlamak daha kolay. |
Kapı zili çalmasını da akıllandırdım. Hem telefonumu arıyor. Daha öncede uzaktan açmayı da halletmiştim. https://www.tiktok.com/@seranyayinda/video/7344038093512641797?is_from_webapp=1&sender_device=pc&web_id=7287868708252501510 |
led ve hoparlörden tam verim alamadım. dediğiniz gibi uç olarak yaptım. Görüntü olayınıda bir arkadaş çözmüş ama denemedim videosu resmi vs olsa kalkaşacam. Sizin datadan aldığınız yöntem kafamı çok karıştırdı. Bir de diafon sistemi audio diafon ise görüntüyü almak için herhangi bir dvr cihazının analog girişlerine audio için siyah video ve yeşil ground kablolarına analog olarak bağlantı yapıp görüntü alabilirsiniz. Bunu daha sonra rtsp ile homaasistana aktarabilirsiniz. Ben hepsini toparlayınca detaylı anlatacağım https://forum.donanimhaber.com/home-assistant-ve-akilli-evler-ana-konu--151020627-103 |
https://www.youtube.com/watch?si=4k5uRYWSHte8UjdW&v=b5lT4sIYAbw&feature=youtu.be |
https://ideacdn.net/idea/cd/40/myassets/products/737/ldr-isik-sensoru-kontrollu-tekli-role-karti-21600-jpg.jpeg?revision=1738137051 led yanında röle tetikleniyor. Röle de 4 lü wifi röle kullanıyorum. Üstünde 4 pin var. Pinler kısa devre yapınca diğer röle aktif oluyor. On olunca kapı zili çaldı diyor. Işık sönünce off oluyor. home asistana kapı zili çaldı uyarısı geliyor. Işık sensörsüzde yapabilirsin. Ama bende kısa devre oldu bir daha gözüm yemedi. Yapacaksan dışardan gelen hat ile kapı zili arasına bir şey yapmak daha mantıklı. |
1. sayfa
esp8266 ile Audio marka bina sokak kapısı diafon sisteminin evimdeki basit panelinden apartman kapısını uzaktan (mümkünse apple home üzerinden) açabilmek istiyorum. Bunu nasıl yapabileceğim konusunda fikri olan var mıdır?
Panelde 3 düğme var, bir tanesi kilidi açmak için ancak düğme ben durup dururken bastığımda kapıyı açmıyor, ancak sokaktan birisi benim dairemi çalarsa evdeki bu düğme aktif hale geliyor. Veya önce ben içerden kamera butonuna basıp girişi görüntülersem sonrasında kapı açma butonu işe yarıyor.
Buradaki kritik nokta şu, Audio nun kullandığı audiobus diye bir bağlantı protokolü var, eve gelen kablolardan hangileri sokak kapısını açmayı tetikler bu konuda bilgim yok. Audio mühendislerine ulaşmaya çalıştım linkedin üzerinden ancak ulaşamadım.
< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >