Víkendový projekt: Bezklíčové otevírání domovních dveří

Podobné dokumenty
Středoškolská technika Scoreboard výsledková tabule pro volejbal, fotbal, házenou a jiné míčové sporty

setup() { I = 0; } loop() { I = I + 1; }

eses výukový multi shield pro Arduino UNO

Čtečka otisků prstů 1. POPIS 2. SPECIFIKACE. ECLIPSERA s.r.o. Distributor pro ČR. VÝROBNÍ ČÍSLO

TFT LCD shield pro Arduino Mega 2560

EduKit84. Výuková deska s programátorem pro mikrokontroléry PIC16F84A firmy Microchip. Uživatelská příručka

1. POPIS 2. SPECIFIKACE. ECLIPSERA s.r.o. Distributor pro ČR. VÝROBNÍ ČÍSLO. Tento malý a kompaktní modul je schopen určit vaši polohu

VUT EBEC2017 Projekt. Wiping Turn Indicator Audi TT

MODUL SPÍNAČŮ MSalfa

ArduinotechGSMShield knihovna

WiFi LED informační panel

Cvičení 2. Obsah a cíle cvičení. Obsah. A5MPL Programování mikropočítačů Digitální vstupy a výstupy - LED a tlačítka.

Návod na stavbu. K3NG open source Arduino CW keyer s podporou WinKey. edice v. 1.0 říjen 2012 od OK1HRA dostupné na

2N LiftIP. IO Extender. Communicator for Lifts. Version

Arduino - řízení krokového motoru

GSM/GPRS modul pro Arduino

Vzdálené ovládání po rozvodné síti 230V

UZM - 2 Univerzální zdrojový modul s nastavitelným omezovačem NOVÉ FUNKCE Instalační návod

Vstupy a výstupy základní sady modulů

Sada videotelefon V2W Manuál

Arduino Data Logger Shield

Vánoční hvězda 2. Publikované: , Kategória: Blikače a optika.

TFT LCD shield MCUFRIEND

Cílem dnešní lekce je obohatit náš dosavadní systém a připravit se na připojení do cloudu

Time RELAY. Přídavný časový spínač. Uživatelská příručka

MW241. Malý I/O modul pro řízení osvětlení LED. Shrnutí

Semestrální práce: Možnosti práce se zvukem na jednočipovém počítači (Arduino, PICaxe, Raspberry Pi) Martin Beránek 24.

DOMOVNÍ TELEFONY S VÝZVOU SOUND SYSTEM

VA/200 MONTÁŽNÍ INSTRUKCE. Popis jednotlivých svorek, obr.1 VA/200 NAPÁJEČ. Provozní vlastnosti

Hlídač světel automobilu

Uživatelský manuál. DALIrel4

Polovodičové usměrňovače a zdroje

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

ODSTRAŇOVÁNÍ PROBLÉMŮ

Zařízení pro sledování polohy objektu pomocí GPS

Elektronická stavebnice: Teploměr s frekvenčním výstupem

Střední průmyslová škola elektrotechniky a informatiky, Ostrava VÝROBNÍ DOKUMENTACE

Kódové označení: RKNP12

MONTÁŽNÍ / UŽIVATELSKÝ NÁVOD ISD COMBI (LIGHT) docházkový snímač

NÁVOD K DOMOVNÍMU VIDEOTELEFONU

MĚŘENÍ HRADLA 1. ZADÁNÍ: 2. POPIS MĚŘENÉHO PŘEDMĚTU: 3. TEORETICKÝ ROZBOR. Poslední změna

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Pro zprovoznění komunikace našeho Sigfox modemu se sítí je potřeba udělat následující kroky. Jako první si otevřeme webové stránky

Měření radioaktivního záření pomocí Arduina

Audio a video vstupní systémy

INSTALAČNÍ MANUÁL DIGITÁLNÍ SYSTÉM DF6000

Automaticky stabilizované 4kolové vozidlo

Modul DHT11 s ESP POPIS 2. SPECIFIKACE. ECLIPSERA s.r.o. Distributor pro ČR. VÝROBNÍ ČÍSLO

KONEKTOROVÝ BLOK PRO BASLER ACE

Schémata a varianty zapojení interkomů DoorBird

Malý I/O modul pro řízení osvětlení a žaluzií

Multifunkční Modul Čítače Pulsů VM107

ELEKTRONICKÉ MODULY. Souprava přepínání videosignálů. Princip zapojení:

Nabíječ NiCd a NiMh článků řízený mikroprocesorem

RE Modul relé výstupů

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Popis vývodů desek, jejich zapojování a spárování robota

Obsah. Rozměry a hmotnost

Arduino - řízení krokového motoru

DPM-D235. Monitor dvou-vodičového systému videovrátných. Monitor CAT5 systému videovrátných

ŘADA ROCK INSTALAČNÍ NÁVOD. Video sada 5 vodičová instalace Bez koaxiálního kabelu T805CZ

Deska kabinového tabla

Montážní návod EV05 (4+N) SYSTÉM 17. modelová řada GENOVA

Malý I/O modul pro řízení osvětlení a žaluzií

Autonomní přístupový sytém IBA-7612

Poznámka U některých zapojení s funkcí interkomu je nutné přerušit drátovou propojku svorek 6-10 uvnitř telefonu.

Průměr jádra vodiče pro propojení videotelefonu a dveřní stanice: Průmyslové CCTV kamery se připojují pomocí koaxiálního kabelu.

rezidence Audio rezidence Audio Souprava série DB Souprava série DA Série IE Příslušenství... 34

Genway Audio. Instalační manuál. Direct call 1+N

Bezpečností upozornění před instalací zařízení

Technická dokumentace. === Plošný spoj ===

SC-9180 Prostorový ovládací modul pro regulátor SC-9100

Středoškolská technika RLC měřicí přístroj

Modul LCD displeje se čtyřmi tlačítky. Milan Horkel

ELEKTRICKÉ ZDROJE. Elektrické zdroje a soklové zásuvky

Volně programovatelný pokojový ovladač

Úvod do mobilní robotiky NAIL028

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Přehled zapojení I/O modulů k systému Control4 - řada FN

Návod k základní instalaci alarmu GSM02

ISH1030. Informace o produktu. Domovní telefon. TCS TürControlSysteme AG Geschwister-Scholl-Str. 7 D Genthin

Sebury W1-A Instalační manuál

Modul. Vlastnosti. Odběr řídicí část. výstupy 0,5A. velikost 6M

Úvod do mobilní robotiky AIL028

SuperCom. Stavebnice PROMOS Line 2. Technický manuál

Instalační manuál kontrolér série inbio a C3

s přístroji s rozhraním PPS2 V objednávce uvádějte počet, název a typové označení. Příklad: 30 ovladačů QAX33.1

Předmět: IMP ZS 2016/17 Projekt: Ovladač výhybek modelové železnice. Autor: Daniel Čejchan xcejch00


Domovní dorozumívací systémy. Art Digitalizační Audio/Video modul pro digitální video systém BUS6 (VX2200)

Moduly zpětné vazby v DCC kolejišti

Arduino Ethernet Shield W5100 R3

VID Art.5456SL Digitální handsfree videotelefon pro soupravy CVK4K/CVK8K

Multifunkční dataloger s displejem EMD-1500

Logické řízení s logickým modulem LOGO!

4.1 Binární vstupní modul 07 DI binárních vstupů 24 V DC, galvanicky oddělených po skupinách, CS31 - linie

P175E Rozšíření monitorovacího přijímače. Návod k použití

RE Modul 24 V relé výstupů

Wie232. Převodník rozhraní Wiegand z bezkontaktních čteček na RS června 2011 w w w. p a p o u c h. c o m

KSR4 "ESCAPE" ROBOT STAVEBNICE

Transkript:

Víkendový projekt: Bezklíčové otevírání domovních dveří Cíl: Nemuset u vchodu do domu hledat klíče, ale "nechat si zabzučet" vhodným vyzváněním na svůj zvonek. Prostředí: Domovní telefon MaT Elektra 8802 s elektrickým otvíračem dveří. Řešení: Do domácího telefonu vestavět zařízení, které bude vyhodnocovat "vzorec" zvonění a v případě rozpoznání očekávané poslupnosti simuluje stisk tlačítka pro otevírání dveří. Realizace: Arduino Pro Mini 5V/16MHz, reléový modul, pár pasivních součástek, 9V baterka. Výběr komponent motivován snahou o rychlý HW i SW vývoj i za cenu zjevného přezbrojení (overkillu). Odkazy: Zapojení telefonu: http://www.matelektra.cz/servis/schemata/ 1131_8802_nv818.htm, Reléový modul: http://www.hwkitchen.com/ products/electronic-brick-5v-relay-module-digital-/

Schéma zapojení Použito Arduino Pro Mini ve verzi 5V, 16MHz pro napěťovou slučitelnost s použitým reléovým modulem. Svorky telefonu jsou na schématu označeny t0, t3 a t9. Fialová část: Napájení 9V baterkou, které lehce pomáhá jednocestně usměrněných a odporovým děličem snížených 12V získaných ze svorky 9 telefonu. Tuto svorku nelze příliš zatěžovat, neboť slouží pro otevírání dveří jejím spojením se zemí a odebíraný proud tedy prochází elektromagnetem otvírače. Červená část: Detekce zvonění. Při zvonění je zde audiosignál přiváděný do sluchátka. Jednocestně usměrněn, napětí sníženo děličem, omezeno zenerovou diodou a filtrováno kondenzátorem. Pulz na vstupu 2 Arduina nejprve vzbudí procesor ze spánku a následně je měřena délka jednotlivých zvonění. Zelená část: Reléový modul. Při logické jedničce na výstupu 6 Arduina sepne relé a svým kontaktem spojí svorku 9 telefonu na zem. Tím aktivuje otvítač dveří. Hnědá část: Indikace probuzení Arduina ze spánku. Vestavěná dioda: Indikuje rozpoznané zvonění.

Montáž do telefonu Kupodivu se v telefonu nachází skvělé místo pro zacvaknutí 9V baterie do výlisků v plastu. Ostatní části byly umístěny na vhodná volná místa. Arduino a pasivní součástky byly naletovány na univerzální plošný spoj. Reléový modul ponechán samostatně. ToDo Vzorec zvonění je zadrátován do aplikace. Lepší by bylo jej uvést například jako řetězec pro snadnější parametrizaci. Nebo dokonce zavést učící režim, kdy lze vzorec zařízení naučit. Ladění aplikace Seriový port je využit pro výstup ladících informací o délce pulzů a jejich vyhodnocení. Pokud tedy zařízení detekuje vyzvánění, ale neotevírá, pak je možné zjistit, co se mu nelíbí pohledem na sériovou konzoli. Jen pozor - zařízení je galvanicky spojeno se systémem domovního telefonu. Trochu jsem se bojím vyrovnávacích proudů v případě špatně uzeměného napaječe a tak jsem počítač připojoval jen když zařízení není připojeno k telefonu. Poznámka Tento popis byl vytvořen pomocí aplikace Notable na ipadu. Kupodivu se moje původní naděje, že kreslení fancy schématu bude rychlé a zábavé a stejně rychlé jako na papír nenaplnila. Kapacitní displeje se pro kresnení něčeho alespoň rámcově přesného nehodí. As-is disclaimer: Toto je rámcový popis řešení, které mi týden pěkně funguje. Pokud se necháte tímto dokumentem inspirovat a něco si poškodíte, tak za mnou nechoďte.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 //Hardcoded ringing pattern is.-- (short, long, long ringing) #include <avr/sleep.h> #include <avr/power.h> #define MAX_PIN_COUNT 22 const int pinring = 2; //Ringing detector const int pinled = 13; //Ringing indication const int pinled2 = 5; //Waken up indicator const int pinrele = 6; //Door opener //Time constants in milliseconds const unsigned long minshort = 20; const unsigned long maxshort = 200; const unsigned long minlong = 350; const unsigned long maxlong = 700; const unsigned long maxpause = 1000; void ledon() { digitalwrite(pinled, HIGH); void ledoff() { digitalwrite(pinled, LOW); void led2on() { digitalwrite(pinled2, HIGH); void led2off() { digitalwrite(pinled2, LOW); void releon() { digitalwrite(pinrele, HIGH); void releoff() { digitalwrite(pinrele, LOW); void wakeup(){ void delay1s() { delay(1000);

49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 void dosleep() { led2off(); attachinterrupt(0, wakeup, HIGH); set_sleep_mode(sleep_mode_pwr_down); sleep_enable(); ADCSRA &= ~(1 << ADEN); power_all_disable(); sleep_mode(); sleep_disable(); detachinterrupt(0); power_all_enable(); led2on(); unsigned long measurelength() { unsigned long firsttime = millis(); unsigned long lasttime = firsttime; while( (millis() - lasttime) < 100) { if(digitalread(pinring) == HIGH) { lasttime = millis(); return lasttime - firsttime; void waitforring() { while(digitalread(pinring) == LOW) ; boolean isshortring(unsigned long howlong) { if( (howlong < maxshort) && (howlong > minshort) ) return true; return false; boolean islongring(unsigned long howlong) { if( (howlong < maxlong) && (howlong > minlong) ) return true; return false; unsigned long measurepause() { unsigned long firsttime = millis(); while( (millis() - firsttime) < maxpause) {

95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 if(digitalread(pinring) == HIGH) { return millis() - firsttime; return 0; // SETUP ----------------------------------------------- void setup() { unsigned short int pin; // Put all pins into output mode and low state for (pin = 0; pin < MAX_PIN_COUNT; pin++) { pinmode(pin,output); digitalwrite(pin,low); pinmode(pinring, INPUT); // Check outputs ledon(); ledoff(); led2on(); led2off(); releon(); releoff(); Serial.begin(9600); //Serial output for debug purposes // LOOP ----------------------------------------------- unsigned long howlong; void loop() { Serial.println("Try it!" ); dosleep(); ledon(); howlong = measurelength(); ledoff();

143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 if(! isshortring(howlong) ) { Serial.println("Not short!" ); howlong = measurepause(); if(howlong == 0) { Serial.println("Pause too long!"); ledon(); howlong = measurelength(); ledoff(); if(! islongring(howlong) ) { Serial.println("Not long!" ); howlong = measurepause(); if(howlong == 0) { Serial.println("Pause too long!" ); ledon(); howlong = measurelength(); ledoff(); if(! islongring(howlong) ) { Serial.println("Not long!" ); if(howlong!= 0) {

191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 Serial.println("This ringing is not expected!" ); releon(); delay(3000); releoff();