DIY: Luo kotiisi SmartLock, joka avautuu vain älypuhelimellasi

Nykyään markkinoilla on niin paljon lukkoja, jotka tarvitsevat jonkinlaisen salasanan sen avaamiseksi. Nämä lukot ovat erittäin tehokkaita, mutta erittäin kalliita. Jos meidän on tehtävä lukko pienimuotoiseen tarkoitukseen, joka on automatisoitu ja joka on lukittu tai lukittu ilman salasanaa, mutta älypuhelimella, voimme tehdä sen käyttämällä joitain komponentteja, jotka ovat helposti saatavilla markkinoilla.

Tämän lukon hinta on erittäin alhainen ja se toimii täydellisesti pienessä mittakaavassa. An android-sovellus tarvitaan tämän lukon käyttämiseen. Siirrytään nyt ESP32: n asentamiseen, tarvittavien pakettien asentamiseen ja tiettyihin laitteistomuutoksiin!

Automaattinen ovilukko



Aloittelematta aikaa tuhlaamalla, aloitetaan tärkeiden käsitteiden tutkiminen ja työskentely tämän projektin parissa.



Kuinka saada Android-käyttöinen SmartLock?

Vaihe 1: Komponenttien kerääminen

Ennen kuin aloitat minkä tahansa projektin, jos on pelko, että juutut keskelle projektia ja tuhlataan aikaa, on erinomainen tapa välttää se. Tee täydellinen luettelo kaikista komponentteista, joita tarvitset projektissa, ja osta ne ensin. Seuraavassa on täydellinen luettelo kaikista komponenteista, joita aiomme käyttää tässä projektissa. Kaikki nämä komponentit ovat helposti saatavilla markkinoilla.



  • ESP32
  • Neulalangat
  • Servo moottori
  • Ruuvit
  • Lukko
  • Porakone

Vaihe 2: Sovelluksen tekeminen

Koska aiomme tehdä älylukon, jota käytetään matkapuhelimella, meidän on kehitettävä Android-sovellus, joka sisältää painikkeen. Painamalla tätä painiketta voimme avata tai sulkea älylukon. Aiemmin olemme kehittäneet useita android-sovellukset. Olemme jo kehittäneet sovelluksen, joka koostuu vain yhdestä painikkeesta siinä. Tätä painiketta käytetään tietojen lähettämiseen tietokantaan. jos ”1” työnnetään firebase-tietokantaan, kytkinlukko avautuu ja jos ”0” työnnetään kyseiseen tietokantaan, lukko suljetaan.

Katso artikkelimme nimeltä Langattoman virtakytkimen luominen tietokoneelle ottaa apua oman Android-sovelluksen kehittämiseen, jota käytetään älylukon käyttämiseen.

Vaihe 3: Komponenttien kokoaminen

Koska meillä on täydellinen luettelo kaikista komponenteista, joita tarvitsemme tämän projektin loppuun saattamiseksi, siirrymme eteenpäin ja kootaan kaikki komponentit yhteen.



Ota servomoottori ja kytke sen Vcc ja maadoitus vastaavasti ESP-kortin Vcc: hen ja maahan. Liitä servomoottorisi PWM-tappi autosi nastaan ​​34 ESP32-kortti . Katso nyt, että servomoottorissa on vaihdetyyppinen nuppi. Poista lukon kahva kiertämällä sitä ja kiinnitä vaihdemoottorin nuppi lukkoon joidenkin liimojen avulla.

Poraa nyt porakoneen avulla joitain reikiä oveen, johon haluat sijoittaa tämän älylukon. Poraa reiät siten, että lukon reiät menevät päällekkäin oven reikien kanssa, jolloin ruuvi kiinnittyy.

Vaihe 4: Työskentely

Koska tiedämme nyt tämän projektin pääidean, ymmärretään, miten tämä projekti tulee toimimaan.

ESP32 on tämän projektin ydin. Servo-moottori on kytketty tähän korttiin ja tällä mikrokontrollerilla on yhteys firebase-tietokantaan. Kun sovelluksen painiketta painetaan avaamaan lukko, '1' työnnetään firebase-tietokantaan ja kun painiketta painetaan sulkemaan lukko, '0' työnnetään firebase-tietokantaan. ESP-kortti lukee tätä arvoa Firebase-tietokannassa jatkuvasti. Niin kauan kuin on 0, ESP32 ohjaa servomoottorin pysymään alkuasennossaan. Heti kun 1 tulee tulipesään, ESP-kortti lukee sen ja käskee servomoottoria tekemään pyörimisen, joka avaa lukon.

Vaihe 5: ESP32: n käytön aloittaminen

Jos et ole aiemmin työskennellyt Arduino IDE: n parissa, älä huoli, koska askel askeleelta Arduino IDE: n määrittäminen näkyy alla.

  1. Lataa uusin Arduino IDE -versio osoitteesta Arduino.
  2. Liitä Arduino-kortti tietokoneeseen ja avaa Ohjauspaneeli. Klikkaa Laitteisto ja ääni. Nyt avoinna Laitteet ja tulostin ja etsi portti, johon kortti on kytketty. Minun tapauksessani se on COM14 mutta se on erilainen eri tietokoneissa.

    Portin löytäminen

  3. Napsauta Tiedosto ja sitten Asetukset. Kopioi seuraava linkki Hallituksen ylimääräinen URL-osoite. ' https://dl.espressif.com/dl/package_esp32_index.json '

    Asetukset

  4. Nyt, jotta voimme käyttää ESP32: ta Arduino IDE: n kanssa, meidän on tuotava erityisiä kirjastoja, joiden avulla voimme polttaa koodia ESP32: lla ja käyttää sitä. nämä kaksi kirjastoa on liitetty alla olevaan linkkiin. Jos haluat sisällyttää kirjaston, siirry Luonnos> Sisällytä kirjasto> Lisää ZIP-kirjasto . Näkyviin tulee ruutu. Etsi tietokoneeltasi ZIP-kansio ja napsauta OK sisällyttääksesi kansiot.

    Sisällytä kirjasto

  5. Nyt mene Luonnos> Sisällytä kirjasto> Hallinnoi kirjastoja.

    Hallinnoi kirjastoja

  6. Valikko avautuu. Kirjoita hakupalkkiin Arduino JSON. Näyttöön tulee luettelo. Asentaa Arduino JSON kirjoittanut Benoit Blanchon.

    Arduino JSON

  7. Napsauta nyt Työkalut. Näkyviin tulee avattava valikko. Aseta kortti asentoon ESP Dev -moduuli.

    Asennuslauta

  8. Napsauta Työkalu-valikkoa uudelleen ja aseta portti, jonka havaitsit ohjauspaneelissa aiemmin.

    Portin asettaminen

  9. Lataa nyt koodi, joka on liitetty alla olevaan linkkiin, ja napsauta latauspainiketta polttaaksesi koodin ESP32-mikrokontrolleriin.

    Lähetä

Joten nyt, kun lataat koodin, saattaa tapahtua virhe. Tämä on yleisin virhe, joka voi ilmetä, jos käytät uutta versiota Arduino IDE: stä ja Arduino JSON: sta. Seuraavat virheet saattavat näkyä näytöllä.

Tiedostossa, joka sisältyy kansioon C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, tiedostosta 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 on luokka ArduinoJson 5: stä. Katso arduinojson.org/upgrade oppiaksesi päivittämään ohjelmasi ArduinoJsoniksi versio 6 StaticJsonBuffer jsonBuffer; ^ C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0 sisältämä tiedosto: 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 on luokka ArduinoJson 5: stä. Katso ohjeet ohjelman päivittämisestä osoitteesta arduinojson.org/upgrade. ArduinoJson-versio 6 palauttaa StaticJsonBuffer (). ParseObject (_data); ^ Useita kirjastoja löytyi hakemistolle 'WiFi.h' Käytetty: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  kirjastot  WiFi Ei käytössä: C:  Program Files ( x86)  Arduino  kirjastot  WiFi käyttämällä kirjaston WiFi-versiota 1.0 kansiossa: C:  Users  Pro  AppData  Local  Arduino15  paketit  esp32  hardware  esp32  1.0.2  kirjastot  WiFi  u00e4 Kirjasto IOXhop_FirebaseESP32-master kansiossa: C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master (legacy) Kirjaston HTTPClientin käyttö versiossa 1.2 kansiossa: C:  Users  Pro  AppData  Local  Arduino15  paketit  esp32  hardware  esp32  1.0.2  kirjastot  HTTPClient kirjaston WiFiClientSecure avulla versiossa 1.0 kansiossa: C:  Users  Pro  AppData  Local  Arduino15  paketit  esp32  hardware  esp32  1.0.2  kirjastot  WiFiClientSecure Kirjaston ArduinoJson käyttäminen osoitteessa version 6.12.0 kansiossa: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Virhe koottaessa aluksella ESP32 Dev Module.

Ei ole mitään syytä huoleen, koska voimme poistaa nämä virheet noudattamalla joitain yksinkertaisia ​​vaiheita. Nämä virheet johtuvat siitä, että Arduino JSON: n uudessa versiossa on toisen luokan sijaan StaattinenJsonPuskuri. Tämä on JSON 5: n luokka. Joten voimme yksinkertaisesti poistaa tämän virheen päivittämällä Arduino IDE: n Arduino JSON -version. Mene vain Luonnos> Sisällytä kirjasto> Hallinnoi kirjastoja. Etsiä Arduino JSON kirjoittanut Benoit Blanchon jonka olet asentanut aiemmin. Poista ensin asennus ja aseta sitten sen versio 5.13.5. Kun olemme asettaneet vanhan version Arduino JSON: sta, asenna se uudelleen ja käännä koodi uudelleen. Tällä kertaa koodisi kääntyy onnistuneesti.

Lataa koodi klikkaus tässä.

Vaihe 6: Koodi

Tämän projektin koodi on hyvin yksinkertainen, mutta silti joitain sen paloja selitetään alla.

1. Koodin alkuun sisällytetään kolme kirjastoa. Ensimmäinen on ottaa Wifi käyttöön ESP-kortilla, toinen on antaa ESP: n käyttää servomoottoria ja kolmas on liittää ESP-kortti Firebase-tietokantaan. Sen jälkeen lisätään koodiin firebase-isäntä, todennus, paikallisen internetyhteytemme nimi ja salasana. Kun olet tehnyt tämän, luo objekti servomoottoria varten.

#include // sisällytä kirjasto käyttämään WiFi-yhteyttä #include // sisällytä kirjasto servomoottorille #include // sisälly kirjasto yhteyden muodostamiseksi Firebaseen # määrittele FIREBASE_HOST 'xxxxxxxxxx' // korvaa xxxxxxxxxx Firebase-isännälläsi täällä # määrittele FIREBASE_AUTH 'xxxxxxxxxx' / / korvaa xxxxxxxxxx firebase-todennuksellasi täällä #define WIFI_SSID 'xx-koodi, xxxxxxxx' // korvaa xxxxxxxxxx Wifi-yhteytemme nimellä #define WIFI_PASSWORD 'xxxxxxxxxx' // korvaa xxxxxxxxxx wifi-salasanallasi Servo myservo; // luo objekti servomoottorille int pos = 0; // luodaan muuttuja int-tila; // muuttujan luominen

2. void setup () on toiminto, joka toimii vain kerran ohjelmassa, kun mikrokontrollerikortti kytketään päälle tai aktivointipainiketta painetaan. Siirtonopeus asetetaan tässä toiminnossa. Siirtonopeus on itse asiassa tiedonsiirtonopeus bitteinä sekunnissa, jonka kautta mikro-ohjain kommunikoi ulkoisten laitteiden kanssa. Servomoottori on kytketty ESP-kortin nastaan34. koodi kirjoitetaan tähän toimintoon yhdistääksesi mikrokontrollerin paikalliseen Internet-yhteyteen.

void setup () {Sarja.alku (115200); // siirtonopeuden asettaminen myservo.attach (34); // liitä servomoottorin PWM-tappi ESP32 myservo.write (60): n pin34: een; viive (1000); // muodosta yhteys wifi-verkkoon. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('yhdistäminen'); while (WiFi.status ()! = WL_CONNECTED) {Sarja.tulos ('.'); viive (500); } Sarja.println (); Sarja.tulos ('kytketty:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. void loop () on toiminto, joka toimii yhä uudestaan ​​silmukassa. Tässä toiminnossa kerromme mikro-ohjaimelle, mitä toimintoja on suoritettava ja miten. Täällä tietoja luetaan tulipesästä ja tallennetaan nimettyyn muuttujaan osavaltio . Jos tilalla on arvo 0, servomoottorin asento asetetaan 8 asteeseen. Jos muuttuvassa tilassa oleva arvo on yhtä suuri kuin 1, servomoottorin asento asetetaan 55 asteeseen.

void loop () {tila = Serial.println (Firebase.getFloat ('moottori')); // lue tiedot tulipesästä // jos tila on 0, tasavirtamoottori sammuu, jos (tila == '0') {myservo.write (8); // servomoottorin viiveen asetusasento (1000); // odota toista Serial.println ('ovi lukittu'); } else if (tila == '1') {myservo.write (55); // aseta servomoottorin viiveen uusi sijainti (1000); // odota sekunti Serial.println ('Door UnLocked'); } // käsittele virhe, jos (Firebase.failed ()) {Serial.print ('asetus / numero epäonnistui:'); Serial.println (Firebase.error ()); palata; } viive (1000);