Barkácsolás: Olyan SmartLock készítése otthona számára, amely csak az okostelefonjával nyílik meg

Manapság olyan sok zár elérhető a piacon, amelyek megnyitásához valamilyen jelszóra van szükség. Ezek a zárak nagyon hatékonyak, de nagyon költségesek. Ha automatizált, automatizált zárat kell készítenünk, amelyet jelszó nélkül, de okostelefonnal nyitunk vagy zárunk, akkor a piacon könnyen elérhető alkatrészek használatával elkészíthetjük.



Ez a zár nagyon alacsony költséggel jár, és kis méretben tökéletesen működik. An android alkalmazás szükséges a zár működtetéséhez. Most lépjünk az ESP32 beállítása, a szükséges csomagok telepítése és bizonyos hardverbeli változtatások végrehajtása felé!

Automatikus ajtózár



Időveszteség nélkül kezdjük el tanulmányozni a fontos koncepciókat és dolgozni ezen a projekten.



Hogyan lehet az Android által működtetett SmartLockot létrehozni?

1. lépés: Az összetevők összegyűjtése

Bármely projekt megkezdése előtt, ha attól tart, hogy elakad a projekt közepén, és pazarolja az idejét, kiváló megközelítéssel lehet elkerülni. Készítsen egy teljes listát az összes összetevőről, amelyre szüksége lesz a projektben, és megvásárolja őket. Az alábbiakban felsoroljuk az összes összetevőt, amelyet a projektben használni fogunk. Mindezek az alkatrészek könnyen elérhetők a piacon.



  • ESP32
  • Jumper huzalok
  • Szervómotor
  • Csavarok
  • Zár
  • Fúrógép

2. lépés: Az alkalmazás elkészítése

Mivel intelligens zárat fogunk készíteni, amelyet mobiltelefon működtet, ki kell fejlesztenünk egy androidos alkalmazást, amely tartalmazni fog egy gombot. A gomb megnyomásával kinyithatjuk vagy bezárhatjuk az intelligens zárat. Korábban többet fejlesztettünk android alkalmazások. Már kifejlesztettünk egy alkalmazást, amely csak egy gombból áll. Ezzel a gombbal lehet adatokat elküldeni az adatbázisba. ha az „1” betolódik a firebase adatbázisba, a kapcsoló zárja megnyílik, és ha az „0” betolódik az adatbázisba, akkor a zár lezárul.

Kérjük, olvassa el a cikkünket Vezeték nélküli be / ki kapcsoló létrehozása a számítógéphez segítséget kérni az androidos alkalmazás fejlesztéséhez, amelyet az intelligens zár működtetésére használnak.

3. lépés: Az alkatrészek összeszerelése

Mivel teljes listánk van az összes összetevőről, amelyre szükségünk van a projekt befejezéséhez, lépjünk előre egy lépéssel előre és állítsuk össze az összes alkatrészt.



Vegyük a szervomotort, és kössük a Vcc-t és a földet az ESP-kártya Vcc-jéhez és a földhöz. Csatlakoztassa a szervomotor PWM csapját a motor 34 csapjához ESP32 kártya . Most nézze meg, hogy van-e egy sebességfokozatú gomb a szervomotoron. Vegye ki a zár fogantyúját annak elforgatásával, és néhány ragasztó segítségével rögzítse a hajtómotor gombját a zárban.

Most a fúrógép segítségével fúrjon ki néhány lyukat az ajtón, ahová ezt az intelligens zárat el szeretné helyezni. Győződjön meg arról, hogy a furatokat úgy fúrta, hogy a zár furatai átfedjék az ajtóban lévő furatokat, ezzel biztosítva a csavar rögzítését.

4. lépés: Munka

Mivel már ismerjük a projekt fő gondolatát, értsük meg, hogyan fog működni ez a projekt.

Az ESP32 a projekt szíve. Ehhez a táblához szervomotor csatlakozik, és ez a mikrovezérlő kapcsolódik a firebase adatbázishoz. Amikor az alkalmazásban lévő gombot megnyomják a zár kinyitásához, az „1” betolódik a firebase adatbázisba, és amikor a zár bezárására szolgáló gombot megnyomják, a „0” betűt a firebase adatbázisba. Az ESP kártya ezt az értéket folyamatosan olvassa a firebase adatbázisban. Amíg 0 van, az ESP32 arra irányítja a szervomotort, hogy maradjon a kezdeti helyzetében. Amint 1 bejön a tűztérbe, az ESP kártya elolvassa és felszólítja a szervomotort, hogy végezzen olyan forgást, amely kinyitja a zárat.

5. lépés: Az ESP32 használatának megkezdése

Ha korábban nem dolgozott az Arduino IDE-n, ne aggódjon, mert az Arduino IDE beállításának lépésről lépésre alább látható.

  1. Töltse le az Arduino IDE legújabb verzióját innen: Arduino.
  2. Csatlakoztassa Arduino kártyáját a számítógéphez, és nyissa meg a Vezérlőpultot. Kattintson Hardver és hang. Most nyitva Eszközök és nyomtató és keresse meg azt a portot, amelyhez a táblája csatlakozik. Az én esetemben az COM14 de a különböző számítógépeken más.

    Port keresése

  3. Kattintson a Fájl, majd a Beállítások elemre. Másolja a következő linket a A Board Manager további URL-je. „ https://dl.espressif.com/dl/package_esp32_index.json '

    preferenciák

  4. Az ESP32 és az Arduino IDE együttes használatához speciális könyvtárakat kell importálnunk, amelyek lehetővé teszik számunkra, hogy kódot írjunk az ESP32-re és használjuk. ez a két könyvtár az alábbi linken található. A könyvtár felvételéhez lépjen tovább Vázlat> Könyvtár hozzáadása> ZIP-könyvtár hozzáadása . Megjelenik egy doboz. Keresse meg a ZIP mappát a számítógépén, és kattintson az OK gombra a mappák felvételéhez.

    Könyvtár beillesztése

  5. Most menj Vázlat> Könyvtár hozzáadása> Könyvtárak kezelése.

    Könyvtárak kezelése

  6. Megnyílik egy menü. Írja be a keresősávba Arduino JSON. Megjelenik egy lista. Telepítés Aroitino JSON Benoit Blanchon.

    Arduino JSON

  7. Most kattintson a gombra Eszközök. Megjelenik egy legördülő menü. Állítsa a táblát ESP Dev modul.

    Tábla beállítása

  8. Kattintson ismét az Eszköz menüre, és állítsa be azt a portot, amelyet korábban a kezelőpanelen észlelt.

    Port beállítása

  9. Most töltse fel az alábbi linken csatolt kódot, és kattintson a feltöltés gombra, hogy megírja a kódot az ESP32 mikrokontrolleren.

    Feltöltés

Tehát most, amikor feltölti a kódot, hiba léphet fel. Ez a leggyakoribb hiba, amely az Arduino IDE és az Arduino JSON új verziójának használata esetén fordulhat elő. Az alábbiakban láthatja azokat a hibákat, amelyeket a képernyőn láthat.

A C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 fájlból: C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer egy osztály az ArduinoJson 5-ből. Kérjük, olvassa el az arduinojson.org/upgrade webhelyet, hogy megtudja, hogyan frissítheti programját ArduinoJson-ra. 6. verzió StaticJsonBuffer jsonBuffer; ^ A C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 fájlból: C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: hiba: A StaticJsonBuffer egy osztály az ArduinoJson 5-ből. Kérjük, olvassa el az arduinojson.org/upgrade webhelyet, ahol megtudhatja, hogyan frissítse a programot Az ArduinoJson 6. verziója visszaadja a StaticJsonBuffer (). ParseObject (_data); ^ Több könyvtár található a „WiFi.h” fájlhoz. Használt: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFi Nem használt: C:  Program Files ( x86)  Arduino  libraries  WiFi A WiFi könyvtár használata az 1.0 verziójú mappában: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  libraries  WiFi Az IOXhop_FirebaseESP32-master könyvtár használata a mappában: C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master (örökölt) A HTTPClient könyvtár használata az 1.2-es verzióban a mappában: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  libraries  HTTPClient A WiFiClientSecure könyvtár használata az 1.0 verzióban a mappában: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFiClientSecure ArduinoJson könyvtár használata 6.12.0 verzió a mappában: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Hiba fordításkor az ESP32 Dev modul fórumához.

Nincs miért aggódni, mert ezeket a hibákat néhány egyszerű lépésben kiküszöbölhetjük. Ezek a hibák azért merülnek fel, mert az Arduino JSON új verziója helyett egy másik osztály van StaticJsonBuffer. Ez a JSON 5 osztálya. Tehát egyszerűen kiküszöbölhetjük ezt a hibát az Arduino IDE-s Arduino JSON verziójának leminősítésével. Egyszerűen menjen a Vázlat> Könyvtár hozzáadása> Könyvtárak kezelése. Keressen Aroitino JSON Benoit Blanchon amelyet korábban telepített. Először távolítsa el, majd állítsa a verzióját 5.13.5. Miután beállítottuk az Arduino JSON régi verzióját, telepítse újra és fordítsa újra a kódot. Ezúttal a kód fordítása sikeres lesz.

A kód letöltéséhez kattintson itt.

6. lépés: Kód

ennek a projektnek a kódja nagyon egyszerű, de ennek ellenére néhány részletét az alábbiakban ismertetjük.

1. A kód elején három könyvtárat fogunk felvenni. Az első a Wifi engedélyezése az ESP alaplapon, a második az ESP szervomotor használatának lehetővé tétele, a harmadik pedig az ESP kártya csatlakoztatása a firebase adatbázishoz. Ezt követően hozzáadjuk a firebase hostot, hitelesítést, helyi internetkapcsolatunk nevét és jelszavát a kódhoz. Ezt követően hozzon létre egy objektumot a szervomotor használatához.

#include // a könyvtár használata a WiFi használatához #include // a könyvtár hozzáadása a szervomotorhoz #include // include könyvtár a Firebase-hez való csatlakozáshoz #define FIREBASE_HOST 'xxxxxxxxxx' // az xxxxxxxxxx cseréje a firebase hostoddal itt #define FIREBASE_AUTH 'xxxxxxxxxx' / / cserélje le xxxxxxxxxx a Firebase hitelesítéssel itt #define WIFI_SSID 'xx kód, xxxxxxxx' // cserélje le xxxxxxxxxx a Wifi kapcsolatunk nevére #define WIFI_PASSWORD 'xxxxxxxxxx' // cserélje le xxxxxxxxxx-et a wifi jelszavával Servo myservo; // objektum létrehozása a szervomotorhoz int pos = 0; // változó int állapot létrehozása; // változó létrehozása

2. void setup () olyan funkció, amely csak egyszer fut le egy programban, amikor a mikrokontroller kártya be van kapcsolva, vagy az engedélyezés gombot megnyomják. Az adatátviteli sebesség ebben a funkcióban van beállítva. A átviteli sebesség valójában az a kommunikációs sebesség bit / másodpercben, amelyen keresztül a mikrovezérlő kommunikál a külső eszközökkel. A szervomotor az ESP kártya pin34-hez csatlakozik. kódot írnak ebbe a funkcióba, hogy a mikrovezérlőt a helyi internetkapcsolathoz csatlakoztassák.

void setup () {Soros.kezdés (115200); // az adatátviteli sebesség beállítása myservo.attach (34); // csatlakoztassa a szervomotor PWM csatlakozóját az ESP32 myservo.write (60) pin34-hez; késés (1000); // csatlakozzon a wifihez. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('összekötő'); while (WiFi.status ()! = WL_CONNECTED) {Soros.nyomtatás ('.'); késés (500); } Soros.println (); Soros.nyomtatás ('csatlakoztatva:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. void loop () olyan funkció, amely újra és újra fut egy ciklusban. Ebben a funkcióban elmondjuk a mikrovezérlőnek, hogy milyen műveleteket kell végrehajtani és hogyan. Itt az adatokat a firebase-ből olvassák és tárolják a megnevezett változóban állapot . Ha az állapotnak „0” értéke van, akkor a szervomotor helyzetét 8 fokra állítják. Ha a változó állapotban lévő érték egyenlő „1” -vel, akkor a szervomotor helyzete 55 fokos lesz.

void loop () {állapot = Serial.println (Firebase.getFloat ('motor')); // olvassa el az adatokat a firebase-ből // ha az állapot „0”, akkor az egyenáramú motor kikapcsol, ha (állapot == '0') {myservo.write (8); // a szervomotor késleltetésének beállítása (1000); // várja meg az onw második Serial.println ('Door Locked'); } else if (állapot == '1') {myservo.write (55); // a szervomotor késleltetésének új pozíciójának beállítása (1000); // várjon egy másodpercig Serial.println ('Ajtó nyitva'); } // hiba kezelése, ha (Firebase.failed ()) {Serial.print ('beállítás / szám meghiúsult:'); Serial.println (Firebase.error ()); Visszatérés; } késleltetés (1000);