Добрый день! Это скорее не обзор, а дополнение к
этому обзору. Очередная GSM сигнализация собрана. Основные преимущества этой сигнализации:
1. Автономность работы примерно 60 часов на одном аккумуляторе 18650 (2Ah) при отсутствии сетевого питания;
2. Необходимо меньшее количество компонентов;
Практически все ключевые моменты расписаны в предыдущем обзоре выше по ссылке, «воды» в этом обзоре будет мало :)
Итак, что нам понадобится:
1. Arduino Nano v3 —
Arduino Nano v3 — 150 ₽.
2. GSM Модуль —
M590e — 110 ₽
или SIM800L — 250 ₽.
3. Контроллер заряда-разряда для Li-ion аккумулятора —
TP4065 — 25 ₽.
4. Разъём для подключения питания —
XT60 — 2 шт * 25 ₽ = 50 ₽.
5.
Светодиод RGB с общим анодом — 1шт * 5 ₽.
6. Герконовый
датчик — 70 ₽.
7.
Резисторы 20 кОм — 10 ₽.
8.
Выключатель — 15 ₽.
9. Разъём для подключения датчика —
JST SM — 10 ₽.
10.
PowerBank 6 x 18650 — 160 ₽.
11. Аккумулятор 18650 — из личных запасов.
12. Зарядное устройство 5В 1А — из личных запасов.
13.
GSM антенна, опционально. Штатная антенна «пружинка» тоже хорошо справляется со своей задачей.
Дополнительный обвес, поддерживается в актуальных прошивках которые выложены в виде HEX — файла:
1. Датчик движения
HC-SR501 — 50 ₽.
2.
Модуль и ему подобные расширители портов ввода/вывода на чипе PCF8574, для подключения дополнительных 8 датчиков — 80 ₽.
3. Резисторы номиналом 2,2 кОм и 3,3 кОм, для контроля наличия внешнего питания.
4.
Доработка источника резервного питания, аккумулятор разряжается только при отключении внешнего питания. Так же на плате разведён делитель напряжения из 3 пункта.
Приступим к сборке и настройке:
Подключаем всё согласно схеме
Все резисторы номиналом 20 КОм.
Подключение модема.
Модем <---> Arduino
TXD <->D8
RXD <->D9
Модем <---> Контроллер Li-ion TP4056
VCC <->OUT+
GND<->OUT-
Подключение светодиода. Светодиод с общим анодом.
Светодиод <---> Arduino
R <-> D10
G <-> D12
B <-> D11
Anode <-> +5V
Подключение герконового датчика.
Герконовый датчик <---> Arduino
Контакт 1 <-> +5V
Контакт 2 <-> D6
Так же D6 надо замкнуть на GND через резистор на 20 кОм.
Важно! Пару слов о модемах.
Если планируете использовать модем SIM800L никаких настроек и модернизаций производить не нужно.
Если планируете использовать модем M590, то идём по
ссылке и читаем пункт
«Модем и его настройка», настраиваем скорость порта и шунтируем диод. То есть
выпаиваем диод и на его место впаивается перемычка. Так же между пинами boot и gnd ставим резистор на 10кОм. Теперь модем будет работать не от 5В, а от 4,2В, как и задумано производителем. Точно такое же напряжение получаем с выхода платы контроллера Li-ion.
Ниже схема подключения к источнику питания:
Ардуина хоть и рассчитана на питание 5В но ведёт себя вполне адекватно при напряжении питания 3В. Модем при напряжении 3В уже работать отказывается :)
Блок питания 5В лучше взять «брендовый», в данном случае использовал зарядник от Sony 1А.
Дополнительный конденсатор в цепи питания модема устанавливать нет необходимости, так как плата контроллера заряда — разряда TP4056 спокойно может отдать около 2А.
Прошивку для сигнализации и информацию о том, как это всё работает берём
из этого обзора. В дальнейшем возможны какие-либо
незначительные изменения. При разработке и отладке упёрся в объём оперативной памяти Arduino, которой как оказалось
очень не пока хватает.
В файл SoftwareSerial.h (C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.h)
необходимо внести изменения
было так:
#define _SS_MAX_RX_BUFF 64
стало так:
#define _SS_MAX_RX_BUFF 192
Фото процесса сборки и готового устройства
Аппаратные баги
Если устройство зависает при отключении питания, смотрим
сюда, полное обсуждение
тут.
Если устройство «не понимает» смс команды, читать
тут.
PS. Потребляемый ток 30 мА/ч в режиме ожидания, 60 мА/ч в момент совершения вызова и отправки смс.
На этом всё, спасибо за внимание!
2. Цена на герконы не гуманная выходит — лепил сигналку, покупал на Украине по 10-12 грн (0,38-0,5$) за геркон и магнитную часть.
yadi.sk/i/U4PBBgi7uyCwV
Постановка/снятие только по смс?
s.aliexpress.com/aMVFbU7J
Дешевле.
я думаю имелось ввиду, что грамотнее будет хотябы мА*ч/ч, с физической точки зрения. И если конкретнее, то удобнее для тех, кто питает изделие от батареи, зная ее накопленный заряд в мА*ч, сразу можно высчитать на сколько часов автономной работы хватит.
</зануда>
Хотя, если не знакомы с git/mercurial то да, может вызвать сложности.
Не задумывались включить в схему звуковую сигнализацию — для отпугивания? И неуязвимую ко всякого рода глушилкам.
Проблема в памяти, нет столько свободной оперативной памяти у Nano V3 чтобы все эти хотелки реализовать.
Дальше не смотрел
И еще, вы пробовали разрядить 18650 до 3v? Скорее всего M590 в этом случае работать перестанет, причем не ясно когда именно это произойдет. В этом плане схема с MT3608 была надежнее. При этом не обязательно делать 5v, можно выставить на 4.3v и убрать диод с M590 платы. Это должно немного продлить жизнь сигналки при отсутствии электричества.
Еще нужно еще учесть, что защита сработает только при разряде ниже 2.4v — т.е. после того, как 18650 будет нанесен непоправимый урон.
Так что имеет смысл немного усложнить схему и добавить контроль напряжения на аккумуляторе + возможность отключения отдельно M590 и/или всей схемы.
Да, оба модема перестают работать при напряжении 3В. И начинается у них циклическая перезагрузка, потребляемый ток увеличивается до 60-100 мА, и через некоторое время срабатывает плата защиты.
Считаю что надёжнее та схема, у которой время автономной работы больше, на МТ3608 время автономной работы 24 часа, без неё 60 часов.
Эти аккумуляторы выковыряны из дохлой батареи от ноутбука, им уже нанесён «непоправимый урон» и при этом они себя прекрасно чувствуют. Как часто у вас на 60 часов отключают электричество?
«Овчинка выделки не стоит».
Может кто-то делал подобную задачу? Ибо для статических смс есть генерилки разные, а для динамических нужно писать код. В этом то я не силен :-(
Хочу сделать нормальный автомобильный трекер. По смс что бы отвечал координатами авто. Покупал 4 разных трекера в Китае — у всех какие то глюки или недоделки. Даже не стал ставить на постоянку в авто. Ибо заплати автоэлектрику за монтаж того, что толком работать не будет.
Кому интересно (или есть вопросы по купленным мною трекерам) -добро пожаловать в личку.
Заказал. жду шилды )
А как дела у магафона и мтс? там предложения интереснее (30 в день).
s.aliexpress.com/jiY7zuQ7
Это сделали?
Какой модем используете? Ссылку на него киньте. Какая версия модема?
У меня AllowPhone 5 номеров и AlarmPhone 2 номера.
Что за Ардуино у вас? Какой чип 328p или 168? Опишите подробнее все возможные отличия. Что выводит команда ATI в мониторе порта?
Модем может запуститься но не зарегистрироваться в сети, ардуина в данной прошивке этого момента отловить не может. А если, например, начнёт теряться сеть, сколько смс вы получите при каждом переподключении к сети?
Как должно работать читайте в этом посте, если у вас иначе — напишите что не так.
Отслеживает, как только на пине датчика низкий уровень, уходит тревожная смс.
Тоже ничего не понял. Какая история? Описывайте пожалуйста последовательность действий, причину и следствие.
Именно, пока не реализовано.
1) Дверь открыта(геркон разомкнут)
2) Звоним — снимаем с охраны
3) Звоним — ставим на охрану
4) Закрываем дверь (геркон замкнулся)
Сигнализация перестаёт срабатывать на размыкание датчика?
1) Дверь открыта(геркон разомкнут)
2) Подаём питание на устройство
3) Закрываем дверь (геркон замкнулся)
Так? Сигнализация тоже перестаёт срабатывать на размыкание датчика?
2. В мониторе порта введите команду FullReset
3. Позвоните на устройство, чтобы зарегистрировался «главный» номер
4. Сразу после звонка вам должна прийти смс: «guard off бла бла бла»
5. Откройте в ардуино иде монитор порта добавляйте телефоны и смотрите что там не так, там идёт логирование всех команд.
Команда ListPhone консольная, работает только если её ввести в мониторе порта.
Только что проверил, Money вернуло: Vash balans 0.00rub.
Принципиальных изменений для этой команды не было, если она работала раньше, то и сейчас работать тоже должна.
Файл прошивки как называется, это точно последняя версия?
Покажите свой лог из монитора порта.
Команда из монитора порта или это смс команда? Если смс команда, то это норма, команда удаляет все смс, она отрабатывается после каждого полученного сообщения чтобы не забилась память.
AT+CMGD=0,4 OK — Это значит что сообщение с командой «AddPhone:3+7..............mа» удалено, но перед этим номер должен был добавиться в память.
Event:+…
AT+CUSD=1
OK
ATD#101#A
ABORTED
При остальных запросах:ListPhone, ResetPhone,FullReset:
Event:+…
AT+CMGD=0,4
OK
Делаю ResetЫ, питание включаю, выключаю- ничего не изменяется.Работает только Info.
AT+CMGD=0,4
Эта строка может появиться только после выполнения команды clearsms, вы точно шьёте последнюю прошивку?
Покажите нормальный полный лог из консоли, номер замените только номер например на звёздочки.
Включите, прошейте, фуллресет из консоли, перезагрузите, позвоните не сигналку для регистрации основного номера, выполните money и покажите полный лог из консоли, от начала и до конца.
Ссылку на модем дайте где покупали.
Включен TestOn+GuardOff, делаю FullReset, выключаю включаю питание- должно быть TestOff+GuardOn, а состояние системы первоначальное…
Вот лог загрузки SIM800L:
У вас что-то не то. Вы мне лог с модема показываете что ли?
У вас точно ардуино нано за 328 а не 168 чипе?
Попробуйте эту прошивку, с бутлоадером GSM_03_12_2016-14-38.with_bootloader.hex
Проверьте
arduino.ru/forum/proekty/sketch-dlya-proverki-rabotosposobnosti-portov-i-eeprom
То, что запрос баланса идёт с буквой A — это значит что в памяти хранится запись в виде #101#A, попробуйте записать туда значение 123456L123, и посмотрите что выйдет. 99% что у этой ардуины убитая EEPROM.
Команда ATH0 выполняется в любом случае, иначе бы модем не вешал трубку после первого гудка.
Не важно где ma, если >1 >1 то и m и a в смс прочитались.
1
1
0
1
1
15
60
1 > > 0 > 0;
2 > > 0 > 0;
3 > > 0 > 0;
4 > > 0 > 0;
5 > > 0 > 0;
6 > > 0 > 0;
7 > > 0 > 0;
8 > > 0 > 0;
9 > > 0 > 0;
10 > > 0 > 0;
#101#
22
OK
Дальше, прошиваюсь- лог загрузки появляется, то есть сначала скетч, потом прошивка
Ставлю новый скетч, не прошиваюсь-лог загрузки опять не появляется, прошиваюсь-появился… Делаю FullReset-переходит к заводским настройкам, звоню-вносит мой телефон(выполняет все команды), вношу во вторую ячейку новый телефон AddPhone:2+.............ma, телефон вносится в память.Итог со второго телефона — сигнализация не управляется.Делал так несколько раз…
Вот лог, «от» и «до»:
Guard On. Phone +380952433800
Sent! +380952433800 -> Guard On. Phone +380952433800
Sent! +380952433800 -> Guard On. Phone +380952433800,
Почему?
(Сегодня другой телефон вношу)
Должно быть так:
Моя строка: +CLIP: «380952433800»,145,,,"",0
GSM_03_12_2016-14-38.hex — исправлена работа устройства с модемом M590.
GSM_05_12_2016-13-45.hex — добавлена консольная команда memtest, оптимизация использования оперативной памяти.
GSM_2016_12_06-15-43.hex — добавлен вывод результатов команд в консоль, оптимизация памяти. Занято: 49% SRAM.
GSM_2016_12_07-10-59.hex — теперь телефонные номера добавляются и удаляются правильно. Занято: 49% SRAM, 74% Flash Memory.
GSM_2016_12_07-15-38.hex — добавлена возможность подключения датчика движения HC-SR501, подключается к пину A0 (в данном случае пин A0 используется как цифровой). Добавлены смс — команды PIROn, PIROff. Занято: 48% SRAM, 76% Flash Memory.
Читал переписку- пользователи просят подключить датчик температуры, я присоединяюсь. Есть такая хорошая штука BME280 (Вы наверное знаете), не плохо бы было при команде Info получать еще информацию о температуре, влажности и давлении…
Осталось всего 22% памяти устройства, перечислю запланированные дополнения по приоритету:
1. Расширение портов ввода — вывода до 8 или 16, то есть увеличение числа датчиков до 8 или 16.
2. Прикручивание датчика BME280 и его бюджетного брата BMP280
3. Остальные «хотелки».
Предполагаю что оптимизацией можно ещё высвободить около 20% Flash Memory, так что пока ресурсы ещё есть.
Опять же, обычные дешёвые датчики типа LM35DZ или DS18B20 правильно работать не будут в этом устройстве.
«2. Прикручивание датчика BME280 и его бюджетного брата BMP280 „- очень надо!!!
Первый на Али стоит 165р., а второй уже 230р.
I2C/SPI BMP280 3.3 Цифровой Атмосферное Давление Датчик Высота Высокая Точность Атмосферное Модуль для arduino Заменить BMP180
https://aliexpress.com/item/item/32681667220/32681667220.html
(from AliExpress Android)
Вы чего сейчас доказать пытаетесь?
Зы. Вы попробуйте дождитесь тех которые ниже 100р, никто вам их не отправит, вчера уже проверил, даже трек оплатил, только продавец слился :(
то строки будут размещаться во Flash а не в SRAM. Что сильно экономит последнюю.
Весь код размещать не буду. Слишком много уже переделано.
Пожалуйста, не надо, пожалейте наш мозг :)
Может быть ещё что-то расскажете об оптимизации? Как вы думаете каким образом удалось снизить использование ОЗУ с 73% до 60%, затем существенно увеличить функционал и потом ещё снизить использование ОЗУ до 48%?
Повторюсь, в открытой версии скетча, задача экономии памяти остро не стояла, оптимизация началась после.
Объясните пожалуйста, для чего String в скобках?
Мне модем уже пришел, сегодня заберу.
Меня интересует строки после:
Скиньте мне их, попробую «прикрутить» этот модем не дожидаясь своего.
Или подключите модем к COM-порту и выполните команду и покажите мне результат пожалуйста.
ЗЫ Удаляйте номера из логов. :)
AT
и покажите результат пожалуйста.
Ai Thinker Co.LTD
A6
V03.03.20160921015H03
OK
Вопрос — какой модем лучше заказать? 590/800/А6?
Но если говорите что сим800л так сим800л… Если он лучше подходит под задачу.
Все равно
отправляются пустые смс на команды Guard off и при сработке PIR датчика, не всегда, но бывает.M590+Nano
Обсуждение тут.
На платформе Arduino Nano в дальнейшем возможны какие-либо незначительные изменения и исправления выявленных ошибок. Существенных изменений дополнений производиться не будет.
Дальнейшее развитие проекта будет на модулях ESP-12.
Спасибо, проверю.
ЗЫ Все обсуждения в основном ведём тут: mySKU.me/blog/ebay/43282.html
Не подтвердилось:Значение меняется, но время остаётся менее 10 секунд.
Спасибо, исправил, в ближайшее время выложу прошивку.
mySKU.me/blog/ebay/43282.html#comment2064322
Покажите вывод команды ListConfig.
UPD. Теперь прошивки будут выкладываться не только для Nano, но и для Uno.
UPD. На одном из устройств был замечен баг, после перезагрузки не восстанавливались настройки из энергонезависимой памяти. Явным признаком этого бага являлось то, что после физической перезагрузки (именно отключение питания, а не команда Reboot) в консоль при загрузке выводилось значение параметра Guard: -1. При этом Memtes проходил успешно. Возможно это проблема именно этого устройства.
На этом и закончим, новый функционал вноситься в прошивки не будет, только исправления выявленных ошибок.
В дальнейшем будут выкладываться прошивки с суффиксом -fix- и порядковым номером исправления.
Кнопок на нем нет, все управление через мастер-карту, весь вывод на OLED экранчике. Запоминает 25 карт, в произвольном порядке. При получении консольной команды ClearCards\n очищает полностью записанные в Еепром карты, при получении — ListCards\n выводит список всех прописанных карт.
Принцип работы — махнул картой один раз — на экране надпись Open, user N# ?? и вывод в консоль GuardOff, второй раз махнул — Closed, user N# ??, и вывод в консоль GuardOn, если карты в базе нет, вывод в консоль NOT_Autorized, с соответствующей надписью на экране.
Вопрос, если соединить ваш проект и мой по UART, будет ли ваш проект принимать команды с моего (они вроде по вашему стандарту), и можно ли добавить мои команды управления в ваш скетч, чтобы можно было в СМС смотреть список карт, и тереть их, скажем в случае утери, или воровства?
Хочу ещё команду BlockMaster добавить. На тот случай если карты/карта утеряна.
Дело в том, что в случае команды ClearCards, мой проект принимает первую поднесенную карту как Мастер-карт, а это не безопасно. В случае если карта была украдена целенаправленно, и я успел стереть карты, то все равно, без блокировки, человеку удастся снять сигнализацию с защиты, правда имея две карты. Потому как Мастер-карта не управляет сигнализацией, а только записью карт-клиентов.
ПС. Ещё было бы не плохо, если бы ваш проект сообщал в консоль состояние Guard/off/on\n.
Не могли бы вы внести соответствующие изменения в свой скетч? Пожалуйста.
Наверное ничего не получится, совершенно нет времени.
Есть идея, на этих выходных я соберу всё что есть по этому проекту и выложу на гуглдиск. Объединяйте… Вас это устроит? :)
Я сначало свой проект доделаю, спарю с вашим, и куда-то выложу.
Фактически, проект и не мой. За основу я взял готовые наработки из этого видео youtu.be/a583vq0vXyg и развил идею. Задумка у автора просто отличная, но идея писать мастер-карту прямо в скетч мне показалась неудачной, — пришлось переделать. Потом начало обрастать парсерами консольных команд и т.п. Сейчас бы с вашей сигналкой сопрягти и будет бомба!
Пс. Есть пару вопросов по модему:
с какой скоростью ваш скетч работает с модемом A6 — 9600 или родной, для него 115200?
Заказал я A6, а пришел с другой наклейкой IOT-GA6, и плата чуть другая. Подключил через FTDI232 к Win10, ни на какой скорости, ни с напряжением 3.3 и 5.5 законектися с модемом не удалось, мусор в консоль. Удалось законектися через Rx/Tx ардуино Нано, с ремонтом на массу (так рекомендовано в доках, если нужен конвертер ttl-usb), вывод пошел что-то типа: Poder Up; AT Ready. При вводе любой команды (скорость порта в норме 115200) выводит ошибку 58 и эхо мусором. Похоже передача в модем не работает, прием в норме. С чем может быть связано? Что смотреть?
Буду очень благодарен за подсказки. Модем должен был быть таким youtu.be/alq7UJxiDQo, а пришел чуть другой: другая наклейка на модуле (писал выше) и нет одной микрухи, той которая крупнее, выдано на видео. У парня их там две, а у меня только одна, та что поменьше. Похоже чины конвертер уровней TTL съэкономили. ((
Как его завести то?!
Спор открыл, но от этого ничуть не легче.
Исходники последних прошивок забираем на гуглдиске.
В своей сигнализации я не использую SoftwareSerial, как ненужный посредник.
Проект закончен, не вижу смысла «реанимировать труп», всё что было задумано — реализовано. В настоящий момент безглючное время работы устройства более чем пол года, без перезагрузок и ложных срабатываний. Мне этого достаточно.
ЗЫ. Спасибо за инфу
по сути ничего менять же не надо? датчик удара вроде как программируется отдельно?
Заранее большое спасибо :)
Переходите в ту ветку для обсуждения.
GSM_Aalarm_Last_Release_src.rar — там последние прошивки и исходники.
Хексы для того чтобы прошить и пользоваться, исходник для внесения модификаций в прошивки и потом пользоваться.
Т.е. требуется только прошить ардуино и все?
А схему реализации питания лучше использовать с повышающим DC/DC преобразователем и диодами или ту, которая идет с доработкой-без MT3608?
Лучше с доработкой без МТ3608.
Еще одна просьба, для составления блок схемы, а именно для организации блоков цикла, мне нужно понимание действий, выполняемый в функциях. Можете пожалуйста расписать такие функции, как:
-void setup
-void loop
-void listphone
-void eepromconfig
-void memtest
-void LorHCompare
#define _SS_MAX_RX_BUFF 192