WiFi Kullanarak Sobanızı Akıllı Telefonunuzdan Kontrol Etme
Modern dünyada, etrafa bakarsak, elektroniği içeren her şeyin bir dereceye kadar otomatik olduğunu 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çmak veya kapatmak ve yangını oluşturmak için bujiyi ateşlemek için kullanılacaktır.
Cep Telefonunuzdan Gaz Sobası Nasıl Otomatikleştirilir?
Artık projenin özetini bildiğimize göre, ilerleyelim ve çalışmaya başlamak için 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 kalma korkusundan 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.
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, biruygulama 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çmak ve kapatmak için bir düğme kullanılacak ve ikinci düğme, bundan 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.
Yukarıdaki şekilde, Vin pimlerine bağlantı noktası ESP32, Vcc bağlantı noktasını harici 5V beslemeye bağlayın 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 pinine34 ve ikinci transistörün ESP modülünün pin35'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.
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.
- Arduino IDE'nin en son sürümünü Arduino'dan indirin.
- 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 öyle COM14ancak farklı bilgisayarlarda farklıdır.
- 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 ”
- Şimdi, ESP32'yi Arduino IDE ile kullanmak için, ESP32 üzerinde kod yazmamıza ve 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.
- Şimdi git Eskiz> Kitaplığı Dahil Et> Kitaplıkları Yönet.
- 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.
- Şimdi tıklayın Araçlar.Bir açılır menü görünecektir. Panoyu şuna ayarlayın: ESP Dev Modülü.
- Araç menüsünü tekrar tıklayın ve daha önce kontrol panelinde gözlemlediğiniz bağlantı noktasını ayarlayın.
- Ş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.
Yani şimdi kodu yüklediğinizde bir hata meydana gelebilir. Bu, Arduino IDE'nin 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 StaticJsonBufferjsonBuffer; ^ 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) Klasördeki 1.2 sürümünde kitaplık HTTPClient kullanma: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ packages \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ HTTPClient Şu klasörde sürüm 1.0'da WiFiClientSecure kitaplığını kullanma: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ packages \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ WiFiClientSecure 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 çıkmaktadır. 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.AramakBenoit Blanchon tarafından Arduino JSONdaha ö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 derlenecek.
Kodu indirmek için burayı tıklayın.
6. Adım: 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ğrulaması, yerel wifi bağlantınızın adı ve aynı wifi bağlantısının şifresi eklenir. Ayrıca, harici cihazları bağlamak için kullanılacak ESP kartındaki pinleri tanımlayın.
#Dahil etmek// WiFi kullanmak için kitaplığı dahil et #include // Firebase'e bağlanmak için kitaplığı dahil et #define FIREBASE_HOST "xxxxxxxxxx" // xxxxxxxxxx'i firebase ana makinenizle değiştirin #define FIREBASE_AUTH "xxxxxxxxxx" // xxxxxxxxxx'i firebase kimlik doğrulamanızla burada değiştirin #define WIFI_SSID "xxxxxxxxxx" ile değiştirin Wifi bağlantımızın adı #define WIFI_PASSWORD "xxxxxxxxxx" // xxxxxxxxxx'i wifi şifrenizle değiştirin #define valve 34 // gaz valfini bu pime bağlayın #define spark 35 // bu pime bujiyi bağlayı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ı ayarla pinMode (valf, ÇIKIŞ); // 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 (); Seri.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 döngü () {// 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.