Енциклопедія пожежної безпеки

Про датчик руху і підключення його до Arduino. Створення охоронної сигналізації з датчиком руху на базі Arduino і інфрачервоних датчиків Сигналізація на Ардуіно з сиреною

Весна, як відомо, супроводжується різноманітними загостреннями і ось головне «загострення» повилазило зі своїх нір на вулицю, щоб привласнити собі те, що йому не належить. А значить тема захисту свого майна стає, як ніколи, актуальною.
На сайті вже є кілька оглядів на саморобні -. Вони звичайно функціональні, однак у всіх є загальна особливість - залежність від розетки. Якщо з нерухомістю, де вже підведена електрика, це не проблема, то як бути з майном, де розетка далеко або околиці зовсім знеструмлені? Я вирішив піти іншим шляхом - зібрати долгоживущий, максимально простий і незалежний від електроживлення девайс, який буде весь час відсипатися, а при проникненні грабіжників, запускатися і видзвонюють господареві на телефон, сигналізуючи простим дзвінком про тривогу.

предмети огляду

куплені:
1. Макетна плата одностороння 5x7 см: гетинакс - або стеклотекстолит
* - стеклотекстолит набагато якісніше гетинакса.
2. Модуль Neoway M590 -, з антеною на текстоліті -
3. Arduino Pro Mini «RobotDyn» ATmega168PA 8MHz 3.3V -
4. Плата контролю заряду-розряду літію -

Здобуті на розкладках цивілізації:
1. Стійки для плати, випиляні з корпусів приладів - 6 шт.
2. Акумулятор літієвий плоский 1300mAh
3. Скоби, використовувані для фіксації кабелю до стіни
4. ластик канцелярський
5. Мідний дріт товщиною 1.5мм
6. Приладовий корпус з місцевого радіоринку - 1.5$
7. пара світлодіодів різного кольору (Взяв з VHS-плеєра)
8. Антена і кнопка з ковпачком (взяв з Wi-Fi роутера)
9. 4-х контактний клеммник (взяв з з діммера)
10. Роз'єм живлення (взяв зі старого зарядника для 18650)
11. Роз'єм 6-піновий (взяв з DVD-приводу)
12. Жерстяна банка (З-під кави наприклад)

Arduino Pro Mini «RobotDyn» Atmega 168PA 3.3V 8MHz

Технічні характеристики:
мікроконтролер: ATmega168PA
Робоча напруга пряме: .8 - 5.5 В
Робоча напруга через стабілізатор LE33: 3.3 У або 5 В (в залежності від моделі)
Робоча температура: -40 ° C ... 105 ° C
Вхідна напруга: 3.35-12 В (модель 3.3 В) або 5-12 В (модель 5 В)
Цифрові Входи / Виходи: 14 (6 з яких можуть використовуватися як виходи ШІМ: 3, 5, 6, 9, 10, і 11)
Аналогові входи: 6
Таймери-лічильники: два 8-бітних і один 16-бітний
Режими енергозбереження: 6
Постійний струм через вхід / вихід: 40 мА
Флеш пам `ять: 16 Кб (2 використовуються для завантажувача)
ОЗУ: 1 Кб
EEPROM: 512 байт
Ресурс запису / стирання пам'яті: 10,000 Flash / 100,000 EEPROM
Тактова частота: 8 МГц (модель 3.3 В) або 16 МГц (модель 5 В)
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
I2C: A4 (SDA) і A5 (SCL)
UART TTL: 0 (RX) і 1 (TX)
даташит:

Вибір припав на дану атмегу абсолютно випадково. на одному форумі, де обговорювалися енергоекономічних проекти, в коментарях попався рада використовувати саме 168-ю атмегу.
Однак довелося повозиться, щоб таку плату відшукати, оскільки часто-густо всі лоти були завалені 328-ми атмегамі на частоті 16МГц, що працюють від 5В. Для мого проекту такі характеристики були надлишкові і незручні вже спочатку, пошуки ускладнилися.
В результаті набрів на 3.3-вольтів версію Pro Mini на Atmega 168PA на eBay, причому не просту китайську, а під брендом RobotDyn від російського розробника. Так, у мене теж спочатку, як і у вас, виникло зерно сумніву. А дарма. Коли проект вже був зібраний, а AliExpress запровадив обов'язкове платну доставку для дешевих товарів (після якої посилки стали губитися набагато частіше), тo пізніше замовив звичайну Pro Mini Atmega168 (без PA) 3.3V 8MHz. Я трохи експериментував з режимами енергозбереження c обома платами, прошиваючи в кожну спеціальний скетч, що занурює мікроконтролер в максимальний режим енергозбереження і ось що вийшло:
1) Arduino Pro Mini «RobotDyn»: ~ 250мкА
2) Arduino Pro Mini «NoName»: при подачі живлення на стабілізатор напруги (висновок RAW) і випаяному светодиоде споживаний струм склав ~ 3.92мА




- як ви зрозуміли, різниця в енергоспоживанні майже в 16 разів, все тому, що в NoName "мовской Pro Mini використовується зв'язка Atmega168 +, з яких сам МК їсть всього 20мкА струму (це я перевірив окремо), все інше обжерливість доводиться на лінійний перетворювач напруги AMS1117 - даташит це тільки підтверджує:


У випадку з платою від RobotDyn зв'язка вже дещо інша - це Atmega168PA + - тут застосований вже інший LDO-стабілізатор, чиї характеристики в плані енергозбереження виявилися більш приємними:


Випаювати я його не став, тому не можу сказати, скільки Atmega168PA споживає струму в чистому вигляді. В даному випадку мені вистачило ~ 250мкА при харчуванні від нокіевского літієвий акумулятор. Однак якщо випаять AMS1117 c NoName "мовской плати, то ATmega168-я звичайна, в чистому вигляді, як я і сказав вище, споживає 20мкА.
Світлодіоди, які стоять по харчуванню можна зіпхнути чимось гострим. Це не проблема. Стабілізатор Випоюють феном. Однак не у кожного є фен і навички роботи з ним, тому обидва вищенаведених варіанти мають право на існування.

Модуль Neoway M590E

Технічні характеристики:
частоти: EGSM900 / DCS1800 Dual-band, or GSM850 / 1900 or Quad-band
чутливість: -107dBm
Максимальна потужність передачі: EGSM900 Class4 (2W), DCS1800 Class1 (1W)
Піковий струм:
Робочий струм: 210мА
Струм в сплячому режимі: 2.5мА
Робоча температура: -40 ° C ... + 85 ° C
Робоча напруга: 3.3V ... 4.5V (рекомендований 3.9V)
протоколи: GSM / GPRS Phase2 / 2 +, TCP / IP, FTP, UDP etc.
Інтернет: GPRS CLASS 10
даташит:

Найдешевший GSM-модуль, що можна знайти на ринку, як правило б / у, випаяний не завжди спритними китайськими руками з обладнання. Чому не завжди спритними? Так все через випайки феном - нерідко людям ці модулі приходять з закороченому плюсом і мінусом, що є однією з причин їх непрацездатності. Тому перш за все необхідно прозванивать контакти харчування на коротке замикання.

Примітка. Окремий важливий, на мій погляд, момент хотілося б відзначити - ці модулі можуть приходити з круглим коаксіальним роз'ємом під антену, що дозволяє окремо замовити антеннкой серйозніше і без танців з бубном її до модуля підключити. А можуть приходити і без цього роз'єму. Це якщо говорити про найдешевших наборах. Якщо не хочеться сподіватися на щасливу випадковість, тобто набори трохи дорожче, де цей роз'єм присутній + в комплекті йде зовнішня антена на текстолітової платі.

Цей модуль до того ж ще й примхливий до харчування, оскільки в піку він споживає до 2А струму, а діод, що йде в комплекті, ніби як задуманий для зниження напруги з 5В (чому і написано на самій платі 5В) до 4.2В, але судячи за скаргами народу, він створює більше клопоту, ніж користі.
Припустимо цей модуль у вас вже зібраний, а замість діода впаяна перемичка, оскільки ми не збираємося подавати на нього напругу 5В, а будемо плекати його безпосередньо від літієвий акумулятор, що укладається в межі допустимих напружень 3.3-4.2В.
Треба буде його якось ще підключити до комп'ютера, і перевірити на працездатність. Для цього випадку краще заздалегідь прикупити собі - за допомогою нього ми будемо спілкуватися з модулем і платами Arduino по послідовному інтерфейсу UART (USART).
Підключення показано нижче на зображенні (намалював, як вмію):
TX модему \u003e\u003e\u003e RX конвертера
RX модему<<< TX конвертера
Плюс акумулятора - Плюс модему
Мінус літієвий акумулятор об'єднаний з GND модему і GND конвертера
Для запуску модему висновок BOOT через резистор 4.7 кОм подати на GND


Тим часом, на комп'ютері запустити програму. Звернути увагу на налаштування:
1) Вибрати COM-порт, до якого підключений TTL-конвертер, в моєму випадку це COM4, \u200b\u200bу вас може бути інший.
2) Вибрати швидкість обміну даними. (Тут є нюанс, бо самі модулі можуть бути налаштовані під різні швидкості, найчастіше 9600 бод або 115200 бод. Тут потрібно підбирати досвідченим шляхом, обравши якусь швидкість, з'єднавшись, і відправивши команду АТ, якщо у відповідь приходять крякозябри, то відключиться , вибрати іншу швидкість і повторити команду. і так, поки не прийде у відповідь ОК).
3) Вибрати довжину пакета (в даному випадку 8 біт), біт парності відключений (none), стоп-біт (1).
4) Обов'язково поставити галку + CR, І тоді до кожної посилається нами на модуль команді в кінці буде автоматично додаватися символ перенесення каретки - модуль розуміє команди тільки з цим символом в кінці.
5) З'єднання, тут все зрозуміло, натиснули і можемо працювати з модулем.

Якщо натиснути на «З'єднання» і після цього запустити модуль, подавши BOOT через резистор 4.7к на землю, то спершу в терміналі висвітиться напис «MODEM: STARTUP», потім, через деякий час напис "+ PBREADY", що означає, що була прочитана телефонна книга, незважаючи на те, що вона може бути порожньою:

Під цим спойлером АТ-команди з прикладами

Друкуємо команду AT - у відповідь модуль нам надсилає нашу команду, оскільки перебуває в режимі луни, і OK:

Перевіримо статус модему командою AT + CPAS - у відповідь знову наша команда, + CPAS: 0 і ОК.
0 - означає, що модуль готовий до роботи, але в залежності від ситуації можуть бути і інші цифри, наприклад 3 - вхідний дзвінок, 4 - в режимі з'єднання, 5 - сплячий режим. За 1 і 2 інформації не знайшов.

Зміна швидкості передачі даних по UART відбувається командою AT + IPR \u003d 9600 - це якщо потрібна швидкість 9600. Якщо якась інша, аналогічно AT + IPR \u003d 19200 приміром або AT + IPR \u003d 115200.

Перевіримо сигнал мережі. AT + CSQ, у відповідь приходить + CSQ: 22,1 - значення до коми має діапазон 0 ... 31 (115 ... 52дБл) - це рівень сигналу, чим більше, тим краще. Але 99 означає його відсутність. Значення після коми - якість сигналу 0 ... 7 - тут вже навпаки, ніж число менше, тим краще.

Відключимо режим луни, відправивши команду ATE0, щоб дублюючі команди не заважали. Назад цей режим включається командою ATE1.

Подивитися версію прошивки AT + GETVERS



Ці та багато інших команд можна подивитися

поєднання плат

Якщо Pro Mini припаяти до макетної платі не є проблемою, то з GSM-модулем справа дещо складніша, тому що контактна гребінка у нього розташована тільки з одного боку і якщо припаяти тільки її, то інша сторона плати залишиться просто висіти в повітрі. Тоді, знову ж на око довелося свердлити додаткові 3 отвори біля трьох кутів на платі. Потім області навколо кожного з отворів були зачищені від маски. Для зручності, на беспаечное макетну плату (білу) помістив роз'єднані висновки від гребінки і, встановивши на них плату GSM-модуля нормально запаяв:

Пізніше довелося робити ще один отвір, в моєму випадку на букві «I», де написано «Мade In China», з краю плати.


Вийшло так, що доданий контакт, який по суті є GND, став знаходиться поруч c GND плати Pro Mini, і тим самим з'явилася можливість об'єднати землю GSM-модуля і Pro Mini краплею припою (довгий висновок посередині і праворуч від нього висновок Pro Mini) - стрілочками їх зазначив. Кривовато звичайно вийшло, зате надійно тепер тримається:



Між платами залишилося деякий простір - в нього я помістив плату контролю заряду розряду літію з попередньо Випаяв microUSB-роз'ємом і припаяними проводами.

Хустки входить туди дуже щільно, при цьому світіння світлодіодів збоку буде добре помітно через невеликий отвір в корпусі.



Стійки для плати

Щоб надійно закріпити плату всередині корпусу, довелося витратити пару днів на роздуми, як це можна реалізувати. Варіант з термоклеем не розглядалося з кількох причин - він може відвалитися, деформуватися і найголовніше - конструкція вийшла б важко розглядуваної.
Прийшов до думки, що найпростішим і правильним варіантом тут буде застосувати стійки, яких природно у мене не було. Однак було пару неробочих зарядников, звідки було випив по одній довгій стійці з різьбленням під саморізи. Кожна стійка була розпиляна навпіл допив напилком до приблизно 9.5мм - саме при такій висоті розташований під платою акумулятор має достатній запас, приблизно в 2 мм - це зроблено для того, щоб паяні контакти плати своїми вістрями не торкалися нього і щоб була можливість вкласти між ними шматочок поролону для фіксації.
Що стосується прикріплення плати безпосередньо до корпусу, то тут нарізав чотири смужки з банки з-під кави, на кінцях яких просвердлив по отвору, потім закріпив їх на тих же саморезах, які вкручені в стійки. Нижче на фото подивіться, як це виглядає.
Наступний етап - прикрутити пару стійок з іншого боку плати, тобто зверху, щоб при закритому корпусі, кришка злегка впиралася в ці стійки, створюючи додаткову фіксацію. Трохи пізніше, під цю справу мені в руки попався корпус з-під радянського пропагандистського радіо (якби він знайшовся раніше - все стійки взяв би звідси), де знайшов парочку більш-менш придатних за висотою, але спершу я їх по центру рассверлени дрилем під саморізи. Потім спиляв їх і також допив напилком, прибравши надлишки. Тут у мене вийшла одна тонкість - на фото можна помітити, що одна біла стійка прикручена до гетинаксовій платі з краю, а інша біла - безпосередньо до плати модуля, тому що з одного краю плата модему повністю закриває собою плату нижню, а з протилежного краю - навпаки - визирає вже нижня. При цьому в обох платах довелося додатково розсвердлювати отвори, щоб капелюшки саморезов могли вільно пройти.
Ну і нарешті, залишилося зробити так, щоб плата завжди була паралельна корпусу - під цю справу чудово підійшли скоби, які застосовують для фіксації проводів і кабелів на стіні, цвяхи з них я попередньо витягнув. Скоби добре чіпляються до плати увігнутою стороною без будь-яких додаткових пристосувань, єдине - праворуч від SIM-карти, ширина скоби виявилася надмірною і довелося її також відшліфувати.
Всі деталі підганялися на око і досвідченим шляхом, нижче фото всього вищесказаного:



Роз'єми. Світлодіоди. Кнопка.

Так як гребінка у мене закінчилася, довелося з плати DVD-приводу демонтувати 6-піновий роз'єм, який припаяв потім до Pro Mini, це для зручності перепрошивки плати. Поруч же припаяв круглий роз'єм (нокіевскій 3.5мм) для заряду літію.

Корпус 6-пинового роз'єму трохи допив напилком, бо його краї трохи виступали над корпусом. Гніздо зарядки ідеально щільно вперлося в стінку корпусу.

З іншого боку плати припаяв кнопку для перезавантаження пристрою і два світлодіода для налагодження прошивки - червоний світлодіод підключений до GSM-модуля, другий зелений світлодіод до 10-му висновку Pro Mini - по ньому мені простіше налагоджувати програму.

доопрацювання акумулятора

Плоский нокіевскій акумулятор від телефонів Nokia не менш поширений елемент, ніж 18650, проте багато хто просто відмовляються від його використання через незручності підключення контактів, які на самому акумуляторі втоплені вглиб. Паяти їх небажано, тому вирішено було скористатися способом, запропонованим цими, а саме зробити з канцелярського ластику і мідного дроту (товщиною 1.5мм) контактну колодку самому.
Спершу проткнув шматочок гумки двома дротами з попередньо зачищені кінцями, і прикинув до контактів акумулятора, щоб відстань між ними збігалося,
кінчики загнув, залуділ паяльником, а за довгі кінці трохи витягнув назад, щоб отримані контакти виявилися втоплені в ластик.



Примірка на акумуляторі:

Закріпити контактну колодку можна канцелярською гумкою або замотати синьою ізоляційною стрічкою, що я і зробив в результаті.

Збірка.

Основна частина роботи зроблена, залишилося все це зібрати і зафіксувати.
Між акумулятором і платою вклав шматочок поролону, щоб той не елозіл потім всередині корпусу. На харчування модуля я додатково припаяв конденсатор на 2200 мкФ.

Якщо підключено зарядці:

Корпус. Зовнішній клеммник.

Корпус здобув на місцевому радіоринку приблизно за 1.5 $, якщо перевести в долари, розміром 95x60x25мм, практично з пачку сигарет. У ньому я просвердлив кілька отворів. Спершу для 4-х контактного клемника, взятого від непрацюючого підсвічування.
Два крайніх контакту я повністю звільнив від болтів з прокладками, просвердлив отвори під довші болти, на яких весь клеммник і буде триматися на корпусі. На самому ж корпусі, зрозуміла справа, два крайніх отвори будуть великими, а два посередині поменше - в них будуть протягнуті контакти, один з яких підключений до VCC Pro Mini, а другий контакт до піну 2.

Свердління отворів хоч і просте на перший погляд заняття, але все ж не менше трудомістка, дуже легко промахнутися, тому робив це спочатку свердлом меншого діаметру, потім побільше.

Для тактовою кнопки я підібрав ковпачок зі злегка увігнутої вершиною, щоб через вузький отвір в корпусі по ній зручно було потрапити сірником або скріпкою.

Плата в корпусі з підключеним шлейфом USB-TTL конвертера:

Про антену.
Антена, як ви могли помітити по ходу огляду, постійно змінювалася, так як я експериментував з різними саморобними антенами. Спочатку на платі модуля присутній круглий коаксіальний роз'єм, але на п'ятий раз його використання під зовнішню антену він просто розвалився, тому майте на увазі, що він кволий. В результаті видер з старого роутера антену на текстоліті, її і припаяв до плати модуля, тому що вона трохи краще ловить мережу, ніж пружинка і дріт.

Ну і зовсім в зборі з підключеною зарядкою виглядає так:

Тест. Як це працює:

Крім тестів з антенкой я перевіряв, як буде себе вести сигналізація на вулиці, в мороз -15. Для цього я просто помістив нутрощі цілком в контейнер і залишав на балконі на ніч, сигналізація при цьому не стартувала, причина виявилася в общем-то очевидна - літій не любить мороз. Це підтвердилося іншим тестом, де акумулятор я залишав вдома, а плату через довгі дроти виводив на вулицю і залишав так на добу в той же мороз - спрацьовування, як ні в чому не бувало. З іншого боку було б дивно, якби сигналізація не запрацювала тому в даташітах що на атмегу, що на модуль, що на кварц - допустимі температури роботи до -40 градусів.

Принцип роботи організовано по зовнішньому перериванню, спочатку пін 2 замкнутий на VCC і тим самим на виведення підтримується логічний 1, а контролер спить. Як тільки контакт порушується і на піне 2 з'являється 0, мікроконтролер прокидається, опускає 3-й пін (до якого через резистор підключений BOOT модему) до землі - запускається модуль, МК періодично опитує модуль на готовність, і як тільки він зловить мережу, відразу посилає виклик на вказаний в коді номер телефону господаря. Після змогли відповісти на дзвінок, девайс відключається, що не посилаючи більше нескінченних викликів, чим грішать багато китайських сигналізації.

додаткова інформація

#include #include // бібліотека програмного UART SoftwareSerial gsm (7, 6); // RX (7), TX (6) void wakeUp () () // порожній обробник переривання //////////////////////////// /////////////// void gsmOFF () (// PORTD | \u003d (1<<3); // ВЫКЛЮЧЕНИЕ МОДУЛЯ _delay_ms(10); // gsm.println("AT+CPWROFF"); // ПЕЧАТАЕМ КОМАНДУ OFF PORTB &=~ (1<<2); // выключить LED 10 } // //========================================= void gsmON(){ // PORTD|=(1<<6); // 6-му порту (TX) назначить 1 PORTD &= ~(1<<3); // ЗАПУСК МОДУЛЯ _delay_ms(10); // while(!gsm.find("+PBREADY")); // ждём прочтения тел. книги PORTB |= (1<<2); // включить LED 10 _delay_ms(100); // while(1){ // gsm.println("AT+CREG?"); // проверяем в сети ли модуль if (gsm.find("0,1")) break; // если сеть есть, выходим из цикла _delay_ms(400); // проверка раз в 0,4 сек } // } // /////////////////////////////////////////// // void sleepNow(){ // функция засыпания ADCSRA = 0x00; // отключить подсистему АЦП (экономия 140 мкА) PORTD&=~(1<<6); // в вывод TX поставить 0 _delay_ms(100); // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна PWR_DOWN sleep_enable(); // включение сна attachInterrupt(0, wakeUp, LOW); // включить прерывания sleep_mode(); // sleep_disable(); // detachInterrupt(0); // отключить прерывания } void setup(){ gsm.begin(9600); // скорость работы UART DDRD = B01001000; // 3-й и 6-й выводы на выход DDRB |= (1<<2); // вывод 10 на выход gsmON(); // запуск модуля для теста gsmOFF(); // выключаем модуль } void loop(){ if (!(PIND&(1<<2))){ // если на 0-ом прерывании появился 0 gsmON(); gsm.println("ATD+79xxxxxxxxx;"); // отзваниваемся, в ответ приходит OK и CONNECT _delay_ms(100); if (gsm.find("OK")) while(1){ // ожидание сброса вызова gsm.println("AT+CPAS"); // при каждой итерации опрашиваем модуль if (gsm.find("0")) break; // если 0, то выходим из цикла while _delay_ms(100); // проверка раз в 0,1 сек } for (char i=0; i<14; i++){ PORTB|=(1<<2); // LED 10 ON _delay_ms(200); PORTB&=~(1<<2); // LED 10 OFF _delay_ms(200); } gsmOFF(); // выключить модуль _delay_ms(10); while(1); // блокируем программу } else { sleepNow(); // укладываем контроллер спать } }

Схема (без плати контролю заряду-розряду)



Висновки і думки. Плани.

Сигналізація використовується на дачі, роботою задоволений, проте з подальшим вивченням AVR, приходить все більше ідей для подальшої їй модифікації. Ардуіно з його лже-мовою Wiring мене сильно засмутила, тому що виявився один неприємний момент в роботі. Коли я використав функції для роботи з портами digitalWrite (); або pinMode (); - то GSM-модуль чомусь дуже часто зависав. Але варто було замінити їх на викрутаси на кшталт DDRB | \u003d (1<Тільки лише операція прямого звернення до портів заставила запрацювати девайс, як і було задумано.

З енергозбереження ...
Зібраний девайс відпрацював чотири повних місяці без підзарядки і продовжує працювати, хоча правильніше сказати «спати». Перевіряється це простий перезавантаженням через білу кнопку. При енергоспоживанні 250 мкА (через стабілізатор LE33) і акумуляторі ~ 1430 mAh, хоча ладно, з огляду на неновізни акумулятора округлимо до 1000mAh, виходить, що девайс може відсипатися близько 5.5 місяців без підзарядки. Якщо все-таки випаять стабілізатор, то час роботи можна сміливо помножити в 10 разів. Але в моєму випадку в цьому немає потреби, тому що все одно потрібно раз в три місяці витрачати баланс з сімки, заодно і девайс можна перевірити і зарядити.
Наведений в огляді приклад енергозбереження - далеко не межа, тому що судячи з інформації з даташіта, можна понизити тактову частоту мікроконтролера (а робиться це установкою фьюз) до 1МГц і, якщо подати 1.8В напруги, то споживання опуститься нижче планки 1мкА в активному режимі. Вельми непогано! Але якщо МК при цьому буде тактіроваться від внутрішнього RC-генератора, то з'явиться інша проблема - ефір UART виявиться засмічений сміттям і помилками, особливо якщо контролер нагріти або охолодити.

З доопрацювання ...
1) Звичайна дріт, встановлена \u200b\u200bна розрив не зовсім зручна, планую поекспериментувати з датчиком Холла і герконом, хоча про останній кажуть, що не дуже надійний, бо контакти всередині нього можуть залипнути.
2) Непогано було б додати можливість зміни «номера господаря» без участі комп'ютера і перепрошивки. Це вже з EEPROM доведеться попрацювати.
3) Спробувати переривання від сторожового таймера, але не просто заради цікавості, а щоб мікроконтролер періодично прокидався сам, робив заміри напруги акумулятора і відправляв отримане значення по SMS, щоб бути в курсі наскільки акумулятор розряджений.
4) Сонячна панель може і зовсім позбавити від необхідності заряджати девайс, це буде актуально особливо для малоёмкіх акумуляторів.
5) Ще давно хотів прикупити LiFePo4 акумулятори, які за відгуками нормально переносять мороз, та ось поки шукав придатний лот, весна вже непомітно настала.
6) Попрацювати над естетичної складової

Яку Pro Mini купити?
Якщо фена немає, то Pro Mini «RobotDyn» Atmega168PA 3.3V, чимось гострим здирати світлодіод і маєте ~ 250мкА.
Якщо є фен, то будь-яку плату, Випоюють стабілізатор і світлодіод з харчування - отримуєте ~ 20мкА споживання струму.

На цьому поки все, сподіваюся, огляд був цікавий і корисний.

Планую купити +174 Додати в обране огляд сподобався +143 +278

Інфрачервоні (ІЧ, IR) датчики зазвичай використовуються для вимірювання відстаней, але їх також можна використовувати і для виявлення об'єктів. Підключивши кілька ІК-датчиків до Arduino, ми можете створити охоронну сигналізацію.

огляд

Інфрачервоні (ІЧ, IR) датчики зазвичай використовуються для вимірювання відстаней, але їх також можна використовувати і для виявлення об'єктів. ІК-датчики складаються з інфрачервоного передавача і інфрачервоного приймача. Передавач видає імпульси інфрачервоного випромінювання в той час, як приймач детектирует будь-які відображення. Якщо приймач виявляє відображення, це означає, що перед датчиком на деякій відстані є якийсь об'єкт. Якщо відображення немає, немає і об'єкта.

IR-датчик, який ми будемо використовувати в даному проекті, виявляє відображення в певному діапазоні. Ці датчики мають невелику лінійне пристрій із зарядним зв'язком (CCD), яке детектирует кут, з яким ІК-випромінювання повертається до датчика. Як показано на малюнку нижче, датчик передає інфрачервоний імпульс в простір, а коли перед датчиком з'являється об'єкт, імпульс відбивається назад до датчика під кутом, пропорційним відстані між об'єктом і датчиком. Приймач датчика детектирует і виводить кут, і, використовуючи це значення, ви можете розрахувати відстань.

Підключивши пару ІК-датчиків до Arduino, ми можемо зробити просту охоронну сигналізацію. Ми встановимо датчики на одвірок, і, правильно вирівнявши датчики, ми зможемо виявити, коли хтось проходить через двері. Коли це станеться, сигнал на виході ІК-датчика зміниться, а ми виявимо це зміна, постійно зчитуючи вихідний сигнал датчиків за допомогою Arduino. В даному прикладі ми знаємо, що об'єкт проходить через двері, коли показання на виході ІК-датчика перевищує 400. Коли це станеться, Arduino включить сигнал тривоги. Щоб скинути спрацьовування сигналізації, користувач може натиснути на кнопку.

комплектуючі

  • 2 x ІК-датчик відстані;
  • 1 x Arduino Mega 2560;
  • 1 x зумер;
  • 1 x кнопка;
  • 1 x резистор 470 Ом;
  • 1 x NPN транзистор;
  • перемички.

схема з'єднань

Схема для даного проекту показана на малюнку нижче. Виходи двох ІК-датчиків підключені до висновків A0 і A1. Два інших виведення підключені до висновків 5V і GND. 12-вольта зумер підключений до висновку 3 через транзистор, а кнопка, яка використовується для відключення сигналізації, підключена до висновку 4.


На наведеній нижче фотографії показано, як ми наклеїли датчики на одвірок для цього експерименту. Зрозуміло, в разі постійного використання ви встановили б датчики по-іншому.


установка

  1. Підключіть висновки 5V і GND плати Arduino до висновків харчування і GND датчиків. Ви також можете подавати на них до зовнішнього джерела живлення.
  2. Підключіть вихідні висновки датчиків до висновків A0 і A1 плати Arduino.
  3. Підключіть висновок 3 Arduino до бази транзистора через резистор 1 кОм.
  4. Подайте напругу 12 В на колектор транзистора.
  5. Підключіть позитивний висновок 12-вольта зумера до емітера, а негативний - до шини землі.
  6. Підключіть висновок 4 до висновку 5V через кнопку. З метою безпеки, щоб уникнути протікання великого струму це завжди краще робити через додатковий невеликий резистор.
  7. Підключіть плату Arduino до комп'ютера через USB кабель і завантажте програму в мікроконтролер, використовуючи Arduino IDE.
  8. Подайте на плату Arduino харчування, використовуючи блок живлення, акумулятор або USB кабель /

код

const int buzzer \u003d 3; // вивід 3 - це вихід на зумер const int pushbutton \u003d 4; // вивід 4 - це вхід для кнопки void setup () (pinMode (buzzer, OUTPUT); // налаштувати висновок 3 на вихід pinMode (pushbutton, INPUT); // налаштувати висновок 4 на вхід) void loop () (// прочитати вихідний сигнал обох датчиків і порівняти результат з граничним значенням int sensor1_value \u003d analogRead (A0); int sensor2_value \u003d analogRead (A1); if (sensor1_value\u003e 400 || sensor2_value\u003e 400) (while (true) (digitalWrite (buzzer, HIGH) ; // включити сигнал тривоги if (digitalRead (pushbutton) \u003d\u003d HIGH) break;)) else (digitalWrite (buzzer, LOW); // вимкнути сигнал тривоги))

Відео

GSM сигналізація на Arduino

У цій статті ви дізнаєтеся як (купити) зробити самому GSM сигналізацію за допомогою GSM модуля і Arduino дуже дешево. Об'єктом охорони GSM сигналізації ідеально підійде дача, будинок, гараж, квартира.


Крок 1: Елементи
Для цього проекту вам знадобиться:


GSM Shield

зумер
Сирена сигналізації 12V
12V джерело живлення

Клавіатура для Arduino
Корпус.

Крок 2: Підключення компонентів


Спочатку ви помістіть GSM модуль на Arduino Uno, вам потрібно буде припаяти дроти GND і VCC разом з двома датчиками, зумером і входом модуля реле. Після цього з'єднати ці припаянности дроти на відповідний роз'єм GSM Шілд. Далі ви будете робити роз'єм введення / виводу сигналів з цих частин, і останнє, що потрібно буде - це підключити клавіатуру

Arduino Uno / GSM Клеми:

Висновок 0: чи не пов'язаний;
Висновок 1: чи не пов'язаний;
Висновок 2: непов'язаний (GSM буде використовувати цей штир);
Висновок 3: непов'язаний (GSM буде використовувати цей штир);
Висновок 4: останній рядок за допомогою клавіатури (контакт клавіатури 4 - від 8);
Висновок 5: чи не пов'язаний;
Висновок 6: другий стовпець з допомогою клавіатури (контакт клавіатури 6 - з 8);
Висновок 7: третя колонка з клавіатури (клавіатури пальця 7 - від 8);
Висновок 8: непов'язаний (GSM буде використовувати цей штир);
Висновок 9: непов'язаний (GSM буде використовувати цей штир);
Висновок 10: дані PIR датчика № 2;
Висновок 11: сирена звуковий сигнал (надходить на вхід модуля реле);
Висновок 12: дані PIR датчика № 1;
Висновок 13: вхідний сигнал зумера;

Як можна бачити, хоча клавіатура має 8 висновків, підключилися тільки три (один рядок і дві колонки, що дозволяє використовувати два числа для читання - 1 × 2 матриці), таким чином я можу зробити паролі, використовуючи ці три дроти, і немає необхідності використовувати всі контакти з клавіатури. Це відбувається тому, що після того, як датчик руху виявляє людини, що йде в кімнаті, людина буде мати всього 5 секунд, щоб відключити сигналізацію. Після того, як аварійний сигнал не відключається на даний момент часу, GSM Шилд відправляє SMS вам, або дзвонить на номер телефону. Arduino був запрограмований на виклик і як тільки ви відповісти на телефонний дзвінок, він покладе трубку.

Звичайно, можна отримати неправдиві свідчення датчика, тому варто опція, щоб відключити сигналізацію, просто відправивши СМС з вашого телефону на Arduino. Крім того, ще один варіант, що ви можете зробити, це налаштувати Шилд, щоб він відправляв вам одне повідомлення в день, щоб ви знали, що він працює правильно.

Крок 3: Код

Просто завантажте наведений нижче код і скомпілюйте. Він використовує бібліотеки Keypad.h і GSM.h.
Завантажити файл: (cкачиваний: 181)
Завантажити файл: (cкачиваний: 104)

Крок 4: Висновок


З огляду на, що код Arduino Uno буде відправляти SMS-повідомлення і дзвонити на ваш телефон всього за п'ять секунд після того, як хтось проникнути в ваш будинок, я припускаю, що у вас буде достатньо часу, щоб зателефонувати в поліцію. Звичайно сирена буде відлякувати злодіїв і ваш будинок або інше приміщення стане безпечніше за допомогою цієї статті.

Крадіжки автомобілів протягом останнього десятиліття є одним із значущих місць в структурі скоєних в світі злочинів. Це обумовлено не стільки питомою вагою даної категорії розкрадань щодо загальної кількості злочинів, скільки существенностью завданої шкоди з огляду на велику вартість автомобілів. Слабка ефективність заходів, що вживаються в області боротьби з крадіжками автотранспорту до кінця 90-х років привела до створення стійких груп, що спеціалізуються на вчиненні даних злочинів і володіють відмінними рисами організованої злочинності; ви напевно чули термін «чорний автобізнес». Автомобільний парк європейських держав щорічно не долічується ≈ 2% машин, які стають предметом злочинних посягань. Тому мені прийшла ідея зробити gsm-сигналізацію для свого автомобіля на базі Arduino Uno.

Почнемо!

З чого будемо збирати

Треба вибрати серце нашій системі. На мій погляд, для подібної сигналізації немає нічого кращого, ніж Arduino Uno. Основний критерій - достатня кількість «пинов» і ціна.


Основні характеристики Arduino Uno

Мікроконтролер - ATmega328
Робоча напруга - 5 В
Вхідна напруга (рекомендований) - 7-12 В
Вхідна напруга (граничне) - 6-20 В
Цифрові Входи / Виходи - 14 (6 з яких можуть використовуватися як виходи ШІМ)
Аналогові входи - 6
Постійний струм через вхід / вихід - 40 мА
Постійний струм для виведення 3.3 В - 50 мА
Флеш-пам'ять - 32 Кб (ATmega328) з яких 0.5 КБ використовуються для завантажувача
ОЗУ - 2 КБ (ATmega328)
EEPROM - 1 Кб (ATmega328)
Тактова частота - 16 МГц


Підходить!

Тепер необхідно вибрати gsm-модуль, адже наша сигналізація повинна вміти сповіщати власника автомобіля. Так, треба «погуглити» ... Ось, відмінний датчик - SIM800L, розмір просто чудовий.


Подумав я і замовив його з Китаю. Однак все виявилося не так райдужно. Датчик просто відмовився реєструвати SIM-карту в мережі. Було випробувано все, що тільки можливо - результат нульовий.
Знайшлися добрі люди, які надали мені більше круту штуку - Sim900 Shield. Ось це вже серйозний штучка. У Shield-е і роз'єм для мікрофона і для навушників, повноцінний телефон.


Основні характеристики Sim900 Shield

4 стандарту робочої частоти 850/900/1800/1900 MHz
GPRS multi-slot клас 10/8
GPRS mobile station class B
Відповідає GSM phase 2/2 +
Class 4 (2 W @ 850/900 MHz)
Class 1 (1 W @ 1800 / 1900MHz)
Управління за допомогою AT команд (GSM 07.07, 07.05 і SIMCOM розширені AT команди)
Низький рівень споживання енергії: 1.5mA (sleep mode)
Діапазон робочих температур: від -40 ° C до +85 ° C


Підходить!

Ок, але треба ж знімати показання з якихось датчиків, щоб оповіщати власника. Раптом автомобіль евакуюють, тоді положення автомобіля явно буде змінюватися в просторі. Візьмемо акселерометр і гіроскоп. Відмінно. Такс, тепер шукаємо датчик.

Думаю, що GY-521 MPU6050 точно підійде. Виявилося, що в ньому є і датчик температури. Треба б і його задіяти, буде така «кілер фіча». Припустимо, що власник автомобіля поставив його під додому і пішов. Температура в салоні автомобіля буде змінюється «плавно». Що ж буде, якщо зловмисник спробує проникнути в автомобіль? Наприклад у нього вийде відкрити двері. Температура в автомобілі почне змінюватися стрімко, так як повітря в салоні почне змішуватися з повітрям навколишнього середовища. Думаю, що буде працювати.


Основні характеристики GY-521 MPU6050

Модуль 3-х осьового гіроскопа + 3-х осьового акселерометра GY-521 на чіпі MPU-6050. Дозволяє визначити положення і переміщення об'єкта в просторі, кутову швидкість при обертанні. Так само має вбудований датчик температури. Використовується в різних коптерах і авіамоделях, як і з урахуванням цих датчиків можна зібрати систему захоплення рухів.

Мікросхема - MPU-6050
Напруга харчування - від 3,5V до 6V (DC);
Діапазон гіроскопа - ± 250 500 1000 2000 ° / с
Діапазон акселерометра - ± 2 ± 4 ± 8 ± 16g
Інтерфейс зв'язку - I2C
Розмір - 15х20 мм.
Вага - 5 г


Підходить!

Також стане в нагоді датчик вібрацій. Раптом автомобіль спробують розкрити «грубою силою», ну або на парковці інший автомобіль зачепить вашу машинку. Візьмемо датчик вібрацій SW-420 (регульований).


Основні характеристики SW-420

Напруга харчування - 3.3 - 5В
Вихідний сигнал - цифровий High / Low (нормально закритий)
Використовуваний датчик - SW-420
Використовуваний компаратор - LM393
Розміри - 32x14 мм
Додатково - Є регулювальний резистор.


Підходить!

Прикрутимо модуль SD карти пам'яті. Будемо ще писати лог-файл.


Основні характеристики модуля SD карти пам'яті

Модуль дозволяє зберігати, читати і записувати на SD карту дані необхідні для роботи приладу на основі мікроконтролера. Застосування пристрою актуально при зберіганні файлів від десятків мегабайт до двох гігабайт. На платі розміщений контейнер SD карти, стабілізатор живлення карти, вилка з'єднувача ліній інтерфейсу і харчування. Якщо потрібно працювати з звуковими, відео або іншими об'ємними даними, наприклад, вести журнал реєстрації подій, даних датчиків або зберігати інформацію веб-сервера, то модуль SD карти пам'яті для Arduino дасть можливість застосувати SD карту для цих цілей. За допомогою модуля можна вивчити особливості роботи SD карти.
Напруга харчування - 5 або 3,3 В
Обсяг пам'яті SD карти - до 2 Гбайт
Розміри - 46 х 30 мм


Підходить!

І додамо сервопривід, при спрацьовуванні датчиків буде повертатися сервопривід з відеореєстратором і знімати відео події. Візьмемо сервопривід MG996R.


Основні характеристики сервоприводу MG996R

Стабільна і надійний захист від пошкоджень
- Металевий привід
- Дворядний шарикопідшипник
- Довжина проводу 300 мм
- Розміри 40х19х43мм
- Маса 55 гр
- Кут повороту: 120 град.
- Робоча швидкість: 0.17сек / 60 градусів (4.8В без навантаження)
- Робоча швидкість: 0.13сек / 60 градусів (6В без навантаження)
- Пусковий момент: 9.4кг / см при харчуванні 4.8В
- Пусковий момент: 11кг / см при харчуванні 6В
- Робоча напруга: 4.8 - 7.2В
- Всі деталі приводу виконані з металу


Підходить!

збираємо

Про підключення кожного датчика в «Гуглі» величезна кількість статей. І придумувати нові велосипеди у мене бажання немає, тому залишу посилання на прості і робочі варіанти.

Даний проект стосується розробки і удосконалення системи для запобігання / контролю будь-яких спроб проникнення злодіїв. Розроблене охоронний пристрій використовує вбудовану систему (включає апаратний мікроконтролер з використанням відкритого програмного коду і gsm модем) на базі технології GSM (Глобальна система рухомого зв'язку).

Охоронний пристрій може бути встановлено в будинку. Інтерфейсний датчик охоронної сигналізації також приєднаний до охоронної системи на базі контролера.
При спробі проникнення система передає попередження (наприклад, sms) власнику на мобільний телефон або на будь-який заздалегідь сконфігурованих мобільний телефон для подальшої обробки.

Охоронна система складається з мікроконтролера Arduino Uno і стандартного модему SIM900A на базі GSM / GPRS. Вся система може харчуватися від будь-якого джерела живлення / батареї 12В 2A.

Нижче показана схема охоронної системи на базі Arduino.

Робота системи дуже проста і не вимагає роз'яснень. Коли на систему підключений до джерела живлення, вона переходить в черговий режим. Коли висновки коннектора J2 закорочені, заздалегідь запрограмоване попередження передається на необхідний мобільний номер. Ви можете під'єднати будь-який детектор виявлення проникнення (такий як світлове захисне пристосування або датчик руху) до вхідного конектора J2. Зауважте, що активний-низький (L) сигнал на виводі 1 коннектора J2 активує спрацьовування охоронної сигналізації.

Більш того, в систему додано опциональное пристосування "виклик - тривога". Воно активує телефонний дзвінок, коли користувач натисне кнопку S2 (або коли інший електронний блок ініціює сигналізацію). Після натискання кнопки "call" (S2), виклик можна скасувати, натиснувши іншу кнопку S3 - кнопку "end". Дана опція може використовуватися для подачі сигналу тривоги в разі "пропущеного дзвінка" в разі проникнення.

Схема дуже гнучка, тому може використовувати будь-який SIM900A модем (і, звичайно, плату Arduino Uno). Уважно прочитайте документацію на модем до початку збирання. Це дозволить полегшити і зробити приємним процес виготовлення системи.

список радіоелементів

позначення Тип Номінал кількість ПриміткаМагазинМій блокнот
плата Arduino

Arduino Uno

1 В блокнот
GSM / GPRS-модемSIM900A1 В блокнот
IC1 лінійний регулятор

LM7805

1 В блокнот
C1 100мкФ 25В1 В блокнот
C2 електролітичний конденсатор10мкФ 16В1 В блокнот
R1 резистор

1 кОм

1 В блокнот
LED1 світлодіод 1 В блокнот
S1 кнопкаЗ фіксацією1

Схожі публікації