Menü
Ingyenes
becsekkolás
a fő  /  ÁLTAL / Elektronikus zár az arduino nano számára. Szokatlan kombinációs zár az Arduino-n

Elektronikus zár az arduino nano számára. Szokatlan kombinációs zár az Arduino-n

Képzeljen el egy RF-kulcsos ajtózárat.

A zár így működik: Hoztuk a kulcsunkat (RFID-tag) - a zár bezárult, újra hozta a kulcsot - a zár kinyílt. A zár működésének megjelenítéséhez hat kétszínű LED-et (vonalzót) használnak. Záráskor piros fény fut át, nyitáskor zöld. Ha bárkinek elhozza a kulcsot, akkor a piros LED-ek villogni kezdenek.

Hajtóműként úgy döntöttem, hogy az autó központi zár meghajtását használom. Vásárolhat újat, használhatja, nem nagy az árkülönbség, ezért újat használtam, megbízhatóbb. A hajtórúd csatlakozik a reteszhez. Az espagnolette még mindig szovjet, erős. És nincs szükségem erőteljes "rongálásellenesre".

A "gépet" két vezeték vezérli. Az egyik polaritás kiterjeszti a szárat, a fordított polaritás pedig visszahúzza a szárat. 12 V feszültség mellett az áram 6 A, sok ...
A "gépben" nincsenek kapcsolók.

Abból a tényből kiindulva, hogy a zár áramkör (amint azt elképzelték) garantált áramellátással, 12 voltos akkumulátorral rendelkezik, a zár működésének biztosítása érdekében, ~ 220 veszteség esetén. Kidolgozta a "gép" hídszabályozási sémáját. Az áramkör különlegessége a nemlinearitása, amely biztosítja a zárszerkezet megbízható működését, és ugyanakkor - a "gép" és a legfontosabb tranzisztorok kíméletes működési módját.

A fenti diagramban a "Bezárás" váll piros színnel, a "Nyitott" váll pedig zöld színnel van kiemelve. A vállak külön áramellátást kapnak, az ellenállásokon keresztül (a tápegységben találhatók). A hídkarok áramellátásának szétválasztása, bevezetve a téves riasztások kiküszöbölésére.

Magyarázat: 33 ohmos ellenállásokon keresztül (az áramellátási ábrán) 12 voltos feszültség tölti fel a kondenzátorokat (2000 mikrofarád, mindkét karban). Amikor a vezérlőfeszültség a vezérlőtől származik, Arduino_ProMini- 168 a "Bezárás" bemenetre (vagy hasonlóan a "Megnyitás") bemenetre, a PVT322 optocsatolón keresztül - kinyílik a megfelelő kulcskar. Ebben az esetben a következő történik: A billentyűk kinyitásának pillanatában a kondenzátorok energiája erőteljesen "meghúzza" a "gép" motorját. Mivel a kondenzátorok lemerülnek (ez gyorsan megtörténik), az "autó" motorját egy ellenállások által korlátozott áram táplálja (33 Ohm). Emiatt a zár „lezárásának” - „nyitásának” folyamatának végén a rúd meglehetősen lassan mozog.

A motorvezérlésnek ez a módja optimális.

Transzformátor áramellátási áramköre. Általában a zár áramkört 12 voltos, 2,8 -A / H akkumulátor táplálja. A tápfeszültség áramkör pedig az akkumulátort a névleges szinten tartja. A hálózati LED a tápegység normál működését jelzi.

Minden dióda 1N4007 (elfelejtettem feltüntetni a diagramon, de az illető feltette a kérdést - melyiket?).

(1) összeszerelt túláramkorlátozó. R ellenállás 1 a felső áramküszöb 300 mA-re van beállítva.
Az integrált LM317 stabilizátoron (2) összeszerelt feszültségszabályozó. A stabilizációs feszültséget egy ellenállás állítja beR 2 ... Az akkumulátor feszültségének 13,7 voltnak kell lennie.

Az akkumulátor feszültségét három ponton táplálják.
Az (X), (Y) ellenállásokon keresztül (egyenként 33 Ohm) - az "autó" motor "vezető" gombjainak karjainak tápellátása.

A legtöbb eszközemet abból gyűjtöm, ami kézhez került. Ez a projekt sem kivétel. Testként testet használok :) elektronikus előtétből:

A 2-es ... 7-es LED-ek kétszínűek. Egy vonalban vannak elrendezve. A zár „nyitási” és „zárási” folyamatainak vizualizálására szolgálnak. Díszítés.

Ez a projekt moduláris, azaz különböző elemeket csatlakoztathat / leválaszthat, és különböző funkciókat kaphat. A fenti képek az opciót mutatják be teljes funkcionalitással, nevezetesen:

  • Reteszelő mechanizmus... Az ajtó kinyitására és bezárására szolgál. Ez a projekt három különböző mechanizmus használatát fedi le:
    • Szervo. Vannak nagyok, vannak kicsik. Nagyon kompakt és nehéz csavarral kiváló lehetőség
    • Az autóajtó zárának elektromos meghajtása. Nagy és hatalmas dolog, de csak őrült áramlatokat eszik
    • Mágnesszelep retesz. Jó lehetőségahogy becsapja magát

    A firmware-beállításokban három típus közül választhat (beállítás lock_type)

  • Gomb bent... Az ajtó belülről történő kinyitására és bezárására szolgál. Helyezhető az ajtókilincsre (tenyér vagy ujj oldalra), magára az ajtóra vagy a gerendára
  • Gomb kint... Az ajtó bezárásához, valamint az energiatakarékosságból való Ébredéshez szolgál. Helyezhető az ajtókilincsre (tenyér vagy ujj oldalra), magára az ajtóra vagy a gerendára
  • Vége stop becsukni az ajtót. Arra szolgál, hogy automatikusan bezárja a zárat, amikor az ajtó becsukódik. Lehetnek:
    • Tact gomb
    • Hall-érzékelő + mágnes maga az ajtón
    • Reed kapcsoló + mágnes maga az ajtón
  • Titok hozzáférés visszaállítás gomb... A jelszó visszaállítására / új jelszó megadására / új kulcs / kombináció memorizálására szolgál stb. Lehet rejtve valahol az ügyben
  • Fénykibocsátó dióda a munka jelzésére. RGB LED, piros és zöld színeket használnak (összekeverve sárga színt adnak):
    • Zölden világít - a zár NYITVA. Ég, hogy ne felejtse el bezárni az ajtót
    • Folyamatosan sárga - a rendszer felébredt és a jelszó megadására vár
    • Pirosan villog - az akkumulátor lemerült

Ezen elemek bármelyike \u200b\u200bkizárható a rendszerből:

  • Eltávolítjuk a végálláskapcsolót. A firmware-ben a beállításokban azt is letiltjuk (beállítás farokgomb). A zár bezárásához nyomja meg a gombot
  • Eltávolítjuk a külső gombot. A firmware-ben a beállításokban azt is letiltjuk (beállítás ébresztő_gomb). Most a rendszert nem kell felébreszteni, magától felébred (valamivel nagyobb az energiafogyasztás). És az ajtó elején még nincs bezáró gomb, és szükségünk van egy végálláskapcsolóra. Vagy a zár a fene
  • Eltávolítjuk a belső gombot. Ez az opció alkalmas szekrények és széfek számára. A beállításokban semmit sem kell módosítania
  • Eltávolítjuk a LED-et. A beállításokban semmit sem kell módosítania
  • A hozzáférés visszaállítása gomb az első használat után nem tárolható, vagy átírhatja magának a kódot
  • Ajtó csukva, KÜLSŐEN megnyomva - felébred, várja meg a jelszót / RFID címkét / elektronikus kulcsot / ujjlenyomatot
  • Az ajtó zárva van, a rendszer felébredt, és várja a jelszó megadását. Az idő beállítható (beállítás alvási idő)
  • Az ajtó zárva van, jelszót / címkét / kulcsot adtak meg stb. - nyisd ki
  • Ajtó csukva, Belső részen megnyomva - nyitva
  • Ajtó nyitva, OUT kinyomva - bezár
  • Ajtó nyitva, Belső részen megnyomva - csukja be
  • Az ajtó nyitva van, az END megnyomva van - csukja be

A zár biztosítja az akkumulátor működését alacsony energiatakarékosságú üzemmódban (kapcsolja be a kikapcsolást: beállítás sleep_enable), nevezetesen:

  • Ébredjen néhány másodpercenként, figyelje az EVENT eseményt (opcionális, ha nincs kívül gomb. A beállításban engedélyezheti ébresztő_gomb)
  • Néhány percenként figyelje az Akum feszültségét (be / ki beállítás elem_monitor)
  • Ha az Akum lemerült (a feszültség a beállításban van beállítva bat_low):
    • nyissa ki az ajtót (opcionális, a firmware-ben konfigurálható) open_bat_low)
    • megtiltják a további nyitást és zárást
    • a gombok megnyomásakor villog a piros LED
    • hagyja abba az ESEMÉNY figyelését (azaz írja be a jelszót / címkét stb.)

Amikor a rendszer ébren van, nyomja meg a jelszó módosítása gombot (rejtett gomb). Belebukunk jelszómódosítási mód:
Írja be a jelszót a számokból ( MAXIMÁLIS 10 DIGIT !!!)

  • Amikor megnyomja a * gombot, a jelszó beíródik a memóriába, és a rendszer kilép a jelszó megváltoztatásától
  • A # megnyomásakor a jelszó visszaáll (újra beírhatja)
  • Ha 10 másodpercig nem nyom meg semmit, automatikusan kilépünk a jelszómódosítási módból, a jelszó régi marad

Amikor a rendszer ébren van (gombokkal ébresztett, vagy az alvó mód le van tiltva), nyomja meg a * gombot a jelszó beviteli módba való belépéshez
Ha a rendszer alszik és időszakosan felébred az ESEMÉNY ellenőrzésére, akkor nyomja meg a * gombot és tartsa lenyomva, amíg a piros LED kigyullad
Jelszóbeviteli mód:

  • A jelszófeldolgozás úgy történik, hogy a helyes jelszót csak akkor számolják, ha beírják a helyes számsort, vagyis ha a jelszó 345, akkor bármilyen számot be lehet írni, amíg a 345 sorrend meg nem jelenik, azaz A 30984570345 kinyitja a zárat, mivel 345-re végződik.
  • Ha a jelszót helyesen adta meg, az ajtó kinyílik
  • Ha nem nyom meg semmit, 10 másodperc múlva a rendszer visszatér normál (készenléti) üzemmódba
  • Ha megnyomja a # gombot, azonnal kilépünk a jelszó beviteli módból
  • Ha megnyomja titkos gomb jelszó megadásával módosítsa a jelszót, akkor mi is kilépünk belőle

A DACHA, mint a legtöbb ember, a következő szavakkal társítja: pihenés, grillezés, kényelem és egyéb kellemes test- és szellemmozgások, de van hátoldal: veteményeskert, ásás, javítás, építés stb.

Tíz éve próbálom a családom javítani és maximális kényelmet teremteni vidéki házunkban. Építünk, javítunk stb. Ház, istálló, fürdő ... ... végül egy utcai kerítéshez, kapuhoz és kapuhoz érkezett. Ez lelkiismeretes, költségvetés és kényelem.

Néhány részlet megbeszélése után úgy döntöttek, hogy a kapunak automatikusnak kell lennie, és a kapunak kell lennie az ACS bizonyos tulajdonságainak. A kapuval a kérdés megoldódott automatizálási készlet (meghajtó, sín, távirányító stb.) Megvásárlásával, a kapuval pedig néhány problémát meg kellett oldani, az alábbiakról.

A feladatok a következők voltak:

  1. A várnak korábban kellett volna működnie telepített videó kaputelefon (nyissa ki a kaput a ház elhagyása nélkül)
  2. Legyen képes nyitni az ajtót szokásos kulccsal, kulcs nélkül az utcáról és az udvarról.
  3. Tartani fogja a fennmaradó költségvetést, legfeljebb 5000 rubel.

A Runet-ben végzett keresések a következő ártartományt mutatták 7000-től a végtelenségig. Eltűnt egy kész megoldás megvásárlása, és bőséges lehetőségekkel rendelkező alternatívát terveztek, nevezetesen, hogy maga vágja be az ajtót!

Néhány számítás és számítás után úgy döntöttek, hogy elektromechanikus zárat vásárolnak körülbelül 2000 rubelért, vízálló billentyűzetet 350 rubelért és egy MK-t, amely ide fog kormányozni. Mivel több Arduino nano tábla, relé és laza darab, valamint néhány vezeték volt raktáron, a kész készlet költsége közötti különbség több mint 4000 tr. Számomra remek bónusz a pénztárcának és az önfejlesztésnek.

Nos, most, a szavaktól a cselekvésig:

Miután megvásárolta az összeset szükséges alkatrészek látni kezdett.

Billentyűzet kapcsolási rajz

A panel további LED-jelzése (fehér, zöld, piros) a kezelő jelzéseivel (írja be, helyes jelszóval nyissa ki az ajtót, elutasította).

  • 9. tű sárga
  • 10. tű zöld
  • 11. tű piros

A panel (rács) plexiből készült, amelyet egy doboz csokoládéba vágtak, és az irodában a szomszédok mosolyogtak. De a legkisebb vágó egy kicsit kövérebbnek bizonyult, reszelővel kellett dolgoznom.

Nos, itt a hétvége, a dachába költöztem.

Az elektromechanikus zár kinyitásához 12 voltra van szükség. Az MK-t ellátó tápegység 5 V volt, a megoldás az volt, hogy egy fokozatos egyenáramú átalakítót láttak el az égből a zár számára. Elkezdtem mindent ellenőrizni, működik, de amikor feszültséget fektettek a zár mágnesszelepére, a dunya újraindult, rövidzárlat volt az áramellátásban. Továbbá, miután összekötöttük a kültéri panelt a video kaputelefonról a zárral, amikor az ajtó kinyitásához megnyomtuk a gombot, semmi sem történt, egy kis áram a zár felé. Új vezetékek meghúzása nem lehetséges, ezeket már a ház kijáratánál betonozták. Úgy döntöttem, hogy felveszek egy másik relét a panelhez, és további 12 voltos tápegységet teszek. a kastélyért. Az elemzés / gyűjtés után minden működött, az MK abbahagyta az újraindítást. Az egészet vízálló elosztódobozba rejtettem, elrejtettem a vezetékeket, ragasztót, szilikont és kész!

A haladás nem áll meg, és az "intelligens zárak" egyre inkább megjelennek a lakások, garázsok és házak ajtaján.

Hasonló zár akkor nyílik meg, amikor megnyom egy gombot egy okostelefonon. Szerencsére az okostelefonok és a táblagépek már beléptek a mindennapjainkba. Bizonyos esetekben az "intelligens zárak" csatlakoznak a felhőszolgáltatások"mint egy google meghajtó, és távolról nyithat meg. Ezenkívül ez az opció lehetővé teszi, hogy hozzáférést nyújtson az ajtó megnyitásához más emberek számára.

Ebben a projektben az Arduino intelligens zárának barkácsverzióját valósítják meg, amelyet a Föld bármely pontjáról távolról lehet irányítani.

Ezenkívül a projekt lehetővé tette a zár kinyitását az ujjlenyomat-felismerés után. Ehhez egy ujjlenyomat-érzékelőt integrálnak. Mindkét ajtónyitási lehetőséget az Adafruit IO platform hajtja.

Az ilyen zár nagyszerű lépés lehet az intelligens otthon projektben.

Ujjlenyomat-érzékelő beállítása

Az ujjlenyomat-érzékelővel való munkavégzéshez van egy kiváló könyvtár az Arduino számára, amely sokkal könnyebbé teszi az érzékelő beállításának folyamatát. Ez a projekt az Arduino Uno szoftvert használja. Az Internethez való csatlakozáshoz Adafruit CC3000 kártyát használnak.

Kezdjük az áramellátás csatlakoztatásával:

  • Csatlakoztassa az 5 V-os tűt az Arduino kártyáról a piros tápsínre;
  • Az Arduino GND csapja a forrasztás nélküli áramköri kártya kék sínjéhez csatlakozik.

Térjünk át az ujjlenyomat-érzékelő csatlakoztatására:

  • Először csatlakoztassa az áramot. Ehhez a piros vezeték a +5 V sínhez, a fekete vezeték pedig a GND sínhez csatlakozik;
  • Az érzékelő fehér vezetéke az Arduino 4-es érintkezőjéhez csatlakozik.
  • A zöld vezeték a mikrovezérlő 3. érintkezőjéhez megy.

Most foglalkozzunk a CC3000 modullal:

  • A CC3000 kártya IRQ tűje az Arduino 2. érintkezőjéhez csatlakozik.
  • VBAT - az 5. tűhöz.
  • CS - a 10. tűhöz.
  • Ezt követően össze kell kapcsolnia az SPI csapokat az Arduino-val: MOSI, MISO és CLK - a 11., 12. és 13. csapokkal.

Végül áramot kell biztosítania: Vin az Arduino 5V-hez (piros sín az áramköri lapon) és GND-től GND-ig (kék sín a kenyérlapon).

A teljesen összeállított projekt fotója az alábbiakban látható:

Mielőtt kidolgozna egy vázlatot, amely feltölti az adatokat az Adafruit IO-ra, át kell helyeznie az ujjlenyomat-adatokat az érzékelőbe. Ellenkező esetben a jövőben nem ismer fel téged;). Javasoljuk az ujjlenyomat-érzékelő kalibrálását az Arduino használatával. Ha először dolgozik ezzel az érzékelővel, javasoljuk, hogy ismerkedjen meg a kalibrálási folyamattal és az ujjlenyomat-érzékelő használatának részletes utasításaival.

Ha még nem tette meg, akkor hozzon létre egy fiókot az Adafruit IO-nál.

Ezt követően továbbléphetünk az Arduino intelligens zárjának fejlesztésének következő szakaszába: nevezetesen egy vázlat kidolgozásával, amely adatokat továbbít az Adafruit IO-hoz. Mivel a program meglehetősen terjedelmes, a cikkben csak annak fő részeit emeljük ki és vesszük figyelembe, majd egy linket adunk a GitHub-hoz, ahol letöltheti a teljes vázlatot.

A vázlat az összes szükséges könyvtár betöltésével kezdődik:

#include

#include

#include

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_CC3000.h"

#include

#include >

Ezt követően kissé korrigálnia kell a vázlatot a WiFi hálózat paramétereinek beillesztésével, megadva az SSID-t és a jelszót (jelszót):

#define WLAN_SECURITY WLAN_SEC_WPA2\u003e

Ezenkívül meg kell adnia a nevét és az AIO kulcsát (kulcsát) az Adafruit IO fiókjába való bejelentkezéshez:

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_name"

#define AIO_KEY "adafruit_io_key"\u003e

A következő sorok felelnek az ujjlenyomat-érzékelő adatainak kölcsönhatásáért és feldolgozásáért. Ha az érzékelőt aktiválták (az ujjlenyomat egyeztetett), akkor "1" lesz:

const char FINGERPRINT_FEED PROGMEM \u003d AIO_USERNAME "/ feeds / ujjlenyomat";

Adafruit_MQTT_Publish ujjlenyomat \u003d Adafruit_MQTT_Publish (& mqtt, FINGERPRINT_FEED);

Ezenkívül létre kell hoznunk az érzékelőnk számára a SoftwareSerial objektum példányát:

SoftwareSerial mySerial (3, 4);

Ezt követően létrehozhatunk egy objektumot az érzékelőnk számára:

Adafruit_Fingerprint finger \u003d Adafruit_Fingerprint (& mySerial);

A vázlaton belül jelezzük, melyik fingerID aktiválja a zárat a jövőben. Ez a példa 0-t használ, amely megfelel az első érzékelő által használt ujjlenyomat azonosítójának:

int fingerID \u003d 0;

Ezt követően inicializáljuk a számlálót és késleltetjük a projektünket. Alapvetően azt akarjuk, hogy a zár automatikusan megnyíljon. Ez a példa 10 másodperces késleltetést használ, de beállíthatja ezt az értéket az Ön igényeinek megfelelően:

int activationCounter \u003d 0;

int lastActivation \u003d 0;

int activationTime \u003d 10 * 1000;

A setup () függvény törzsében inicializáljuk az ujjlenyomat-érzékelőt, és csatlakoztatjuk a CC3000 chipet az Ön WiFi hálózatához.

A loop () függvény testében csatlakozzon az Adafruit IO-hoz. A következő sor felelős ezért:

Miután csatlakozott az Adafruit IO platformhoz, ellenőrizzük az utolsó ujjlenyomatot. Ha egyezik, és a zár nincs aktiválva, akkor "1" -et küldünk feldolgozásra az Adafruit IO-ban:

if (fingerprintID \u003d\u003d fingerID && lockState \u003d\u003d false) (

Serial.println (F ("Hozzáférés megadva!"));

lockState \u003d true;

Serial.println (F ("sikertelen"));

Soros.println (F ("OK!"));

lastActivation \u003d millis ();

Ha a loop () függvényen belül a zár aktiválódik, és elértük a fent jelzett késleltetési értéket, akkor "0" -t küldünk:

if ((activationCounter - lastActivation\u003e activationTime) && lockState \u003d\u003d true) (

lockState \u003d hamis;

if (! ujjlenyomat.publish (state)) (

Serial.println (F ("sikertelen"));

Soros.println (F ("OK!"));

A kód legújabb verzióját a GitHub webhelyről töltheti le.

Itt az ideje, hogy teszteljük a projektünket! Ne felejtse el letölteni és telepíteni az összes szükséges Arduino könyvtárat!

Győződjön meg róla, hogy minden szükséges módosítást végrehajtott a vázlaton, és feltöltötték Arduino-ra. Ezután nyissa meg a soros monitor ablakát.

Amikor az Arduino csatlakozik WiFi hálózatok, az ujjlenyomat-érzékelő pirosan villog. Helyezze az ujját az érzékelőre. A soros monitor ablakának meg kell jelenítenie az azonosító számot. Ha egyezik, megjelenik az "OK!" Üzenet. Ez azt jelenti, hogy az adatokat elküldtük az Adafruit IO szerverekre.

Ábra és vázlat a zár további konfigurálásához egy LED példájával

Most térjünk le a projekt azon részére, amely közvetlenül felelős az ajtózár vezérléséért. Csatlakozáshoz vezetéknélküli hálózat és a szükséges zár aktiválása / deaktiválása kiegészítő modul Adafruit ESP8266 (az ESP8266 nem feltétlenül az Adafruit cégtől származik) Az alábbi példa segítségével értékelheti, hogy milyen egyszerű az adatok cseréje két platform (Arduino és ESP8266) között az Adafruit IO használatával.

Ebben a szakaszban nem fogunk közvetlenül dolgozni a zárral. Ehelyett egyszerűen csatlakoztatjuk a LED-et ahhoz a csaphoz, amelyre a zár később csatlakozik. Ez lehetővé teszi a kódunk tesztelését anélkül, hogy mélyen belemennénk a zár kialakításába.

A séma meglehetősen egyszerű: először telepítse az ESP8266-ot a kenyérlapra. Ezután telepítse a LED-et. Ne felejtsük el, hogy a LED hosszú (pozitív) lába ellenállással van összekötve. Az ellenállás második lába az ESP8266 modul 5. érintkezőjéhez csatlakozik. A LED második (katódja) az ESP8266 GND csapjához van csatlakoztatva.

A teljesen összeállított áramkört az alábbi fotó mutatja.


Most nézzük meg a vázlatot, amelyet ehhez a projekthez fogunk használni. Ismételten, a kód meglehetősen terjedelmes és összetett, ezért csak a főbb részeit fedjük le:

A szükséges könyvtárak összekapcsolásával kezdjük:

#include

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_Client.h"

WiFi paraméterek konfigurálása:

#define WLAN_SSID "your_wifi_ssid"

#define WLAN_PASS "your_wifi_password"

#define WLAN_SECURITY WLAN_SEC_WPA2

Konfiguráljuk az Adafruit IO paramétereket is. Ugyanaz, mint az előző szakaszban:

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883

#define AIO_USERNAME "adafruit_io_username"

#define AIO_KEY "adafruit_io_key"

Jelezzük, hogy melyik tűre csatlakoztattuk a LED-et (a jövőben ez lesz a zárunk vagy relénk):

int reléPin \u003d 5;

Az ujjlenyomat-érzékelővel való interakció megegyezik az előző szakaszban leírtakkal:

const karakter LOCK_FEED PROGMEM \u003d AIO_USERNAME "/ feeds / lock";

Adafruit_MQTT_Subscribe lock \u003d Adafruit_MQTT_Subscribe (& mqtt, LOCK_FEED);

A setup () függvény törzsében azt jelezzük, hogy annak a csapnak, amelyhez a LED csatlakozik, OUTPUT módban kell működnie:

pinMode (relayPin, OUTPUT);

A cikluson belül () először ellenőrizzük, hogy kapcsolódtunk-e az Adafruit IO-hoz:

Ezt követően ellenőrizzük, hogy milyen jel érkezik. Ha "1" adást továbbítunk, aktiváljuk azt a kontaktust, amelyet korábban deklaráltunk, amelyhez a LED-ünk csatlakozik. Ha "0" értéket kapunk, akkor a kapcsolattartót "alacsony" állapotba helyezzük:

Adafruit_MQTT_Subscribe * előfizetés;

while ((előfizetés \u003d mqtt.readSubscription (1000))) (

if (előfizetés \u003d\u003d & zárolás) (

Soros nyomtatás (F ("Got:"));

Serial.println ((char *) lock.lastread);

// Mentse a parancsot string adatokba

String parancs \u003d String ((char *) lock.lastread);

if (parancs \u003d\u003d "0") (

digitalWrite (relayPin, LOW);

if (parancs \u003d\u003d "1") (

digitalWrite (relayPin, HIGH);

Megtalálni legújabb verzió vázlatot tehet a GitHubon.

Itt az ideje tesztelni a projektünket. Ne felejtse el letölteni az összes szükséges könyvtárat az Arduino készülékéhez, és ellenőrizze, hogy megfelelően módosította-e a vázlatot.

Az ESP8266 chip programozásához egyszerű USB-FTDI átalakító használható.

Töltse fel a vázlatot az Arduino-ra, és nyissa meg a soros monitor ablakát. Tovább ebben a szakaszban most ellenőriztük, hogy sikerült-e csatlakozni az Adafruit IO-hoz: elérhető funkcionalitás tovább mérlegeljük.

A projekt tesztelése

Most kezdjük el a tesztelést! Lépjen az Adafruit IO felhasználói menüjébe a Hírcsatornák menü alatt. Ellenőrizze, hogy létrejöttek-e az ujjlenyomat és a zár csatornái (az alábbi nyomtatási képernyőn találhatók az ujjlenyomat és a zárvonalak):


Ha nincsenek ott, akkor manuálisan kell létrehoznia.

Most biztosítanunk kell az ujjlenyomat- és a zárcsatornák közötti adatcserét. A zárcsatornát "1" -re kell állítani, ha az ujjlenyomat-csatorna "1" -re van állítva, és fordítva.

Ehhez egy nagyon hatékony Adafruit IO eszközt használunk: triggerek. Az eseményindítók alapvetően olyan feltételek, amelyeket alkalmazhat a konfigurált csatornákra. Vagyis két csatorna összekapcsolására használhatók.

Hozzon létre egy új reaktív ravaszt az Adafruit IO Triggerek szakaszában. Ez lehetővé teszi az adatok cseréjét az ujjlenyomat-érzékelő és a zárolási csatornák között:


Így kell kinéznie, amikor mindkét indító konfigurálva van:

Összes! Most már valóban tesztelhetjük a projektünket! Ujját az érzékelőre tesszük, és megnézzük, hogyan kezdett kacsintani az Arduino az adatátadásnak megfelelő LED-del. Ezt követően az ESP8266 modul LED-jének villognia kell. Ez azt jelenti, hogy az adatokat az MQTT-n keresztül kezdte meg. Az áramköri panelen lévő LED-nek szintén ekkor kell bekapcsolnia.

A vázlatban megadott késés után (az alapértelmezett érték 10 másodperc) a LED kialszik. Gratulálunk! Ujjlenyomatával vezérelheti a LED-et a világ bármely pontjáról!

Elektronikus zár beállítása

Eljutottunk a projekt utolsó részéhez: közvetlen kapcsolat és irányítás elektronikus zár tól től az Arduino használatával és egy ujjlenyomat-érzékelő. A projekt nem könnyű, az összes forrást felhasználhatja abban a formában, ahogyan a fentiekben bemutatták, de a LED helyett csatlakoztasson egy relét.

A zár közvetlen csatlakoztatásához további alkatrészekre lesz szükség: egy 12 V-os tápegységre, egy aljzathoz az áramellátáshoz, egy tranzisztorra (ebben a példában az IRLB8721PbF MOSFET-et használjuk, de használhatunk még egyet, például egy TIP102 bipoláris tranzisztort is. Ha bipoláris tranzisztort használ, akkor hozzá kell adnia egy ellenállást.

Lásd alább elektromos áramkör minden alkatrész csatlakoztatása az ESP8266 modulhoz:


Vegye figyelembe, hogy ha MOSFET tranzisztort használ, akkor nincs szüksége ellenállásra az ESP8266 5. tűje és a tranzisztor között.

Teljesen összeállított projekt látható az alábbi fotón:


Az ESP8266 modult az FTDI modul segítségével táplálja, és csatlakoztassa a 12 V-os tápegységet az aljzathoz. Ha a fent ajánlott csatlakozócsapokat használta, akkor semmit sem kell változtatnia a vázlaton.

Most ráteheti az ujját az érzékelőre: a zárnak működnie kell, reagálva az ujjlenyomatára. Az alábbi videó bemutatja az automatikus "intelligens" zár működésének projektjét:

A "Smart Lock" projekt továbbfejlesztése

Projektünkben kiadtuk távirányító ajtózár az ujjlenyomatával.

Nyugodtan kísérletezhet, módosíthatja a vázlatot és a hámot. Például kicserélheti az elektronikus ajtózárat egy relére a 3D nyomtató, manipulátor vagy quadcopter teljesítményének szabályozásához.

Fejlesztheti a okos HázPéldául távolról aktiválja az öntözőrendszert az Arduino-n, vagy kapcsolja be a világítást a szobában ... De ne felejtsük el, hogy az Adafruit IO segítségével szinte korlátlan számú eszközt egyszerre aktiválhat.

Hagyja meg észrevételeit, kérdéseit és ossza meg személyes tapasztalat lent. A vita során gyakran születnek új ötletek és projektek!

Ebben a leckében megtanuljuk, hogyan készítsünk egy egyszerű rendszert, amely feloldja a zárat elektronikus kulcs (Címke).

A jövőben módosíthatja és bővítheti a funkcionalitást. Például adja hozzá az "új kulcsok hozzáadása és eltávolítása a memóriából" funkciót. Alapesetben vegyünk egy egyszerű példát, amikor egyedi azonosító A kulcs előre be van állítva a programkódba.

Ebben az oktatóanyagban szükségünk lesz:

A projekt megvalósításához telepítenünk kell a könyvtárakat:

2) Most csatlakoztatnia kell a hangjelzőt, amely jelet ad, ha a kulcs beindul, és a zár kinyílik, és a második jel, ha a zár be van csukva.

A hangjelzőt a következő sorrendben csatlakoztatjuk:

Arduino Berregő
5V VCC
GND GND
5. tű IO

3) A szervót feloldó mechanizmusként fogják használni. Bármely szervo választható, az Ön által igényelt méretek és erők függvényében, amelyeket a szervo hoz létre. A szervónak 3 csapja van:

Világosabban láthatja, hogyan csatlakoztattuk az összes képet az alábbi képen:

Ha minden össze van kapcsolva, folytathatja a programozást.

Vázlat:

#include #include #include // "RFID" könyvtár. #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); aláíratlan hosszú uidDec, uidDecTemp; // a címke számának tizedes formátumban történő tárolása Servo servo; void setup () [Serial.begin (9600); Serial.println ("Várakozás a kártyára ..."); SPI.begin (); // inicializálás SPI / Init SPI bus.mfrc522.PCD_Init (); // inicializálás MFRC522 / Init MFRC522 card.servo.attach (6); servo.write (0); // állítsa a szervót zártra) void loop () (// Keressen új címkét, ha (! Mfrc522.PICC_IsNewCardPresent ()) (return ;) // Válasszon címkét, ha (! Mfrc522.PICC_ReadCardSerial ()) (return;) uidDec \u003d 0; // Issue sorozatszám címkék. mert (bájt i \u003d 0; i< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем hangjelzés, Servo.write megnyitása (90); // Forgassa el a szervót 90 fokos szögben (Bármelyik mechanizmust kinyitjuk: a reteszt, elforgatjuk a kulcsot stb.) Késleltetés (3000); // 3 másodpercig szünetel, és a mechanizmus reteszelődik. hang (5, 500, 500); // Beep, Bezárás) servo.write (0); // állítsa a szervót zárva)

Elemezzük részletesebben a vázlatot:

A kártya (Címkék) UID azonosításához meg kell írnia ezt a vázlatot az arduino-nak, össze kell állítania a fent leírt áramkört és meg kell nyitnia a konzolt (soros portfigyelés). Amikor az RFID-hez viszi a címkét, egy szám jelenik meg a konzolon

A kapott UID-t a következő sorba kell beírni:

Ha (uidDec \u003d\u003d 3763966293) // Hasonlítsa össze a címke Uid-jét, ha az megegyezik az adottval, akkor a szervo kinyitja a szelepet.

Minden kártyának egyedi azonosítója van, és nem ismétli meg önmagát. Így amikor hozza a kártyát, amelynek azonosítóját a programban beállította, a rendszer megnyitja a hozzáférést a szervo segítségével.

Videó: