ESP32 Modülünden Akıllı Ev Otomasyon Sistemi Nasıl Yapılır?

Bu modern çağda, ev otomasyonu kavramı büyük bir hızla büyüyor. Akıllı sistemler hemen hemen her yere kuruluyor. Akıllı Ev Sistemleri, tüm elektrikli cihazların veya cihazların tek bir uzaktan kumanda ile kontrol edildiği bir konsepttir. Bu sistemlerde uzaktan kumanda çoğu zaman mobil bir uygulamadır. Bir android cep telefonu insanlar arasında en yaygın olanı olduğundan, bir android uygulaması tüm bu cihazları kontrol etmek için en iyi seçenektir.



Ev otomasyonu

Dolayısıyla bu projede, evdeki elektrikli cihazlardan bazılarını Röle modülüne bağlayacağız ve ESP32 Mikroişlemci aracılığıyla kontrol edeceğiz. Bir firebase gerçek zamanlı veritabanı oluşturup bunu android uygulamasından bağlayacağız. Bu android uygulaması verileri buluta gönderecek ve ardından elektrikli cihazı açıp kapatmak için mikrodenetleyiciye gönderilecektir. En iyi yanı, cihazlarınızın değiştirilmesi üzerinde dünyanın her yerinden tam kontrole sahip olabilmenizdir. Android uygulamasını çalıştırmak için sadece bir internet bağlantısına ihtiyacınız var.



Ev Aletleri WiFi ile Nasıl Kontrol Edilir?

Halihazırda piyasada bulunan Ev Otomasyon sistemleri oldukça maliyetlidir. Farklı ev aletlerini bağlamak ve bunları bir Android Uygulaması kullanarak kontrol etmek için bir ESP32 kartı kullanabiliriz. Bu çok düşük maliyetli ve evi otomatikleştirmenin verimli bir yolu olacaktır. Şimdi bir adım öne geçelim ve projeyi başlatmak için bilgi toplamaya başlayalım.



Adım 1: Bileşenleri Toplama

Herhangi bir projeye başlamak için en iyi yaklaşım, bileşenlerin bir listesini yapmak ve bu bileşenlerin kısa bir incelemesini yapmaktır çünkü kimse eksik bir bileşen yüzünden bir projenin ortasında kalmak istemeyecektir. Bu projede kullanacağımız bileşenlerin bir listesi aşağıda verilmiştir:



  • ESP32
  • Breadboard
  • Kabloların Bağlanması

Adım 2: Bileşenleri İncelemek

Şimdi bu projenin özetini bildiğimiz gibi, bir adım öne geçelim ve kullanacağımız ana bileşenlerin çalışmasıyla ilgili kısa bir çalışmadan geçelim.

ESP32 dahili WiFi ve çift modlu Bluetooth modülüne sahip düşük güçlü ve düşük maliyetli bir mikro denetleyici kartıdır. Bu Mikrodenetleyici panosu tarafından oluşturulmuş ve geliştirilmiştir. Espressif Sistemleri . Bu kart yerleşik güç amplifikatörlerine, düşük hoş alıcı amplifikatörlere, filtrelere ve anten anahtarlarına sahiptir. Bir android veri kablosuyla güçlendirilmiştir ve çıkışta 3,3V'a kadar sağlayabilir. ESP32, TCP / IP, tam 802.11 b / g / n / e / I WLAN MAC kuralı ve Wi-Fi Direct özelini yürütür. Bu, ESP 32'nin istasyon (istemci) modunda kullanıldığında orada WiFi Yönlendiricilerin büyük bir bölümünü adresleyebileceği anlamına gelir. Aynı şekilde tam 802.11 b / g / n / e / I ile bir Erişim noktası oluşturabilir. ESP32, en yeni BLE Bluetooth 4.2'yi desteklemekle kalmaz, aynı zamanda mükemmel Bluetooth'u destekler. Temelde eski ve yeni Bluetooth telefonlara / masalara hitap edebileceğini ima eder. ESP32 modülünüz yoksa, ESP8266 veya Node MCU da kullanabilirsiniz. Bu kartlar, WiFi'ye bağlılarsa aynı görevi gerçekleştirmek için kullanılabilir.

ESP32



Bir röle modülü, bir anahtarlama cihazıdır. İki modda çalışır, Normalde Açık (NO) ve Normalde Kapalı (NC) . NO modunda, Arduino üzerinden röleye YÜKSEK sinyal göndermediğiniz sürece devre her zaman kesilir. NC modu tam tersi şekilde kötüleşir, röle modülünü açmadığınız sürece devre her zaman tamamlanır. Elektrikli Cihazınızın pozitif kablosunu aşağıda gösterilen şekilde röle modülüne bağladığınızdan emin olun.

Röle Modülü Devresinin Montajı

Adım 3: Blok Şeması

Blok Şeması

Yukarıdaki blok şemada, bu projenin akışı gösterilmektedir. Röleler, evin elektrikli cihazlarına veya cihazlarına bağlanır. Bir mobil uygulama bir Açık veya KAPALI veritabanına komut. Bu bulut, ESP32 mikro denetleyici kartına WiFi aracılığıyla bağlanır. Elektronik cihazı açmak için veri tabanına bir '1' göndereceğiz ve kapatmak için veri tabanına bir '0' göndereceğiz. Bu komut daha sonra mikrodenetleyici tarafından alınacaktır çünkü aynı zamanda veritabanına da bağlıdır. Bu 0 veya 1'e göre, mikro denetleyici röle modülünü açacak veya kapatacak ve bu da sonuçta elektrikli cihazların anahtarlanmasına neden olacaktır.

Bu yüzden burada, bu makalede, size tüm prosedürü göstermek için iki röle modülü kullanacağım. Ancak, daha fazla sayıda elektrikli ev aletini kontrol etmek istiyorsanız, röle sayısını artırabilir ve programınıza aynı kod parçasını ekleyebilirsiniz.

Adım 4: Bileşenleri Birleştirme

Şimdi bu projede ne yapmak istediğimize dair net bir vizyonumuz olduğu için, daha fazla zaman kaybetmeyelim ve bileşenleri birleştirmeye başlayalım.

  1. Bir devre tahtası alın ve içindeki ESP32 mikro denetleyicisini sabitleyin. Şimdi iki röle modülünü alın ve modüllerin Vcc ve topraklamasını Vin ve ESP32 mikrodenetleyici kartının topraklamasına paralel olarak bağlayın. Bağlan sabitlenmiş röle modüllerinin ESP32 kartının pin34 ve pin35'ine. Artık rölelerin açık olduğunu göreceksiniz.
  2. Ev aletlerini röle modülüne bağlayın. Bağlantılarınızın 2. Adımda gösterilen bağlantılarla eşleştiğinden emin olun.

Şimdi sistemimizin donanım kısmını bağlarken. Firebase veritabanına bağlanacak bir android uygulaması geliştireceğiz. Veritabanını ve android uygulamasını bu makalenin 2. Bölümünde yapacağız.

Adım 5: ESP32'ye Başlarken

Daha önce Arduino IDE üzerinde çalışmadıysanız endişelenmeyin çünkü Arduino IDE'yi kurmak için adım adım adımlar aşağıda gösterilmiştir.

  1. Arduino IDE'nin en son sürümünü şuradan indirin: Arduino.
  2. Arduino kartınızı PC'ye bağlayın ve Kontrol Panelini açın. Tıklamak Donanım ve ses. Şimdi aç Cihazlar ve Yazıcı ve kartınızın bağlı olduğu bağlantı noktasını bulun. Benim durumumda COM14 ancak farklı bilgisayarlarda farklıdır.

    Bağlantı Noktası Bulma

  3. Dosya'ya ve ardından Tercihler'e tıklayın. Aşağıdaki bağlantıyı kopyalayın Ek Kurul Yöneticisinin URL'si. ' https://dl.espressif.com/dl/package_esp32_index.json '

    Tercihler

  4. Şimdi, ESP32'yi Arduino IDE ile kullanmak için, ESP32'ye kod yazmamıza ve onu kullanmamıza izin verecek özel kütüphaneleri içe aktarmamız gerekiyor. bu iki kitaplık aşağıda verilen bağlantıya eklenmiştir. Kitaplığı dahil etmek için gidin Eskiz> Kitaplığı Dahil Et> ZIP Kitaplığı Ekle . Bir kutu görünecektir. Bilgisayarınızda ZIP klasörünü bulun ve klasörleri dahil etmek için Tamam'ı tıklayın.

    Kitaplığı Dahil Et

  5. Şimdi git Eskiz> Kitaplığı Dahil Et> Kitaplıkları Yönet.

    Kitaplıkları Yönet

  6. Bir Menü açılacaktır. Arama çubuğuna yazın Arduino JSON. Bir liste görünecektir. Yüklemek Benoit Blanchon tarafından Arduino JSON.

    Arduino JSON

  7. Şimdi tıklayın Araçlar. Bir açılır menü görünecektir. Panoyu şuna ayarlayın: ESP Dev Modülü.

    Ayar Panosu

  8. Araç menüsünü tekrar tıklayın ve daha önce kontrol panelinde gözlemlediğiniz bağlantı noktasını ayarlayın.

    Bağlantı Noktası Ayarlama

  9. Şimdi aşağıdaki bağlantıya ekli olan kodu yükleyin ve kodu ESP32 mikro denetleyicisine yazmak için yükle düğmesine tıklayın.

    Yükle

Yani şimdi kodu yüklediğinizde bir hata meydana gelebilir. Bu, Arduino IDE ve Arduino JSON'un yeni bir sürümünü kullanıyorsanız ortaya çıkabilecek en yaygın hatadır. Ekranda görebileceğiniz hatalar aşağıdadır.

C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C'den alınan dosyada :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer, ArduinoJson'dan bir sınıftır 5. Programınızı ArduinoJson'a nasıl yükselteceğinizi öğrenmek için lütfen arduinojson.org/upgrade adresine bakın sürüm 6 StaticJsonBuffer jsonBuffer; ^ C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer, ArduinoJson'dan bir sınıftır 5. Programınızı nasıl yükselteceğinizi öğrenmek için lütfen arduinojson.org/upgrade adresine bakın. ArduinoJson sürüm 6, StaticJsonBuffer () döndürür. ParseObject (_data); ^ 'WiFi.h' için birden fazla kitaplık bulundu Kullanılan: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Kullanılmıyor: C:  Program Files ( x86)  Arduino  libraries  WiFi Klasördeki 1.0 sürümünde kütüphane WiFi kullanarak: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi IOXhop_FirebaseESP32-master kütüphanesini kullanma klasörde: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (eski) Kitaplık HTTPClient'i klasörde 1.2 sürümünde kullanma: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Klasördeki 1.0 sürümünde WiFiClientSecure kitaplığını kullanma: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure ArduinoJson kütüphanesini kullanma sürüm 6.12.0 klasöründe: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson çıkış durumu 1 Kart ESP32 Dev Module için derleme hatası.

Endişelenecek bir şey yok çünkü bazı basit adımları izleyerek bu hataları ortadan kaldırabiliriz. Bu hatalar, Arduino JSON'un yeni sürümünün yerine başka bir sınıfa sahip olduğu için ortaya çıkıyor. StaticJsonBuffer. Bu JSON 5'in sınıfıdır. Dolayısıyla, Arduino IDE'mizin Arduino JSON sürümünü düşürerek bu hatayı ortadan kaldırabiliriz. Basitçe gidin Eskiz> Kitaplığı Dahil Et> Kitaplıkları Yönet. Aramak Benoit Blanchon tarafından Arduino JSON daha önce kurduğunuz. Önce onu kaldırın ve ardından sürümünü şu şekilde ayarlayın: 5.13.5. Şimdi Arduino JSON'un eski bir sürümünü ayarladığımız için, tekrar kurun ve kodu yeniden derleyin. Bu sefer kodunuz başarıyla derlenecektir.

Kodu indirmek için, Tıklayın buraya.

Adım 6: Kodu Anlama

Bu projenin kodu çok basit ve iyi yorumlanmış. Ancak yine de kod aşağıda kısaca açıklanmıştır.

1. Başlangıçta, ESP32 kartının evdeki veya ofisteki yerel WiFi bağlantısına bağlanabilmesi için kitaplıklar dahil edilmiştir. Bundan sonra, firebase projenize bir bağlantı ve firebase projenizin kimlik doğrulaması tanımlanır. Daha sonra ESP32'nin Wifi'ye bağlanabilmesi için yerel wifi bağlantınızın adı ve şifresi tanımlanır. ESP32'nin bazı pinleri röle modüllerine bağlanacak şekilde tanımlanmıştır. ve sonunda firebase bulutundan gelecek bazı geçici verileri depolayacak bir değişken bildirildi.

#include // yerel Wifi bağlantısına bağlanmak için kitaplığı dahil edin #include // Firebase veritabanına bağlanmak için kitaplığı dahil edin #define FIREBASE_HOST 'coma-patient.firebaseio.com' // firebase projenizin bağlantısını ekleyin #define FIREBASE_AUTH 'UrzlDZXMBNRW10Kuw8i73 '// Firebase projenizin kimlik doğrulamasını ekleyin #define WIFI_SSID' abcd '// evinizin veya ofisinizin WiFi bağlantısının adı #define WIFI_PASSWORD' abcd '// evinizin veya ofisinizin WiFi bağlantısının şifresi int r1 = 34; // 1. röleyi bağlamak için pin int r2 = 35; // Röle 2 int temp bağlamak için pin; // veri taşımak için değişken

2. geçersiz kurulum () INPUT veya OUTPUT pinlerini başlattığımız bir fonksiyondur. Bu işlev ayrıca baud hızını ayarlar. Serial.begin () komut. Baud Hızı, mikro denetleyicinin iletişim hızıdır. ESP32'yi yerel wifi bağlantısına bağlamak için buraya bazı kod satırları eklenir. Pano, yerel kablosuz bağlantıya bağlanmaya çalışacak ve 'bağlantı' yazacaktır. seri monitörde. Bağlantı kurulduğunda 'Bağlandı' yazacaktır. Bu nedenle, bunu izlemek için, seri monitörü açıp orada durumunu kontrol etmek daha iyidir.

geçersiz kurulum () {Serial.begin (115200); // baud hızını ayarlamak // wifi'ye bağlanmak. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('bağlanıyor'); while (WiFi.status ()! = WL_CONNECTED) {Seri.print ('.'); gecikme (500); } Serial.println (); Serial.print ('bağlı:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. geçersiz döngü () bir döngüde tekrar tekrar çalışan bir işlevdir. Bu döngüde, mikrodenetleyici panosuna hangi görevleri ve nasıl yapacağını söyleyen bir kod yazıyoruz. Verileri karşı getirdik ışık ve AC veritabanından alınır ve iki geçici değişkende saklanır. Ardından, iki cihazı veri tabanından getirilen 0 veya 1'e göre değiştirmek için dört koşul uygulanır.

void loop () {// temp1 değerini al = Serial.println (Firebase.getFloat ('light')); // hafif geçişin değerini al temp2 = Serial.println (Firebase.getFloat ('AC')); // Fan gecikmesinin (1000) değiştirilmesi için değeri al; if (temp1 == 1 && temp2 == 1) {// Işığı ve fan'ı açmak için digitalWrite (r1, HIGH); digitalWrite (r2, YÜKSEK); } if (temp1 == 0 && temp2 == 1) {// Fanı açmak ve ışığı kapatmak için digitalWrite (r1, LOW); digitalWrite (r2, YÜKSEK); } if (temp1 == 1 && temp2 == 0) {// Fanı kapatmak ve hafif digitalWrite'ı açmak için (r1, HIGH); digitalWrite (r2, DÜŞÜK); } if (temp1 == 0 && temp2 == 0) {// Fanı ve ışığı kapatmak için digitalWrite (r1, LOW); digitalWrite (r2, DÜŞÜK); }}

Bu, 'ESP32 Kullanarak Akıllı Ev Sistemi Nasıl Yapılır?'. Daha fazla ev aletini kontrol etmek istiyorsanız daha fazla röle modülü ekleyebilirsiniz, yapmanız gereken tek şey firebase'den veri okumak ve anahtarlama için daha fazla koşul eklemektir. Bir sonraki yazımda android uygulaması ve Firebase veritabanı nasıl geliştirileceğini anlatacağım. Android uygulamasını firebase'e bağlamak ve ona veri göndermek için prosedürü adım adım açıklayacağım.

Sonraki eğiticiye gitmek için Buraya Tıkla