WiFi Kullanarak Sobanızı Akıllı Telefonunuzdan Kontrol Etme

Modern dünyada, etrafımıza bakarsak, elektronik içeren her şeyin bir dereceye kadar otomatikleştirildiğini görebiliriz. Ev otomasyon sistemleri veya akıllı evler günümüzde çok yaygındır. Bu sistemleri kullanarak farklı ev aletleri bir mobil uygulama kullanılarak otomatik hale getirilebilir. Ancak bu sistemlerin çoğu gaz ocağınızı otomatikleştiren hiçbir şey içermez. Bu yazımızda gaz sobanızı mobil bir uygulama kullanarak kontrol etmenizi sağlayacak bir sistem geliştireceğiz. Bu uygulama, ana vanadan gaz vanasını açıp kapatmak ve yangını oluşturmak için bujiyi ateşlemek için kullanılacaktır.

Akıllı Soba

Cep Telefonunuzdan Gaz Sobası Nasıl Otomatikleştirilir?

Artık projenin özetini bildiğimize göre, çalışmaya başlamak için ilerleyelim ve farklı bilgiler toplayalım. Önce bileşenlerin bir listesini çıkaracağız ve ardından tüm bileşenleri bir araya getirerek çalışan bir sistem oluşturacağız.



Adım 1: Bileşenleri Toplama

Herhangi bir projeye başlamadan önce, projenin ortasında sıkışıp kalmaktan kaçınmak istiyorsak, proje üzerinde çalışırken ihtiyaç duyacağımız tüm bileşenlerin tam bir listesine sahip olmalıyız. Bu, çok fazla zaman ve emek tasarrufu sağlayan mükemmel bir yaklaşımdır. Bu projede kullanılan tüm bileşenlerin tam listesi aşağıda verilmiştir. Tüm bu bileşenler piyasada kolaylıkla bulunabilir.



  • ESP32
  • Arduino için Gaz Vanası
  • Atlama Telleri
  • 5V Röle Modülü
  • 2N2222 NPN Transistör
  • 1k-ohm Direnç
  • 10k-ohm Direnç
  • 5V Buji

2. Adım: Bir Android Uygulaması Geliştirme

Bu sobayı android bir uygulama ile kontrol edeceğimiz için önce onu geliştirmemiz gerekiyor. Önceden, birkaç tane geliştirdik android uygulamaları. Daha önce, bir uygulama sadece bir düğmeden oluşur. Bu düğme veri tabanına veri göndermek için kullanılır. Eğer '1' veritabanına eklenirse, röle açılacaktır ve eğer '0' veri tabanına eklenirse, röle kapatılacaktır.



Bu uygulamada küçük bir değişiklik yapacağız. İlk düğmeyi yapmak ve onu ateş üssüne bağlamak için izlenen prosedürün aynısını izleyerek, ateş üssüne bağlanacak başka bir düğme yapacağız.

Gaz vanasını açıp kapatmak için bir düğme kullanılacak ve ikinci düğme, gaz vanasından sorumlu olacak bir kıvılcım oluşturmak için kullanılacaktır. ateşleme .

Adım 3: Devreyi Yapmak

Artık bu projenin temel özünü bildiğimiz gibi, son bir devre yapmak için tüm bileşenleri bir araya getirelim.



Bir breadboard alın ve ESP32 kurulu içinde. Hem transistörleri hem de dirençleri alın ve bunları, transistörün anahtarlı olarak kullanılabileceği şekilde devre tahtasına yerleştirin. Geçiş yaparken herhangi bir hata yapmamak için aşağıdaki yapılandırmayı izleyin.

Anahtar olarak transistör

Yukarıdaki şekilde, Şarap bağlantı noktası pimlerine ESP32 , Vcc portunu harici 5V beslemesine ve Vo'yu röle modülüne bağlayın. Transistörü anahtar olarak kullanmamızın ana nedeni, bir rölenin çalışması için 5V'a ihtiyaç duyması, ancak ESP32'nin yalnızca 3,3V sağlayabilmesidir. Bu yüzden röleye harici 5V sağlamamız gerekiyor.

Şimdi röle modülünü transistörlere bağlayacağız. İlk transistörün ESP modülünün pimine34 ve ikinci transistörün ESP modülünün pim35'ine bağlandığından emin olun. Her iki röle modülünü de normalde açık modda kullanacağız. Gaz valfini ve bujiyi sırasıyla birinci ve ikinci röle modülünün çıkış terminaline bağlayın. Aşağıdaki resimde gösterilen röle modülünü bağladığınızdan emin olun.

Röle Modülü

Adım 4: Çalışmak

Bu projenin kalbi, mikro denetleyici kartı olan ESP32'dir. ESP'ye röle modülleri aracılığıyla bir gaz valfi ve bir buji bağlanır. Gaz vanası başlangıçta kapalıdır. Mobil uygulamadan açıldığında gaz vanası açılır. Buji için de aynı. Mobil uygulama üzerinden kapatılabilir veya kapatılabilir. Bu buji, gazın çıktığı sobaya bağlanacaktır. Bu buji yangını yakacaktır.

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: Kod

Ekteki kod oldukça iyi yorumlanmış ancak yine de bazı bölümleri aşağıda açıklanmıştır.

1. Başlangıçta, WiFi'nin etkinleştirilmesi ve ESP kartının firebase veritabanına bağlanabilmesi için iki kitaplık dahil edilmiştir. Ardından firebase ana bilgisayarı, kimlik doğrulama, yerel wifi bağlantınızın adı ve aynı wifi bağlantısının şifresi eklenir. Ayrıca, harici aygıtları bağlamak için kullanılacak ESP kartındaki pinleri tanımlayın.

* WIFI_SSID 'xxxxxxxxxx' tanımlayın // xxxxxxxxxx'i Wifi bağlantımızın adıyla değiştirin #define WIFI_PASSWORD 'xxxxxxxxxx' // xxxxxxxxxx'i wifi şifrenizle değiştirin #define valve 34 // gaz vanasını bu pime bağlayın #define spark 35 // spark spark bu pime takın

2. geçersiz kurulum () mikro denetleyici açıldığında veya etkinleştirme düğmesine basıldığında yalnızca bir kez çalışan bir işlevdir. Bu işlevde, temelde saniyede bit cinsinden iletişim hızı olan baud hızı ayarlanır. Bundan sonra ESP kartı Wifi'ye bağlanır.

geçersiz kurulum () {Serial.begin (115200); // baud hızını ayarlayın pinMode (valf, OUTPUT); // pin 34'ü OUTPUT pinMode (spark, OUTPUT) olarak kullanılacak şekilde ayarlayın; // pin 35'i OUTPUT olarak kullanılacak şekilde ayarlayın // wifi'ye bağlanın. 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. Boş döngü () bir döngüde tekrar tekrar çalışan işlevdir. Bu döngüde değerler firebase'den okunur ve sıfır mı yoksa bir mi olduğu incelenir. Değerler bir ise, pime röle modülünün açılmasına neden olacak YÜKSEK bir sinyal gönderilir. Değer sıfır ise, ESP'nin pinine bir LOw sinyali gönderilecek ve bu da rölenin kapanmasına neden olacaktır.

void loop () {// temp1 değerini al = Serial.println (Firebase.getFloat ('light')); // gaz vanasının değiştirilmesi için değeri al temp2 = Serial.println (Firebase.getFloat ('AC')); // eğer (temp1 == 1) {digitalWrite (valf, HIGH) // röleyi aç} else if (temp1 == 0) {digitalWrite (valf, LOW) // döndüyse bujinin anahtarlanması için değeri alın birinci röle} else if (temp2 == 1) {digitalWrite (spark, HIGH) // ikinci röleyi aç} else if (temp2 == 0) {digitalWrite (spark, LOW) // ikinci röleyi kapat} // if (Firebase.failed ()) {Serial.print ('ayar / numara başarısız oldu:'); Serial.println (Firebase.error ()); dönüş; } gecikme (1000); }

Hepsi bugün için. Artık evde kendi akıllı ocağımızı yapabilirsiniz. İleride bunun gibi daha ilginç makaleler için sitemizi kontrol etmeye devam edin.