DIY: Vytvoření SmartLock pro váš domov, který se otevírá pouze pomocí vašeho smartphonu

V dnešní době je na trhu k dispozici tolik zámků, které k otevření potřebují nějaké heslo. Tyto zámky jsou velmi účinné, ale velmi nákladné. Pokud potřebujeme vyrobit zámek pro malé účely, který je automatizovaný a je odemknut nebo uzamčen bez hesla, ale pomocí chytrého telefonu, můžeme jej vyrobit pomocí některých komponent, které jsou na trhu snadno dostupné.



Tento zámek bude velmi levný a bude v malém měřítku fungovat perfektně. An aplikace pro Android k ovládání tohoto zámku bude zapotřebí. Nyní pojďme k nastavení ESP32, instalaci potřebných balíčků a provedení určitých hardwarových změn!

Automatický zámek dveří



Bez ztráty času pojďme začít studovat důležité koncepty a pracovat na tomto projektu.



Jak si vyrobit SmartLock ovládaný systémem Android?

Krok 1: Shromáždění komponent

Pokud se před zahájením jakéhokoli projektu obáváte, že se zaseknete uprostřed projektu a ztratíte čas, existuje vynikající přístup, jak se mu vyhnout. Vytvořte kompletní seznam všech komponent, které v projektu budete potřebovat, a kupte je na prvním místě. Následuje kompletní seznam všech komponent, které v tomto projektu použijeme. Všechny tyto komponenty jsou na trhu snadno dostupné.



  • ESP32
  • Propojovací dráty
  • Servomotor
  • Šrouby
  • Zámek
  • Vrtačka

Krok 2: Vytvoření aplikace

Protože budeme vyrábět inteligentní zámek, který bude ovládán mobilním telefonem, musíme vyvinout aplikaci pro Android, která bude obsahovat tlačítko. Stisknutím tohoto tlačítka budeme moci otevřít nebo zavřít inteligentní zámek. Dříve jsme vyvinuli několik aplikace pro Android. Už jsme vyvinuli aplikaci, která se skládá pouze z jednoho tlačítka. Toto tlačítko se používá k odesílání dat do databáze. pokud je do databáze firebase vložena „1“, zámek spínače se otevře a pokud se do této databáze vloží „0“, zámek se zavře.

Přečtěte si prosím náš pojmenovaný článek Vytvoření bezdrátového vypínače pro váš počítač pomoci vyvinout vlastní aplikaci pro Android, která bude použita k ovládání inteligentního zámku.

Krok 3: Sestavení komponent

Jelikož máme kompletní seznam všech komponent, které potřebujeme k dokončení tohoto projektu, pojďme se posunout o krok vpřed a sestavit všechny komponenty dohromady.



Vezměte servomotor a připojte jeho Vcc a uzemnění k Vcc a uzemnění desky ESP. Připojte kolík PWM vašeho servomotoru k kolíku 34 vašeho Deska ESP32 . Nyní uvidíte, že na servomotoru je knoflík ozubeného kola. Otáčením vyjměte rukojeť zámku a pomocí některých lepidel zafixujte knoflík převodového motoru v zámku.

Nyní pomocí vrtačky vyvrtejte na dveřích několik otvorů, kam chcete tento inteligentní zámek umístit. Ujistěte se, že jste otvory vyvrtali takovým způsobem, aby otvory zámku překrývaly otvory ve dveřích, čímž uvolněte šroub.

Krok 4: Práce

Protože nyní známe hlavní myšlenku tohoto projektu, pochopme, jak bude tento projekt fungovat.

ESP32 je srdcem tohoto projektu. K této desce je připojen servomotor a tento mikrokontrolér má připojení k databázi firebase. Po stisknutí tlačítka v aplikaci k otevření zámku se do databáze firebase vloží „1“ a po stisknutí tlačítka k uzavření zámku se do databáze firebase vloží „0“. Deska ESP čte tuto hodnotu v databázi firebase nepřetržitě. Dokud je 0, ESP32 nasměruje servomotor tak, aby zůstal ve své původní poloze. Jakmile 1 vstoupí do základny, deska ESP to přečte a řekne servomotoru, aby provedl rotaci, která otevře zámek.

Krok 5: Začínáme s ESP32

Pokud jste na Arduino IDE dříve nepracovali, nemějte obavy, protože krok za krokem pro nastavení Arduino IDE je uveden níže.

  1. Stáhněte si nejnovější verzi Arduino IDE z Arduino.
  2. Připojte desku Arduino k počítači a otevřete ovládací panel. Klikněte na Hardware a zvuk. Nyní otevřeno Zařízení a tiskárna a najděte port, ke kterému je vaše deska připojena. V mém případě ano COM14 ale v různých počítačích je to jiné.

    Hledání přístavu

  3. Klikněte na Soubor a poté na Předvolby. Zkopírujte následující odkaz do složky URL dalšího správce představenstva. ' https://dl.espressif.com/dl/package_esp32_index.json '

    Předvolby

  4. Nyní, abychom mohli používat ESP32 s Arduino IDE, musíme importovat speciální knihovny, které nám umožní vypálit kód na ESP32 a použít jej. tyto dvě knihovny jsou připojeny v níže uvedeném odkazu. Chcete-li zahrnout knihovnu, přejděte Skica> Zahrnout knihovnu> Přidat knihovnu ZIP . Zobrazí se pole. Najděte ve svém počítači složku ZIP a kliknutím na OK složky zahrňte.

    Zahrnout knihovnu

  5. Teď jdi Skica> Zahrnout knihovnu> Správa knihoven.

    Správa knihoven

  6. Otevře se nabídka. Do vyhledávacího pole zadejte Arduino JSON. Zobrazí se seznam. Nainstalujte Arduino JSON od Benoita Blanchona.

    Arduino JSON

  7. Nyní klikněte na Nástroje. Zobrazí se rozbalovací nabídka. Nastavte desku na Modul ESP Dev.

    Nastavovací deska

  8. Znovu klikněte na nabídku Nástroj a nastavte port, který jste dříve pozorovali na ovládacím panelu.

    Nastavení portu

  9. Nyní nahrajte kód, který je připojen v níže uvedeném odkazu, a kliknutím na tlačítko nahrávání vypálíte kód na mikrokontroléru ESP32.

    nahrát

Takže teď, když nahrajete kód, může dojít k chybě. Toto je nejčastější chyba, ke které může dojít, pokud používáte novou verzi Arduino IDE a Arduino JSON. Následují chyby, které se mohou zobrazit na obrazovce.

V souboru zahrnutém 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: error: StaticJsonBuffer je třída z ArduinoJson 5. Další informace o upgradu programu na ArduinoJson najdete na arduinojson.org/upgrade verze 6 StaticJsonBuffer jsonBuffer; ^ V souboru zahrnutém 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: error: StaticJsonBuffer je třída z ArduinoJson 5. Přečtěte si prosím arduinojson.org/upgrade, kde se dozvíte, jak upgradovat program na ArduinoJson verze 6 vrací StaticJsonBuffer (). ParseObject (_data); ^ Pro 'WiFi.h' bylo nalezeno více knihoven Použité: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Nepoužito: C:  Program Files ( x86)  Arduino  libraries  WiFi Používání knihovny WiFi ve verzi 1.0 ve složce: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Používání knihovny IOXhop_FirebaseESP32-master ve složce: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (starší) Používání knihovny HTTPClient ve verzi 1.2 ve složce: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Používání knihovny WiFiClientSecure ve verzi 1.0 ve složce: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Používání knihovny ArduinoJson na verze 6.12.0 ve složce: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson stav ukončení 1 Chyba kompilace pro deskový modul ESP32 Dev.

Není se čeho bát, protože tyto chyby můžeme eliminovat pomocí několika jednoduchých kroků. Tyto chyby vznikají, protože nová verze Arduino JSON má místo třídy jinou StaticJsonBuffer. Jedná se o třídu JSON 5. Tuto chybu tedy můžeme jednoduše eliminovat snížením verze Arduino JSON našeho Arduino IDE. Jednoduše přejděte na Skica> Zahrnout knihovnu> Správa knihoven. Hledat Arduino JSON od Benoita Blanchona které jste nainstalovali dříve. Nejprve jej odinstalujte a poté nastavte jeho verzi na 5.13.5. Nyní, když jsme nastavili starou verzi Arduino JSON, znovu ji nainstalujte a znovu zkompilujte kód. Tentokrát se váš kód úspěšně zkompiluje.

Chcete-li stáhnout kód, klikněte tady.

Krok 6: Kód

kód tohoto projektu je velmi jednoduchý, ale přesto jsou některé jeho části vysvětleny níže.

1. Na začátku kódu zahrneme tři knihovny. Prvním je povolení Wifi na desce ESP, druhým je umožnění ESP používat servomotor a třetí je připojení desky ESP k databázi firebase. Poté do kódu přidáme hostitele firebase, autentizaci, název našeho místního připojení k internetu a jeho heslo. Poté vytvořte objekt, který bude používat servomotor.

#include // zahrnout knihovnu pro použití WiFi # zahrnout // zahrnout knihovnu pro servomotor # zahrnout // zahrnout knihovnu pro připojení k Firebase #define FIREBASE_HOST 'xxxxxxxxxxx' // nahraďte xxxxxxxxxx vaším hostitelem firebase zde #define FIREBASE_AUTH 'xxxxxxxxxx' / / zde nahraďte xxxxxxxxxx autentizací firebase #define WIFI_SSID 'xx code, xxxxxxxx' // nahraďte xxxxxxxxxx názvem našeho Wifi připojení #define WIFI_PASSWORD 'xxxxxxxxxx' // nahraďte xxxxxxxxxxx vaším wifi heslem Servo myservo; // vytvoření objektu pro servomotor int pos = 0; // vytvoření proměnné int state; // vytvoření proměnné

2. neplatné nastavení () je funkce, která běží pouze jednou v programu, když je deska mikrokontroléru zapnuta nebo je stisknuto tlačítko povolení. Přenosová rychlost se nastavuje v této funkci. Přenosová rychlost je ve skutečnosti komunikační rychlost v bitech za sekundu, kterou mikrokontrolér komunikuje s externími zařízeními. Servomotor je připojen ke kolíku 34 desky ESP. V této funkci je zapsán kód pro připojení mikrokontroléru k místnímu připojení k internetu.

void setup () {Serial.begin (115200); // nastavení přenosové rychlosti myservo.attach (34); // připojte PWM pin servomotoru k pin34 ESP32 myservo.write (60); zpoždění (1000); // připojení k wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('připojování'); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); zpoždění (500); } Serial.println (); Serial.print ('connected:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. neplatná smyčka () je funkce, která běží znovu a znovu ve smyčce. V této funkci řekneme mikrokontroléru, jaké operace mají provádět a jak. Zde se načítají data z firebase a ukládají se do pojmenované proměnné Stát . Pokud má stát v sobě hodnotu „0“, je poloha servomotoru nastavena na 8 stupňů. Pokud je hodnota v proměnném stavu rovna „1“, bude poloha servomotoru nastavena na 55 stupňů.

void loop () {state = Serial.println (Firebase.getFloat ('motor')); // načíst data z firebase // pokud je stav „0“, stejnosměrný motor se vypne, pokud (state == „0“) {myservo.write (8); // nastavení polohy zpoždění servomotoru (1000); // počkat na druhou sekundu Serial.println ('Dveře zamčené'); } else if (state == '1') {myservo.write (55); // nastavení nové polohy zpoždění servomotoru (1000); // čekání na jednu sekundu Serial.println ('Door UnLocked'); } // chyba zpracování if (Firebase.failed ()) {Serial.print ('setting / number failed:'); Serial.println (Firebase.error ()); vrátit se; } zpoždění (1 000);