Авторизация
Зарегистрироваться

Энергоэффективная GSM-сигнализация на основе Arduino. Сборка. Прошивка. Тест.

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

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


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

Покупные:
1. Макетная плата односторонняя 5x7 см: гетинакс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)
Пиковый ток:
Рабочий ток: 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 модема <<< TX конвертера
Плюс аккумулятора — Плюс модема
Минус литиевого аккумулятора объединён с 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.


Посмотреть версию прошивки 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 <avr/sleep.h>
#include <SoftwareSerial.h>              // библиотека программного 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<<PB3); — мне стало понятно, почему Ардуино не стоит серьёзно воспринимать.
Только лишь операция прямого обращения к портам заставила заработать девайс, как и было задумано.

По энергосбережению...
Собранный девайс отработал четыре полных месяца без подзарядки и продолжает работать, хотя правильнее сказать «спать». Проверяется это простой перезагрузкой через белую кнопку. При энергопотреблении 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мкА потребления тока.

По основной ссылке Arduino Pro Mini Atmega168PA 3.3V «RobotDyn» — закончился.
Альтернативная ссылка: Ali — 2.54$

На этом пока всё, надеюсь, обзор был интересен и полезен.
Планирую купить +167 Добавить в избранное +143 +278
свернуть развернуть
Комментарии (215)
RSS
+
avatar
  • 4NeoN4
  • 26 апреля 2017, 10:22
+5
хоть бери и учись разбираться в ардуинке.
раньше занимался сборкой и установкой gsmсигналок квартирных
+
avatar
+1
Но в моём случае в этом нет нужды, т.к всё равно нужно раз в три месяца тратить баланс с симки…
Почему не сделать это автоматом, отправляя раз в 3 месяца смс.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 10:47
0
Потому что еще не придумал, что будет пробуждать МК раз в определённый промежуток времени.
+
avatar
  • tianddu
  • 26 апреля 2017, 10:58
0
ардуинка не имеет таймера?
+
avatar
  • CTAHOK
  • 26 апреля 2017, 11:06
0
Имеет целых несколько таймеров, причём один 16-битный, с регистрами осталось «договориться», уже после творить.
+
avatar
+4
rtc dc3231
+
avatar
  • CTAHOK
  • 26 апреля 2017, 11:10
0
Это мысль. Спасибо за наводку.
+
avatar
  • demonk
  • 26 апреля 2017, 12:19
+1
dc3231 тупо для побудки это оверкилл.
Раз «PORTD|=(1<<3);» уже не пугает, то можно освоить AVR Studio и будиться при помощи WDT. И максимальный сон в 8с не помеха — можно посчитать время и заснуть дальше, такие короткие включения на времени работы почти не отразятся. Зато можно будет периодически слать сообщения что коробочка еще жива.
+
avatar
+1
Можно и без ave studio. Вот так — github.com/enjoyneering/Arduino_Deep_Sleep
Правда #define придется переделать под atmega168
+
avatar
  • CTAHOK
  • 28 апреля 2017, 17:19
0
Работа с регистрами не пугает, а вот указатели и преобразования типов немного завели в тупик. Изучение AVR в процессе, в студии уже откомпилировал несколько уроков, только с USB ISP программатором пролетел, 2 месяца назад заказал, так и не пришёл. С WDT и начну, благо с автоматическим просыпанием можно реализовать ещё несколько полезных вещей
+
avatar
  • demonk
  • 28 апреля 2017, 18:33
0
Да как бы указатели и преобразования типов это чисто артефакт языка C, их можно как использовать так и не использовать, как в Студии так и в Arduino IDE. А народ обычно плюется на необходимость читать даташит и писать установку битиков для настройки периферии, тех же таймеров. Но без прямой работы с периферией тяжко, чужие библиотеки накладывают ограничения и не могут покрыть все нужды. А со временем начинает казаться, что самому с нуля сконфигурить все как надо гораздо проще и быстрее, чем искать либу, а потом бороться с ее глюками.
Программатор удобен и полезен для прошивки голого МК, но его можно заменить Ардуиной со скетчем ArduinoISP.
А скомпиленный в Студии код можно грузить и через USB/UART и ардуинский бутлоадер при помощи xloader.russemotto.com/
+
avatar
  • Serg32
  • 26 апреля 2017, 11:18
0
Да хватит одного таймера, посчитать програмно медленные процессы просто.

Не понял про потребление 168, отличие с 328 не только в размере памяти? Или память много потребляет? Тогда 88 или 48 будут ещё экономнее?
+
avatar
  • demonk
  • 26 апреля 2017, 12:25
0
В даташите есть — отличаются на доли микроампера во сне и на доли миллиампера при работе.
+
avatar
  • Aostspb
  • 27 апреля 2017, 13:44
0
не имеет таймера?
У него ( millis() ) цикл 42 дня или что-то около того.
+
avatar
+3
примерно так и делают в некоторых GSM-трекерах/сигналках, даже в инструкции отдельно пишут, мол, лучше не отключайте совсем отправку смс, а оставьте отправку смс по таймеру раз в пару недель — мотивируя это тем, что операторы могут заблокировать сим-карту, с которой N месяцев не списывались деньги, даже если эту симку используют в сети в режиме ожидания.

У какого-то оператора (билайн что ли) с GSM-трекером нарывался на ситуацию, когда после нескольких месяцев без списывания денег они врубают весьма бодрый режим «сохранения номера», при котором каждый день списывают 5 руб и тем самым очень быстро обнуляют счет симки трекера.
+
avatar
  • Aostspb
  • 27 апреля 2017, 13:48
0
врубают весьма бодрый режим «сохранения номера», при котором каждый день списывают 5 руб
Эта методика у операторов появилась еще в «дельтовские» времена, и сделано было как раз для того, чтобы была возможность отключить «мертвый» номер, предварительно списав баланс под ноль.
+
avatar
0
у Билайн и Теле2
+
avatar
  • mooni73
  • 26 апреля 2017, 10:41
+2
Колхоз с аккумом и стиральной резинкой явно из другой пьесы. Почему просто не припаять?
+
avatar
  • CTAHOK
  • 26 апреля 2017, 10:52
0
Как я и сказал в обзоре, там просто так не получится подпаяться — контакты утоплены глубоко, решил не рисковать.
+
avatar
  • Tosha
  • 26 апреля 2017, 16:30
0
Можно убрать плату защиты акка или припаяться к ней напрямую, убрав пластиковую рамку, с вырезами под клеммы.
+
avatar
  • starson
  • 26 апреля 2017, 10:53
+7
А мне понравилось :) Теперь буду знать как временно подкинуть контакты к такому аккумулятору.
+
avatar
  • Aostspb
  • 27 апреля 2017, 13:48
0
Только, для исключения ошибки подключения, лучше делать и третий (пустой) контакт.
+
avatar
  • demonk
  • 27 апреля 2017, 14:21
+1
Мне кажется будет хуже — пустой может оказаться чуть длиньше и отожмет от кормушки нормальный, два то полюбому нормально прижмутся.
+
avatar
  • 4NeoN4
  • 26 апреля 2017, 10:55
+3
Автор написал причину. Если у вас есть другая версия как сделать безболезненно, тогда напишите.
+
avatar
  • mooni73
  • 26 апреля 2017, 11:12
+7
Автор пишет, что решил не рисковать. В чем состоит риск мне не ясно. А вот риск неконтакта и сбоя системы в момент срабатывания практически неизбежен. Я делаю так:
+
avatar
  • CTAHOK
  • 26 апреля 2017, 11:29
0
Я специально концы «крючков» покрыл припоем, что они плотно вошли в выемки аккумулятора, риск неконтакта есть, не спорю, но и исполнение далеко не финальное, буду дорабатывать ещё, не исключаю, что и аккумулятор сам заменю.
+
avatar
  • sls
  • 26 апреля 2017, 10:45
0
не совсем понятно, как с модулем m590 девайс может отрабатывать по 4 месяца без подзарядки батареи.
не, к плате управления вопросов нет, вопросы к gsm модулю, с его потреблением.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 10:49
+1
В том то и дело, что пока на 3-м пине поддерживается лог.1, модуль не стартует и соответственно он ничего не потребляет. Но как только срабатывает прерывание, на 3-м пине появляется 0 и модуль стартует.
+
avatar
  • sls
  • 26 апреля 2017, 10:58
0
ок, модуль проснулся, связался с БС-кой, стал в ожидание
это, особенно в момент связи, немалые токи потребления
+
avatar
  • CTAHOK
  • 26 апреля 2017, 11:21
0
Модуль просыпается, сразу отзванивается, и как только вызов сбрасывается, он снова выключается, а МК уходит в бесконечный цикл. Без толку модуль не остаётся работать
+
avatar
  • Aostspb
  • 27 апреля 2017, 13:50
+2
и как только вызов сбрасывается, он снова выключается
То есть, услышав сообщение: «абонент выключен или находится вне зоны действия сети» — сигнализация считает, что её дело сделано и можно спать дальше?
+
avatar
  • SEM
  • 28 апреля 2017, 11:03
0
Абонент при возвращении в сеть получит сообщение о пропущенном звонке от контакта «сигнализация из желудей, спичек и ардуины», так что не всё так страшно.
+
avatar
  • demonk
  • 28 апреля 2017, 13:24
0
Вот только время хранения такого сообщения ограничено, например у МТС всего сутки. Если вне сети более суток то никаких сообщений о пропущенных звонках и не получишь.
+
avatar
  • SEM
  • 28 апреля 2017, 14:00
0
Тут лучше сделать обзвон и SMS на 3-5 номеров, хоть кто-то будет в сети.
У многих ОпСоСов есть шлюзы SMS<->e-mail, туда можно слать.

Но даже простая сигнализация, делающая одну попытку дозвона при срабатывании — лучше чем никакой.
+
avatar
0
ну блин!!! а Автоответчик / Секретарь подключить на тарифе сложно?
+
avatar
  • demonk
  • 02 мая 2017, 11:47
0
Осталось научить сигналку наговаривать ентому секретарю послание :)
+
avatar
  • CTAHOK
  • 28 апреля 2017, 16:31
0
В данной версии кода пока так — только на однократный посыл вызова настроено. Но это не финальный вариант конечно — буду дорабатывать.
+
avatar
  • qwerty2
  • 26 апреля 2017, 11:23
0
Так после сброса звонка, модуль снова уснет. Функция gsmOFF().
+
avatar
+5
Фундаментально.Жирный плюс
+
avatar
  • terol
  • 26 апреля 2017, 10:54
+1
Душевно!
+
avatar
0
А мне непонятно, как сигналка у вас прожила 4 месяца в холода, если на тестах она не прожила в таких условиях и суток?
+
avatar
  • CTAHOK
  • 26 апреля 2017, 11:01
0
Потому что сигналка эти 4 месяца находится внутри утеплённой дачи — там температура была конечно не как на открытом морозе.
+
avatar
0
А в чем смысл энергонезависимой сигналки на отапливаемой даче?
Если вы говорите, что в неотапливаемом доме у вас зимой в -25 на улице — темп не падает хотя бы до -10 — я не поверю никогда в жизни.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 11:15
0
Утепленная, но не отапливаемая, так как там постоянно никто не живет. Вот в -25 уже не тестил, ни внутри, ни снаружи, не понижалось у нас настолько. -15 было, не ниже.
+
avatar
  • Lone
  • 26 апреля 2017, 13:30
+1
Температура в утепленном доме будет в итоге та же, что и на улице. Просто будет дольше выравниваться, но в итоге все равно промерзнет все. Если на даче есть погреб, можно аккум поместить туда, предварительно защитив от влаги. Если хороший погреб, там "+" всю зиму будет. Можно и вообще всю сигналку туда (кроме датчиков конечно), но это уже зависит от покрытия GSM — может не ловить в погребе. Или антенну наверх вытащить…
+
avatar
0
Температура в утепленном доме будет в итоге та же, что и на улице.
Зимой в конце рабочего дня в машине всегда на пару градусов теплее, чем на улице.
+
avatar
0
достаточно батарейки вместо аккумулятора.
смысл в Аккумуляторе?
+
avatar
  • rexen
  • 02 мая 2017, 09:28
0
2 Ампера от батарейки?
Ко всему прочему, такие акумы у многих тупо валяются без дела.
+
avatar
  • tianddu
  • 26 апреля 2017, 10:56
+1
да частично можно считать что собрано из говна и палок. Все хочу просверлить в штифтах замка углубления, и вставить магниты, в дверной косяк вставить герконы, и смотреть по запросу закрыт ли замок или нет.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 11:08
0
Посещали меня эти мысли, потом ещё есть кнопки-концевики, микропереключатели… глаза разбегаются…
+
avatar
  • tianddu
  • 26 апреля 2017, 11:34
0
да концевик тоже интересный вариант и сверлить не надо…
+
avatar
  • Dimon_
  • 26 апреля 2017, 11:20
0
CTAHOK, отобразите, пожалуйста, на схеме охранный обрываемый шлейф. По описанию-то понятно, но новичкам совершенно неочевидно.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 11:30
0
Так то он оранжевый на схеме, но щас поправлю рисунок.
PS.Обновил.
+
avatar
+4
За руки +. Сама идея сигнализации на даче сомнительна. Ну буду я знать, что залезли. Ночью. В 20 км от объекта. Разве что вторую сигнализацию замутить, чтоб по звонку 50 граммов тротила подрывала, но это уже срок.
+
avatar
+1
Вариантов масса, от простой активации камер-писалок со сбросом в облако ☁ до включения чего-то мощного (доп. авто акб в помощь). Суть не в этом, а в обесточенности охраняемого объекта. Автору спасибо, надо повторить) Ждем программного улучшайзинга!)))
+
avatar
  • demonk
  • 26 апреля 2017, 12:06
+5
Как минимум, будете знать, что надо приехать и повесить новый замок, пока соседские алкаши не унесли оставшееся через распахнутые двери.
+
avatar
  • SEM
  • 26 апреля 2017, 12:09
+7
Лучше узнать об этом ночью, в 20 км от объекта, чем весной.
Утром доехать и пентов вызвать, по горячим следам больше шансов найти, чем через 3 месяца.
Бомжатину выгнать.
Застать на месте бригаду, методично разбирающую дачу на стройматериалы.
+
avatar
  • nsn
  • 26 апреля 2017, 12:40
0
От сигнализации, которая только отзванивается, конечно, толку мало, разве что сознание того, что на даче всё спокойно, благотворно действует на нервную систему. Более полезна сигнализация с обратной связью: можно послушать/посмотреть, что происходит, и, например, включить сирену. Простых местных гопников это спугнёт.
Но это уже гораздо сложнее реализовать. Вообще, при всём уважении к мастерству, нужно заметить, что комлектующих тут на $10, а времени и труда на все $100.
+
avatar
  • rexen
  • 02 мая 2017, 09:36
0
Почему сложнее? Тупо берётся та же древняя кнопочная Нокиа и несложной манипуляцией превращается в такую точку с автоподнятием трубки — вместо динамика можно подключить домофон и при тревоге нагавкать через матюгальник на непрошенных гостей. Этот вариант вообще годится и для квартиры — вам звонят в дверь «для проверки дома ли хозяин», а мобила-сигналка дозванивается вам (или вы до неё) и включает громкую связь.
+
avatar
  • mVlad77
  • 26 апреля 2017, 22:43
0
Ну, было у меня такое: в 3 часа ночи сигналка заорала, что в новую квартиру в элитном районе вломились (ровно через год после того, как дверь ставили, тогда все ключи были извлечены из пакетов — могли дубликаты снять). Ну, здраво подумав, что поехав туда ночью рискую словить битой по кумполу или пулей в голову, предпочел сигналку отключить, удаленно послушать как воруют (ничего правда не услышал), и лечь дальше спать. Утром поехал — дверь закрыта, визуально ничего не взяли (ремонт был закончен на 50%).
+
avatar
  • SEM
  • 26 апреля 2017, 11:34
+2
Ещё более экономичную сигнализацию можно сделать если шлейф будет работать не на обрыв, а на замыкание питания сигнализации. Трёхконтактные герконы, кнопки «как в холодильнике», опрокидывающиеся трубки с контактами и стальным шариком.
Потребление в режиме ожидания — 0, только саморазряд аккумулятора.
На питание поставить преобразователь «с чего угодно на 3.3 вольт», акк — любой, можно батарею.
Добавить только реле (ключ), чтобы при подаче питания оно это питание продолжало давать даже после размыкания шлейфа, и отключалось по команде от сигнализации, при уходе в спящий режим после дозвона.
+
avatar
  • CuMr
  • 26 апреля 2017, 11:44
+4
На замыкание не делают чтобы обрыв шлейфа детектился как срабатывание.
+
avatar
  • SEM
  • 26 апреля 2017, 12:04
0
Да, обрыв в любом месте — срабатывание.
Но если надо с нулевым потреблением — от чего-то придётся отказаться.
Хотя наверно есть электронные ключи (преобразующие обрыв шлейфа в замыкание цепи питания) с потреблением в режиме ожидания более низким, чем сигналка из обзора.
+
avatar
0
Если все правильно сделать — то потреблять она будет схоже, а простреливать себе ногу, как Вы предлагаете — это вообще не вариант.

Детектиться должен обрыв, иначе такую сигналку обойти проще пареной репы.
+
avatar
  • SEM
  • 26 апреля 2017, 15:57
0
Схоже потреблять никогда не будет — в одном случае только ток саморазряда аккумулятора, в другом — саморазряд плюс потребление спящей сигналки.
И «защита от обхода» не всегда нужна.
+
avatar
0
Для тиньки с PicoPower — около 200нА, по тестам в режиме глубокого сна.
Сильно не схоже? :D
+
avatar
  • SEM
  • 27 апреля 2017, 09:10
0
Если действительно 200нА, то хорошо.
+
avatar
  • iDDD
  • 26 апреля 2017, 11:49
+2
опрокидывающиеся трубки с контактами и стальным шариком
Тогда уж лучше ртутный датчик наклона.
+
avatar
  • SEM
  • 26 апреля 2017, 12:01
0
Искать… Содержит ртуть…
Если есть — хорошо, если нет — проще сделать из пластиковой трубочки и стального шарика.
+
avatar
  • iDDD
  • 26 апреля 2017, 12:27
+1
От 5 рублей за штуку на ебее.
Ртути там капелька диаметром в миллиметр.

А главное — он герметичен и надежно срабатывает, в отличие от самопального датчика из стального шарика, который в гараже через месяц покроется ржавчиной и может быть сработает только если по нему молотком специально лупить.
+
avatar
  • SEM
  • 26 апреля 2017, 12:42
0
Вряд ли можно монету 5 руб засунуть под монитор и получить этот датчик…
Из-за наличия ртути — почта, теоретически, не должна пересылать (если ей сообщать правду о пересылаемом предмете)…
А пластиковую трубочку и запаять можно, герметично.
Я же пишу, если есть ртутный — хорошо, если нет — проще и быстрей сделать из шарика.
Хотя вариант с прищепкой (ниже) ещё проще.
+
avatar
0
делет
+
avatar
0
Ртуть замёрзнет?
+
avatar
0
погуглил, вроде до -30 норм
ну как бы да, она кристализуется (замерзает) :)
просто считал, что она прилипнет к металическому стержню и не будет шевелиться, но раз производители пишут, что норм, то смысла спорить не вижу ;)
+
avatar
  • SEM
  • 26 апреля 2017, 12:35
+2
При -39°C. Не все знают прикуп и живут в Сочи…
+
avatar
  • CTAHOK
  • 26 апреля 2017, 12:10
+2
На замыкание — приходила одна идея тоже, на основе бельевой прищепки, где на каждую губку крепится по плоскому контакту, а между ними вдеть плоский диэлектрик, к которому привязан тросик, за который кто-нибудь потом дёргает, диэлектрик вылетает в сторону и контакты соприкасаются, причём под действием пружины — надёжно.
+
avatar
  • Dimon_
  • 26 апреля 2017, 12:16
+2
Журнал «Юный техник», начало 80-х :)
Там губки деревянной прищепки покрывали жестью от консервной банки, зачищенной шкуркой. И зажимали плоскую пуговицу с привязанной ниткой. Нитку дёрнули, пуговица вылетела, губки зажались.
+
avatar
  • iDDD
  • 26 апреля 2017, 12:29
0
Еще реле времени делали, вместо пуговицы — кусковой сахар (не рафинад, а был такой плотный, щипцами кололи), на который капали водой и через какое-то время он разрушался.
+
avatar
0
Тоже смотрел «Однажды в Америке»?
+
avatar
  • Kartus
  • 24 мая 2017, 08:12
0
Таймер моего детства — загрузить игрушку аквалангиста сахаром, а чаще солью и отправить на разведку глубин. Через несколько минут он всплывает с докладом)))
+
avatar
  • x893
  • 26 апреля 2017, 11:51
+4
Можно поменять LDO на TPS78233. У него при 0 mA потребление 500 nA.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 12:22
0
LDO на TPS78233

Этот даже поинтереснее, чем XC6206P332MR, странно что раньше на него не натыкался
+
avatar
  • x893
  • 26 апреля 2017, 12:42
0
есть ещё TPS783 — тоже 500 nA. У TI много всякого добра и образцы высылают без проблем (по п.18 :))
+
avatar
+3
работа проделана колоссальная, снимаю шляпу, и беру на вооружение способ подсоединения телефонного акума)
+
avatar
  • bob2005
  • 26 апреля 2017, 11:52
+2
Вот она! Рыба моей мечты! Осталось только время найти на все это :)
+
avatar
  • Jury_78
  • 26 апреля 2017, 11:55
+1
Использовать резину рядом с контактами не лучший вариант. Будет окисление из-за серы в резине.
+
avatar
  • PeteTHP
  • 26 апреля 2017, 11:58
+4
залогинился специально, чтоб плюс поставить!
+
avatar
  • demonk
  • 26 апреля 2017, 12:02
+8
Стабилизатор напряжения на ардуине вообще не нужен при питании от лития. Только потеря энергии и напряжения. Если нет требующих фиксированного напряжения компонентов, то всю схему запитываем напрямую от аккума.
Вместо перебора ардуин сковырнули бы на китайской AMS1117 и все.
А если нет требований к быстродействию — то на более распространенной и дешевой Pro Mini 5V atmega328 можно было поменять кварц на 8МГц, а то и вообще от него избавиться (еще съэкономив энергию), переведя фьюзами на внутренний генератор (правда могут быть проблемы с UART при изменении температуры).
+
avatar
  • CTAHOK
  • 26 апреля 2017, 12:18
+3
А если нет требований к быстродействию — то на более распространенной и дешевой Pro Mini 5V atmega328 можно было поменять кварц на 8МГц, а то и вообще от него избавиться (еще съэкономив энергию), переведя фьюзами на внутренний генератор (правда могут быть проблемы с UART при изменении температуры).
Как раз об этом я тоже писал в обзоре:) Внутренний генератор не годится, да и тот, что внешний на 8МГц — тоже не слишком точен, некоторый процент ошибок там тоже есть, хоть он и мал.
Вместо перебора ардуин сковырнули бы на китайской AMS1117 и все.
Уже сковырнул, но я планирую построить ещё одну сигналку, с учётом замечаний, уже без стабилизатора конечно.
+
avatar
0
Вот как раз шел написать, что стабилизатор на ардуине в данном случае не только бесполезен, но и вреден. Опередили :)

А вреден он потому, что уровни входов-выходов ардуины получаются ограничены величиной 3.3в, а gsm модуль при этом работает с уровнями батареи. Скорее всего, именно в этом (а вовсе не в «глючности» языка wire) и кроются корни тех проблем, что наблюдались автором.
+
avatar
+1
планирую поэкспериментировать с датчиком Холла и герконом
Попробуйте ртутный датчик, который применяется в паяльниках. Он не боится холода и жары.
За обзор плюс!

Забыл ещё упомянуть — если я использую подобные аккумуляторы для своих поделок, то я удаляю встроенную плату защиты, так как в плате зарядки уже есть защита от переразряда/перезаряда. Зачем дублировать?
+
avatar
  • Patric
  • 26 апреля 2017, 12:18
0
А как антенна от роутера подошла к GSM, там же разные частоты?
+
avatar
  • CTAHOK
  • 26 апреля 2017, 12:32
0
Антенна эта представляет собой экранированный проводок, припаянный к текстолитовой плате с широкими дорожками, поэтому подвоха как бы не увидел, тем более когда и на али продают такие же антенны, они как и для Wi-Fi, так и для GSM модулей.
+
avatar
+1
По-хорошему на 2,4ГГц и на 900МГц длины разные. То что у вас заработала от вайфая это просто везение. Если же конструкцию перемещать в зоны с менее уверенным покрытием, то антенну нужно менять
+
avatar
0
Модуль — мультистандартный, а 900МГц БС GSM в наше время еще поискать надо, везде 1800МГц.
Ну а 1800 — эту куда ближе к антенне на 2400, сделанной «плюс-минус лапоть» по-китайски.
Потому и работает :)
+
avatar
0
Я бы не надеялся на 1800 хотя-бы потому, что его обычно делают для ближней зоны от лепестка БС дабы подобрать близких клиентов с целью разгрузить основной диапазон.
Что это обозначает на практике? Решили операторские ребята сделать так, что все кто по тайм-адвансу дальше 4 единиц — не обслуживаются, и получается что? Терминал может видеть свободные слоты, но никогда не получится их использовать, если ты находишься дальше 2км от антенны. Это так, из личного опыта…
+
avatar
  • kn_dima
  • 26 апреля 2017, 12:45
+1
Задача получения максимальной эффективности радиотракта, видимо, не стояла :)
+
avatar
  • stupic
  • 26 апреля 2017, 12:50
0
плату контроля заряда разряда лития
можно только лишь плату контроля заряда на tp4056, т.к. в применённом аккумуляторе «от нокии» (как и во всех мобилах) уже содержится плата контроля разряда
+
avatar
  • CTAHOK
  • 28 апреля 2017, 16:26
0
Обычной TP4056 небыло, но про встроенный в нокиевский аккумулятор контроллер разряда не знал, думал что отслеживанием разряда строго телефон занимается.
+
avatar
  • Alesh
  • 26 апреля 2017, 12:56
0
Тема хорошая, а есть мануал по созданию на ардуине системы мониторинга температуры с уведомлением по СМС при снижении/превышении пороговых значений?
+
avatar
  • wd40
  • 26 апреля 2017, 13:20
0
А в чем вопрос-то? Если вы хотите полную реализацию, так это тут. Если есть мысли доработать эту схему — вопросы задавайте конкретные.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 17:18
0
Здесь опять же потребуется периодические просыпание Ардуины по таймеру, который будет мониторить данные (температура, напряжение аккумулятора) и слать по SMS. Мне выше пару интересных идей подкинули, буду пробовать реализовывать.
+
avatar
  • wd40
  • 26 апреля 2017, 22:13
0
Вопрос больно расплывчатый. Температуру чаще мониторят в домах, а там есть питание и такой драконовской экономии, как у Вас, не нужно. Резервное питание — да. Заодно уведомлять об отключении. Неплохо еще входное питание через мосфет, отключаться при критическом напряжении аккумулятора.
+
avatar
  • Alesh
  • 27 апреля 2017, 12:55
0
да, имел ввиду частный дом, мониторинг температуры, для того, чтоб вовремя узнать, что отопительный котел не работает. Заодно можно уведомление об отключении э/энергии слать
+
avatar
  • UWU
  • 26 апреля 2017, 13:40
+3
Как часто адруина проверяет срабатывание сигнализации?

Есть мнение, что такие малопотребляющие решения лучше делать не на адруине, а на STM32 или ESP8266. Всё дело в том, что у этих чипов есть режим глубокого сна, и аппаратный таймер, который может будить чип в указанное время. Режим глубокого сна хорош тем, что потребление электричества падает до величины порядка ~10 мкА. В Ардуине, насколько знаю, этого нет.

Ну и пара идей в развитие.

Можно завести напряжение батареи на вход АЦП контроллера. Тогда можно всегда будет или запросить уровень заряда, или сам контроллер может просигналить, что батарея разряжена.

Ещё можно прикрутить камеру, чтобы снимки делала в момент срабатывания и закачивала на какой-нить сайт.
+
avatar
  • Kail
  • 26 апреля 2017, 14:05
+4
Я, правда, не сильно то и интересовался, но мне кажется, что слова «ESP8266» и «низкое энергопотребление» вместе стоять не могут :D
+
avatar
  • UWU
  • 26 апреля 2017, 14:07
+1
Всё зависит от режима работы. Потребление для ESP8266:
WiFi 70 мА
Поддержание WiFi 20 мА
Power safe 1 мА
Deep Sleep 10 мкА
Power Off 0.5 мкА
+
avatar
+10
Как часто адруина проверяет срабатывание сигнализации?
Постоянно, ибо висит на прерывании со слов автора — и это правильно.

В Ардуине, насколько знаю, этого нет.
В Ардуине вообще ничего нет — это кусок гетинакса с деталюшками.
А вот в ATMEGA аппаратный таймер есть и зовется он WatchDog.

STM да, можно, но он сложнее, чем ATMEGA.

Советы:

1) брать платки на ATMEGA328 и не заморачиваться

2) сон в 8 секунд и пробуждение по WDT

3) всю питаемую периферию (если есть) через ключ или твердотельное реле на ногу микроконтроллера, перед сном на нее 0, чтобы отрубилось все, при выходе из сна 1 и подождать, чтобы периферия в себя пришла (если надо)

4) проснулись:
— увеличили счетчик засыпаний, он * 8 примерно даст время работы
— проверили напругу, температуру — если что-то вне нормы — очнули модем, послали SMS
— проверили примерное время работы, если больше недели (или любого другого отрезка) — сформировали SMS сообщение «I'm alive» + телеметрия, сбросили признак жизни для следующего раза
— в определенное время (раз в день / неделю / месяц) пробудили модем, пошерстили смс — есть управляющие? — обработали + очистили все сообщения

5) управляющие сообщения (каждое содержит пароль): баланс, напряжение, температура (либо одно сообщение телеметрии, где все объеденено), смена номера, включить модем в определенное время на определенное время + другие фантазии

Глубокий сон по WDT хорош тем, что если что повисло — все равно отвиснет :)
+
avatar
  • Kail
  • 26 апреля 2017, 14:31
0
По ключам плюсую. И есть из чего выбрать. Я вот нашел мосфет с гарантированным рейтом в 125 мОм при -1,8В, всего 5 рублей у нас, и это в дорогом чип-дипе! Говорят, эти паяные GSM модули любят виснуть. Впрочем, виснуть могут даже брендовые))
+
avatar
  • CTAHOK
  • 26 апреля 2017, 17:36
0
Говорят, эти паяные GSM модули любят виснуть. Впрочем, виснуть могут даже брендовые))
Ещё одна причина для погружения в сон, модуль как-то оставлял включенным просто на столе на целый день, и таки да, было зависание пару раз.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 17:34
0
Глубокий сон по WDT хорош тем, что если что повисло — все равно отвиснет :)
Спасибо за дополнение. Про идею с ключами на транзисторах тоже думал, будет полезно, если буду подрубать дополнительную периферию. WDT попробую. Ещё много чего можно реализовать.
+
avatar
  • Aostspb
  • 27 апреля 2017, 13:59
+1
WDT попробую.
Для работы WDT на ProMini, возможно, придется менять бутовый загрузчик.
+
avatar
  • demonk
  • 26 апреля 2017, 14:21
+1
Хехе, вы хоть обзор читали? У автора срабатывание проверяется ровно 1 раз — по факту вторжения.
А ардуина суть есть демоборда на Atmega168, у которого вполне есть режимы сна с минимальным током 0,1мкА и которые можно включить даже из Arduino IDE, но об этих возможностях не трубят чтоб чайников не распугать :)
+
avatar
0
Только watchdog, к сожалению, не включишь из-за ошибки в стандартном загрузчике. Но если перешить на optiboot — то счастье станет вполне возможным, да.
+
avatar
  • demonk
  • 26 апреля 2017, 16:32
0
Перезагрузка собакой да, приведет к бутлупу со стандарным загрузчиком.
А вот на прерывания WDT, используемые для побудки, загрузчик повлиять не в состоянии.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 17:49
0
Есть безопасные способы проверить работу WDT?
+
avatar
  • demonk
  • 26 апреля 2017, 17:54
0
Скетчем отсюда geektimes.ru/post/255800/
Если начнутся бутлупы — передергиваем питание и есть 5 сек на перепрошивку
+
avatar
  • CTAHOK
  • 26 апреля 2017, 19:56
0
Хорошо, попробую
+
avatar
+2
Такое может говорить только лишь тот, кто не пытался в ESP8266 эти режимы задействовать (в тех китайских поделках на ней что общедоступны).
+
avatar
  • CTAHOK
  • 26 апреля 2017, 17:47
0
Как часто адруина проверяет срабатывание сигнализации?
МК постоянно спит, и пробуждается только от прерывания

Есть мнение, что такие малопотребляющие решения лучше делать не на адруине, а на STM32 или ESP8266. Всё дело в том, что у этих чипов есть режим глубокого сна, и аппаратный таймер, который может будить чип в указанное время. Режим глубокого сна хорош тем, что потребление электричества падает до величины порядка ~10 мкА. В Ардуине, насколько знаю, этого нет.
STM32 и ESP8266 — камни конечно почётные и хорошие, но боюсь, что их функционал мне будет на данном этапе избыточен, а ближе где-то к концу обзора я писал про Ардиуно, что если понизить тактовую частоту через фьюзы, то потребление снизиться до долей 1мкА — об этом в даташите на 168 атмегу написано. Ну и опять — солнечную панель если применить — то и париться не нужно будет.

За идеи спасибо. WDT+замер напряжения аккумулятора — первое, чем займусь.
+
avatar
  • manatu
  • 26 апреля 2017, 13:44
+1
Отличный обзор! Спасибо за проделанную работу!
+
avatar
  • Daredee
  • 26 апреля 2017, 13:59
+1
экая гора рукожопства, всяка плюс
+
avatar
+1
Занятная штуковина, ищите датчик герконовый ИО 102-2 (СМК-1) очень надежно.Работает на открытие, в комплекте датчик и магнит, можно поставить на двери, окна. Когда работал во вневедомственной их вал был.
+
avatar
  • CTAHOK
  • 27 апреля 2017, 03:36
0
Нашёл в своём городе. Как я понял, это по сути магнит и геркон, только в более цивильном исполнении.
+
avatar
  • Kail
  • 26 апреля 2017, 14:22
+3
По поводу энергопотребления AVR всё расписано тут. Можно найти частичные переводы на русский. Там у человека получилось снизить до 355(!) наноампер. И вообще там ещё есть полезные исследования по AVR.

atmega с суффиксом P действительно может потреблять меньше в одинаковых условиях. Технология PicoPower. Бывает и в attiny.
При питании от лития действительно можно обойтись без стабилизатора даже у мег с питанием от 2,7В, если у периферийных устройств нет особых требований.

Просыпаться можно и от RTC, NXP PCF8563 декларирует до 200 наноампер в дежурном режиме, и есть нога прерывания с открытым коллектором, которая будет активна, пока не сбросить по I2C. Но если качественно спать — проще, наверное, обойтись.

У ардуины для работы функций millis/micros и tone задействованы таймеры 0 и 1. Соответственно, нулевой дёргает прерывание довольно часто. Бутлоадер на старте ждёт без всякого энергосбережения. Может, ещё какие приколы есть.

Герконы используются массово в охране, и ничего, работают.
И да, резинки для денег любят рассыхаться.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 18:44
0
Спасибо за мощную статью по ссылке.

atmega с суффиксом P действительно может потреблять меньше в одинаковых условиях. Технология PicoPower. Бывает и в attiny.
При питании от лития действительно можно обойтись без стабилизатора даже у мег с питанием от 2,7В, если у периферийных устройств нет особых требований.
У меня есть другая Pro Mini, на обычной меге 168 — на ней построю ещё одну сигналку, уже с учётом правок и замечаний.
Просыпаться можно и от RTC, NXP PCF8563
Раздобуду как, попробую и его. Часов реального времени у меня сейчас пока нет, была где-то пачка таймера555 — интересно как он в плане экономичности
У ардуины для работы функций millis/micros и tone задействованы таймеры 0 и 1. Соответственно, нулевой дёргает прерывание довольно часто. Бутлоадер на старте ждёт без всякого энергосбережения. Может, ещё какие приколы есть.
Судя по таблице векторов прерываний, и как было написано в даташите, прерывания от обычных таймеров менее приоритетны (не считая аппаратного сброса по WDT), чем внешние прерывания и соответственно в первую очередь будут обрабатываться внешние события.
+
avatar
  • Kail
  • 26 апреля 2017, 23:37
0
ne555 в плане экономичности — никак) Даже КМОП. Она сама будет жрать десятки миллиампер. Плюс rc цепочка. Зато дёшево, знакомый купил пучок за пятачок, теперь не знает, куда деть остальные 49 штук))

Есть специализированные микросхемы, например TPL5010/TPL5110/TPL5111. 30-70 рублей в терраэлектронике, потребление — 35 наноампер (не включая единоразовое считывание времязадающего резистора), интервал до 2 часов.
PCF8563 тоже недорогая — 25 рублей в чип-дипе, но она подходит больше когда точное время и/или интервал нужны.

Я не про очерёдность прерываний, а про энергосбережение. tone() таймер запустит только при активации, а вот таймер millis() работает всегда.
+
avatar
  • demonk
  • 27 апреля 2017, 11:36
0
Ну как бы в глубоком сне таймера выключены, а в активном режиме millis() много не добавит, обработчик короткий, да и вырубить таймер0 можно, если не нужен.
+
avatar
0
Зачем лить конфиг в ээпром? Заливайте конфиг в телефонную книгу симки, и читайте этот конфиг из симки при старте. (ц) не моё, просто видел такую реализацию. В первую ячейку — 1й номер, 2-ю ячейку — второй номер. в 5-ю ячейку таймауты, в 6-ю алгоритм оповещения (смс/звонок/вместе).
Метод оповещения у вас выбран спорный. Могу назвать много «что если», но думаю сами догадаетесь. Из того, что видится мне — высылка смс с кодом, который нужно отправить в ответ назад для подтверждения получения тревоги. Если система не приняла подтверждение, то с таймаутом в 5 минут пытаться слать новое смс с новым кодом. Для звонка — ждать звонка в ответ и сбрасывать его со стороны сигнализации
+
avatar
  • kvolk
  • 26 апреля 2017, 16:13
0
Зачем лить конфиг в ээпром? Заливайте конфиг в телефонную книгу симки...
Поменял симку, конфигурировать снова?
Моё мнение — метод для тех кому лень возиться с еепром или если отсутствует энергонезависимая память в устройстве.

Если система не приняла подтверждение, то с таймаутом в 5 минут пытаться слать новое смс с новым кодом.
Итого за сутки 288 смс :) Если сработала сигналка, а ты на рыбалке, и телефон не в сети.
+
avatar
+1
Конфиг через симку можно произвести любым мобильным телефоном, т.е. избегаем изобретение устройства-конфигуратора сразу. Безусловно конфигуратор можно и сделать для себя любимого с экранчиком, клавиатурой и прочим блекджеком, но это уже на усмотрение автора. Мопэд не мой, я просто внёс рацуху (ц). Добавляю: да, идеально было бы конфигурировать смс-командами…

Подтверждение нужно. Повис модуль, упала временно сеть, произошла хрень на SMSC, в конце концов пришли с глушаком ГСМ-а. Хорошо, делать нотификацию не с равными интервалами — 1/5/15/60минут/3/9/12часов…
+
avatar
  • CTAHOK
  • 26 апреля 2017, 18:15
0
Ценно, внештатные ситуации тоже нужно будет предусмотреть.
С конфигурированием по SMS подумаю, как можно сделать.
+
avatar
+1
Посмотрите как сделано здесь, или другие варианты gsm сигнализаций
livegpstracks.com/forum/viewtopic.php?f=17&t=262
+
avatar
  • SEM
  • 28 апреля 2017, 11:47
0
Конфиг через симку можно произвести любым мобильным телефоном
SIM-ридер стоит доллар…
Например: aliexpress.com/item/Hot-Super-SIM-Card-Reader-Writer-Cloner-Edit-Copy-Backup-GSM-CDMA-USB2017/32802910748.html
+
avatar
  • CTAHOK
  • 26 апреля 2017, 18:05
+1
EEPROM так и так буду осваивать, пока научился записывать и считывать 1 байт с него, без использования библиотек. Но способ с телефонной книжкой тоже хорош, как более лёгкая альтернатива.
+
avatar
0
Если питание боится минусов, то как вариант его можно сделать на маленьком 6/12В кислотном АКБ VRLA, которому минуса не страшны. В заряде он прост, стареет он медленнее, чем литий.
Ещё видел интересные решения на базе обычных CR123. Ставились 5 штук в параллель, не боятся мороза. Девайс раз в сутки подымал ЖПС, брал координату, подымал ЖСМ, и по интернету отправлял её. Срок работы — 5 лет. Саморазряда у таких батарей вообще нет.
Да, было бы прикольно, чтобы девайс смс-ом сообщал о критическом разряде батарей…
+
avatar
  • CTAHOK
  • 26 апреля 2017, 18:22
+1
базе обычных CR123
тоже кислотные? в продаже только литиевые нашёл
+
avatar
0
Литиевые, но не перезаряжаемые. Дают ровно 3В, но с очень высокой токоотдачей, без саморазряда, без потери емкости при минусовых температурах…
+
avatar
  • DangerD
  • 26 апреля 2017, 18:26
0
Я вот хочу для тачки сигналку замутить =)
+
avatar
  • CTAHOK
  • 26 апреля 2017, 19:54
0
Для машины тоже вполне можно использовать
+
avatar
  • DangerD
  • 26 апреля 2017, 21:39
0
Для тачки надо скидывать данные на сервак, с постоянным соединением (сокеты)
Ну и датчик удара всунуть
+
avatar
  • CTAHOK
  • 26 апреля 2017, 23:03
0
Тогда уж и GPS ещё прикрутить
+
avatar
  • DangerD
  • 27 апреля 2017, 08:35
0
+3 бакса, но то не проблема, надо скетч написать)
Еще надо сделать управление, типа позвонил и dtmf кодами снял сигналку или поставил
+
avatar
  • Valery5
  • 26 апреля 2017, 20:02
+2
Вот интересно, все для дачи сигнализацию на ардуино делают, а для авто единицы. Причина этого феномена не понятна. Я собираюсь систему оповещения на нестандартной частоте для машины сделать. Все автосигрнализации угонщики глушат.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 20:35
0
Вы правы, для авто не менее актуально что-нибудь собрать. В автосигнализациях в основном какие частоты используются?
+
avatar
  • Valery5
  • 26 апреля 2017, 20:46
0
Саму автосигнализацию делать не целесообразно. она должна выполнять сервисные функции. Открывать-закрывать центральный замок, оповещать о сотрясениях и т.д. Есть дешевые модели для этих целей. Они работают либо на 433 МГц либо на 868 МГц. Эти диапазоны уважающие себя угонщики глушат. GSM тоже глушат.

На ардуино имеет смысл делать что-то типа пейджера. Когда дверь авто открывается через радиомодуль посылается сигнал на приемник, который у вас в кармане. Параллельно можно через GSM модуль сделать звонок на ваш мобильник. Но на GSM надежды нет.
+
avatar
  • Oregu
  • 26 апреля 2017, 20:55
0
Есть куча дешевых приемопередатчиков на 2,4 Ггц, легко сопрягаемых с ардуинкой. Можно не только обратную связь сделать, но и дополнительный иммобилайзер.
+
avatar
  • Valery5
  • 26 апреля 2017, 21:03
0
2,4 ГГЦ плохо распространяется. зайдете в магазин — и связь пропала. Отражается от всех преград. Я себе такой модуль заказал aliexpress.com/item/Original-CDSENET-UART-Serial-Wireless-Module-E46-TTL-1W-Long-Range-8km-170MHz-SX1278-LoRa-Module/32796429044.html

Говорят, в городе на несколько километров даже сквозь здания.
+
avatar
  • Kail
  • 26 апреля 2017, 23:42
+1
Широкополосному модулю связи — широкополосную глушилку :D
Причём они, скорее всего, такие и есть, даже если их такими сделать не старались.
+
avatar
  • Kail
  • 26 апреля 2017, 22:46
0
А у нас, если следовать букве закона, других удобоваримых частот то и нет. Не на 27 МГц же связываться.
Обычный брелок сигнализации разве не работает этим типа пейджером?
+
avatar
+1
Уважаю труд самоделкиных, но себе купил и стоит уже лет 4-5 shop.arsenalnpo.ru/karta_tovara.php?/b-gsm-signalizaciya-b/avtonomnaya/express_gsm_2&sid=527 вот такая хрень. К ней купил автономную сирену. Работает как часы. Единственная проблема замена раз в полгода батареи CR123 (3В). Есть желание перевести сигналку на литий 18650, но вот не знаю, там напряжение больше 4.2 вольта. Не сгорит сигналка? Или вообще из ИБП 7 амперный аккумулятор поставить, но надо как то понизить напряжение с 12 вольт до 3 вольт. Не знаю чем. Может кто на пальцах объяснит, чем понизить. Сам люблю руками делать, в электрике разбираюсь, но в электронике нет.
+
avatar
  • Valery5
  • 26 апреля 2017, 21:11
0
К сожалению, от угонщиков это малополезно. GSM почти всегда глушат. В больших городах, по крайней мере.
+
avatar
  • Valery5
  • 26 апреля 2017, 21:17
+1
muari2006

А понизить можно вот этой платкой: aliexpress.com/item/Ultra-small-LM2596-power-supply-module-DC-DC-BUCK-3A-adjustable-buck-module-regulator-ultra-LM2596S/32653212622.html

входное напряжение: 4 В ~ 35 В
выходное напряжение: 1.23 В ~ 30 В
+
avatar
0
Спасибо!
Ну тогда покажу, что я купил с месяц назад и сейчас жду
aliexpress.com/item/DC-DC-SX1308-Step-UP-Adjustable-Power-Module-Boost-Converter-2-24V-to-2-28V/32613351851.html
aliexpress.com/item/5A-Lithium-Charger-Step-down-5A-5V-32V-to-0-8V-30V-Power-Supply-Module-LED/1859122482.html
aliexpress.com/item/DC-CC-12A-300W-Step-Down-Buck-Converter-7-32V-To-0-8-28V-Power-module/32247251105.html
Вообще то у меня несколько мест, где необходимо понижать, а в другом месте повышать (вентилятор на 30 вольт) напряжение. Помогут ли мне эти приобретения? Покупал, читая отзывы покупателей.
+
avatar
  • Valery5
  • 26 апреля 2017, 22:12
+1
Первый повышающий — это не то.
А второй и третий понижающие. Можно использовать.
+
avatar
+1
Интересно
+
avatar
+1
Здорово, а что-нибудь аналогичное, но готовое можно купить?
Аккум, кстати, можно заменить на высокомощную (по меркам технологии) литий-тионилхлоридную батарейку.
И забыть про питание до следующего рукоприкладства.
+
avatar
  • CTAHOK
  • 26 апреля 2017, 23:14
0
Здорово, а что-нибудь аналогичное, но готовое можно купить?
есть, на али ищутся по «mini pir gsm alarm», но у них есть минусы:
— датчик движения не совсем надёжен
— при срабатывании заваливает бесконечными звонками
— могут возникнуть проблемы с таможней, т.к. у него есть встроенный микрофон
— по отзывам, иногда приходит нерабочий, кому-то со ржавой платой приходил внутри
литий-тионилхлоридную батарейку.
Как она ведёт себя на морозе?
+
avatar
+1
Лучше всех. Серьезно. До — 50 без потери емкости. У них минус в малых номинальных токах и плюс в огромной емкости. Раза в три больше аналогичного по весу/размеру лития-иона. Для этих целей можно поискать с высокой токоотдачей, до 250 мА в номинале и до 1-2 Ампер максимальных.
Эти батарейки давно используются у военных, геологов, нефтяников и пр., там где нет электричества, а сигнал жизнедеятельности получать надо.
+
avatar
+1
Там не в токах проблема, а в пассивации. При неправильном применении можно легко потерять все преимущество емкости.
+
avatar
0
Есть батареи практически без пассивации. Да и не так она страшна для данного применения. Здесь ведь не требуется год-два лежать, а после просыпаться. Кстати — тут тест с проверкой на пассивацию www.compel.ru/lib/ne/2017/2/9-sravnitelnoe-testirovanie-litiy-tionilhloridnyih-batareek
Падение емкости при превышении номинального тока на мой взгляд — более важная проблема этих батареек.
+
avatar
  • CTAHOK
  • 28 апреля 2017, 16:13
0
Занятно. Почитал немного про них, там саморазряд около 1% в год, спецслужбы такие используют в своих шпионских девайсах вроде этого . Но и нюансы конечно тоже есть — дороговизна и необходимость «активации» перед использованием.
+
avatar
0
С чего вдруг дороговизна? 300-600 рублей за возможность забыть про питание — разве много?
+
avatar
  • CTAHOK
  • 01 мая 2017, 05:10
0
300-600р. уже не дорого, видимо я плохо искал, вбив просто «литий-тионилхлоридная батарейка». Загуглил по Li-SOCl2, пару интересных вариантов нашёл, сюда же и сброшу, чтобы не потерять.
EVE ER18505M — 30$/5шт. (3500mAh, до 2А токоотдача(имп.))
PKCELL ER14505 — 22$/10шт. (2400mAh, до 200mA токоотдачи(имп.))
Первые (вкупе с электролитическим конденсатором на питании) должны подойти для питания GSM-модуля, который при запуске как раз и берёт до 2А.
Вторые присматриваю уже для другого проекта — энергоэффективного дозиметра для замеров радиации:)
+
avatar
  • CTAHOK
  • 01 мая 2017, 06:53
0
PS. c первым вариантом ошибся — тот просто литий-ион.
Всё-таки непросто отыскать высокотоковые элементы…
+
avatar
  • NE_XT
  • 27 апреля 2017, 00:18
+1
Отдельная благодарность и плюс, за народную синию изоленту!
:)
+
avatar
0
Неужели заказать плату у китайцев за $10 — слишком дорого? Монтаж убивает все хорошее впечатление от самоделки.
+
avatar
  • demonk
  • 28 апреля 2017, 15:49
+1
Нормальный монтаж для прототипа, автор же получил советов и собирается развивать девайс. А устройство и в таком виде свою задачу выполняет.
И красивую плату ради перфекционизма заказывать это не просто $10, а еще пара месяцев времени и приличная квалификация для подготовки данных в нужном формате и со вcяческими DRC.
+
avatar
  • CTAHOK
  • 28 апреля 2017, 16:21
+1
Неужели заказать плату у китайцев за $10 — слишком дорого?
Чуть выше писал о минусах.
В моём случае это не интересно, так как девайс готовый, а хочется самому сделать и реализовать, с возможностью дальнейшей модификации.
Монтаж убивает все хорошее впечатление от самоделки.
Изначально был навесной монтаж с пугающе изогнутыми проводами, т.к. отслеживал работу, а эстетику я отложил далеко на потом. Благодаря советам и замечаниям, я составил жирный список того, что стоит исправить/добавить. Не серчайте, это мой первый опыт в сборке подобных девайсов.
+
avatar
  • obe
  • 01 мая 2017, 03:38
+1
Тоже захотел сигналку на гараж, который близко. Купил готовую сигналку RF-V13. Странное соединение со спецсайтом, без которого даже не позвонит. Оно постоянно в одно и то же время пропадает (иногда раз в неделю. Часто каждый день. техподдержка мёртвая. Нужно ходить нажимать кнопку для возобновления. Заколебало). Буду пробовать старый андроидный аппарат ставить со спецпрогой (номер темы на 4pda=686033). При прерывании (другой вариант настройки-подаче) напряжения зарядки аппарат звонит на заданный номер. Остаётся только специальный дверной геркон в цепь встроить. И обратная связь опять же есть в виде микрофона. При желании можно и камеру задействовать. Вариант для тех кто хочет попроще и у кого остаются старые аппараты без дела.
+
avatar
  • CTAHOK
  • 01 мая 2017, 03:58
0
За ссылку спасибо, однозначно на заметку, как более лёгкая альтернатива.
Остаётся только специальный дверной геркон в цепь встроить.
Как вариант, использовать вот такое аккуратное решение — ИО 102-2 (СМК-1) — на основе геркона и магнита, его можно отыскать в своём городе недорого (30-50р.)
+
avatar
  • Sabj
  • 01 мая 2017, 19:05
0
Я полностью согласен что для общего развития очень полезная штука но на свою дачу такое не стану делать…
Минусов обсуждаемого девайса очень много. Основные:
1. Где гарантия что аккумулятор «вытянет» регистрацию при отрицательных температурах.
2. Раз уж оператор оператору рознь то нужно в алгоритме чтобы по таймеру устройство просыпалось, запрашивало баланс и пересылало хозяину СМС с этой информацией.
3. Нужен выход на сирену — 100% ибо сигнал Вы получите, но не факт что будете рядом…
Как по мне, дак проще готовый модуль взять за 1900 руб. типа Сова-900 с тех поддержкой и продуманными алгоритмами работы.
Для гаража видео есть: www.youtube.com/watch?v=KaXKvvYg3nU&feature=youtu.be
Гораздо удобнее будет именно в процессе эксплуатации. А не мучатся в итоге со старыми телефонами/ китайскими дешёвыми устройствами/ самодельным ёжиком из проводов и т.п.
Люди ведутся сперва на такое (это я про RF-V13), потом начинают прозревать что в итоге неудобная штука, а спустя ещё какой-то момент времени перестают пользоваться совсем — просто потому что в процессе эксплуатации она не удобна и чаще не эффективна как могла бы быть.
+
avatar
  • CTAHOK
  • 01 мая 2017, 20:26
0
Минусов обсуждаемого девайса очень много. Основные:
1. Где гарантия что аккумулятор «вытянет» регистрацию при отрицательных температурах.
2. Раз уж оператор оператору рознь то нужно в алгоритме чтобы по таймеру устройство просыпалось, запрашивало баланс и пересылало хозяину СМС с этой информацией.
3. Нужен выход на сирену — 100% ибо сигнал Вы получите, но не факт что будете рядом…
Это далеко не финальный вариант. Минусы будут прорабатываться, о чём неоднократно уже сообщил.
Как по мне, дак проще готовый модуль взять за 1900 руб. типа Сова-900 с тех поддержкой и продуманными алгоритмами работы.
Готовое — это готовое, со своими особенностями и минусами, которые зачастую не пофиксить.
Прелесть самодельного решения — в дорабатываемости под себя.
За наводку на «Сову» спасибо. Узрел там пару идей для своего проекта. Но сравнение не корректно, ибо «Сова» зависима от розетки, а здесь рассматривается энергоэкономичный вариант.
+
avatar
  • Sabj
  • 02 мая 2017, 04:32
0
GSM модуль при регистрации потребляет достаточно большие скачки тока (энергии), мне кажется, что зная это, я бы переживал за то что аккумулятор ещё в рабочем состоянии…
А так устройство выключено, сам находишься совсем в другом месте и вот как определить что всё ОК. У Совы можно либо позвонить или послать СМС и она перешлёт своё текущее состояние в том числе баланс на сим карте — по моему узнать в любой момент времени что на объекте всё в порядке стоит гораздо дороже чем энергоэкономичное решение (при условии что никто не стесняет Вас в размерах источника питания).
Хотя очень интересную тему Вы обсуждаете. Спасибо! Побольше бы возможных решений.
+
avatar
+1
9600/8N1/None
Всплакнул и утёрся сединой.
+
avatar
  • rexen
  • 02 мая 2017, 13:15
+1
Пара соображений:
1) В качестве аккумодержателя можно использовать, собственно, сам родной корпус старой мобилки. Древних Нокий и прочих кнопочников достаточно в загашниках.
Собсно, «донора» можно распотрошить ещё и на экранчик (благо под Мегу и Нокиевские экранчики наработок достаточно) и динамик.
2) В автомобильных сигнализациях ещё актуальна борьба с GSM-глушилками. Там используют активный опрос сигналки — если она не отвечает (по GSM/радио/Internet) — значит кто-то её глушит (либо иной форсмажор). В дачном варианте наверное не столь актуально. По крайней мере, пока.
+
avatar
  • CTAHOK
  • 03 мая 2017, 01:30
+1
1) В качестве аккумодержателя можно использовать, собственно, сам родной корпус старой мобилки. Древних Нокий и прочих кнопочников достаточно в загашниках..
Можно было сделать и так, но как-то так сложилось, что пускай даже старые телефоны, под влиянием внутреннего перфекциониста охота отремонтировать:)
Собсно, «донора» можно распотрошить ещё и на экранчик (благо под Мегу и Нокиевские экранчики наработок достаточно) и динамик
Не совсем понятно, зачем динамик, если для сирены, то как-то маловато будет такого.
А вот с дисплейчиком идея отличная, будем прорабатывать, к тому же я как-то рисовал к нему свои шрифты.
2) В автомобильных сигнализациях ещё актуальна борьба с GSM-глушилками. Там используют активный опрос сигналки — если она не отвечает (по GSM/радио/Internet) — значит кто-то её глушит (либо иной форсмажор). В дачном варианте наверное не столь актуально. По крайней мере, пока.
В случае сигналки для автомобиля дело усложняется, тут девайс практически всегда должен быть в онлайне, а значит питаться будет от свинцового аккумулятора, лучше всего резервного спрятанного. Обязательно сделать возможность фотовидеосъёмки салона авто при помощи камер с ик-подсветкой — всё это дело логировать + дополнительные возможности вроде запуска сирены, если контроллер обнаружил, что модуль не может найти сеть. Не сообщит на сервер, хоть напугает.
Для авто если делать — то только комплексное решение.
+
avatar
  • mrx
  • 24 мая 2017, 05:32
0
Выпаял AMS1117 как раз на такой же плате. Ток 6мА, почему?
+
avatar
  • mrx
  • 24 мая 2017, 07:53
0
Сорри, перешел в спящий режим с помощью либы LowPower.cpp получил 26мкА
+
avatar
  • CTAHOK
  • 24 мая 2017, 08:09
0
Мой участок кода из функции sleepNow(); ещё попробуйте — должно чуть меньше есть.
Только пару строк, связанных с прерываниями — можно удалить, если прерывания не нужны:
attachInterrupt();
detachInterrupt();
+
avatar
  • mrx
  • 24 мая 2017, 09:51
0
Спасибо. Я с удовольствием попробую, но сейчас я новичек в архитектуре ардуино. Опасаюсь малышку мою превратить в кирпичик силиконовый с этим режимом сна.
Вот код сваял с вашей функцией:
#include <avr/sleep.h>

void wakeUp() {}

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() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
    sleepNow();
    digitalWrite(LED_BUILTIN, HIGH);
    delay(50);
    digitalWrite(LED_BUILTIN, LOW);
}


Если одобрите что проблем не будет залью. Или позже когда дойдет до меня как все работает тоже залью. =)
+
avatar
  • CTAHOK
  • 24 мая 2017, 10:53
0
Мне пока известно два способа закирпичивания МК — это неосторожная работа с фьюзами и со сторожевым таймером (watchdog). Манипуляции со сном не страшны.
Можете и так для начала попробовать, Вы с внешними прерываниями решили использовать?
+
avatar
  • mrx
  • 24 мая 2017, 11:34
0
Нет, просто опасаюсь исключить что-то важное.
Если первая заливка пройдет успешна, закомментирую их.
А в перспективе да, я их планирую использовать.
Может вы подскажите, такая задача: два модуля ардуино должны будут просыпаться 1 раз в сутки в строго определенное заданное время одновременно. Первый будет передавать данные, второй принимать. Точность нужна наверное на секунды(может минуты) чтобы они не зря бодрствавали и жрали свои батареи. Я так понимаю внутренними таймерами/счетчиками самой ардуины это будет не точно, т.е. две ардуины быстро рассинхронизируются. Я прав? Через какое время приблизительно они рассинхронизируются на 1 секунду к примеру. Поэтому я планию использовать RTC DS3231, запрограммировав его на будильник. И в идеале он своей ногой SQW(даст ли он этот сигнал от своей CR2032 еще не знаю) будет будить ардуино. Вот для чего мне прерывания. Я не ошибаюсь?
+
avatar
  • CTAHOK
  • 24 мая 2017, 13:33
0
Про рассинхронизацию времени читал на форуме, так и есть, со временем убегает вперёд, поэтому да, внутренние таймеры не настолько точны. Через какое время — не предугадаешь точно, т.к. внешний кварц, от которого всё тактируется немного, но всё же зависит от внешней температуры. DS3231 неплохо, его хвалили на форуме за точность — я тоже кстати собирался с ним поэкспериментировать, так как хочу периодически пробуждать Ардуино для проверки статусов датчиков в GSM-сигналке, но долгая доставка мешает планам, сейчас со сторожевым таймером разбираюсь
+
avatar
  • mrx
  • 24 мая 2017, 14:29
0
Спасибо за информацию.
У меня вторая RobotDyn 8/3.3v с стабом маркировка S2PF.
Даташит не находится. В режим сна(LowPower.cpp) 60мкА, без светодиода, питание подано на RAW.
+
avatar
  • CTAHOK
  • 24 мая 2017, 15:49
0
Не думал, что в РоботДяны ставят и другие стабы, кроме LE33. Этот аж в 4 раза экономичнее. От применения сторонней библиотеки я решил всё-таки избавится, прибегнув ко включению режима сна через прямое обращение к регистрам: потому как я хоть пока и добился минимальных 20мкА при выпаянном светодиоде и стабилизаторе — но это ещё далеко не предел. Кое-какая периферия внутри контроллера даже во время сна ещё остаётся задействованной.
Как сообщает один товарищ, например можно ещё Brown-Out Detector (BOD) отключить, однако просто так сделать это у меня не получилось, видимо во фьюзы придётся уже лезть.
Ещё важный момент — по внешнему прерыванию.
Если оно настроено на разрыв цепи, т.е. по логическому нулю на выводе 2 (прерывание 0), то нужно не просто закоротить этот вывод на VCC, но сам вывод 2 притянуть резистором (в моём случае 1М) к земле — при обрыве растяжки, этот вывод гарантированно притянется к земле и появится лог. 0. Без этого резистора, при обрыве растяжки, вывод 2 останется висеть в воздухе и ловить помехи и тем самым прерывание будет срабатывать с задержкой, ожидая когда появится случайный лог.0. Этот резистор отъедает 5мкА общего питания, но ради надёжности это не критично. Если резистор ставить поменьше, то потребление будет больше.

Помимо прочего, во фьюзах можно уменьшить частоту тактирования, что тоже прибавит экономии, но тут уже опасность окирпичивания МК неправильной установкой параметров:)
+
avatar
  • mrx
  • 24 мая 2017, 16:09
0
Залил, с attachInterrupt не хочет засыпать.
без, засыпает, ток 20мкА.
RobotDyn стаб S2PF, 56мкА, случайно её купил у местных продавцов. Посмотрим еще какая придет с али. Но как по мне 20мкА лучше. Фена нет, AMS1117 раскрошил аккуратно. Тело хрупкое.

Огромное спасибо за подтягивающий резистор. Ведь мог долго мучаться!
BOD для меня пока не актуален. Нужно закончить датчики и посмотреть сколько они жрать будут и там может быть что-то решать.
+
avatar
  • CTAHOK
  • 24 мая 2017, 16:25
0
подтягивающий резистор
сам долгое время не мог понять в чём дело, ошибочно думал, что после обрыва контрольного шлейфа, вывод 2 автоматически подтягивается к земле, оказалось — нет, просто висит и ловит помехи. Что интересно, если без этой подтяжки дать некоторое время Ардуине полежать на морозе, и оборвать потом контакт, то задержка срабатывания может достичь 10-15 секунд
+
avatar
  • mrx
  • 10 июня 2017, 22:33
0
Пришел RobotDyn с али, стаб S2PF
+
avatar
  • CTAHOK
  • 11 июня 2017, 06:45
0
Такой же, что и у купленного у местных продавцов. Интересно, помимо S2PF и LE33 какие ещё могут использоваться в РоботДянах… Спрашивал через чат на официальном сайте — что-то молчат
+
avatar
  • Lagros
  • 28 июля 2017, 20:06
0
Подскажите, номер телефона для дозвона записан в SD карте?
Скетч прошивки ардуино под спойлером «Дополнительная информация»?
+
avatar
  • CTAHOK
  • 29 июля 2017, 07:10
0
Скетч под спойлером. Номер пишется в этой строке
gsm.println("ATD+79xxxxxxxxx;");
+
avatar
  • Lagros
  • 11 августа 2017, 14:33
0
Собрал. Прошил. Работает. Но есть проблема: После звонка, засыпает, и больше не просыпается. Т.е. не реагирует на размыкание контакта.
Нажал сброс на ардуине (или отключил питание) и опять посылает звонок только первый раз. Потом опять засыпает и не реагирует на обрыв провода.
В чем может быть проблема? Может так и задумано?

Еще нюанс. При первом включении модем не дозвонился. Т.е. вызов мне не пришел. Я-уж грешил на то, что указал неверный номер телефона. Но при последующих включениях дозванивался без проблем.
+
avatar
  • Lagros
  • 11 августа 2017, 15:20
0
И еще. При включении плата переходит в спящий режим. Потребление становится 1мА (я пока светодиод на ардуине не выпаял).
А после звонка потребление увеличивается до 6мА (горит все тот-же ардуиновский светодиод). Почему потребление не вернулось к первой отметке (1мА)?
+
avatar
  • CTAHOK
  • 11 августа 2017, 16:02
+1
Но есть проблема: После звонка, засыпает, и больше не просыпается. Т.е. не реагирует на размыкание контакта.
Нажал сброс на ардуине (или отключил питание) и опять посылает звонок только первый раз. Потом опять засыпает и не реагирует на обрыв провода.
В чем может быть проблема? Может так и задумано?
Так и было задумано — на однократное срабатывание. После первого звонка программа уходит в бесконечный цикл. Там есть соответствующая строчка:
while(1);                          // блокируем программу
— это сделано потому, чтобы модем не слал бесконечные звонки после обрыва растяжки. У Вас вместо растяжки что-то другое, вроде геркона?
И еще. При включении плата переходит в спящий режим. Потребление становится 1мА (я пока светодиод на ардуине не выпаял).
Светодиод можно и сковырнуть аккуратно чем-то остреньким
А после звонка потребление увеличивается до 6мА (горит все тот-же ардуиновский светодиод). Почему потребление не вернулось к первой отметке (1мА)?
Это потому, что программа не засыпает, а переходит в бесконечный цикл. Попробуйте заменить вышеприведённую строчку в программе на:
sleepNow();    // спать

Еще нюанс. При первом включении модем не дозвонился. Т.е. вызов мне не пришел. Я-уж грешил на то, что указал неверный номер телефона. Но при последующих включениях дозванивался без проблем.
Было и у меня такое — дело в модеме, а точнее в слабой антенне. Заимел себе недавно пару антенн для теста, буду с ними экспериментировать, дабы выяснить, что лучше.
Параллельно собираю другую сигнализацию, но с учётом всех минусов этой. Как будет готово, там и новый обзор должен написать.
+
avatar
  • Lagros
  • 11 августа 2017, 17:07
+1
У Вас вместо растяжки что-то другое, вроде геркона?
У меня обычный микрик на открытие двери (это пока). А поставлю — геркон.
Так и было задумано — на однократное срабатывание. После первого звонка программа уходит в бесконечный цикл.
Тогда все стало на свои места. Может действительно, нет смысла опять засыпать. Нужно идти и смотреть кто залез. :)
Вот что получилось:



Спасибо за разработку!
+
avatar
  • Lagros
  • 14 августа 2017, 11:50
0
Светодиод снял. Ток потребления в спящем режиме стал 291 мкА.
Еще один вопрос.
Если ардуиновский стабилизатор выпаять, то АКБ подключать (по схеме) вместо RAW к VCC?
Ардуина без проблем будет работать в диапазоне 2,7-4,2 вольта?
+
avatar
  • CTAHOK
  • 14 августа 2017, 13:07
0
Если ардуиновский стабилизатор выпаять, то АКБ подключать (по схеме) вместо RAW к VCC?
Да, к VCC

Ардуина без проблем будет работать в диапазоне 2,7-4,2 вольта?
Без проблем. Этот диапазон даже шире. Вот выдержка из даташита:


Кстати, какая маркировка на стабилизаторе Вашей платы?
+
avatar
  • Lagros
  • 14 августа 2017, 14:48
0
S2PJ

У меня так-же Arduino Pro Mini «RobotDyn» Atmega 168PA 3.3V 8MHz
+
avatar
  • Lagros
  • 14 августа 2017, 15:08
0
Выпаял стабилизатор. Ток потребления увеличился до 500мкА
Запаял назад — вернулся к 291 мкА.
Видимо при питании от АКБ 4,2 вольта ток потребления увеличился.
+
avatar
  • CTAHOK
  • 14 августа 2017, 15:17
0
Выпаял стабилизатор. Ток потребления увеличился до 500мкА
Запаял назад — вернулся к 291 мкА.
Это странно. Так не должно быть.
Ток подавали только на один вывод VCC, или оба проверили?
+
avatar
  • Lagros
  • 14 августа 2017, 16:04
0
Когда выпаял стабилизатор, подавал только на VCC
RAW не использовал
+
avatar
  • CTAHOK
  • 14 августа 2017, 17:23
0
Да, но на плате их обычно два, я бы их поочерёдно ещё проверил (чем чёрт не шутит)


Ещё не мешало бы взглянуть на полную схему, или хотя бы словами, что к чему через что подключено. Сверьте код, который загружаете с тем, что в обзоре. Могу ещё к завтра скетч написать, который будет заточен чисто на погружение контроллера в сон. Хотя в любом случае он может пригодится. Если будете снова пробовать удалять стабилизатор, то скажете.
+
avatar
  • Lagros
  • 14 августа 2017, 17:33
0
Если будете снова пробовать удалять стабилизатор, то скажете.
Да это не проблема! Пару секунд.
Код точно тот, что в обзоре. Я его скопировал. Только свой номер прописал.
Проверил — оба VCC соединены между собой.
Особо не заморачивайтесь. В пинципе 291мкА — нормально. 6 месяцев протянет.
+
avatar
  • Lagros
  • 14 августа 2017, 17:26
0
А обрывной провод, который между VCC и INT0 не влияет? До снятия стабилизатора на нем было 3,3 вольта, а после снятия — 4,2.
+
avatar
  • CTAHOK
  • 14 августа 2017, 17:46
0
Всё правильно, если ток идёт через RAW (стабилизатор), то на выводах VCC соответственно 3.3В устанавливается. При питании напрямую от аккумулятора — уже напряжение аккумулятора. Никак не влияет, хотя надо будет мне тоже поэкспериментировать с ним, на всякий случай. Если какие-то новые нюансы обнаружу, отпишусь.
+
avatar
  • Lagros
  • 16 августа 2017, 14:51
0
Еще провел ряд измерений:
Выпаял стабилизатор.
Подавал напряжение с регулируемого БП и мерял потребляемый ток.
4,2в 546мкА
4,1в 530мкА
4,0в 515мкА
3,9в 501мкА
3,8в 488мкА
3,7в 475мкА
3,6в 470мкА
3,5в 323мкА
3,4в 291мкА
3,3в 261мкА
3,2в 233мкА
3,1в 208мкА
3,0в 186мкА — при этом напряжении сигнализация не работает.
Получается, что выпаивать стабилизатор нет смысла.
+
avatar
  • CTAHOK
  • 17 августа 2017, 09:35
0
Пока не ясно почему так, то лучше конечно оставить как есть.
+
avatar
  • Lagros
  • 17 августа 2017, 12:59
0
Еще что неудобно: нет задержки. Т.е. нет времени, чтобы покинуть помещение и закрыть дверь. У меня стоит геркон. Если я нажимаю сброс, и в течение 3-4 секунд не успел закрыть дверь, то сигнализация на охрану не становится. Можно добавить задержку на постановку секунд 15-20?
+
avatar
  • kvolk
  • 17 августа 2017, 13:42
0
В коде призагрузке делэй сделайте
в void setup()
Delay(30000); // Задержка 30 секунд.
+
avatar
  • CTAHOK
  • 17 августа 2017, 13:49
0
Delay(30000); // Задержка 30 секунд.
delay(30000); с маленькой буквы нужно писать:)
Можно и под другому _delay_ms(30000);
+
avatar
  • kvolk
  • 17 августа 2017, 17:46
0
Согласен. С телефона писал пост, автозамена.
+
avatar
  • CTAHOK
  • 17 августа 2017, 13:44
0
Еще что неудобно: нет задержки. Т.е. нет времени, чтобы покинуть помещение и закрыть дверь. У меня стоит геркон. Если я нажимаю сброс, и в течение 3-4 секунд не успел закрыть дверь, то сигнализация на охрану не становится. Можно добавить задержку на постановку секунд 15-20?
Это легко. В функции setup() после modemOFF(); необходимо добавить строку задержки:
_delay_ms(15000);                        // 15 секунд пауза

Чтобы получилось так:
void setup(){
 gsm.begin(9600);                        // скорость работы UART
 DDRD = B01001000;                       // 3-й и 6-й выводы на выход 
 DDRB |= (1<<2);                         // вывод 10 на выход
 gsmON();                                // запуск модуля для теста
 gsmOFF();                               // выключаем модуль
 _delay_ms(15000);                       // 15 секунд пауза
 }

Если хотите 20 секунд, то в скобках пропишете 20000 — это величина в миллисекундах.
+
avatar
  • Lagros
  • 17 августа 2017, 14:56
0
Что-то не так.
Если я нажал ресет, то у меня через 15 сек. модем уже засыпает. И после этого, если концевик небыл замкнут, уже ни на что не реагирует.
Теперь после сработки ардуина ждет около 10 сек., а потом запускает модем.

PS. Все. Разобрался. Работает. Тестирую дальше.
PSPS Да, все работает! Меня ввело в заблуждение засыпание модема. Я думал, что он не должен заснуть.

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.