Энергоэффективная gsm-сигнализация на основе arduino. сборка. прошивка. тест.

Энергоэффективная gsm-сигнализация на основе arduino. сборка. прошивка. тест.

  • Цена: $2,45 + $1,55 + $1,72 + $0,36 + $1,5

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

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

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

Покупные: 1. Макетная плата односторонняя 5×7 см: гетинакс — 1.72$/10шт. либо стеклотекстолит 3.53$/10шт. *- стеклотекстолит намного качественнее гетинакса. 2. Модуль Neoway M590 — 1.55$, с антенной на текстолите — 2.25$ 3. Arduino Pro Mini «RobotDyn» ATmega168PA 8MHz 3.3V — 2.45$ 4. Плата контроля заряда-разряда лития — 0.36$Добытые на развалах цивилизации: 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) Даташит: 48PA/88PA/168PAВыбор пал на данную атмегу совсем случайно. на одном форуме, где обсуждались энергоэкономичные проекты, в комментариях попался совет применять как раз 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»:при подаче питания на стабилизатор напряжения (вывод RAW) и выпаянном светодиоде потребляемый ток составил ~250мкА 2) Arduino Pro Mini «NoName»: при подаче питания на стабилизатор напряжения (вывод RAW) и выпаянном светодиоде потребляемый ток составил ~3.92мА — как вы осознали, отличие в энергопотреблении практически в 16 раз, всё вследствие того что в NoName’мовской Pro Mini употребляется связка Atmega168+AMS1117, из которых сам МК ест всего 20мкА тока (это я проверил раздельно), всё другое обжорство приходится на линейный преобразователь напряжения AMS1117 — даташит это лишь подтверждает: При с платой от RobotDyn связка уже пара другая — это Atmega168PA+LE33 — тут применён уже второй 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) Пиковый ток: 2А Рабочий ток: 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 Даташит: M590Самый недорогой GSM-модуль, что возможно обнаружить рынке, в большинстве случаев б/у, выпаянный не всегда ловкими китайскими руками с оборудования. Из-за чего не всегда ловкими?

Да всё из-за выпайки феном — часто людям эти модули приходят с закороченным минусом и плюсом, что есть одной из обстоятельств их неработоспособности. Исходя из этого в первую очередь нужно прозванивать контакты питания на замыкание. Примечание.

Отдельный важный, на мой взор, момент хотелось бы отметить — эти модули смогут приходить с круглым коаксиальным разъёмом под антенну, что разрешает раздельно заказать антеннку важнее и без плясок с бубном её к модулю подключить. А смогут приходить и без этого разъёма. Это в случае если сказать о самых недорогих комплектах.

Если не хочется уповать на счастливую случайность, другими словами комплекты чуть подороже, где данный разъём присутствует + в наборе идёт внешняя антенна на текстолитовой плате.

Данный модуль к тому же ещё и капризен до питания, потому, что в пике он потребляет до 2А тока, а диод, идущий в наборе, наподобие как задуман для понижения напряжения с 5В (из-за чего и написано на самой плате 5В) до 4.2В, но если судить по жалобам народа, он создаёт больше хлопот, чем пользы. Допустим данный модуль у вас уже собран, а вместо диода впаяна перемычка, потому, что мы не планируем подавать на него напряжение 5В, а будем питать его напрямую от литиевого аккумулятора, что укладывается в пределы допустимых напряжений 3.3-4.2В.Нужно будет его как-то ещё подключить к компьютеру, и проверить на работоспособность.

Для этого случая лучше заблаговременно прикупить себе USB-TTL-конвертер на CP2102 — при помощи него мы будем общаться с платами и модулем Arduino по последовательному интерфейсу UART (USART). Подключение продемонстрировано ниже на картине (нарисовал, как могу): TX модемаRX конвертера RX модемаПлюс аккумулятора — Плюс модема Минус литиевого аккумулятора объединён с GND модема и GND конвертера Для запуска модема вывод BOOT через резистор 4.7 кОм подать на GND Тем временем, на компьютере запустить программу Terminal v1.9b.

Обратить внимание на настройки: 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. Взглянуть версию firmware 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, это для удобства обновления firmware платы. Рядом же припаял круглый разъём (нокиевский 3.5мм) для заряда лития. Корпус 6-пинового разъёма мало допилил напильником, потому что его края мало выступали над корпусом.

Гнездо зарядки идеально хорошо упёрлось в стенку корпуса.Иначе платы припаял кнопку для перезагрузки устройства и два светодиода для отладки firmware — красный светодиод подключен к 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Схема (без платы контроля заряда-разряда)

Выводы и мысли. Замыслы.

Сигнализация употребляется на даче, работой удовлетворён, но с предстоящим изучением AVR, приходит всё больше идей для предстоящей ей модификации. Ардуино с его лже-языком Wiring меня очень сильно расстроила, т.к. обнаружился один неприятный момент в работе. В то время, когда я применял функции для работы с портами digitalWrite(); либо pinMode(); — то GSM-модуль почему-то частенько зависал.

Но стоило заменить их на выкрутасы наподобие DDRB|=(1 Лишь только операция прямого обращения к портам вынудила получить девайс, как и было задумано.По энергосбережению… Собранный девайс отработал четыре полных месяца без подзарядки и работает , не смотря на то, что вернее сообщить «дремать». Проверяется это несложной перезагрузкой через белую кнопку.

При энергопотреблении 250 мкА (через стабилизатор LE33) и аккумуляторе ~1430 mAh, не смотря на то, что хорошо, ввиду неновизны аккумулятора округлим до 1000mAh, получается, что девайс может отсыпаться около 5.5 месяцев без подзарядки. В случае если всё-таки выпаять стабилизатор, то время работы возможно смело умножить на порядок.

Но в моём случае в этом нет потребности, т.к всё равняется необходимо раз в три месяца тратить баланс с симки, заодно и девайс возможно проверить и подзарядить.Приведённый в обзоре пример энергосбережения — далеко не предел, т.к. судя по данным из даташита, возможно понизить тактовую частоту микроконтроллера (а делается это установкой фьюзов) до 1МГц и, в случае если подать 1.8В напряжения, то потребление опустится ниже планки 1мкА в активном режиме. Очень недурно!

Но в случае если МК наряду с этим будет тактироваться от внутреннего RC-генератора, то покажется вторая неприятность — эфир UART окажется засорен ошибками и мусором, в особенности в случае если контроллер нагреть либо охладить.По доработке… 1) Простая проволока, установленная на разрыв не совсем эргономична, собираюсь поэкспериментировать с датчиком Холла и герконом, не смотря на то, что про последний говорят, что не шибко надёжен, потому что контакты в него смогут залипнуть.2) Хорошо было бы добавить возможность смены «номера хозяина» без участия компьютера и обновления firmware.

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

6) Поработать над эстетической составляющейКакую Pro Mini приобрести? В случае если фена нет, то Pro Mini «RobotDyn» Atmega168PA 3.3V, чем-то острым сковыриваете светодиод и имеете ~250мкА. В случае если имеется фен, то любую плату, выпаиваете светодиод и стабилизатор по питанию — приобретаете ~20мкА потребления тока.По главной ссылке Arduino Pro Mini Atmega168PA 3.3V «RobotDyn» — закончился.

Другая ссылка: Ali — 2.54$На этом до тех пор пока всё, надеюсь, обзор был занимателен и нужен.

Энергоэффективная GSM-сигнализация на основе Arduino


Темы которые будут Вам интересны:

Читайте также: