Kendin Yap: Eviniz İçin Yalnızca Akıllı Telefonunuzla Açılan Bir SmartLock Oluşturma

Günümüzde, piyasada açmak için bir çeşit şifre gerektiren çok sayıda kilit var. Bu kilitler çok verimlidir ancak çok maliyetlidir. Küçük çaplı bir amaç için otomatikleştirilmiş ve herhangi bir şifre olmadan ancak bir akıllı telefon ile kilidi açılan veya kilitlenen bir kilit yapmamız gerekiyorsa, bunu piyasada kolayca bulunabilen bazı bileşenleri kullanarak yapabiliriz.

Bu kilidin maliyeti çok düşük olacak ve küçük ölçekte mükemmel şekilde çalışacaktır. bir Android uygulama bu kilidi çalıştırmak için gerekli olacaktır. Şimdi ESP32'yi kurmaya, üzerine gerekli paketleri kurmaya ve bazı donanım değişikliklerini yapmaya geçelim!

Hiç vakit kaybetmeden önemli kavramları incelemeye ve bu proje üzerinde çalışmaya başlayalım.

Android İşletimli SmartLock Nasıl Yapılır?

Adım 1: Bileşenleri Toplama

Herhangi bir projeye başlamadan önce, projenin ortasında kalacağınız ve zaman kaybedeceğiniz korkusu varsa, bundan kaçınmak için mükemmel bir yaklaşım var. Projede ihtiyaç duyacağınız tüm bileşenlerin tam bir listesini yapın ve ilk etapta satın alın. Bu projede kullanacağımız tüm bileşenlerin tam listesi aşağıdadır. Tüm bu bileşenler piyasada kolayca bulunabilir.

Adım 2: Uygulamayı Hazırlama

Cep telefonu ile çalıştırılacak bir akıllı kilit yapacağımız için buton içeren bir android uygulaması geliştirmemiz gerekiyor. Bu düğmeye basarak akıllı kilidi açıp kapatabileceğiz. Daha önce, birkaç tane geliştirdik android uygulamaları. Zaten içinde sadece bir düğmeden oluşan bir uygulama geliştirdik. Veritabanına veri göndermek için bu buton kullanılır. firebase veritabanına '1' basıldığında, anahtar kilidi açılacak ve bu veritabanına '0' basıldığında kilit kapatılacaktır.

başlıklı makalemize bakınız. PC'niz İçin Kablosuz Açma/Kapama Anahtarı Oluşturma Akıllı kilidi çalıştırmak için kullanılacak kendi android uygulamanızı geliştirmek için yardım almak için.

Adım 3: Bileşenleri Birleştirme

Bu projeyi tamamlamak için ihtiyacımız olan tüm bileşenlerin tam bir listesine sahip olduğumuza göre, bir adım öne geçelim ve tüm bileşenleri bir araya getirelim.

Servo motoru alın ve Vcc'sini ve toprağını sırasıyla ESP kartının Vcc'sine ve toprağına bağlayın. Servo motorunuzun PWM pinini, servo motorunuzun 34 pinine bağlayın. ESP32 kurulu. Şimdi bir servo motor üzerinde dişli tipi bir düğme olduğunu görün. Kilidin tutamağını çevirerek çıkarın ve dişli motorunun topuzunu bir miktar yapıştırıcı yardımıyla kilide sabitleyin.

Şimdi matkap makinesi yardımıyla bu akıllı kilidi yerleştirmek istediğiniz kapıya birkaç delik açın. Delikleri, kilidin delikleri kapıdaki deliklerle örtüşecek ve vidanın yerine oturmasını sağlayacak şekilde açtığınızdan emin olun.

4. Adım: Çalışma

Artık bu projenin arkasındaki ana fikri bildiğimize göre, bu projenin nasıl işleyeceğini anlayalım.

ESP32 bu projenin kalbidir. Bu karta bir servo motor bağlanmıştır ve bu mikrodenetleyicinin firebase veri tabanına bağlantısı vardır. Kilidi açmak için uygulamadaki butona basıldığında, firebase veritabanına '1', kilidi kapatmak için butona basıldığında ise firebase veritabanına '0' itilir. ESP kartı sürekli olarak firebase veritabanında bu değeri okuyor. 0 olduğu sürece, ESP32 servo motoru başlangıç ​​konumunda kalması için yönlendirecektir. Ateş tabanına 1 girer girmez ESP kartı bunu okuyacak ve servo motora kilidi açacak bir dönüş yapmasını söyleyecektir.

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 bir adım aşağıda gösterilmiştir.

  1. Arduino IDE'nin en son sürümünü Arduino'dan indirin.
  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 öyle COM14ama farklı bilgisayarlarda farklıdır.
  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”
  4. Ş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 kütüphane aşağıda verilen bağlantıya eklenmiştir. Kütüphaneyi dahil etmek için git Çizim > Kitaplığı Dahil Et > ZIP Kitaplığı Ekle. Bir kutu görünecektir. Bilgisayarınızdaki ZIP klasörünü bulun ve klasörleri dahil etmek için Tamam'ı tıklayın.
  5. Şimdi git Çizim > Kitaplığı Dahil Et > Kitaplıkları Yönet.
  6. Bir Menü açılacaktır. Arama çubuğuna şunu yazın Arduino JSON'u.Bir liste görünecektir. Yüklemek Benoit Blanchon'dan Arduino JSON.
  7. Şimdi tıklayın Araçlar.Bir açılır menü görünecektir. tahtayı ayarla ESP Geliştirme Modülü.
  8. Araç menüsüne tekrar tıklayın ve daha önce kontrol panelinde gözlemlediğiniz bağlantı noktasını ayarlayın.
  9. Şimdi aşağıdaki linkte bulunan kodu yükleyin ve kodu ESP32 mikrodenetleyici üzerinde yakmak için yükle butonuna tıklayın.

Yani şimdi kodu yükleyeceğiniz zaman bir hata oluşabilir. Bu, Arduino IDE ve Arduino JSON'un yeni bir sürümünü kullanıyorsanız oluşabilecek en yaygın hatadır. Aşağıdakiler ekranda görebileceğiniz hatalardı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 dahil edilen dosyada :\Users\Pro\Documents\Arduino\libraries\IOXhop_FirebaseESP32-master/IOXhop_FirebaseStream.h:14:11: error: StaticJsonBuffer, ArduinoJson 5'ten bir sınıftır. 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, içindeki dosyada 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 5'ten bir sınıftır. Lütfen programınızı nasıl yükselteceğinizi öğrenmek için 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 Kitaplık WiFi'sini sürüm 1.0'da şu klasörde kullanma: C:\Users\Pro\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.2\libraries\WiFi IOXhop_FirebaseESP32-master kitaplığını kullanma şu klasörde: C:\Users\Pro\Documents\Arduino\libraries\IOXhop_FirebaseESP32-master (eski) Klasörde 1.2 sürümünde HTTPClient kütüphanesini kullanma: C:\Users\Pro\AppData\Local\Arduino15\packages\esp32\hardware\ esp32\1.0.2\libraries\HTTPClient WiFiClientSecure kütüphanesini sürüm 1.0 klasöründe 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 şu klasörde: C:\Users\Pro\Documents\Arduino\libraries\ArduinoJson çıkış durumu 1 ESP32 Dev Module kartı 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. StatikJsonBuffer.Bu, JSON 5'in sınıfıdır. Böylece, Arduino IDE'mizin Arduino JSON sürümünü düşürerek bu hatayı basitçe ortadan kaldırabiliriz. basitçe git Çizim > Kitaplığı Dahil Et > Kitaplıkları Yönet.AramakBenoit Blanchon tarafından Arduino JSONdaha önce yüklemiş olduğunuz Önce kaldırın ve ardından sürümünü 5.13.5. Şimdi Arduino JSON'un eski bir sürümünü belirlediğimize göre, onu tekrar kurun ve kodu yeniden derleyin. Bu sefer kodunuz başarıyla derlenecektir.

Kodu indirmek için buraya tıklayın.

6. Adım: Kod

Bu projenin kodu çok basit ama yine de bazı kısımları aşağıda açıklanmıştır.

1. Kodun başında üç kitaplık ekleyeceğiz. Birincisi ESP kartında Wifi'yi etkinleştirmek, ikincisi ESP'nin servo motor kullanmasını sağlamak ve üçüncüsü ESP kartını firebase veritabanına bağlamak. Daha sonra firebase ana bilgisayarını, kimlik doğrulamasını, yerel internet bağlantımızın adını ve şifresini kodun içine ekleyeceğiz. Bunu yaptıktan sonra servo motoru kullanmak için bir nesne oluşturun.

#Dahil etmek                  // WiFi kullanmak için kitaplığı dahil et #include                 // servo motor için kitaplığı dahil et #include  // Firebase'e bağlanmak için kitaplığı dahil et #define FIREBASE_HOST "xxxxxxxxxx" // xxxxxxxxxx'i burada firebase ana makinenizle değiştirin #define FIREBASE_AUTH "xxxxxxxxxx" // xxxxxxxxxx'i burada firebase kimlik doğrulamanızla değiştirin #define WIFI_SSID "xx code,xxxxxxxxx" // değiştirin xxxxxxxxxx Wifi bağlantımızın adıyla #WIFI_PASSWORD "xxxxxxxxxx" tanımlayın // xxxxxxxxxx'i wifi şifrenizle değiştirin Servo myservo; // servo motor için nesne oluştur int pos = 0; // değişken oluşturma int durumu; // değişken oluşturma

2. geçersiz kurulum() mikrodenetleyici kartı açıldığında veya etkinleştirme düğmesine basıldığında bir programda yalnızca bir kez çalışan bir fonksiyondur. Baud hızı bu fonksiyonda ayarlanır. Baud hızı aslında mikrodenetleyicinin harici cihazlarla iletişim kurduğu saniyedeki bit cinsinden iletişim hızıdır. Servo motor, ESP kartının pin34'üne bağlanır. mikrodenetleyiciyi yerel internet bağlantısına bağlamak için bu fonksiyonda kod yazılır.

geçersiz kurulum() { Serial.begin(115200); // baud hızının ayarlanması myservo.attach(34); // servo motorun PWM pinini ESP32 myservo.write(60) pin34'üne bağlayın; gecikme(1000); // wifi'ye bağlan. WiFi.begin(WIFI_SSID, WIFI_PASSWORD); Serial.println("bağlanıyor"); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); gecikme(500); } Seri.println(); Serial.print("bağlı: "); Serial.println(WiFi.localIP()); Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); }

3. boşluk döngüsü() bir döngü içinde tekrar tekrar çalışan bir fonksiyondur. Bu fonksiyonda mikrodenetleyiciye hangi işlemleri nasıl yapacağını anlatıyoruz. Burada, veriler firebase'den okunuyor ve int adlı değişkende saklanıyor. durum. Durumun içinde '0' değeri varsa, servo motorun konumu 8 dereceye ayarlanır. Değişken durumdaki değer '1' ise servo motorun konumu 55 dereceye ayarlanacaktır.

void loop() { state = Serial.println(Firebase.getFloat("motor")); // firebase'den veri oku // eğer durum '0' ise DC motor kapanır if (durum == '0') { myservo.write(8); // servo motor gecikmesinin konumunu ayarla(1000); // bir saniye bekle Serial.println("Kapı Kilitli"); } else if (durum == '1') { myservo.write(55); // servo motor gecikmesinin yeni konumunu ayarla(1000); // bir saniye bekle Serial.println("Kapı Kilitli Değil"); } // hatayı işleme if (Firebase.failed()) { Serial.print("ayar /sayı başarısız:"); Serial.println(Firebase.error()); dönüş; } gecikme(1000); 
Facebook Twitter Google Plus Pinterest