DIY: Oprettelse af en SmartLock til dit hjem, der kun åbnes med din smartphone

I dag er der så mange låse tilgængelige på markedet, der har brug for en slags adgangskode for at åbne den. Disse låse er meget effektive, men meget dyre. Hvis vi har brug for at lave en lås til et lille mål, der er automatiseret og låses op eller låses uden adgangskode, men med en smartphone, kan vi gøre det ved at bruge nogle komponenter, der er let tilgængelige på markedet.

Denne lås har meget lave omkostninger og fungerer perfekt i lille skala. En Android-applikation er nødvendig for at betjene denne lås. Lad os nu bevæge os hen imod opsætning af ESP32, installere nødvendige pakker på den og foretage visse hardwareændringer!

Uden at spilde tid, lad os komme i gang med at studere vigtige koncepter og arbejde på dette projekt.

Hvordan laver man Android-styret SmartLock?

Trin 1: Samling af komponenterne

Inden du starter et projekt, hvis der er frygt for at du sidder fast midt i projektet og spilder tid, er der en glimrende tilgang til at undgå det. Lav en komplet liste over alle de komponenter, som du har brug for i projektet, og køb dem i første omgang. Følgende er den komplette liste over alle komponenter, som vi skal bruge i dette projekt. Alle disse komponenter er let tilgængelige på markedet.

Trin 2: Oprettelse af appen

Da vi skal lave en smart lås, der betjenes af en mobiltelefon, er vi nødt til at udvikle en Android-app, der indeholder en knap. Ved at trykke på den knap kan vi åbne eller lukke smartlåsen. Tidligere har vi udviklet flere Android-applikationer. Vi har allerede udviklet en applikation, der kun består af en knap i den. Denne knap bruges til at sende data til databasen. hvis '1' skubbes ind i firebase-databasen, åbnes afbryderlåsen, og hvis '0' skubbes ind i databasen, lukkes låsen.

Se vores navngivne artikel Oprettelse af en trådløs tænd / sluk-kontakt til din pc at tage hjælp til at udvikle din egen Android-applikation, der vil blive brugt til at betjene den smarte lås.

Trin 3: Samling af komponenterne

Da vi har en komplet liste over alle de komponenter, som vi har brug for for at gennemføre dette projekt, lad os gå et skridt foran og samle alle komponenterne sammen.

Tag servomotoren og tilslut dens Vcc og jord til henholdsvis Vcc og jorden på ESP-kortet. Tilslut PWM-stiften på din servomotor til stiften 34 på din ESP32-kort. Se nu, at der er en gearknapp på en servomotor. Tag håndtaget ud af låsen ved at dreje det, og fastgør gearknappens greb i låsen ved hjælp af nogle klæbemidler.

Bor nu nogle huller på døren, hvor du vil placere denne smarte lås ved hjælp af boremaskinen. Sørg for at bore hullerne på en sådan måde, at hullerne i låsen overlapper hullerne i døren, hvilket giver plads til, at skruen kan fastgøres.

Trin 4: Arbejde

Som vi nu kender hovedideen bag dette projekt, lad os forstå, hvordan dette projekt skal fungere.

ESP32 er kernen i dette projekt. En servomotor er forbundet til dette kort, og denne mikrocontroller har forbindelse til firebase-databasen. Når der trykkes på knappen i appen for at åbne låsen, skubbes '1' ind i firebase-databasen, og når der trykkes på knappen for at lukke låsen, skubbes '0' ind i firebase-databasen. ESP-tavlen læser denne værdi kontinuerligt i firebase-databasen. Så længe der er 0, vil ESP32 lede servomotoren til at forblive i sin oprindelige position. Så snart 1 kommer ind i pejsen, vil ESP-kortet læse den og bede servomotoren om at dreje en rotation, der åbner låsen.

Trin 5: Kom godt i gang med ESP32

Hvis du ikke har arbejdet på Arduino IDE før, skal du ikke bekymre dig, fordi der vises trin for trin for at konfigurere Arduino IDE nedenfor.

  1. Download den nyeste version af Arduino IDE fra Arduino.
  2. Tilslut dit Arduino-kort til pc'en, og åbn Kontrolpanel. Klik på Hardware og lyd.Nu åben Enheder og printer og find den port, som dit kort er tilsluttet. I mit tilfælde er det COM14men det er anderledes på forskellige computere.
  3. Klik på File og derefter på Preferences. Kopier følgende link i Ekstra bestyrelsesleder URL. “https://dl.espressif.com/dl/package_esp32_index.json ”
  4. For at bruge ESP32 med Arduino IDE skal vi importere specielle biblioteker, der giver os mulighed for at brænde kode på ESP32 og bruge den. disse to biblioteker er vedhæftet i nedenstående link. For at inkludere biblioteket, gå til Skitse> Inkluder bibliotek> Tilføj ZIP-bibliotek. En boks vises. Find ZIP-mappen på din computer, og klik på OK for at inkludere mapperne.
  5. Nu goto Skitse> Inkluder bibliotek> Administrer biblioteker.
  6. En menu åbnes. Skriv i søgefeltet Arduino JSON.En liste vises. Installere Arduino JSON af Benoit Blanchon.
  7. Klik nu på Værktøjer.En rullemenu vises. Indstil tavlen til ESP Dev-modul.
  8. Klik på værktøjsmenuen igen, og indstil den port, du har observeret i kontrolpanelet før.
  9. Upload nu koden, der er vedhæftet i nedenstående link, og klik på upload-knappen for at brænde koden på ESP32-mikrokontrolleren.

Så nu når du uploader koden, kan der opstå en fejl. Dette er den mest almindelige fejl, der kan opstå, hvis du bruger en ny version af Arduino IDE og Arduino JSON. Følgende er de fejl, du kan se på skærmen.

I filen inkluderet fra C: \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, fra C: \ Brugere \ Pro \ Desktop \ smartHome \ kode \ code.ino: 2: C : \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: fejl: StaticJsonBuffer er en klasse fra ArduinoJson 5. Se arduinojson.org/upgrade for at lære, hvordan du opgraderer dit program til ArduinoJson version 6 StaticJsonBuffer jsonBuffer; ^ I filen inkluderet fra C: \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, fra C: \ Brugere \ Pro \ Desktop \ smartHome \ kode \ code.ino: 2: C: \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: fejl: StaticJsonBuffer er en klasse fra ArduinoJson 5. Se venligst arduinojson.org/upgrade for at lære at opgradere dit program til ArduinoJson version 6 returnerer StaticJsonBuffer() .parseObject (_data); ^ Der blev fundet flere biblioteker til "WiFi.h" Brugt: C: \ Brugere \ Pro \ AppData \ Lokal \ Arduino15 \ pakker \ esp32 \ hardware \ esp32 \ 1.0.2 \ biblioteker \ WiFi Ikke brugt: C: \ Program Files ( x86) \ Arduino \ biblioteker \ WiFi Brug af bibliotek WiFi i version 1.0 i mappe: C: \ Brugere \ Pro \ AppData \ Lokalt \ Arduino15 \ pakker \ esp32 \ hardware \ esp32 \ 1.0.2 \ biblioteker \ WiFi Brug af bibliotek IOXhop_FirebaseESP32-master i mappe: C: \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ IOXhop_FirebaseESP32-master (arv) Brug af bibliotek HTTPClient i version 1.2 i mappe: C: \ Brugere \ Pro \ AppData \ Lokalt \ Arduino15 \ pakker \ esp32 \ hardware \ esp32 \ 1.0.2 \ biblioteker \ HTTPClient Brug af bibliotek WiFiClientSecure ved version 1.0 i mappe: C: \ Brugere \ Pro \ AppData \ Local \ Arduino15 \ pakker \ esp32 \ hardware \ esp32 \ 1.0.2 \ biblioteker \ WiFiClientSecure Brug af bibliotek ArduinoJson på version 6.12.0 i mappe: C: \ Brugere \ Pro \ Dokumenter \ Arduino \ biblioteker \ ArduinoJson exitstatus 1 Fejl ved kompilering til ESP32 Dev-modul.

Der er ikke noget at bekymre sig om, fordi vi kan fjerne disse fejl ved at følge nogle enkle trin. Disse fejl opstår, fordi den nye version af Arduino JSON har en anden klasse i stedet for StaticJsonBuffer.Dette er klassen af ​​JSON 5. Så vi kan simpelthen fjerne denne fejl ved at nedgradere versionen af ​​Arduino JSON af vores Arduino IDE. Gå bare til Skitse> Inkluder bibliotek> Administrer biblioteker.Søge efterArduino JSON af Benoit Blanchonsom du har installeret før. Afinstaller det først, og sæt derefter dets version til 5.13.5. Nu, da vi har indstillet en gammel version af Arduino JSON, skal du installere den igen og kompilere koden igen. Denne gang kompileres din kode med succes.

Klik her for at downloade koden.

Trin 6: Kode

koden for dette projekt er meget enkel, men stadig er nogle klumper af det forklaret nedenfor.

1. I starten af ​​koden inkluderer vi tre biblioteker. Den første er at aktivere Wifi på ESP-kortet, for det andet at gøre det muligt for ESP at bruge servomotor, og den tredje er at forbinde ESP-kortet til firebase-databasen. Derefter tilføjer vi firebase-værten, godkendelse, navnet på vores lokale internetforbindelse og dens adgangskode i koden. Når du har gjort det, skal du oprette et objekt til brug af servomotoren.

#omfatte                  // inkluderer bibliotek for at bruge WiFi # inkluderer                 // inkluderer bibliotek til servomotor # inkluderer  // inkluder bibliotek for at oprette forbindelse til Firebase #define FIREBASE_HOST "xxxxxxxxxx" // erstatte xxxxxxxxxx af din firebase-vært her #definer FIREBASE_AUTH "xxxxxxxxxx" // erstat xxxxxxxxxx med din firebase-godkendelse her #definer WIFI_SSID "xx kode", xx kode " xxxxxxxxxx med navnet på vores Wifi-forbindelse #definer WIFI_PASSWORD "xxxxxxxxxx" // udskift xxxxxxxxxx med din wifi-adgangskode Servo myservo; // Opret objekt til servomotor int pos = 0; // oprettelse af variabel int-tilstand; // opretter variabel

2. ugyldig opsætning () er en funktion, der kun kører en gang i et program, når mikrokontrolkortet tændes, eller der trykkes på aktiveringsknappen. Baudhastigheden indstilles i denne funktion. Baudhastighed er faktisk kommunikationshastigheden i bits pr. Sekund, gennem hvilken mikrocontrolleren kommunikerer med de eksterne enheder. Servomotoren er tilsluttet pin34 på ESP-kortet. kode er skrevet i denne funktion for at forbinde mikrocontrolleren til den lokale internetforbindelse.

ugyldig opsætning () {Serial.begin (115200); // indstilling af baudrate myservo.attach (34); // tilslut PWM-stift på servomotoren til pin34 i ESP32 myservo.write (60); forsinkelse (1000); // opret forbindelse til wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ("forbinder"); mens (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); forsinkelse (500); } Serial.println (); Serial.print ("forbundet:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. ugyldig sløjfe () er en funktion, der kører igen og igen i en løkke. I denne funktion fortæller vi mikrokontrolleren, hvilke operationer der skal udføres, og hvordan. Her læses data fra firebase og lagres i den navngivne variabel stat. Hvis tilstanden har værdien '0', indstilles servomotorens position til 8 grader. Hvis værdien i variabel tilstand er lig med '1', vil servomotorens position blive indstillet til 55 grader.

ugyldig sløjfe () {state = Serial.println (Firebase.getFloat ("motor")); // læse data fra firebase // hvis tilstanden er '0' vil DC-motoren slukke, hvis (tilstand == '0') {myservo.write (8); // indstil position for servomotorforsinkelsen (1000); // vent på onw anden Serial.println ("Dør låst"); } ellers hvis (state == '1') {myservo.write (55); // indstil ny position for servomotorforsinkelsen (1000); // vent et sekund Serial.println ("Dør ulåst"); } // håndteringsfejl, hvis (Firebase.failed ()) {Serial.print ("setting / number failed:"); Serial.println (Firebase.error ()); Vend tilbage; } forsinkelse (1000); 
Facebook Twitter Google Plus Pinterest