Klimanızı Uzaktan Kumanda Yerine Akıllı Telefonunuzla Nasıl Kontrol Edebilirsiniz?

Modern dünyada, etrafımıza bakarsak, elektronik içeren her şeyin bir dereceye kadar otomatikleştirildiğini görebiliriz. En son otomasyon teknikleri, evlerinde birkaç kişi tarafından benimsenmiştir. Bu modern çağda, insanlar hayatlarını kolaylaştırmak için en son otomasyon tekniklerini tercih etmelidir. Normalde evlerimizde dönüyoruz AÇIK , KAPALI ve klimalarımızda sıcaklığı manuel olarak ayarlayın. Günümüzde, röle modülü gibi tek bir bileşen, bir evin çeşitli elektronik parametrelerini kontrol etmek için kullanılabilir; örneğin, ev aletlerinin anahtarlanması, güvenlik alarmlarının izlenmesi, garaj kapısı otomasyonu vb. Bu yazıda, bir Klimanızı uzaktan kumanda yerine mobil uygulama kullanarak kontrol etmenizi sağlayacak sistem. İnsanlar arasında en yaygın olanı bir android mobil olduğundan, klimamızı kontrol etmek için en iyi seçenek bir android uygulamasıdır.



Klima Kontrolü

ESP32 İle Gerekli Tüm Çevre Birimleri Nasıl Kurulur?

Herhangi bir projeyi yapmak için, onu tamamlamak için ihtiyaç duyulacak temel bileşenlerin ne olduğunu bilmek gerekir. Bu nedenle, işe başlamadan önce mükemmel bir yaklaşım, zamandan tasarruf etmek ve projenin ortasında sıkışıp kalma şansını önlemek için tüm bileşenlerin tam bir listesini yapmaktır. Piyasada kolayca bulunabilen tüm bileşenlerin tam listesi aşağıda verilmiştir. Donanım bileşenlerini düzenledikten sonra klimamızı kontrol etmek için kendi android uygulamamızı tasarlayacağız:



Adım 1: Kullanılan Bileşenler (Donanım)

  • ESP32
  • MakerFocus I2C OLED Ekran Modülü
  • Hafif Bağımlı Direnç
  • Basmalı Düğme Anahtarı
  • IR Alıcı
  • 1K Ohm Direnç (x4)
  • BC 338 NPN Transistör
  • Jumper Kabloları
  • TSOP Alıcısı
  • Breadboard
  • Android Şarj Cihazı

Adım 2: Kullanılan Bileşenler (Yazılım)

Biz yapacağımız gibi kablosuz anahtar , onu açıp kapatmak için bir düğmeye ihtiyacımız olacak. Bu düğmeyi çalıştırmak için bir cep telefonu kullanmak istiyoruz, bu yüzden bunun için bir uygulama geliştirmemiz gerekecek. En uygun uygulama bir android uygulamasıdır ve bu uygulamaya bağlanmak için bu iki yazılımı yüklememiz gerekir. Her ikisi de aşağıda listelenmiştir:



  • Android Studio
  • JAVA JDK

3. Adım: Android Studio'yu Kurma

Yüklemeden önce Android Studio , önce JAVA JDK'yi kuracağız. Bunu yüklemek için, exe dosya Yukarıdaki bağlantıdan indirdiğiniz ve başarılı bir şekilde yüklenene kadar ileriye tıklayın. Şimdi, komut isteminizin tanıması için aşağıdaki adımları izleyin. java harici veya dahili bir komut olarak.



  1. Açık Kontrol Paneli ve tıklayın Sistem ve Güvenlik .
  2. Tıklamak Sistem.

    Sistemi

  3. Tıklamak Gelişmiş sistem ayarı ve sonra tıklayın Çevresel değişkenler. Gelişmiş sistem Ayarları

    Gelişmiş sistem Ayarları

  4. Sistem Değişkeni bölümünde, yola tıklayın ve ardından düzenle'ye tıklayın. Yeni Çevresel Değişkeni Düzenle kutusu görünecektir.

    Yolu düzenle



  5. Şimdi gidin C: Program Dosyaları Java PC'nizde. JDK klasörünü açın, bin klasörüne tıklayın ve ardından bu klasörün yolunu kopyalayın.

    Çöp Kutusu Klasörü Yolu

  6. Şimdi Çevresel Değişkeni Düzenle kutusuna gidin ve yeni bir değişken oluşturmak için yeniye tıklayın. Yukarıdaki adımda kopyaladığınız yolu yeni değişkene yapıştırın ve kaydedin.
  7. Şimdi onaylamak için, tamamen yüklenmişse, komut istemini açın ve yazın java –version.

    JAVA versiyonu

Artık bilgisayarınıza Java JDK'yı başarıyla yüklediğiniz için. Şimdi Android Studio'yu bilgisayarınıza kuralım. Bu yazılımı kurmak çok kolaydır. İndirilen dosyayı açmanız ve yazılımınız tam olarak yüklenene kadar ileriye tıklamanız gerekir.

4. Adım: Firebase'e Bağlantı

Şimdi Android Studio'yu kurduğumuz için, onu başlatalım ve firebase'e bağlamak için yeni bir proje yapalım. Bunu yapmak için aşağıdaki adımları izleyin.

  1. Android Studio'yu başlatın ve üzerine tıklayarak yeni bir proje oluşturun. Boş Etkinlik .
  2. Şimdi projenizi şu şekilde adlandırın: computerSwitc, seç Kotlin dil olarak ve cep telefonunuza göre minimum API seviyesini seçin.
  3. Ahududu pi'nin pinlerini kontrol etmek için interneti kullanacağımızdan beri. Uygulamamızda yerel kablosuz ağa erişim izni ayarlayacağız. Bunu yapmak için şuraya gidin: app> bildirimler> AndroidManifest.xml ve aşağıdaki komutu ekleyin.

    İnternet İzni

  4. Şimdi n'ye tıklayın Araçlar. Bir açılır menü görünecek ve Firebase.

    Firebase Bağlantısı

  5. Firebase'in sunduğu hemen hemen her hizmetin menüsünü sağlayacak olan ekranın sağ tarafında büyük bir menü görünecektir. Ama şu anda asıl odak noktamız Gerçek Zamanlı Veritabanı. Bu yüzden Gerçek Zamanlı Veritabanına tıklayın. ' Verileri Kaydet ve Al ' görünecek. Bu bağlantıya tıklayın.

    Firebase Assistant

  6. Bağlan Firebase'e Bağlanın buton. Sizi varsayılan web tarayıcısına götürecektir. İlk olarak, sizden Gmail hesabınıza giriş yapmanızı isteyecektir. Sonra tıklayın Gerçek Zamanlı Veritabanını uygulamanıza ekleyin ve değişiklikleri kabul edin.
  7. Şimdi gidin Firebase Konsolu . Orada zaten yapılmış bir proje göreceksiniz. Söz konusu projektörün simgesindeki android logosu, onun zaten bir android uygulamasına ait olduğu anlamına gelir.
  8. İtibaren Geliştirmek ekranın sol tarafında görünen menüyü seçin Veri tabanı. Bir düğme Veritabanı yarat sağda görünecek. O düğmeye tıklayın.
  9. Veritabanınızın modunu ayarlamanızı isteyen bir menü görünecektir. Tıklamak Test modu ve sonra tıklayın etkinleştirme .

    Test modu

  10. Şimdi hatırlanması gereken gerçekten önemli bir adım, Cloud Firestore -e Gerçek Zamanlı Veritabanı. Bunu yapmak için aşağıdaki resimde gösterilen butona tıklayın ve istediğiniz seçeneği değiştirin.

    Gerçek Zamanlı Firebase

  11. Şimdi tıklayın Kurallar sekmesine gidin ve konfigürasyonları değiştirin Doğru . Her şey bittiğinde, tıklayın Yayınla .

    Konfigürasyonları Değiştirme

  12. Firebase'e bağlanmaktan başka yapmanız gereken şey, veritabanı sürümünü güncellemektir. Bunun için tıklayın belgelere git . Şimdi tıklayın rehberler ve seçin Android Kılavuzları ekranda görünen listeden. Bir tablo görünene kadar aşağı kaydırın. Bu tabloda Gerçek Zamanlı Veritabanını arayın ve sürümünü bulun. benim durumumda 19.1.0.

    Sürüm

  13. . Tıklamak Gradle Scriptleri, ekranın sol tarafındaki bir menü. Sonra seçin inşa edilmiş. gradle (Modül: uygulama). Şimdi kodda, Gerçek Zamanlı veritabanının sürümünü arayın ve yenisiyle değiştirin.

    Firebase Sürümü

  14. Şimdi ekranın üst kısmında görünen senkronizasyon düğmesine tıklayarak projeyi senkronize edin.

Adım 5: Yerleşim Yapma

Şimdi, android uygulamamız firebase'e bağlı olduğundan, kullanıcı tarafından bilgisayarı açıp kapatmak için kullanacağımız uygulamamızın bir düzenini yapalım. Bir düzen oluşturmak için şuraya gidin: app> res> layout> activity_main.xml. bir düzen tasarlayacağımız yer. Metin görünümü oluşturmak için aşağıda verilen kodu kopyalayın.

 

Uygulamamızın düzeni şöyle görünecektir:

Uygulama Düzeni

6. Adım: ESP32 ile 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ık dahil

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

    Kitaplıkları Yönetin

  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ü.

    Kurulu Ayarlama

  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  airconditioner  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  airconditioner  code  code.ino: 2'den alınan dosyada: 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 aslında 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.

7. Adım: Kodu Anlama

Bu projenin kodu çok basittir ve aşağıda kısaca açıklanmıştır. Ayrıca, gerekli kitaplıklara sahip kod da şuradan indirilebilir: Buraya.

1. Başlangıçta, kodumuzu Firebase veritabanına bağlamak için kullanılacak iki kitaplık eklememiz gerekir ve ikincisi, mikro denetleyicimizle IR sensörünü kullanmak için kullanılır. Ardından, firebase'imizin ana bilgisayarını ve kimlik doğrulamasını ekleyeceğiz çünkü bundan sonra bizim ESP32 bulabilir miyiz veri tabanı . Daha sonra yerel internet bağlantımızın SSID ve şifresini sağlayacağız. Ardından, bulutumuzdan veri aktarabilmemiz için bir nesne yapmalıyız. Ardından sensörümüzün bağlanacağı pimi tanımlayacağız ve ayrıca IR sensöründen gelen verileri işlemek için bir nesne yapacağız.

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define 'WIFI_SSID' PRO '; int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); decode_results sonuçları;

2. geçersiz kurulum () , etkinleştir düğmesine basıldığında veya mikrodenetleyici açıldığında çalışan döngüdür. Burada IR sensörümüzün alıcısını başlatacağız ve mikro denetleyicimizi yerel internet bağlantısına bağlamaya başlamak için kodu yazacağız.

geçersiz kurulum () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Alıcıyı başlatı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); Firebase.enableClassicRequest (firebaseData, true); }

3. geçersiz döngü () bir döngüde tekrar tekrar çalışan bir işlevdir. Burada bu kod, değerlerin sensörden gelip gelmediğini kontrol ediyor.

void döngü () {if (irrecv.decode (& sonuçlar)) {Serial.println (results.value, HEX); dökümü (ve sonuçlar); irrecv.resume (); // Sonraki değeri al} delay (500); }

Dört. geçersiz dökümü () sensöre sinyal gönderen uzaktan kumandanın modelini ilk olarak tanımlamak için kullanılan bir işlevdir. aynı zamanda decode_results yapısını da dışarı atar.

void dökümü (decode_results * sonuçlar) {int count = results-> rawlen; if (sonuçlar-> decode_type == BİLİNMİYOR) {Serial.print ('Bilinmeyen kodlama:'); } else if (sonuçlar-> decode_type == NEC) {Serial.print ('Çözülmüş NEC:'); } else if (sonuçlar-> decode_type == SONY) {Serial.print ('Kodu Çözülmüş SONY:'); } else if (sonuçlar-> decode_type == RC5) {Serial.print ('Kodu Çözülmüş RC5:'); } else if (sonuçlar-> decode_type == RC6) {Serial.print ('Kod Çözülmüş RC6:'); } başka if (sonuçlar-> decode_type == PANASONIC) {Serial.print ('Kodu Çözülmüş PANASONIC - Adres:'); Serial.print (sonuçlar-> panasonicAddress, HEX); Serial.print ('Değer:'); } else if (sonuçlar-> decode_type == JVC) {Serial.print ('Çözülmüş JVC:'); } Seri.print (sonuçlar-> değer, HEX); Serial.print ('('); Serial.print (sonuçlar-> bit, DEC); Serial.println ('bit)'); Serial.print ('Raw ('); Serial.print (count, DEC); Serial.print ('):'); for (int i = 0; i rawbuf [i] * USECPERTICK, DEC); } else {Serial.print (- (int) sonuçları-> rawbuf [i] * USECPERTICK, DEC); } Seri.baskı (''); } Serial.println (''); }

8. Adım: Donanımı Hazırlama

Kodu ESP32'ye yazdıktan sonra, donanımı hazırlamamız ve onu duvara veya klimanın yakınında uygun başka bir yere takmamız gerekiyor. Üstte sunulan şemayı izleyerek bileşenleri devre tahtasına takın. Devreyi monte ettikten sonra, Android Şarj Cihazını kullanarak ESP modülüne güç verin. Donanımın kasasını evde tasarlamak veya donanımı Raspberry Pi kasasının içine koymak daha iyidir.

9. Adım: G Son Dokunuşlar

Donanımı monte ettikten sonra test edeceğiz. Android şarj cihazını ESP32'ye bağlayın ve açın ve telefonunuzun yerel sinyal gücünün iyi olduğundan emin olun. internet bağlantısı . Uygulamanızı açın ve düğmesine basın, artık AC'nizi mobil uygulamanızla kontrol edebileceğinizi göreceksiniz.

Bugün için hepsi bu kadardı, umarım bu makaleyi okumaktan zevk alırsınız ve klimanızı evde kontrol etmek için kendi prototipinizi yaptıktan sonra deneyimlerinizi paylaşmayı unutmayın!