DIY: Vytvorenie funkcie SmartLock pre váš domov, ktorá sa otvára iba pomocou vášho smartphonu

V súčasnosti je na trhu k dispozícii toľko zámkov, ktoré na otvorenie potrebujú nejaké heslo. Tieto zámky sú veľmi efektívne, ale veľmi nákladné. Ak potrebujeme vyrobiť zámok pre malé účely, ktorý je automatizovaný a odomknutý alebo uzamknutý bez hesla, ale pomocou inteligentného telefónu, môžeme ho vyrobiť pomocou niektorých komponentov, ktoré sú na trhu ľahko dostupné.



Tento zámok bude mať veľmi nízke náklady a bude perfektne fungovať v malom rozsahu. An aplikácia pre Android bude potrebné na uvedenie tohto zámku do činnosti. Poďme teraz k nastaveniu ESP32, inštalácii potrebných balíkov a vykonaniu určitých hardvérových zmien!

Automatický zámok dverí



Bez toho, aby sme zbytočne strácali čas, začnime študovať dôležité koncepty a pracovať na tomto projekte.



Ako si vyrobiť SmartLock ovládaný operačným systémom Android?

Krok 1: Zhromaždenie komponentov

Ak máte obavy, že pred začatím každého projektu uviaznete uprostred projektu a stratíte čas, existuje vynikajúci prístup, ako sa mu vyhnúť. Vytvorte kompletný zoznam všetkých komponentov, ktoré v projekte budete potrebovať, a kúpte ich na prvom mieste. Nasleduje kompletný zoznam všetkých komponentov, ktoré použijeme v tomto projekte. Všetky tieto komponenty sú na trhu ľahko dostupné.



  • ESP32
  • Prepojovacie drôty
  • Servo motor
  • Skrutky
  • Zamknúť
  • Vŕtačka

Krok 2: Vytvorenie aplikácie

Keď budeme vyrábať inteligentný zámok, ktorý bude ovládaný mobilným telefónom, musíme vyvinúť aplikáciu pre Android, ktorá bude obsahovať tlačidlo. Stlačením tohto tlačidla budeme môcť otvoriť alebo zavrieť inteligentný zámok. Predtým sme vyvinuli niekoľko aplikácie pre Android. Už sme vyvinuli aplikáciu, ktorá sa v nej skladá iba z jedného tlačidla. Toto tlačidlo sa používa na zasielanie údajov do databázy. ak sa do databázy firebase vloží „1“, otvorí sa zámok spínača a ak sa do tejto databázy vloží „0“, zámok sa zatvorí.

Prečítajte si náš článok s názvom Vytvorenie bezdrôtového vypínača pre váš počítač pomôcť vyvinúť vlastnú aplikáciu pre Android, ktorá sa bude používať na ovládanie inteligentného zámku.

Krok 3: Zostavenie komponentov

Pretože máme kompletný zoznam všetkých komponentov, ktoré potrebujeme na dokončenie tohto projektu, posuňme sa o krok vpred a poskladajme všetky komponenty dohromady.



Vezmite servomotor a pripojte jeho Vcc a zem na Vcc a zem na doske ESP. Pripojte kolík PWM vášho servomotora k kolíku 34 vášho Doska ESP32 . Teraz uvidíte, že na servomotore je umiestnená hlavica prevodovky. Otáčaním vytiahnite rukoväť zámku a pomocou niektorých lepidiel zafixujte gombík prevodového motora v zámku.

Teraz pomocou vŕtačky vyvŕtajte otvory na dverách, kam chcete umiestniť tento inteligentný zámok. Uistite sa, že ste vyvŕtali otvory tak, aby sa otvory v zámku prekrývali s otvormi vo dverách, a tým utiahnite skrutku.

Krok 4: Práca

Keď už poznáme hlavnú myšlienku tohto projektu, pochopme, ako bude tento projekt fungovať.

ESP32 je srdcom tohto projektu. K tejto doske je pripojený servomotor a tento mikrokontrolér má pripojenie k databáze firebase. Po stlačení tlačidla v aplikácii na otvorenie zámku sa do databázy firebase vloží „1“ a po stlačení tlačidla na zatvorenie zámku sa do databázy firebase vloží „0“. Doska ESP neustále číta túto hodnotu v databáze firebase. Pokiaľ je 0, ESP32 nasmeruje servomotor tak, aby zostal v pôvodnej polohe. Len čo 1 vstúpi do základne požiaru, doska ESP to prečíta a oznámi servomotoru, aby vykonal rotáciu, ktorá otvorí zámok.

Krok 5: Začíname s ESP32

Ak ste na rozhraní Arduino IDE doteraz nepracovali, nemusíte sa obávať, pretože nižšie je uvedený postup nastavenia Arduino IDE.

  1. Stiahnite si najnovšiu verziu Arduino IDE z Arduino.
  2. Pripojte dosku Arduino k počítaču a otvorte ovládací panel. Kliknite na Hardvér a zvuk. Teraz otvorené Zariadenia a tlačiareň a nájdite port, ku ktorému je pripojená vaša doska. V mojom prípade to tak je COM14 ale v rôznych počítačoch je to iné.

    Hľadá sa prístav

  3. Kliknite na Súbor a potom na Predvoľby. Skopírujte nasledujúci odkaz do priečinka URL ďalšieho správcu rady. „ https://dl.espressif.com/dl/package_esp32_index.json '

    Predvoľby

  4. Teraz, aby sme mohli používať ESP32 s Arduino IDE, musíme importovať špeciálne knižnice, ktoré nám umožnia napáliť kód na ESP32 a použiť ho. tieto dve knižnice sú pripojené k odkazu uvedenému nižšie. Zahrnúť knižnicu, choďte Skica> Zahrnúť knižnicu> Pridať knižnicu ZIP . Zobrazí sa rámček. Vyhľadajte priečinok ZIP v počítači a kliknutím na tlačidlo OK ich zahrňte.

    Zahrnúť knižnicu

  5. Teraz choď Skica> Zahrnúť knižnicu> Správa knižníc.

    Spravovať knižnice

  6. Otvorí sa ponuka. Do vyhľadávacieho panela zadajte text Arduino JSON. Zobrazí sa zoznam. Inštalácia Arduino JSON od Benoita Blanchona.

    Arduino JSON

  7. Teraz kliknite na ikonu Náradie. Zobrazí sa rozbaľovacia ponuka. Nastavte dosku na Modul ESP Dev.

    Nastavovacia doska

  8. Znova kliknite na ponuku Nástroj a nastavte port, ktorý ste predtým pozorovali na ovládacom paneli.

    Nastavuje sa port

  9. Teraz nahrajte kód, ktorý je uvedený v nasledujúcom odkaze, a kliknutím na tlačidlo nahrávania vypálte kód na mikrokontrolér ESP32.

    Nahrať

Takže teraz, keď budete nahrávať kód, môže dôjsť k chybe. Toto je najbežnejšia chyba, ktorá sa môže vyskytnúť, ak používate novú verziu Arduino IDE a Arduino JSON. Nasledujú chyby, ktoré sa môžu zobraziť na obrazovke.

V súbore zahrnutom z C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, z C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14:11: chyba: StaticJsonBuffer je trieda od ArduinoJson 5. Informácie o tom, ako upgradovať program na ArduinoJson, nájdete na arduinojson.org/upgrade. verzia 6 StaticJsonBuffer jsonBuffer; ^ V súbore zahrnutom z C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, z C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: chyba: StaticJsonBuffer je trieda od ArduinoJson 5. Informácie o tom, ako upgradovať program na, nájdete na arduinojson.org/upgrade ArduinoJson verzia 6 vráti StaticJsonBuffer (). ParseObject (_data); ^ Pre „WiFi.h“ bolo nájdených viac knižníc Použité: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Nepoužíva sa: C:  Program Files ( x86)  Arduino  libraries  WiFi Používanie knižnice WiFi vo verzii 1.0 v priečinku: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Používanie knižnice IOXhop_FirebaseESP32-master v priečinku: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (legacy) Používanie knižnice HTTPClient vo verzii 1.2 v priečinku: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Používanie knižnice WiFiClientSecure vo verzii 1.0 v priečinku: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Používanie knižnice ArduinoJson na adrese verzia 6.12.0 v priečinku: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson stav ukončenia 1 Chyba kompilácie pre modul ESP32 Dev Module.

Niet sa čoho obávať, pretože tieto chyby môžeme eliminovať vykonaním niekoľkých jednoduchých krokov. Tieto chyby vznikajú, pretože nová verzia Arduino JSON má namiesto nej inú triedu StaticJsonBuffer. Toto je trieda JSON 5. Takže túto chybu môžeme jednoducho eliminovať znížením verzie Arduino JSON nášho Arduino IDE. Jednoducho choďte na Skica> Zahrnúť knižnicu> Správa knižníc. Hľadať Arduino JSON od Benoita Blanchona ktoré ste predtým nainštalovali. Najskôr ho odinštalujte a potom nastavte jeho verziu na 5.13.5. Teraz, keď sme nastavili starú verziu Arduino JSON, znova ju nainštalujte a kód znova skompilujte. Váš kód sa tentokrát úspešne skompiluje.

Ak chcete stiahnuť kód, kliknite tu.

Krok 6: Kód

kód tohto projektu je veľmi jednoduchý, napriek tomu sú niektoré jeho časti vysvetlené nižšie.

1. Na začiatku kódu zahrnieme tri knižnice. Prvým je povolenie Wifi na doske ESP, druhým je umožnenie ESP používať servomotor a tretím je pripojenie ESP dosky k databáze firebase. Potom do kódu pridáme hostiteľa firebase, autentifikáciu, názov nášho lokálneho internetového pripojenia a jeho heslo. Potom urobte objekt na použitie servomotora.

#include // zahrnúť knižnicu na použitie WiFi # zahrnúť // zahrnúť knižnicu pre servomotor # zahrnúť // zahrnúť knižnicu na pripojenie k Firebase #define FIREBASE_HOST 'xxxxxxxxxx' // // nahradiť xxxxxxxxxx vaším hostiteľom firebase tu #define FIREBASE_AUTH 'xxxxxxxxxx' / / tu nahraďte xxxxxxxxxx autentifikáciou firebase #define WIFI_SSID 'xx code, xxxxxxxx' // nahraďte xxxxxxxxxx názvom nášho Wifi pripojenia #define WIFI_PASSWORD 'xxxxxxxxxx' // nahraďte xxxxxxxxxxx vašim wifi heslom Servo myservo; // vytvorenie objektu pre servomotor int pos = 0; // vytvorenie premennej int state; // vytvorenie premennej

2. nastavenie neplatnosti () je funkcia, ktorá sa v programe spustí iba raz, keď je doska mikrokontroléra zapnutá alebo je stlačené tlačidlo povolenia. V tejto funkcii sa nastavuje prenosová rýchlosť. Prenosová rýchlosť je vlastne komunikačná rýchlosť v bitoch za sekundu, cez ktorú mikrokontrolér komunikuje s externými zariadeniami. Servomotor je pripojený ku kolíku 34 dosky ESP. V tejto funkcii je napísaný kód na pripojenie mikrokontroléra k miestnemu internetovému pripojeniu.

void setup () {Serial.begin (115200); // nastavenie prenosovej rýchlosti myservo.attach (34); // pripojte pin PWM servomotora k pin34 ESP32 myservo.write (60); oneskorenie (1 000); // pripojenie na wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println („pripája sa“); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); oneskorenie (500); } Serial.println (); Serial.print ('pripojený:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. neplatná slučka () je funkcia, ktorá beží znova a znova v slučke. V tejto funkcii povieme mikrokontroléru, aké operácie treba vykonať a ako. Tu sa načítavajú dáta z firebase a ukladajú sa do premennej s názvom štát . Ak má štát v sebe hodnotu „0“, poloha servomotora je nastavená na 8 stupňov. Ak je hodnota v premennom stave rovná „1“, poloha servomotora sa nastaví na 55 stupňov.

void loop () {state = Serial.println (Firebase.getFloat ('motor')); // načítanie údajov z firebase // ak je stav „0“, jednosmerný motor sa vypne, ak (stav == „0“) {myservo.write (8); // nastavena poloha oneskorenia servomotora (1000); // čakať na druhú sekundu Serial.println ('Door Locked'); } else if (state == '1') {myservo.write (55); // nastavenie novej polohy oneskorenia servomotora (1000); // čakať na jednu sekundu Serial.println ('Door UnLocked'); } // chyba manipulácie if (Firebase.failed ()) {Serial.print ('setting / number failed:'); Serial.println (Firebase.error ()); návrat; } oneskorenie (1 000);