Електронна брава за arduino uno. Автоматично интелигентно заключване и Arduino

Този проект е модулен, т.е. можете да свързвате / изключвате различни елементи и да получавате различна функционалност. Снимките по-горе показват опцията с пълна функционалност, а именно:

  • Заключващ механизъм... Служи за ОТВАРЯНЕ и ЗАТВОРЕНЕ на вратата. Този проект обхваща използването на три различни механизма:
    • Серво. Има големи, има и малки. Много компактен и с тежък болт е чудесен вариант
    • Електрическо задвижване на ключалката на автомобилната врата. Голямо и мощно нещо, но изяжда само безумни течения
    • Соленоидно ключалка. Добър вариант, тъй като се забива

    В настройките на фърмуера можете да изберете всеки от трите типа (настройка тип_заключване)

  • Бутон отвътре... Служи за ОТВАРЯНЕ и ЗАВАРЯВАНЕ на вратата отвътре. Може да се постави на дръжката на вратата (от страната на дланта или пръста), на самата врата или на стойката
  • Копче отвън... Служи за ЗАТВОРИВАНЕ на вратата, както и за ПРОБУЖДАНЕ от енергоспестяване. Може да се постави на дръжката на вратата (от страната на дланта или пръста), на самата врата или на стойката
  • Крайна спиркада затвори вратата. Служи за автоматично затваряне на ключалката при затваряне на вратата. Те могат да бъдат:
    • Тактичен бутон
    • Хол сензор + магнит на самата врата
    • Рид ключ + магнит на самата врата
  • Тайна бутон за нулиране на достъп... Служи за нулиране на паролата / въвеждане на нова парола / запомняне на нов ключ / комбинация и т.н. Може да е скрит някъде в кутията
  • Светодиодза указване на работа. Използват се RGB LED, червени и зелени цветове (когато се смесват, те дават жълто):
    • Свети зелено - ключалката е ОТВОРЕНА. Изгаря, за да не забравите да затворите вратата
    • Постоянно жълто - системата се е събудила и чака въвеждане на парола
    • Мига червено - батерията е изтощена

Всеки от тези елементи може да бъде изключен от системата:

  • Премахваме крайния превключвател. Във фърмуера в настройките също го изключваме (настройка опашка_бутон). Сега, за да затворите ключалката, трябва да натиснете бутона
  • Премахваме външния бутон. Във фърмуера в настройките също го деактивираме (настройка wake_button). Сега системата не трябва да се събужда, тя се събужда сама (разходът на енергия е малко по-висок). Освен това вече нямаме бутон за затваряне отпред на вратата и имаме нужда от краен превключвател. Или ключалката е по дяволите
  • Премахваме вътрешния бутон. Тази опция е подходяща за шкафове и сейфове. Не е нужно да променяте нищо в настройките
  • Премахваме светодиода. Не е нужно да променяте нищо в настройките
  • Бутонът за нулиране на достъпа може да бъде разпоен след първата употреба или можете да пренапишете кода за себе си
  • Вратата затворена, натисната ВЪН - събудете се, изчакайте парола / RFID етикет / електронен ключ / пръстов отпечатък
  • Вратата е затворена, системата се е събудила и чака да бъде въведена паролата. Времето може да се регулира (настройка време за сън)
  • Вратата е затворена, въведена е парола / етикет / ключ и т.н. - отворени
  • Врата затворена, натисната ВЪТРЕ - отворена
  • Врата е отворена, натисна OUT - затвори
  • Отворена врата, натисната ВЪТРЕ - затвори
  • Вратата е отворена, КРАЯТ е натиснат - затвори

Ключалката осигурява работа на батерията в режим на ниско енергоспестяване (включете изключване: настройка sleep_enable), а именно:

  • Събуждайте се на всеки няколко секунди, следвайте СЪБИТИЕТО (по избор, ако няма бутон отвън. Можете да го активирате в настройката wake_button)
  • На всеки няколко минути следете напрежението на Akum (настройка за включване / изключване батерия_монитор)
  • Ако Akum е разреден (напрежението е зададено в настройката bat_low):
    • отворете вратата (по избор, може да се конфигурира във фърмуера open_bat_low)
    • забраняват по-нататъшното отваряне и затваряне
    • когато бутоните са натиснати, мига червеният светодиод
    • спрете да наблюдавате СЪБИТИЯТА (т.е. въведете парола/таг и т.н.)

Когато системата е будна, натиснете бутона за промяна на паролата (скрит бутон). Изпадаме в режим за промяна на паролата:
Въведете паролата от числа ( МАКСИМУМ 10 ЦИФРИ !!!)

  • Когато натиснете *, паролата се записва в паметта и системата излиза от промяна на паролата
  • Когато натиснете #, паролата се нулира (можете да я въведете отново)
  • Ако не натиснете нищо в продължение на 10 секунди, ние автоматично ще излезем от режима за промяна на паролата, паролата ще остане стара

Когато системата е будна (събуди се от бутони или заспиването е деактивирано), натиснете *, за да влезете в режим за въвеждане на парола
Ако системата спи и периодично се събужда, за да провери СЪБИТИЯТА, след това натиснете * и задръжте, докато червеният светодиод светне
Режим на въвеждане на парола:

  • Обработката на паролата се извършва по такъв начин, че правилната парола се отчита само когато е въведена правилната последователност от числа, тоест ако паролата е 345, тогава можете да въведете произволни числа, докато се появи последователността 345, т.е. 30984570345 ще отвори ключалката, тъй като завършва на 345.
  • Ако паролата е въведена правилно, вратата ще се отвори
  • Ако не натиснете нищо, след 10 секунди системата ще се върне в нормален (готовност) режим
  • Ако натиснете #, веднага ще излезем от режима за въвеждане на парола
  • Ако натиснете секретния бутон за промяна на паролата в режим на въвеждане на парола, тогава ние също ще излезем от него

Аз, както повечето, които го имат, свързвам ДАЧА с думите: почивка, барбекю, комфорт и други приятни за духа и тялото движения, но има и минус: градина, копаене, ремонт, строителство и т.н.

От 10 години моето семейство и аз се опитваме да подобрим и създадем максимален комфорт в нашата селска къща. Изграждаме, ремонтираме и др. Къща, плевня, баня ... ... и накрая се стигна до улична ограда, порта и порта. Правейки това е съвестно, бюджетно и удобно.

След обсъждане на някои подробности беше решено портата да бъде автоматична и портата да има някои свойства на ACS. С портата проблемът беше решен чрез закупуване на комплект автоматизация (задвижване, релса, дистанционно управление и т.н.), а с портата беше необходимо да се решат някои проблеми, за тях по-долу.

Задачите бяха както следва:

  1. Ключалката трябваше да работи във връзка с предварително инсталиран видеодомофон (отваряне на портата, без да напускате къщата)
  2. Умеете да отваряте вратата с обикновен ключ и без ключ от улицата и двора.
  3. Ще се запази в рамките на оставащия бюджет до 5000 рубли.

Търсенията в runet представиха следния ценови диапазон от 7000 до безкрайност. Покупката на готово решение изчезна и се замисли алтернатива с много възможности, а именно сами да изрежете вратата!

След някои изчисления и изчисления беше решено да се закупи електромеханична ключалка за около 2000 рубли, водоустойчива клавиатура за 350 рубли и MK, който ще управлява тук. Тъй като имаше няколко Arduino nano платки, релета и свободни парчета и няколко проводника на склад, разликата между цената на готовия комплект беше повече от 4000 tr. За мен страхотен бонус за портфейла и саморазвитието.

Е, сега от думи към действие:

След като закупи всички необходими компоненти, той започна да трион.

Схема за свързване на клавиатурата

Допълнителна LED индикация (бяло, зелено, червено) на таблото със сигнали от клавиатурата (въвеждане, правилна парола отваряне на вратата, отказ).

  • щифт 9 жълт
  • щифт 10 зелен
  • щифт 11 червен

Плексигласовото пано (решетката) беше нарязано в кутия с шоколадови бонбони и усмивка от съседите в офиса. Но най-малката фреза се оказа малко по-дебела, трябваше да работя с пила.

Е, ето уикенда, преместих се в дачата.

За да отворите електромеханична ключалка, имате нужда от 12 волта. Захранването, захранващо МК беше 5 V., решението беше да се сложи покачващ DC-dc преобразувател от небето за ключалката. Започнах да проверявам всичко, работи, но когато се подаде напрежение към соленоида на ключалката, дунята се рестартира, късо съединение към захранването. Освен това след свързване на външния панел от видеодомофона към ключалката, при натискане на бутона за отваряне на вратата нищо не се случи, малък ток към ключалката. Тегленето на нови проводници не е опция, те вече бяха бетонирани на изхода от къщата. Реших да добавя още едно реле за таблото и да сложа допълнително 12V захранване. за замъка. След анализиране / събиране всичко работи, MK спря да се рестартира. Скрих всичко във водоустойчива разклонителна кутия, скрих проводниците, лепилото, силикона и готово!

Днешният урок за това как да използвате RFID четец с Arduino за създаване на проста заключваща система, с прости думи - RFID ключалка.

RFID (англ. Radio Frequency IDentification) е метод за автоматична идентификация на обекти, при който данните, съхранявани в т. нар. транспондери, или RFID тагове, се четат или записват с помощта на радиосигнали. Всяка RFID система се състои от четец (четец, четец или запитващ) и транспондер (известен още като RFID етикет, понякога се използва и терминът RFID етикет).

Този урок ще използва RFID етикет от Arduino. Устройството чете уникалния идентификатор (UID) на всеки RFID етикет, който поставяме до четеца и го показва на OLED дисплея. Ако UID на етикета е равен на предварително дефинираната стойност, която се съхранява в паметта на Arduino, тогава ще видим съобщението „Отключено“ на дисплея. Ако уникалният идентификатор не е равен на предварително зададената стойност, съобщението "Отключено" няма да се появи - вижте снимката по-долу.

Ключалката е затворена

Ключалката е отворена

Подробности, необходими за създаване на този проект:

  • RFID четец RC522
  • OLED дисплей
  • Дъска за хляб
  • жици

Допълнителни детайли:

  • Батерия (powerbank)

Общата цена на компонентите на проекта беше приблизително 15 долара.

Стъпка 2: RFID четец RC522

Всеки RFID етикет има малък чип (бяла карта на снимката). Ако насочите фенерчето към тази RFID карта, можете да видите малък чип и намотка, която го заобикаля. Този чип няма батерия за генериране на енергия. Той получава захранване от четеца безжично, използвайки тази голяма намотка. RFID карта като тази може да се чете от разстояние до 20 мм.

Същият чип съществува в етикетите на RFID ключодържателя.

Всеки RFID етикет има уникален номер, който го идентифицира. Това е UID, който се показва на OLED дисплея. С изключение на този UID, всеки маркер може да съхранява данни. Този тип карта може да съхранява до 1000 данни. Впечатляващо, нали? Тази функция няма да се използва днес. Днес всичко, което интересува, е идентификацията на конкретна карта по нейния UID. Цената на RFID четеца и тези две RFID карти е около 4 щатски долара.

Стъпка 3: OLED дисплей

Този урок използва 0,96 "128x64 I2C OLED монитор.

Това е много добър дисплей за използване с Arduino. Това е OLED дисплей и това означава, че има ниска консумация на енергия. Консумацията на енергия на този дисплей е около 10-20mA и зависи от броя на пикселите.

Дисплеят е с резолюция 128 на 64 пиксела и е малък. Има две опции за показване. Единият от тях е монохромен, а другият, като този, използван в урока, може да показва два цвята: жълт и син. Горната част на екрана може да бъде само жълта, а долната – синя.

Този OLED дисплей е много ярък и има страхотна и много хубава библиотека, която Adafruit разработи за този дисплей. В допълнение към това, дисплеят използва I2C интерфейс, така че свързването с Arduino е невероятно лесно.

Трябва да свържете само два проводника, с изключение на Vcc и GND. Ако сте нов в Arduino и искате да използвате евтин и прост дисплей във вашия проект, започнете от тук.

Стъпка 4: свържете всички детайли

Комуникацията с платката Arduino Uno е много проста. Първо, свържете захранването както към четеца, така и към дисплея.

Внимавайте, RFID четецът трябва да бъде свързан към 3.3V изхода на Arduino Uno или ще се повреди.

Тъй като дисплеят може да работи и при 3.3V, свързваме VCC от двата модула към положителната шина на макетната платка. След това тази шина се свързва към изхода 3.3V от Arduino Uno. След това свързваме двете заземявания (GND) към заземяващата шина на макетната платка. След това свързваме GND шината на макетната платка към Arduino GND.

OLED дисплей → Arduino

SCL → Аналогов щифт 5

SDA → Аналогов щифт 4

RFID четец → Arduino

RST → Цифров щифт 9

IRQ → Не е свързан

MISO → Цифров щифт 12

MOSI → Цифров щифт 11

SCK → Цифров щифт 13

SDA → Цифров щифт 10

Модулът за четене на RFID използва интерфейса SPI за комуникация с Arduino. Затова ще използваме хардуерните SPI щифтове от Arduino UNO.

Изводът RST отива към цифров щифт 9. IRQ щифтът остава изключен. MISO щифтът отива към цифров щифт 12. MOSI щифтът отива към цифров пин 11. щифтът SCK отива към цифров пин 13 и накрая щифтът SDA отива към цифров пин 10. Това е всичко.

RFID четецът е свързан. Сега трябва да свържем OLED дисплея към Arduino с помощта на I2C интерфейс. Така SCL щифтът на дисплея отива към аналоговия щифт на пин 5 и SDA на дисплея към аналоговия щифт 4. Ако сега включим проекта и поставим RFID картата до четеца, можем да видим, че проектът е работи добре.

Стъпка 5: Код на проекта

За да бъде компилиран кодът на проекта, трябва да включим някои библиотеки. На първо място, имаме нужда от библиотеката MFRC522 Rfid.

За да го инсталирате, отидете на Скица -> Включване на библиотеки -> Управление на библиотеки(Управление на библиотеката). Намерете MFRC522 и го инсталирайте.

Нуждаем се също от библиотеката Adafruit SSD1306 и библиотеката Adafruit GFX за картографиране.

Инсталирайте и двете библиотеки. Библиотеката Adafruit SSD1306 се нуждае от малка модификация. Отидете в папката Arduino -> Библиотеки, отворете папката Adafruit SSD1306 и редактирайте библиотеката Adafruit_SSD1306.h... Коментирайте ред 70 и декоментирайте ред 69, защото дисплеят е с резолюция 128x64.

Първо, декларираме стойността на RFID етикета, който Arduino трябва да разпознае. Това е масив от цели числа:

Int код = (69,141,8,136); // UID

След това инициализираме RFID четеца и показваме:

Rfid.PCD_Init (); display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

След това във функцията loop проверяваме етикета на четеца на всеки 100ms.

Ако има етикет на четеца, ние четем неговия UID и го отпечатваме на дисплея. След това сравняваме UID на етикета, който току-що прочетохме, със стойността, съхранена в кодовата променлива. Ако стойностите са еднакви, ние отпечатваме съобщението UNLOCK, в противен случай няма да покажем това съобщение.

If (съвпадение) (Serial.println ("\ nЗная тази карта!"); PrintUnlockMessage ();) else (Serial.println ("\ nUnknown Card");)

Разбира се, можете да промените този код, за да съхранявате повече от 1 UID стойност, така че повече RFID етикети да бъдат разпознати от проекта. Това е само пример.

Код на проекта:

#включи #включи #включи #включи #define OLED_RESET 4 Adafruit_SSD1306 дисплей (OLED_RESET); #define SS_PIN 10 #define RST_PIN 9 MFRC522 rfid (SS_PIN, RST_PIN); // Инстанция на класа MFRC522 :: ключ MIFARE_Key; int код = (69,141,8,136); // Това е съхраненият UID int codeRead = 0; String uidString; void setup () (Serial.begin (9600); SPI.begin (); // Init SPI шина rfid.PCD_Init (); // Init MFRC522 display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // инициализира се с I2C addr 0x3D (за 128x64) // Изчистване на buffer.display.clearDisplay (); display.display (); display.setTextColor (WHITE); // или BLACK); display.setTextSize (2); display.setCursor (10,0); display.print ("RFID Lock"); дисплей.дисплей (); ) void loop () (if (rfid.PICC_IsNewCardPresent ()) (readRFID ();) забавяне (100);) void readRFID () (rfid.PICC_ReadCardSerial (); Serial.print (F ("\ nPICC тип:") ); MFRC522 :: PICC_Type piccType = rfid.PICC_GetType (rfid.uid.sak); Serial.println (rfid.PICC_GetTypeName (piccType)); // Проверете дали PICC от класическия тип MIFARE! = PICMType2pe22 : PICC_TYPE_MIFARE_1K && piccType! = MFRC522 :: PICC_TYPE_MIFARE_4K) (Serial.println (F ("Вашият етикет не е от тип MIFARE Classic.")); return;) clearUID (); return;) clearUID (); Сканирани PICC "s. UID:"); printDec (rfid.uid.uidByte, rfid.uid.size); uidString = String (rfid.uid.uidByte) + "" + String (rfid.uid.uidByte) + "" + String (rfid. uid.uidByte) + "" + String (rfid.uid.uidByte); printUID (); int i = 0; булево съвпадение = вярно; докато (i

Стъпка 6: крайният резултат

Както можете да видите от урока – срещу малко пари можете да добавите RFID четец към вашите проекти. Можете лесно да създадете система за сигурност с помощта на този четец или да създадете по-интересни проекти, например, така че данните от USB диск да се четат само след отключване.

Домакинът на канала в YouTube „AlexGyver“ беше помолен да направи електронна брава със собствените си ръце. Добре дошли в цикъла от видеоклипове за електронни брави на arduino. Най-общо, съветникът ще обясни идеята.

Има няколко опции за създаване на система за електронно заключване. Най-често се използват за заключване на врати и чекмеджета, шкафове. А също и за създаване на скривалища и тайни сейфове. Следователно, трябва да направите макет, с който е удобно да се работи и да можете ясно и подробно да покажете структурата на системата отвътре и отвън. Затова реших да направя рамка с врата. За това се нуждаете от квадратна лента 30 х 30. Шперплат 10мм. Панти за врати. Първоначално исках да направя кутия от шперплат, но се сетих, че всичко в стаята беше осеяно с резервни части. Няма къде да се сложи такава кутия. Следователно ще бъде направено оформление. Ако някой иска да си постави електронна брава, тогава, гледайки оформлението, можете лесно да повторите всичко.

Всичко необходимо за замък може да се намери в този китайски магазин.

Целта е да се разработят най-ефективните схеми и фърмуер за електронни брави. Ще можете да използвате тези резултати, за да инсталирате тези системи на вашите врати, чекмеджета, шкафове и скривалища.

Вратата е готова. Сега трябва да разберете как да отваряте и затваряте по електронен път. За тези цели е подходяща мощна соленоидна ключалка от aliexpress (връзка към магазина по-горе). Ако приложите напрежение към клемите, той ще се отвори. Съпротивлението на бобината е почти 12 ома, което означава, че при напрежение от 12 волта бобината ще консумира около 1 ампер. Литиева батерия и усилващ модул могат да се справят с тази задача. Настройваме на подходящото напрежение. Въпреки че е възможно малко повече. Резето е прикрепено от вътрешната страна на вратата на разстояние, така че да не се захваща за ръба и да може да се затвори. Резето трябва да бъде аналог под формата на метална кутия. Неудобно и погрешно е да го използвате без него. Ще трябва да направим стъпка, поне за да създадем вид на нормална работа.

В режим на празен ход ключалката се отваря нормално, тоест ако има дръжка на вратата, дайте импулс, отворете вратата от дръжката. Но ако го направите, този метод вече не е подходящ. Усилващият преобразувател не може да се справи с натоварването. За да отворите пружинната врата, ще трябва да използвате по-голяма батерия и по-мощен преобразувател. Или мрежовото захранване и чук върху автономността на системата. В китайските магазини има големи дяволи. Подходящи са за кутии. Захранването може да се захранва с помощта на реле или транзисторен mosfet, или ключ за захранване на същия транзистор. По-интересен и по-евтин вариант е серво задвижване, свързано към свързващ прът с всеки заключващ елемент - резе или по-сериозен клапан. Може също да се нуждае от парче стоманена спица, която действа като свързващ прът. Такава система не се нуждае от много ток. Но заема повече място и по-хитра логика на управление.

Има два вида сервоприводи. Малък, слаб и мощен, с който можете спокойно да набутате в дупки в сериозни метални щифтове. И двете показани опции работят както за врати, така и за чекмеджета. Ще трябва да бъркате в кутията, като направите дупка в плъзгащата се стена.

Втора част

Представете си ключалка на вратата, управлявана с RF ключ.

Ключалката работи така: Донесоха НАШИЯ ключ (RFID-маркировка) - ключалката се затвори, донесоха ключа отново - ключалката се отвори. За визуализиране на работата на ключалката се използват шест двуцветни светодиода (линийка). При затваряне минава червена светлина, при отваряне зелена. Ако донесете НЕЧИЙ ключ, червените светодиоди ще мигат.

Като задвижващ механизъм реших да използвам задвижването на централното заключване на колата. Можете да си купите нов, можете да го използвате, разликата в цената не е голяма, затова използвах нов, по-надежден е. Задвижващият прът е свързан към ключалката. Еспаньолетът е все още съветски, здрав. И не ми трябва мощен "антивандализъм".

"Машината" се управлява от два проводника. Едната полярност удължава стеблото, обратната полярност прибира стеблото. При 12 волта токът е 6 ампера, много ...
В "машината" няма крайни изключватели.

Изхождайки от факта, че заключващата верига (както е замислена) има гарантирано захранване, 12 волтова батерия, за да осигури работата на ключалката, в случай на загуба на ~ 220. Разработи схема за управление на моста за "машината". Особеност на схемата е нейната нелинейност, която осигурява надеждна работа на заключващия механизъм и в същото време - щадящ режим на работа на "машината" и ключовите транзистори.

На диаграмата (по-горе) рамото "Затвори" е маркирано в червено, а рамото "Отворено" е маркирано в зелено. Раменете се захранват отделно, чрез резистори (разположени в захранването). Разделяне на захранването на раменете на моста, въведено за премахване на фалшиви аларми.

Обяснение: Чрез 33-ома резистори (на схемата на захранването), напрежение от 12 волта зарежда кондензаторите (2000 микрофарада, във всяко рамо). Когато управляващото напрежение идва от контролера Arduino_ProMini- 168 към входа "Close" (или подобно на "Open"), през оптрона PVT322 - съответното ключово рамо се отваря. В този случай се случва следното: В момента на отваряне на ключовете енергията от кондензаторите мощно „дърпа“ двигателя на „машината“. Тъй като кондензаторите се разреждат (това се случва бързо), двигателят на "колата" се захранва от ток, ограничен от резистори (33 Ohm). Поради това, в края на процеса на "затваряне" - "отваряне" на ключалката, стъблото се движи доста бавно.

Този начин на управление на двигателя е оптимален.

Схема за захранване на трансформатора. По принцип веригата за заключване се захранва от 12-волтова батерия 2,8 -A / H. А захранващата верига поддържа батерията на номинално ниво. Светодиодът за мрежата показва нормална работа на захранването.

Всички диоди са 1N4007 (забравих да посоча на диаграмата, но човекът зададе въпроса - кои?).

(1) сглобен ограничител на свръхток. Резистор R 1 горният праг на тока е настроен на 300 mA.
На вградения стабилизатор LM317 (2) сглобен регулатор на напрежението. Стабилизиращото напрежение се регулира от резисторР 2 ... Напрежението на батерията трябва да бъде 13,7 волта.

Напрежението на акумулатора се подава в три точки.
Чрез резистори (33-Ohm всеки) на (X), (Y) - захранване на рамената на ключовете на "шофьора" на двигателя на "колата".

Събирам повечето от моите устройства от това, което ми е под ръка. Този проект не е изключение. Като тяло използвам тяло :) от електронен баласт:

Светодиодите No-2 ... No-7 са двуцветни. Подредени са в една линия. Използват се за визуализиране на процесите на "отваряне" и "затваряне" на ключалката. Разкрасяване.