• Что можно приготовить из кальмаров: быстро и вкусно

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

    Предметы обзора

    Покупные:
    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 модема >>> RX конвертера
    RX модема <<< TX конвертера
    Плюс аккумулятора - Плюс модема
    Минус литиевого аккумулятора объединён с GND модема и GND конвертера
    Для запуска модема вывод BOOT через резистор 4.7 кОм подать на GND


    Тем временем, на компьютере запустить программу . Обратить внимание на настройки:
    1) Выбрать COM-порт, к которому подключен TTL-конвертер, в моём случае это COM4, у вас может быть другой.
    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=9600 - это если нужна скорость 9600. Если какая-то другая, аналогично AT+IPR=19200 к примеру или AT+IPR=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|=(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|=(1<Только лишь операция прямого обращения к портам заставила заработать девайс, как и было задумано.

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

    По доработке...
    1) Обычная проволока, установленная на разрыв не совсем удобна, планирую поэкспериментировать с датчиком Холла и герконом, хотя про последний говорят, что не шибко надёжен, ибо контакты внутри него могут залипнуть.
    2) Неплохо было бы добавить возможность смены «номера хозяина» без участия компьютера и перепрошивки. Это уже с EEPROM придётся поработать.
    3) Попробовать прерывания от сторожевого таймера, но не просто любопытства ради, а чтобы микроконтроллер периодически просыпался сам, делал замеры напряжения аккумулятора и отправлял полученное значение по SMS, чтобы быть в курсе насколько аккумулятор разряжен.
    4) Солнечная панель может и вовсе избавить от необходимости подзаряжать девайс, это будет актуально особенно для малоёмких аккумуляторов.
    5) Ещё давно хотел прикупить LiFePo4 аккумуляторы, которые по отзывам нормально переносят мороз, да вот пока искал годный лот, весна уже незаметно наступила.
    6) Поработать над эстетической составляющей

    Какую Pro Mini купить?
    Если фена нет, то Pro Mini «RobotDyn» Atmega168PA 3.3V, чем-то острым сковыриваете светодиод и имеете ~250мкА.
    Если есть фен, то любую плату, выпаиваете стабилизатор и светодиод по питанию - получаете ~20мкА потребления тока.

    На этом пока всё, надеюсь, обзор был интересен и полезен.

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

    В прошлой статье мы учились пользоваться GSM модулем SIM800L и сделали простенькую конструкцию управления нагрузкой удалённо, сегодня мы сделаем уже что-то поинтереснее, а именно охранную GSM сигнализацию на модуле SIM800L из Aliexpress и Arduino, которую можно применить для охраны квартиры, дачи, гаража и других объектов, а при её срабатывании она оповестит звонком или СМС сообщением.

    Что нам понадобится чтобы сделать GSM сигнализацию:

    • GSM/GPRS модуль SIM800L;
    • Arduino Nano, UNO или другая Ардуинка;
    • Понижающий DC-DC преобразователь;
    • Аккумулятор 3,7 В;
    • Резисторы на 10 к – 7 шт;
    • Блок питания.

    Как сделать охранную GSM сигнализацию на модуле SIM800L и Arduino, описание работы:

    Подключаем модуль SIM800L, Arduino, датчики и др. по схеме ниже, всё собирается на макетной плате чтобы в любое время можно было что-то поменять, размещаем в любой подходящий корпус и выводим провода из корпуса для охранных датчиков и на БП. Аккумулятор тоже размещаем в корпусе, он нужен чтобы когда пропадает в доме электроэнергия то устройство переходило в автономный режим питаясь от аккумуляторной батареи. На повышающем преобразователе настраиваем на выходе 4,2 вольта, при таком напряжении работает GSM SIM модуль и при этом подзаряжается аккумулятор, а также этого напряжения хватает для работы Arduino Nano.

    К схеме можно подключить 5 любых датчиков, это как герконы, датчик влажности, дыма, движения и т.п. которые поддерживают релейное срабатывание, так как данная схема настроена на срабатывание сигнализации на разрыв цепи любого из пяти датчиков но при желании скетч можно переделать на замыкание.

    При срабатывании первого датчика идёт дозвон на указанный номер, потом сбрасывает вызов и идёт звонок на второй номер, это сделано в случае если первый номер на данный момент не будет доступен. При срабатывании остальных 4-х охранных датчиков отсылается только СМС сообщение в котором прописывается номер или название сработавшей зоны, также это сообщение будет послано на два телефонных номера.

    В скетче можно вписать номера телефонов и дать свои имена охраняемым зонам, вместо «Alarm! Zone1», «Alarm! Zone2», «Alarm! Zone3»… Вы можете написать название объекта куда поставили конкретный датчик, например «Alarm! Okno», «Alarm! Dverj» и др., пишите названия зоны только на латинице. Также в скетче выставляется время отзвонки владельцу, то есть через какое количество часов сообщать Вам о том что вся система работает и всё в порядке, по умолчанию установлено перезванивать через каждые 144 часа.

    Всё, мы сделали несложную охранную GSM сигнализацию на модуле SIM800L и Arduino, скетч и схему можно дорабатывать, например, модуль SIM800L поддерживает возможность подключения к нему громкоговорителя и микрофона, что позволит прослушивать охраняемое помещение, а также вывести на громкоговоритель свой голос.

    Скачать скетч для Ардуино.

    Сегодня речь пойдет о том, как с помощью Ардуино собрать охранную систему . Наша «охрана» будет сторожить один контур и управлять одним оповещателем.

    Для Ардуино это не проблема, и, как вы увидите по коду программы и по схеме устройства, можно легко увеличить количество охраняемых точек доступа и количество устройств оповещения или индикации.
    Охранную систему можно применить для охраны как больших объектов (зданий и сооружений), так и небольших предметов (шкатулок, сейфов), и даже переносных кейсов и чемоданов. Хотя с последними надо быть поосторожнее, если вы установите систему охраны, например, на чемодан, с которым решите отправиться в путешествие, и система оповещения сработает в каком-нибудь аэропорту, то, думаю, вам предстоит серьезная беседа с местной службой безопасности:-)

    Упрощенно принцип работы устройства выглядит следующим образом (рис. 1). После включения питания устройство переходит в рабочий режим и ждет постановки на охрану. Постановка и снятие с охраны осуществляются одной кнопкой. Для повышения безопасности эту кнопку лучше расположить внутри охраняемого помещения (сейфа или шкатулки). Перед включением режима охраны дверь нужно приоткрыть. При включении режима охраны (нажатии на кнопку) электронная схема ждет, пока вы не закроете дверь в помещение (дверцу сейфа, крышку шкатулки, и т.д.).

    На двери (или дверце) должен быть установлен концевой выключатель любого типа, об этом позднее. Замыкаясь (или размыкаясь), концевой выключатель сообщит устройству, что охраняемый контур замкнут, и устройство перейдет в режим охраны. О переходе в режим охраны система оповестит двумя короткими сигналами (как в автомобильных сигнализациях). В этом режиме устройство «ловит» открытие двери. После открытия двери система ждет несколько секунд (это величина настраиваемая, для помещений около десяти секунд, для шкатулки одна-две) отключения режима охраны, если этого не происходит, включается сирена. Алгоритм и схема разработаны так, что отключить сирену можно, только полностью разобрав корпус и отключив питание.

    Устройство охранной системы очень простое (рис. 2). В основе плата Ардуино . Концевые выключатели подключаются, как обычная кнопка, через подтягивающие резисторы. На концевиках остановлюсь отдельно. Они бывают нормально замкнутые и нормально разомкнутые. Можно в качестве концевика включить обычную кнопку, только ход обычной кнопки очень велик, люфт двери обычно больше. Поэтому необходимо придумать какой-нибудь толкатель для кнопки и подпружинить, чтобы не сломать кнопку дверью. Ну и если не лень, то можно дойти до магазина и купить магнитный выключатель (геркон) (рис. 3), он не боится пыли и загрязнений.

    Подойдет и концевой выключатель для автосигнализации (рис. 4). Следует отметить, программа написана под геркон. При закрытой двери его контакт замкнут. Если использовать выключатель от автосигнализации, то при закрытой двери он будет скорее всего разомкнут, и в соответствующих местах кода нужно будет поменять 0 на 1 и наоборот.

    В качестве сирены предлагаю использовать оповещатель звуковой ПКИ-1 ИВОЛГА белорусского производства (рис. 5). Напряжение питания 9 - 15 В, рабочий ток 20 - 30 мА. Это позволяет использовать его с батарейным питанием. При этом он «выдает» 95 - 105 дБ.

    При таких характеристиках от батарейки «Крона» он будет звучать несколько десятков минут. Я его нашел в интернете за 110 руб. Там же геркон с магнитом стоит около 30 руб. Выключатель от автосигнализации в автозапчастях был куплен за 28 руб. Транзистор КТ315 можно взять с любой буквой или заменить на любой современный маломощный кремниевый транзистор соответствующей проводимости. Если громкости одного оповещателя не хватит (кто знает, может, вы захотите, чтобы было слышно за многие километры), можно подключить несколько оповещателей параллельно или взять более мощный, только в этом случае и транзистор нужно заменить на более мощный (например, знакомую нам транзисторную сборку ULN2003). В качестве разъемов для подключения геркона и сирены я применил самые простые разъемы для аудио/видеоустройств - цена на радиорынке 5 руб. за пару.

    Корпус устройства можно склеить из пластика или фанеры; если охраняется серьезный объект, то его лучше сделать металлическим. Батареи или аккумуляторы питания для повышения надежности и безопасности желательно разместить внутри корпуса.

    Для упрощения программного кода не были использованы элементы энергосбережения, и батареек надолго не хватает. Можно оптимизировать код, а еще лучше радикально переделать, применив обработку событий по прерываниям и спящий режим МК. В этом случае питания от двух квадратных батареек, включенных последовательно (9 В), должно хватить на несколько месяцев.

    Теперь код

    // постоянные
    const int button = 12; // пин для кнопки
    const int gerkon = 3; // пин для геркона
    const int sirena = 2; // пин упр-ния сиреной
    const int led = 13; // пин индикатора
    // переменные
    int buttonState = 0; // состояние кнопки
    int gerkonState = 0; // состояние геркона
    int N = 0; // счетчик кнопки отключения охраны
    void setup() {
    // управление сиреной и индикатором - выход
    pinMode(sirena, OUTPUT);
    pinMode(led, OUTPUT); // кнопка и геркон - входы
    pinMode(gerkon, INPUT);
    pinMode(button, INPUT);
    }
    void loop(){
    digitalWrite(led, HIGH);
    while(buttonState= =0){ // цикл ожидания, пока не нажмем кнопку
    buttonState = digitalRead(button); // для перехода в режим охраны
    }
    digitalWrite(led, LOW);
    buttonState = 0; // обнуляем значение кнопки
    while(gerkonState= =0){ // цикл, пока не закроем дверь
    }
    delay (500); // :-)
    digitalWrite(sirena, HIGH); // Код
    delay (100); // индикации
    digitalWrite(sirena, LOW); // включения
    delay (70); // режима
    digitalWrite(sirena, HIGH); // охраны
    delay (100); // оповещение
    digitalWrite(sirena, LOW); // звуковое
    while(gerkonState= =1){ // ждем открытия двери
    gerkonState = digitalRead(gerkon);
    }
    for (int i=0; i <= 5; i++){ // 7,5 секунды на нажатие
    buttonState = digitalRead(button); // секретной кнопки
    if (buttonState = = HIGH) { // отслеживаем свой - чужой
    N=N+1;
    }
    delay(1500); // секретная фича:-)))
    }
    if (N > 0) { // самое главное
    digitalWrite(sirena, LOW); // не включаем сирену
    }
    else {
    digitalWrite(sirena, HIGH); // или включаем сирену
    }
    digitalWrite(led, HIGH); // включаем индикатор N = 0;
    buttonState = 0;
    delay(15000); // напоминание «чайникам», которым нравится
    digitalWrite(led, LOW); // давить на кнопки без перерыва delay (1000);

    Простая охранная сигнализация для дома на Arduino Uno — тема данного обзора. Несмотря на то, что микроконтроллеры данного семейства были изначально предназначены для обучения студентов, вполне реально сделать действительно полезный проект на Arduino. Охранные сигнализации для дома или садового участка смогут предупредить владельца о ЧП и послать сообщение с датчиков на смартфон.

    Сигнализация для дома на Arduino

    Рассмотрим, как сделать на Arduino Uno или Nano сигнализацию для дома, загородного садового участка или гаража. В проекте мы использовали сенсор движения , датчик воды и температуры — это набор основных сенсоров для самой простой системы оповещения. Вы узнаете о прорыве водопровода, снижении температуры в доме или проникновении посторонних людей в помещении в любое время и в любом месте.

    Датчики Ардуино для охранной сигнализации

    В данном проекте для передачи информации по сети Интернет мы использовали старый смартфон. Соответственно в месте расположения вашей недвижимости должен быть сигнал GPRS и у любого сотового оператора подключен самый простой тариф с выходом в Интернет. Если эти условия не выполняются, то в охранной системе предусмотрена звуковая сирена, которая тоже может спугнуть грабителей.

    В проекте использованы самые простые сенсоры — температурный датчик DHT11 , датчик утечки воды, который можно сделать самому , а также датчик движения. Если вы решите сделать более сложную сигнализацию — рекомендуем вам посмотреть проект пожарной сигнализации или сигнализации на GSM. Также потребуется установить приложение на смартфон и зарегистрировать два аккаунта в Твиттере.

    Как сделать сигнализацию Ардуино

    Для этого проекта нам потребуется:

    • плата Arduino Uno / Arduino Nano / Arduino Mega;
    • смартфон с выходом в Интернет;
    • датчик температуры и влажности DHT11;
    • датчик утечки воды (water sensor);
    • датчик движения и кнопка (переключатель);
    • светодиоды, резисторы, провода и т.д.


    Скетч для сигнализации, все необходимые библиотеки и приложение для смартфона можно скачать одним архивом . Отметим, что нельзя будет дистанционно управлять Arduino, так как проект максимально простой. Вы сможете лишь в сообщениях на смартфоне узнавать о показаниях датчиков, установленных в доме, через заданный промежуток времени или при срабатывании какого-либо датчика.

    Скетч охранной сигнализации на Arduino Uno / Nano

    #include // подключение библиотеки SoftwareSerial.h SoftwareSerial mySerial(2, 3); // указываем пины rx и tx соответственно #include // подключаем библиотеку для датчика DHT dht(16, DHT11); // сообщаем на каком порту будет датчик int tmp; #define PIR 5 // порт для подключения датчика движения int pir; #define KNP 7 // порт для подключения переключателя int knp; #define WTR 19 // порт для подключения датчика воды int wtr; #define LED 11 // порт для подключения светодиодов #define BUZ 9 // порт для подключения пьезодинамика // строки для идентификации информации, получаемой на смартфоне String stringT = String ("*" ); String stringP = String ("^" ); String stringW = String ("-" ); String stringH = String ("#" ); // переменные для счетчиков, отсчета циклов и т.д. unsigned long motion; unsigned long hour; byte m, s1, s2, s3, c = 10; void setup () { mySerial.begin (9600); Serial .begin (9600); dht.begin (); pinMode (PIR, INPUT ); analogWrite (PIR, LOW ); pinMode (KNP, INPUT ); analogWrite (KNP, LOW ); pinMode (WTR, INPUT ); analogWrite (WTR, LOW ); // проверка светодиодов и пищалки при включении питания pinMode (BUZ, OUTPUT ); pinMode (LED, OUTPUT ); analogWrite (LED, 255); tone (BUZ, 100); delay (1000); analogWrite (LED, 0); noTone (BUZ); delay (1000); } void loop () { tmp = dht.readTemperature (); pir = digitalRead (PIR); knp = digitalRead (KNP); wtr = analogRead (WTR); // запускаем счетчик hour = millis (); // 3600000 миллисекунд - это 1 час, 10800000 - 3 часа // если прошло 3 часа - отправляем данные на смартфон // при необходимости ставите свои значения вместо 10800000 if (millis () - hour > 10800000) { mySerial.println (tmp + stringT); mySerial.println (stringH); // отправляем сигнал, что 3 часа прошло } // ведем отсчет циклов, каждый десятый цикл отправляем данные на смартфон c--; Serial .print (c); Serial .println (" - цикл" ); Serial .println ("" ); delay (1000); noTone (BUZ); if (c > 10) { c = 10; } if (c < 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // отправляем значение температуры mySerial.println (pir + stringP); // отправляем наличие движения в доме mySerial.println (wtr + stringW); // отправляем данные с датчиков воды // СРАБОТАЛ ДАТЧИК ДВИЖЕНИЯ И КНОПКА ВЫКЛЮЧЕНА - ВКЛЮЧАЕМ СВЕТ if (pir == HIGH && knp == LOW ) { analogWrite (LED, 255); } // ДАТЧИК ДВИЖЕНИЯ ОТКЛЮЧИЛСЯ И КНОПКА ВЫКЛЮЧЕНА - ВЫКЛЮЧАЕМ СВЕТ if (pir == LOW && knp == LOW ) { motion = millis (); while (pir == LOW ) { tmp = dht.readTemperature (); pir = digitalRead(PIR); knp = digitalRead(KNP); wtr = analogRead(WTR); c--; Serial .print (c); Serial .println (" - цикл" ); Serial .println ("" ); delay (1000); noTone (BUZ); if (c > 10) { c = 10; } if (c < 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // отправляем значение температуры mySerial.println (pir + stringP); // отправляем наличие движения в доме mySerial.println (wtr + stringW); // отправляем данные с датчиков воды // выводим на монитор порта номер все данные с датчиков Serial .print ("TMP = " ); Serial .println (tmp); Serial .print ("PIR = " ); Serial .println (pir); Serial .print ("KNP = " ); Serial .println (knp); Serial .print ("WTR = " ); Serial .println (wtr); Serial .println ("" ); } // ИНТЕРВАЛ ВЫКЛЮЧЕНИЯ СВЕТА В МИЛЛИСЕКУНДАХ if (millis() - motion > 5000) { analogWrite (LED, 0); break ; } if (pir == HIGH ) { analogWrite (LED, 255); break ; } } } // СРАБОТАЛ ДАТЧИК ДВИЖЕНИЯ И КНОПКА ВКЛЮЧЕНА - ЗАПУСКАЕМ ТАЙМЕР if (pir == HIGH && knp == HIGH ) { motion = millis (); delay (1000); analogWrite (LED, 255); Serial .println ("СРАБОТАЛ ДАТЧИК" ); Serial .println ("" ); delay (1000); while (knp == HIGH) { tmp = dht.readTemperature (); pir = digitalRead(PIR); knp = digitalRead(KNP); wtr = analogRead(WTR); c--; Serial .print (c); Serial .println (" - цикл" ); Serial .println ("" ); delay (1000); noTone (BUZ); if (c > 10) { c = 10; } if (c < 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // отправляем значение температуры mySerial.println (pir + stringP); // отправляем наличие движения в доме mySerial.println (wtr + stringW); // отправляем данные с датчиков воды // выводим на монитор порта номер все данные с датчиков Serial .print ("TMP = " ); Serial .println (tmp); Serial .print ("PIR = " ); Serial .println (pir); Serial .print ("KNP = " ); Serial .println (knp); Serial .print ("WTR = " ); Serial .println (wtr); Serial .println ("" ); } // ЕСЛИ ДАТЧИК ДВИЖЕНИЯ ОТКЛЮЧИЛИ - ОТПРАВКА СООБЩЕНИЯ НА БЛЮТУЗ if (knp == LOW ) { Serial .println ("СИГНАЛИЗАЦИЯ ОТКЛЮЧЕНА" ); Serial .println ("" ); delay (1000); } // ЕСЛИ ПРОШЛО БОЛЕЕ 10 СЕКУНД - ОТПРАВКА СООБЩЕНИЯ НА БЛЮТУЗ if (millis () - motion > 10000 && s1 != 1) { m = 1; goto message1; } delay (1000); } } // ЕСЛИ ПРОИЗОШЛА УТЕЧКА ВОДЫ - ОТПРАВКА СООБЩЕНИЯ НА БЛЮТУЗ if (wtr > 500 && s2 != 2) { m = 2; goto message2; } if (wtr > 500) { tone (BUZ, 400); } if (wtr <= 500) { noTone (BUZ); } // ЕСЛИ УПАЛА ТЕМПЕРАТУРА - ОТПРАВКА СООБЩЕНИЯ НА БЛЮТУЗ if (tmp < 20 && s3 != 3) { m = 3; goto message3; } if (tmp < 20) { tone (BUZ, 200); } if (tmp >= 20) { noTone (BUZ); } message1: while (m == 1) { Serial .println ("СИГНАЛ ТРЕВОГИ ОТПРАВЛЕН НА БЛЮТУЗ" // отправляем значение температуры mySerial.println (1 + stringP); // отправляем наличие движения в доме mySerial.println (wtr + stringW); // отправляем данные с датчиков воды s1 = 1; m = 0; break ; } message2: while (m == 2) { Serial .println ("СИГНАЛ УТЕЧКИ ВОДЫ ОТПРАВЛЕН НА БЛЮТУЗ" ); Serial .println ("" ); delay (1000); mySerial.println (tmp + stringT); // отправляем значение температуры mySerial.println (pir + stringP); // отправляем наличие движения в доме mySerial.println (500 + stringW); // отправляем данные с датчиков воды s2 = 2; m = 0; break ; } message3: while (m == 3) { Serial .println ("СИГНАЛ ТЕМПЕРАТУРЫ ОТПРАВЛЕН НА БЛЮТУЗ" ); Serial .println ("" ); delay (1000); mySerial.println (20 + stringT); // отправляем значение температуры mySerial.println (pir + stringP); // отправляем наличие движения в доме mySerial.println (wtr + stringW); // отправляем данные с датчиков воды s3 = 3; m = 0; break ; } }

    Пояснения к коду:

    На первый взгляд схема может показаться сложной, однако это не так. Сигнализацию можно собрать на любой плате, в том числе и Arduino Uno. Вместо светодиодов можно можно использовать LED ленту, но при этом питание для платы нужно будет уже 12 Вольт, и подключать LED ленту не к 5V, а к пину Vin Arduino. Со светодиодами можно использовать для питания схемы обычную зарядку от телефона на 5 Вольт.

    Установка приложения на смартфон для сигнализации

    Чтобы установить приложение закачайте файл home_twit.apk на свой телефон через USB шнур, найдите его в памяти телефона и нажмите «Установить». Этот телефон должен быть всегда в зоне Bluethoth сигнала Ардуино. После установки откройте приложение и нажмите кнопку «Настроить». Здесь потребуется указать минимальное и максимальное значение температуры, при которой будет отправляться сообщение.

    А сейчас самое сложное — настройка аккаунтов в Twitter. Укажите в настройках логин пользователя в Твиттере, кому вы будете отправлять сообщение. Также требуется указать логин, API key и API secret key от лица которого будут поступать сообщения. Последние нововведения обусловлены борьбой со спамом и сбором информации о пользователях в соцсети. Как получить API key и API secret — читайте в этом обзоре.

    На телефоне, который будет всегда при вас и будет получать сообщения потребуется установить официальное приложение Twitter с PlayMarket и войти в него под нужным логином. В итоге приложение signalizaciya.apk с телефона, находящегося в доме, будет собирать данные с датчиков Ардуино и отправлять их личным сообщением через Твиттер пользователю, под чьим логином вы установили приложение Twitter.

    Если у вас возникли проблемы с настройками сигнализации на Ардуино — пишите свои вопросы в комментариях к этому обзору.

    Кражи автомобилей на протяжении последнего десятилетия занимают одно из значимых мест в структуре совершаемых в мире преступлений. Это обусловлено не столько удельным весом данной категории хищений относительно общего количества преступлений, сколько существенностью причиняемого ущерба ввиду большой стоимости автомобилей. Слабая эффективность принимаемых мер в области борьбы с кражами автотранспорта к концу 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В
    - Все детали привода выполнены из металла


    Подходит!

    Собираем

    Про подключение каждого датчика в «гугле» огромное количество статей. И придумывать новые велосипеды у меня желания нет, поэтому оставлю ссылки на простые и рабочие варианты.