Vytvořte automatické zamykání kancelářských dveří pomocí senzoru proximity smartphonu

  • William Charles
  • 0
  • 1187
  • 199
reklama

Pssst - chcete nějakou špičkovou ochranu vaší domácí kanceláře nebo tajný zámek pro vaši kancelář “dílna” (ok, máš mě, je to vlastně žalář / herna) že děti nebudou schopny přijít na to? Dostali jsme tě na sebe. Postavíme inteligentní zámek pro kutily, který automaticky detekuje, když jste tam, a uzamkne, když nejste.

Jak to funguje? NIKDO NEVÍ! Nebo konkrétněji Bluetooth.

Koncept

Váš smartphone je výkonné zařízení, které neustále odhaluje informace o sobě vnějšímu světu; jedním způsobem to je Bluetooth.

V režimu zjišťování vysílá jedinečné identifikační číslo - ale i když to výslovně neumožňuje zjistit, cokoli, co ví, že adresa může zkusit ping. Pokud je slyšet odpověď, znamenalo by to, zda je v dosahu nebo ne.

Připravíme Raspberry Pi s adaptérem Bluetooth, aby neustále hledali, když je váš smartphone mimo dosah, a když je, relé zaskočí a zamkne dveře.

Budete potřebovat

  • Raspberry Pi - jakýkoli model by měl fungovat, protože to není náročná na CPU, ale používám starší model B a piny GPIO se mohou na vašem modelu mírně lišit. Viz níže uvedený oddíl na palubním režimu. Budete také potřebovat nějaké základy, jako je kabelové připojení Ethernet nebo nakonfigurované Wi-Fi. Nastavení bezdrátové sítě v Raspberry Pi Nastavení bezdrátové sítě v Raspberry Pi Prakticky každý projekt Raspberry Pi bude vyžadovat připojení k síti a lze dosáhnout značné flexibility. ignorováním ethernetového portu ve prospěch bezdrátového USB klíče. ; plus karta SD a napájecí kabel micro USB.
  • Bluetooth USB adaptér. Adafruit prodává potvrzený funkční modul Bluetooth 4.0 BLE (co je Bluetooth 4.0? Jak Bluetooth 4.0 mění budoucnost mobilního připojení Jak Bluetooth 4.0 mění budoucnost mobilního připojení Bluetooth je zapomenutá hvězda na specifikačním listu zařízení.), Ale měli byste vyzkoušejte vše, co už máte, než zakoupíte nový právě pro tento projekt. Našel jsem starý standardní Bluetooth mini adaptér, který jsem koupil v Japonsku a zdá se, že funguje dobře. Nezajímá nás rychlost přenosu nebo spolehlivost připojení, protože vše, co děláme, je rozeslání rychlého podání ruky, aby se zjistilo, zda je zařízení naživu a dobře.
  • Rozbočovací deska GPIO (“Švec”) a propojovací kabely. Dalo by se pracovat přímo z kolíků na Pi, ale je to mnohem jednodušší, pokud máte štítky na každém kolíku a jsou stejně $ 6.
  • Reléová deska. Máte zde širokou škálu možností a cokoli bude fungovat, pokud je navrženo pro použití s ​​mikrokontrolérem a dokáže řídit alespoň 12 voltů při 5 ampérech. Použil jsem obecnou 4-kanálovou desku podobnou téhle asi za 5 $, ale předpokládám, že víte, jak pracovat.
  • Elektromagnetický zámek 12/24 V, přesto by měl fungovat i elektronický elektromagnetický zámek. Ten, který jsem si koupil, má přídržnou sílu 180 kg a je dodáván s montážními deskami a pokyny, za přibližně 35 $.
  • Napájení 12/24 V. Magnetický zámek musí mít samostatný zdroj napájení - ať už děláte cokoli, nesnažte se za něj tahat energii z Pi.
  • Lock.py Python aplikace, ale budeme psát to, jak budeme postupovat.

Práce s Bluetooth

Bluetooth je pro tento projekt ústřední, proto začněme instalací podpory Bluetooth a otestováním našeho adaptéru. Můžete to udělat přímo z Pi nebo SSH vzdáleně (jak nastavit Windows do SSH do vás Pi Nastavení Raspberry Pi pro bezhlavé použití s ​​SSH Nastavení Raspberry Pi pro Bezhlavé použití s ​​SSH Raspberry Pi může přijmout Příkazy SSH při připojení k místní síti (buď prostřednictvím sítě Ethernet nebo Wi-Fi), což umožňuje snadné nastavení. Výhody SSH jdou nad rámec rozrušení každodenního screeningu…).

sudo apt-get install bluez python-bluez

Vložte svůj klíč, pokud jste tak již neučinili, a pojďme se podívat, co hlásí.

hcitool dev

Pokud máte ve výstupu něco, můžete jít. Dále použijeme skript Python k dotazování na zařízení Bluetooth v okolí a získáme jedinečnou adresu zařízení. Toto musíme udělat pouze jednou pro každé zařízení.

wget https://raw.githubusercontent.com/karulis/pybluez/master/examples/simple/inquiry.py python query.py

Pokud vidíte “Nalezeno 0 zařízení”, buď nemáte kompatibilní USB Bluetooth dongle, nebo váš smartphone není zjistitelný. Nezoufejte však: Zjistil jsem, že musím ve svém iPhonu otevřít stránku nastavení Bluetooth, abych ji přepnul do režimu zjišťování, pak se to stalo:

Skvělé, nyní vytvořme první fázi našeho softwaru, která provede detekci. Vytvořte aplikaci Python s názvem detek.py, a otevřete to Nano.

nano detection.py

Vložit do tohoto ukázkového kódu:

#! / usr / bin / python importujte čas importu bluetooth, zatímco True: tiskněte "Checking" + time.strftime ("% a,% d% b% Y% H:% M:% S", time.gmtime ()) result = bluetooth.lookup_name ('78: 7F: 70: 38: 51: 1B ', timeout = 5) if (result! = None): print "User present" else: print "User out of range" time.sleep ( 10) 

a upravte následující řádek s adresou zařízení Bluetooth:

result = bluetooth.lookup_name ('78: 7F: 70: 38: 51: 1B ', timeout = 5)

lis CTRL-X a Y zavřít a uložit. Spusťte stejný kód a uvidíte něco podobného:

Kód by měl být velmi srozumitelný, i když jste se nikdy Pythonu nedotkli: skenuje konkrétní zařízení Bluetooth každých 10 sekund a vytiskne jinou zprávu v závislosti na tom, zda je nalezen nebo ne. Přepínáním Bluetooth na telefonu simulujete pohyb v dosahu a mimo dosah (ve skutečnosti asi 4 m). Můžete zkrátit nebo prodloužit dobu mezi skenováním, ale cítil jsem, že 10 sekund je rozumné množství času na to, abych se musel muset počkat, až se dveře odemknou, což je konec konců celý tento projekt.

Měl bych dodat, nevím o spotřebě energie při tom, ale předpokládal bych, že pingování zařízení častěji by nutně vyžadovalo více energie. Při testování jsem neviděl žádné zjevné problémy s výkonem, ale pokud je pro vás životnost baterie vážným problémem, zvažte, zda ve vaší kanceláři najdete přepínač, který aktivuje a deaktivuje skenovací smyčku, takže jakmile budete uvnitř, můžete pozastavit zámek systému, a poté odejděte, když odejdete.

Gratulujeme, nyní máte aplikaci Python, která ví, když jste v dosahu, takže můžeme začít s tím jednat.

Režimy desky GPIO

Než budete pokračovat, musíte zjistit, který režim desky budete používat. Neexistuje žádná správná nebo nesprávná odpověď, pouze to ovlivní, zda zadáte číslo literálu nebo číslo virtuálního GPIO.

Ve výchozím nastavení je použito číslo doslovného kódu PIN (“režim desky”), počínaje pinem 1 vlevo dole (při pohledu dolů na Pi s USB porty vpravo). Pin 2 je těsně nad tím.

Pokud však máte průlom GPIO (“Švec”), štítky, které máte, jsou z alternativního režimu “BCM” (Broadcom SOC kanál), a jsou obvykle psány s GPIO nebo P prefixem čísla. Nepotřebujete striktně GPIO breakout - jen to věci usnadňuje. Pokud nemáte útěkovou desku a nechcete si ji koupit, použijte tento diagram:

Raspberry Pi model A a B pinoutový diagram z RaspberryPi.org

Všimněte si, že původní model B revize 1, revize 2 a model B + a Pi2 mají různé vývody pinů. Na tuto otázku StackExchange najdete diagram, který je pro vaši desku správný.

V tomto kódu projektu používám číslovací systém BCM GPIO, který odpovídá desce Adafruit breakout, kterou mám. Pokud chcete použít režim literálového kolíku, je nutné provést drobné úpravy.

Drát v relé

Připojte odlamovací desku a ujistěte se, že vodič z kolíků 1 a 2 (ty v rohu vašeho Pi) je připojen k 3v3 a 5V0 na odtržení. Možná budete chtít vytáhnout tester napětí, abyste to zkontrolovali.

Než budete pokračovat, zkontrolujte, zda někdo jiný nepoužil vaše konkrétní relé s Raspberry Pi (nebo si předem vyhledejte, že víte, že funguje). Některé mohou vyžadovat aktivaci 5 V - ale RPi mohou poskytovat pouze 3,3 V na výstupních pinech GPIO. Náhodou, ten, který používám, je spokojený s 3,3V, takže jsem nepotřeboval žádné další obvody, jen ten 5V0 až VCC, GND na GND, a Pin GPIO 23 pro první reléový vstup.

Můj předchozí tutoriál o GPIO Začínáme s GPIO na Raspberry Pi Začínáme s GPIO na Raspberry Pi Pokud máte Arduino v pohodě, počkejte, až se dostanete na Raspberry Pi - tyto věci jsou úžasné. Kromě toho, že jsou plně funkčním počítačem, mají také ... ukázali, jak zapojit tranzistorový obvod, aby bylo možné zvětšit 3,3V na plných 5V, pokud potřebujete (ve skutečnosti jsem použil stejnou reléovou desku pro tento tutoriál, ale nakonec se ukázalo, že jsem nepotřeboval 5V).

Není třeba drát do elektromagnetu, protože při spuštění relé budete slyšet zvukové cvaknutí.

Dále pojďme chytit nějaký kód pro komunikaci s porty GPIO.

Začneme testováním mimo Python, abychom potvrdili, že všechno funguje na samotných portech. Nainstalujte wiringPi, který vám poskytne několik užitečných nástrojů příkazového řádku.

git clone git: //git.drogon.net/wiringPi cd wiringPi ./build

Po instalaci nakonfigurujte GPIO pin 23 jako výstup.

gpio -g režim 23 ven

Nyní proveďte rychlou kontrolu všech portů a potvrďte

gpio -g readall

Budete mít něco podobného, ​​i když vaše může být delší na modelu B + nebo Pi2, protože má více pinů GPIO:

Zpočátku to může být trochu matoucí, ale tabulka je rozdělena uprostřed a pořadí sloupců je obráceno na každé straně. Zcela vlevo a zcela vpravo je číslo PIN BCM. Protože používáme 23, měli byste vidět režim uvedený nyní jako OUT. Toto je užitečný malý příkaz, abyste získali dobrou představu o tom, co se v každém okamžiku děje se všemi vašimi kolíky.

Chcete-li pin napsat vysoko nebo nízko, stačí použít

gpio -g write 23 1 gpio -g write 23 0

Doufejme, že pokud máte relé zapojené správně, uslyšíte, jak se zapíná a vypíná. Pokud ne, nepokračujte, dokud na to nepřišel kabeláž. Nezapomeňte, že k aktivaci relé budete možná potřebovat vyšší napětí.

Jakmile potvrdíte, že relé a GPIO funguje, přidejte moduly Python pro GPIO.

sudo apt-get install python-dev python-rpi.gpio

Nyní upravme naši aplikaci Python tak, aby při detekci telefonu aktivovala nebo deaktivovala relé. V tomto Gist najdete konečný kód. Zkopírujte stávající detek.py na nový lock.py, a přidejte následující příkazy pro import a nastavení:

import RPi.GPIO jako GPIO GPIO.setmode (GPIO.BCM) RELAY = 23 GPIO.setup (RELAY, GPIO.OUT)

V příkazu IF přidejte příkaz k aktivaci nebo deaktivaci relé. Mějte na paměti, že vaše relé může pracovat s nízkým nebo vysokým signálem, proto se po testování odpovídajícím způsobem upravte.

GPIO.output (RELAY, 1)

Chcete-li spustit tuto novou verzi, zadejte před příkaz příkaz sudo - přístup k GPIO vyžaduje oprávnění root.

Zapojení

Poté, co jste potvrdili, že relé spouští pomocí vašeho přibližovacího senzoru, přidejte elektromagnetický zámek. Na straně relé přiveďte 12 V kladný do terminálu označeného COM (společný), potom kladný příkon z elektromagnetu na svorku NO (normálně otevřené, tj. to obvykle není připojeno ke společnému terminálu, ale nastane, když aktivujete relé).

Připojte se k zemi ze zdroje napájení a elektromagnetu na terminálu GND.

Přečtěte si montážní pokyny dodané s vaším zámkem; dveře musí být docela silné a je to snazší, pokud se otevírají od strany, na které má být zámek umístěn. Důl byl opak, takže potřebuji montážní konzolu ve tvaru písmene L, stejně jako další kousek dřeva pro zvětšení tloušťky dveří.

Vylepšení

Byl to pro mě důkaz konceptu, na kterém mohu stavět s jinými projekty, a opravdu jen proto, abych zvědavě sledoval mimo svou kancelář, když tam nejsem - není navržen jako spolehlivý bezpečnostní systém. K tomu budete potřebovat záložní baterii, abyste v případě výpadku energie udrželi tok energie.

Samozřejmě, pokud se někdo vloupe do vašeho domu a dostane se do potíží s přerušením moci, pravděpodobně máte větší problém, že jsou psychopatem, který vás chce zabít, spíše než náhodným zlodějem. Chtěli byste kromě elektronického zámku také fyzický blokovací zámek a opravdu velkou hůl.

Tato technika detekce blízkosti pomocí technologie Bluetooth se samozřejmě neomezuje pouze na automatické zamykání dveří - můžete ji také použít ke spuštění otevírání garážových dveří, když se vrátíte domů, nebo zapnout domácí kino před vstupem do dveří.

Jakou funkci si myslíte, že bych měl přidat další? Měli jste s tím nějaké problémy? Dejte mi vědět v komentářích a udělám vše, co bude v mých silách!




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.