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

Günümüzde, piyasada açmak için bir çeşit şifreye ihtiyaç duyan çok sayıda kilit var. Bu kilitler çok verimli ancak çok maliyetlidir. Küçük ölçekli bir amaç için otomatikleştirilen ve herhangi bir şifre olmadan ancak bir akıllı telefonla kilitlenen veya kilitlenen bir kilit yapmamız gerekirse, piyasada kolayca bulunabilen bazı bileşenleri kullanarak bunu başarabiliriz.



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

Otomatik Kapı Kilidi



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



Android ile Çalışan SmartLock Nasıl Yapılır?

Adım 1: Bileşenleri Toplama

Herhangi bir projeye başlamadan önce, eğer projenin ortasında sıkışıp kalacağınız ve zamanınızı boşa harcayacağınız 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 kolaylıkla bulunabilir.



  • ESP32
  • Atlama Telleri
  • Servo motor
  • Vidalar
  • Kilit
  • Matkap Makinesi

Adım 2: Uygulamayı Hazırlama

Cep telefonu ile çalışacak 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. Önceden, birkaç tane geliştirdik android uygulamaları. İçinde sadece bir butondan oluşan bir uygulama geliştirdik zaten. Bu düğme veri tabanına veri göndermek için kullanılır. Firebase veritabanına '1' itilirse, anahtar kilidi açılır ve bu veritabanına '0' itilirse kilit kapatılır.

Lütfen adlı makalemize bakın Bilgisayarınız İç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.

Adım 3: Bileşenleri Birleştirme

Bu projeyi tamamlamak için ihtiyaç duyduğumuz tüm bileşenlerin tam bir listesine sahip olduğumuz için, 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 ve toprağına bağlayın. Servo motorunuzun PWM pinini sürücünüzün 34 numaralı pinine bağlayın. ESP32 kurulu . Şimdi bir servo motor üzerinde dişli tipi bir düğme olduğuna bakın. Kilidin sapını çevirerek çıkarınız ve bir miktar yapıştırıcı yardımı ile dişli motor kolunu kilide sabitleyiniz.

Şimdi, matkap makinesinin yardımıyla, bu akıllı kilidi yerleştirmek istediğiniz kapıda birkaç delik açın. Delikleri, kilidin delikleri kapaktaki deliklerle üst üste gelecek ve vidanın sabitlenmesini sağlayacak şekilde açtığınızdan emin olun.

Adım 4: Çalışmak

Şimdi bu projenin arkasındaki ana fikri bildiğimiz için, bu projenin nasıl çalışacağını anlayalım.

ESP32, bu projenin kalbidir. Bu panele bir servo motor bağlıdır ve bu mikro denetleyicinin firebase veri tabanına bağlantısı vardır. Kilidi açmak için uygulamadaki düğmeye basıldığında, '1' firebase veritabanına itilir ve kilidi kapatmak için düğmeye basıldığında, '0' firebase veritabanına itilir. ESP kartı, firebase veritabanındaki bu değeri sürekli olarak okuyor. 0 olduğu sürece, ESP32 servo motoru başlangıç ​​konumunda kalması için yönlendirecektir. Ateş üssüne 1 gelir gelmez, ESP kartı onu okuyacak ve servo motora kilidi açacak bir dönüş yapmasını söyleyecektir.

5. Adım: 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 üzerine 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.

    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 karşıya 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 5'ten bir sınıftır. 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 (). 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 kitaplık kullanarak 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 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 çıkmaktadır. StaticJsonBuffer. Bu JSON 5'in sınıfıdır. Dolayısıyla, Arduino IDE'mizin Arduino JSON versiyonunu 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

Bu projenin kodu çok basit ama yine de bazı parçaları aşağıda açıklanmıştır.

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

#include // 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 firebase kimlik doğrulamanızla değiştirin burada # tanımlayın WIFI_SSID 'xx kodu, xxxxxxxx' // xxxxxxxxxx'i Wifi bağlantımızın adıyla değiştirin #define WIFI_PASSWORD 'xxxxxxxxxx' // xxxxxxxxxx'i wifi şifrenizle değiştirin Servo myservo; // servo motor için nesne oluştur int pos = 0; // değişken int durumu oluşturma; // değişken oluşturma

2. geçersiz kurulum () mikro denetleyici kartı açıldığında veya etkinleştirme düğmesine basıldığında bir programda yalnızca bir kez çalışan bir işlevdir. Baud hızı bu işlevde ayarlanır. Baud hızı, aslında mikro denetleyicinin harici cihazlarla iletişim kurduğu saniyede bit cinsinden iletişim hızıdır. Servo motor, ESP kartının pimine34 bağlanır. Bu işlevde mikro denetleyiciyi yerel internet bağlantısına bağlamak için kod yazılır.

geçersiz kurulum () {Serial.begin (115200); // baud hızını ayarlamak myservo.attach (34); // servo motorun PWM pinini ESP32 myservo.write (60) pin34'e bağlayın; gecikme (1000); // 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. geçersiz döngü () bir döngü içinde tekrar tekrar çalışan bir işlevdir. Bu fonksiyonda mikrodenetleyiciye hangi işlemlerin nasıl yapılacağını anlatıyoruz. Burada veriler firebase'den okunuyor ve int isimli değişkenle saklanıyor durum . Durumda '0' değeri varsa, servo motorun konumu 8 dereceye ayarlanır. Değişken durumdaki değer '1' e eşitse, servo motorun konumu 55 dereceye ayarlanacaktır.

void döngü () {state = Serial.println (Firebase.getFloat ('motor')); // verileri firebase'den okuyun // eğer durum '0' ise DC motor kapanacaktır eğer (state == '0') {myservo.write (8); // servo motor gecikmesinin konumunu ayarlayın (1000); // onw saniye bekleyin Serial.println ('Kapı Kilitli'); } else if (state == '1') {myservo.write (55); // servo motor gecikmesinin yeni konumunu ayarlayın (1000); // bir saniye bekleyin Serial.println ('Kapı Kilitli Değil'); } // if (Firebase.failed ()) {Serial.print ('ayar / numara başarısız oldu:'); Serial.println (Firebase.error ()); dönüş; } gecikme (1000);