28 Mart 2024 , Perşembe

Xiaomi Nem/Sıcaklık Sensörü ve ESP32 İle Kablosuz Oda Termostatı Projesi

Merhaba,

Youtube kanalımda detayları ile yayınladığım projeme ait modül bağlantı şeması ve proje kodlarına yazının devamından ulaşabilirsiniz. Xiaomi’nin tasarladığı oldukça şık ve işlevsel bu ürün sayesinde kombi kullanımı için önemli olan konfor ve tasarruf odaklı bir proje gerçekleştirdik.  Projede kullanılan donanımlar:

1-Xiaomi Bluetooth Sıcaklık ve Nem Sensörü

2-ESP32 Geliştirme Kartı

3-5v Röle

 

Not: Kodların sorunsuz çalışması için ESP32 çekirdek sürümünü 1.0.0 sürümüne düşürmeniz gerekmektedir.

 

Hakkında sbugra

Küçük yaşlarda bilgisayarla tanışan, zaman içerisinde elektroniğe merak salan bir havacılık tutkunu. Bildiklerini paylaşmayı seven ve öğrenmeye açık bir arkadaş. Edindiği tecrübeleri paylaşmak için kurduğu bu site, ziyaret edenlere değer katabiliyorsa ne mutlu ona.

Göz Atın

Fren Çakar Modülü Projesi : Bölüm 5 – Gömülü Sistem Yazılım Geliştirme

Merhaba arkadaşlar, aracımda F1 çakar modülü kullanmaya karar verdikten sonra arayışa girerek piyasadaki ürünleri inceledim. …

49 yorumlar

  1. Merhaba
    Elinize sağlık güzel ve faydalı bir çalışma olmuş.
    Kaç metreden sonsuz çalışıyor.

  2. bu çalışmada dereceyi değiştirmek istediğimizde kod sayfasından değiştirip tekrar kodu modüle mi göndermemiz gerekecek, yoksa xiaomi nin cep telefonu uygulamasından ayar yapabiliyormuyuz ?? birde bahsettiğiniz güncellemeleri de bekliyoruz…

    • Merhaba, mevcut haliyle sıcaklık değeri yazılım üzerinden atanıyor, termostat meselesine acil çözüm bulmam gerektiği için bu şekilde yaptım. Sonraki aşamada telefon üzerinden zaman modülasyonu ve sıcaklık kontrolü yapılacak şekilde yeniden tasarlayacağım.

      • çalışman takdire şayan.. birçok insana yardımcı olabilmek güzel bir duygu olsa gerek.. telefon üzerinden sıcaklığı değiştirebilmek adına yapacağın modülasyonu en kısa zamanında yapabilirsen bizleri sevindirirsin. birçok kişi bu işlemi telefondan kolayca değiştirebilme özelliğini bekliyor. bu kişilerden biri de benim.. en azından şimdilik bu modülasyonu ekleme şansın varmı ?? çünkü birkaç yerde yapılacak olan geliştirmeler bu kışa yetişmez demişsin.. elinden gelenin en iyisini yapmaya çalıştığını biliyoruz lakin birçok kişi senden bu yardımı bekliyor emin ol.. bizleri fazla bekletmezsen çok müteşekkir oluruz.. iyi çalışmalar

      • telefon kontrollü tasarım ne zaman gelecek

  3. DURSUN ALİ DEMİR

    MERHABA İYİ ÇALIŞMALAR BU YAPMIŞ OLDUĞUNUZ PROJE İLİGİLİ ASLINDA ARDUİNO KODLAMASI İLE İLGİLİ YARDIM ALMAK İSTİYORUM MERAK EDİYORUM BU KODLAMALAR NASIL YAPILIYOR VE NELERE DİKKAT ETMEMİZ GEREK BU YAPMIŞOLDUĞUNU PAYLAŞIM İLE İLGİLİ KODLAMAYI ARDUİNO PROGRAMINDA TEST ETİĞİM ZAMAN HATA VERİYOR.
    İYİ ÇALIŞMALAR
    Xiaomi Nem/Sıcaklık Sensörü ve ESP32 İle Kablosuz Oda Termostatı Projesi

  4. Merhaba,
    Temiz bir çalışma olmuş,elinize sağlık.
    Ben kodları biraz daha modifleyip, Blynk ile cep telefonu üzerinden zaman ayarlı ve uzaktan erişilebilecek şekilde düzenledim. Fakat bir problem yaşıyorum. ESP32 modül ile Xiaomi sıcaklık sensörü arasındaki mesafe açık alanda 4m’nin üzerine çıktığında modül data alamıyor. Bunu iyileştirmenin bir yolu var mıdır?

    • Merhaba, teşekkür ederim. BLE modüller kapalı alanda 20 metreye kadar veri iletimi yapabiliyorlar. Sistemi evimin tüm odalarında sorunsuz kullanabiliyorum. ESP32 için 4 metre çok az bir değer.

    • Fevzi bey, Blynk ile yapmış olduğunuz kod değişikliğini ve Blynk uygulamasını nasıl yapıldığı konusunu bizlere de anlatabilirmisiniz ? telefon üzerinden derece değiştirebilmek daha kullanışlı olacak bizler için.. her ikinize de ayrı ayrı teşekkür ederiz

    • Blynk ile nasıl kullanabildiniz? hafıza yetmiyor neleri modifiye ettiniz acaba?

  5. Mrb, aynı kodları kullanarak hiç bir değişiklik yapmadan ürünü yaptım fakat resimdeki hatayı alıyorum.
    https://imgyukle.com/i/qeFhv
    Neden olabilir? Yardımcı olursanız memnun olurum.

    • Merhaba,
      Arduino üzerinden Tools > Board > Boards Manager > ESP32 yolunu takip ederek ESP32 çekirdek sürümünü 1.0.0’a düşürün ve sonrasında kodlarınızı tekrar derleyerek karta yükleyin. Sorun düzelecektir.

      • Mrb,
        yazdığınız şekilde 1.0.0 versiyon çekirdek sürüm yükleyerek denedim. Sonuç aynı. Hoca’nın bahsettiği yeni ve eski sürüm esp32’lerde de denedim hepsinde aynı durum. Bir sonuç alamadım malesef. Başka bir öneriniz olur mu?

        • merhaba, benzer problemi ben de yaşadım, board manager dan ESP32 nin tüm versiyonlarını silin baştan 1.0.0 ı kurun. Temiz kurulum ile çözdüm.

  6. Merhaba,

    Öncelikle elinize sağlık. Faydalı bir çalışmanızı bizimle paylaştığınız için teşekkür ederim. Ben de uygulamaya çalıştım ancak sorun yaşıyorum. ESP32 ye kodları aktardım ve seri monitörde normal çalışıyor görünüyor ancak bir türlü röleyi düzgün kontrol etmiyor. Role ya sürekli açık yada sürekli kapalı kalıyor. Rolenin in girişine DC vererek denediğimde role tetikleniyor. Sorun ESP32 ile ilgili olabilir mi ya da kodun aktarılması esnasında kart ile ilgili parametrelerin farlkı olması etkiler mi ? Benim kullandığım ESP32 sanırım orjinal bir kart değil. Bu konuda bilginiz varsa yardımcı olabilirseniz sevinirm.

    • Merhaba,
      İlginiz için teşekkür ederim.
      Seri monitörden aldığınız Payload verisinin uzunluğunu videodaki ile kıyaslar mısınız, siz de daha kısa data mı görünüyor?

      • ESP üzerinde kodlar doğru çalışıyor. Sıcaklık nem ve pil bilgisi geliyordu. Ancak röle düzgün çalışmıyordu. Röleyi harici beslemeyi denedim o da olmadı. Son olarak ESP üzerindeki 3.3V ile çıkışı ile röleyi besledim bu şekilde çalıştı. Uzun kullanımda bir sorun olurmu bilemedim ancak başka türlü çalışmıyor.Teşekkür ederim.

        • Aynı sorun Bende de oldu esp ile rölenin in bağlantısı arasına uygun değerde Bi direnç koyarak çözüldü sorun

      • Ömer Şahinkaya

        Videodakinden daha kısa data gözüküyor ve röle sürekli açık kalıyor.
        Ne yapabiliriz

  7. Arduino:1.8.8 (Windows 10), Kart:”DOIT ESP32 DEVKIT V1, 80MHz, 115200, None”

    C:\Users\ZÃœMRA Å?EVÄ°K\Desktop\termostat\termostat.ino: In function ‘void resetModule()’:

    termostat:36:22: error: ‘esp_restart_noos’ was not declared in this scope

    exit status 1
    ‘esp_restart_noos’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    Böyle bi hata veriyor program kontrol ettiğimiz de bunun çözümü nedir ?

  8. Aynı sorunu bende yaşadım rölenin in bacağıyla esp arasına uygun değerde Bi direnç koyarak çözdüm sorunu

  9. Üstadım, malzemeler hazır, lakin blynk ile cep telefonundan kontrol edilebilir bir şeyler yapmaya kalktım işin içinden çıkamadım, beyin yandı.. lakin bir iki proje buldum bu konuyla ilgili. gerekli kodlamalar buralardan alınıp belki düzenleme yapılabilir. bize bu konu hakkında yardımcı olabilirsen çok seviniriz… ilgili kodların bulunduğu projelerin linklerini aşığıya ekliyorum;

    https://www.hackster.io/thearduinoguy/esp8266-heating-controller-thermostat-with-blynk-interface-db96b7

    https://community.blynk.cc/t/esp8266-hvac-control/2586

    iyi çalışmalar…

  10. esp.deneme:1:21: error: soc/soc.h: No such file or directory

    compilation terminated.

    exit status 1
    soc/soc.h: No such file or directory

    Böyle bi hata veriyor sorun nedir?

  11. hocam ben kodu komple kopyalayıp attım esp32 içerisine kurulumu yükledim. fakat sizin videoda gösterdiğiniz şekilde com ekranında advertise device, payload, sıcaklık ve nem yazıları çıkmadı. sadece ”Found device count : 1
    Start BLE scan for 15 seconds…” yazıyor. neden acaba

  12. Selamlar oncelikle eline saglik. yapmak istedigim seyi yapmis olman arasstirma yapmadan 1 dakikada cozumu bulmami sagladi. Ancak daha once ESP32 gormemis olmakla birlikte Arduino ve ilgili herseyide video ve anlatimlarindan ogrendim. Anlayacagin olaya cok hakim degilim. Yorumlar ve videodaki tum hassas noktalara dikkat ederek uygulamayi yaptim. Sorun su diger yorumlarda da gordugum uzere role surekli acik konumda kaliyor. Baska bir arkadasin denedigi 3.3V luk pinide denedim cozum olmadi. ESP surum 1.0.0. Serial Monitor’de daha geliyor. Net sekilde cozumleniyor. Ancak relay surekli acik durumda. Konuyla iliskili midir bilmiyorum ama mavi Led’de herhangi indikasyon vermiyor. Herhangi tavsiyen var mi ? Bir arkadasin onerdigi direnc islemini deneyemedim. Cunku acikcasi nasil yapilacagini ve almam gereken komponent’in ne oldugunu bilmiyorum. Bendeki ESP32 nin arkasinda sadece ESP32 DEVKITV1 yaziyor. Herhangi marka ibaresi yok. Ancak pinout semalarinda ayni oldugunu tespit ettigim DOIT’e gore kurulum yaptim. Simdiden tesekkur ederim.

    • Yukarida yazmayi atladigim 2 unsur var. 1.si urun Cinden alindi. 2.si bende Found Dvice 12,13 civarinda cikiyor. (ne olduklarini teyit etmedim ama evde xiaomi’nin bircok sensoru var.) Bunlar etkiler mi ?

    • Aleykümselam,
      Evde veya kapsama alanı içinde çok fazla BLE Advertise yayını olduğu için sistem karışıyor olabilir. Mail adresi verir misiniz, sadece kullanacağınız sensörden veri geldiğinde işlem yapılmasını sağlayacak şekilde düzenlenmiş kodları göndereyim. Elinizdeki cihazın MAC adresini ilgili alana girip kodları yeniden yüklemeniz yeterli olacak.

  13. Arkadasım eline saglık cok guzel olmuş.
    Benim bir sorum olacaktı mumkunse yardımcı olurmusun ?
    Elimde xiaomi gateway baglı ısı olcer ve prizim var odada bellı bır sıcaklıga dustugunde prize elektrik verır belli bır ısıya yukseldıgınde prizi kapar kombiye rolemı baglamalıyım (kombiyi start stop ıcın elektrik akımı ıle nasıl calıstırabılırım)

    • Merhaba Orhan Bey,
      Bu prizi direkt kombinin gücüne bağlarsanız priz gücü kestiğinde kombinin enerjisi de kesileceği için sıcak su ihtiyacı için sorun olacaktır.
      Xiaomi’nin Aqara Wireless Relay ürünü bu iş için uygun.Bunun yanında prizi söküp haricen adaptörle besleyip içindeki röle kontaklarına kombinin termostat tetik uçlarını da bağlayabilirsiniz.

  14. Emin Üçkardeş

    2 tane esp32 aldım ikisinde de hep aynı yanıtı ve pay load ı okuyor

    Advertised Device: Name: MJ_HT_V1, Address: 58:2d:34:33:a6:61, serviceUUID: 0000180f-0000-1000-8000-00805f9b34fb
    Payload:fe95ff03677995bf
    Found device count : 1
    Start BLE scan for 15 seconds…

    sürekli serial portta bu dönüyor. Aygıt yöneticisinden portu com10 yaptım normalde com3 idi. Arduino 1.8.8 esp 1.0.0 yüklü esp lerimin 2 sinin üzerinde ne dev kit ne doit hiç bir şey yazmıyor. Velhasıl durum böyle oldu üstadım.

    • Merhaba,
      Payload verisinin az olması 1.0.0’dan yüksek bir ESP32 kütüphanesi kullandığınızı gösteriyor. Sürümü 1.0.0’a düşürdüğünüzde sorun düzelecektir.

  15. şimdi bugra hocam ben bu projeyi 2 gün önce yapmaya başladım 2 gündür bir problemi çözemedim. problemim şu serial ekranda gelen sinyallerde sıcaklık nem bilgilerini alamıyorum ve payload da gelen veriler sizinkinden kısa serial ekrandaki gelen sinyaller şunlar;
    Advertised Device: Name: MJ_HT_V1, Address: 58:2d:34:36:3b:e6, serviceUUID: 0000180f-0000-1000-8000-00805f9b34fb
    Payload:fe95d7180bec416e
    Found device count : 1
    Start BLE scan for 15 seconds…

    • Merhaba,
      ESP32 çekirdek sürümü 1.0.0’dan yüksek ise bu sorun ortaya çıkıyor. Sürümü 1.0.0’a düşürmeniz gerekiyor.

      • bu söylediğinizi ilk esp32yi kurarken görmeyip en güncel sürümünü yüklemiştim sonradan kaldırıp 1.0.0 sürümünü geri yükledim ama sorun devam ediyor. arduino programını denetim masasından kaldırsam en baştan yüklesem hattan gerekirse pc me format atıp geri yüklesem düzelirmiki demek istediğim ilk güncel sürümü yüklediğim için bazı parça dosyalar kalkmıyor olabilir ?

  16. dursun ali demir

    merhaba bahsetmiş olduğunuz sürünmü indir ama hiç bir şekilde esp32 modulu ile ilgili bir bölüm bulamadım. paylaşmış olduğunuz kodları koptala yapıştır yaptıkan sonra derlediğim zaman bu hatayı veriyor yardımcı olumusunuz ?

    exit status 1
    soc/soc.h: No such file or directory

  17. merhabalar esp 32 çekirdek sürümünü indirmek için öncelikle yapmanız gereken (ilk kurulum yapanlar için)
    Esp32 dosyalarını indirmek için. Araçlar >> Kartlar >> Kart Yöneticisine tıklıyoruz.
    açılan sayfanın alt kısmında ” Ek devre Kartları Yöneticisi URL’leri” diye bir bölüm göreceksiniz boş olan kısma ”https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json” bu kodu yapıştırıyoruz ve tamam deyip çıkıyoruz ardından kart yöneticisinden çekirdek sürümünü 1.0.0 a düşürebilirsiniz. Kolay gelsin.

  18. Selamun aleykum Buğra kardeşim. Esp32 ile xaiomi arasındaki Bluetooth bağlantısında kopma oluyor bunun önüne nasıl geçeriz?

    • Aleykümselam Musa Bey,
      Her ne kadar BLE standardının kapalı alanda 20 metreye kadar iletişim kurabildiği bilinse de; evdeki duvarların kalınlığı, şebeke voltajı dalgalanmaları(ESP32’yi kilitleyebiliyor), evde veya çevrede 2.4Ghz frekansını bastıran/parazit yayan cihazların varlığı, cep telefonu ile Xiaomi’ye bağlanmak iletişimi bozabiliyor. Bu gibi durumlarda Xiaomi ve ESP32’yi yaklaştırmak gerekiyor. Bunun yanında bazı klon ESP32 modüllerin sık sık kilitlendiğini biliyoruz.

      • Ev içerinde sadece Wifi modem var ve kaç ghz ile çalışıyor bilmiyorum. Ayrıca mesafeden dolayı iletişim kopuyor diye düşünüp kablo aracılığıyla daha yakın bir yere getirdim sonuç yine aynı belirli bir zaman sorun yok daha sonrasında iletişim kopuyor tekrar yeniden. Gücü kesip bağlamak gerekiyor ki yeniden İletişim kurulsun

      • Buğra hocam kopma olduğu zaman tekrar bağlantı istegi gönderen bir kod yapısı eklenebilir mi ? Birde kopya esp32 olup olmadığını nasıl anlarız neye göre alim yapmalıyız?

  19. İYİ AKŞAMLAR ÖNERDİĞİNİZ ESP32 STOKLARDA BULUNMUYOR BAŞKA BİR ESP32 ÖNERİNİZ HANGİSİ.aldığım esp32 uyum sağlamadı sanırım öneriniz nedir.aldığım ürün bu https://www.direnc.net/esp32-wroom-32d-wifi-bluetooth-gelistirme-modulu

orhan için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir