Gsm модуль подключение к микроконтроллеру. GSM модуль для дистанционного управления. Описание модуля SIM800L

SIM900 — это четырехдиапазонный GSM/GPRS модуль, входящий в семейство модулей для поверхностного монтажа SMT (Surface Mount Technology), который позволяет использовать все преимущества миниатюрных и эффективных решений. Благодаря малым габаритным размерам SIM900 прекрасно подходит для M2M приложений.

Основные характеристики GSM модуля SIM900:

  • GSM: 850/900/1800/1900 МГц
  • GPRS multi-slot class 10/8
  • Соответствие стандарту GSM фазы 2/2+
    • Класс мощности 4 (2 Вт в диапазонах 850/900 МГц)
    • Класс мощности 1 (1 Вт в диапазонах 1800/1900 MГц)
  • Управление AT командами (GSM 07.07 ,07.05 и фирменные AT команды SIMCOM)
  • Embedded AT — работа с приложениями пользователя*
  • Аудиокодеки HR, FR, EFR, AMR, подавление эха
  • CSD до 14.4кбит/с
  • PPP-стек
  • Встроенный стек TCP/IP, UDP/IP
  • MUX (07.10)
  • Протоколы HTTP и FTP*
  • Декодирование DTMF-тонов*
  • FOTA*
  • Напряжение питания 3,2 ... 4,8 В
  • Рабочий температурный диапазон: −40 °C ... +85 °C
  • Размеры: 24* 24 * 3 мм
  • Масса: 6,2 г

* - специальная версия ПО

SIM900 — новое решение от компании SIMCom, одна из моделей нового поколения недорогих модулей GSM/GPRS. SIM900 был разработан с учетом замечаний пользователей предыдущих версий модулей. Особое внимание разработчики SIM900 уделили вопросу увеличения надежности ПО, добавлены режимы работы с минимальным энергопотреблением, значительно уменьшены и размеры SIM900.

Одновременно с этим разработчики SIM900 сохранили основные преимущества предыдущих версий:

  • бюджетная стоимость;
  • удобный встроенный стек с TCP/IP;
  • популярный дизайн с торцевыми контактами, что даёт возможность использовать для SIM900 доступные технологии пайки и монтажа.

Всё это позволяет использовать SIM900 в различных изделиях, в т. ч. в системах безопасности, персональных и автомобильных навигаторах, в системах промышленной автоматики и другом оборудовании. Следует отметить и расширенный функционал SIM900, доступный в прошивке ENHANCE — декодирование DTMF, создание и отправка писем на eMail благодаря АТ-командам, исполнение команд полученных по SMS и т. д. SIM900 имеет и прошивку с поддержкой технологии Embedded AT, дающую возможность записи в память модуля пользовательского кода на языке С. Это позволяет (в определенных случаях) отказаться от применения внешнего микроконтроллера.


Здравствуйте!
Встала тут задача по управлять загородным домом, последить за температурой, дверями, окнами. И тут же возник вопрос о среде передачи данных. Ну провода и радиоканал отпадают из-за дороговизны, ВОЛС просто мечты, а вот GSM то что нужно. Сначала пал глаз на старые телефоны "Motorola", "Nokia", "SonyEricsson". Посмотрел, повертел и передумал. Первое, не хотел подпаиваться к контактам кнопок, да и обратной связи нет. Второе, разбираться с ПО телефона, ну это совсем не в кассу. В общем в творческих раздумьях и плавая в просторах всемирной паутины, изловив пару вирусов был найден компромисс. И работа с ПО и без всяких кнопок. Все это предлагает модуль SIM900D . Чем он мне приглянулся.
- Первое это простота монтажа. В этом вы убедитесь позже. - Второе это общение через UART. (Это значит МК + SIM900D = нормальная связь) - Третье это питание модуля от 3 до 4.8 вольт. Хош AVR, хош ARM. По вкусу. Ну лирики хватит, пора по делу.
Выглядит сей модуль так.

По поводу монтажа. Как видите модуль заточен на поверхностный монтаж. Размеры контактных площадок достаточно большие даже для ЛУТа. Ниже картинка моего устройства.

Как видите ничего сложного. Теперь давайте поговорим о схеме подключения этого чуда. Глядим мануал. И видим распиновку.

Да, много всего, но все использовать не будем. Первое что нам потребуется это обвязать все выводы "GND". Если глянуть на правый верхний угол, то можно заметить три отдельных вывода. Два "GND" и "ANT". Эти выводы расположены таким образом не просто так. Глянем в документацию на картинку подключения антенны.

59 и 61 контакты должны находиться как можно ближе к выводу антенны. Дополнительные схемы выделенные пунктиром, нужны для подключение антенн с кабелем. Поэтому я впаял SMA разъем как можно ближе к выводам 59, 60, 61 и не стал заморачиваться со схемой согласования, при этом с антенной на 3-х метровом кабеле и в месте очень плохого приема, выжал из модуля 13 балов из 31. Разъем видно на картинке выше. Точнее ноги от него)) Сам разъем с другой стороны. При этом контакты 59 и 61 как бы обнимают антенну. Ну как-то так. Далее давайте поговорим о SIM-карте. Для ее установки я использовал вот такой разъем (SIM ICA-501-006-01-F7)

Самое интересное то что я нашел 3 варианта распиновки SIM-карт. Какую использовать? Не буду вносить интриги, а для простоты привожу распиновку данного разъема. Вид сверху.

Но это еще не все. Если глянуть в монуал на схему включения SIM-карты, то там можно увидеть некую микросхемку под названием SMF05C . Эта микросхема содержит защитные диоды аж 5 штуков. Нужна для зашиты контактов SIM-карты. Конечно можно ее и не ставить, но тогда будьте внимательны и не трогайте контакты пальцами!!! Я как грешный человек за себя не ручаюсь, поэтому микруху припоял. А вот и сама схема.

Она конечно приведена для 8-и контактной SIM-карты, но для 6-ти будет тоже самое. Есть правда две засады с этой микросхемой. Первая это то что ее хрен где сыщешь. А вторая то что размер ее... Я когда получил заказ и достав положил ее на стол... Короче на втором рисунке сверху она впаяна между SIM-картой и батарейкой. Для сравнения резисторы 0805. Ну а справа транзистор в корпусе SOT-23. Так ну вроде с SIM-картой разобрались, поехали дальше. А дальше светотехника. Вообще говоря это на любителя. Так как все эти сигналы можно завести прямо в МК и он там сам пускай разбирается. Я все их вывел из чувства к прекрасному. Так что решайте сами.
- Первое это сигнал включен модуль или нет (STATUS) лог 1 - Второе это сигнал наличия регистрации сети (NETLIGHT) лог 1/0 (мигает) Если мигает с одинаковой частотой, значит не зарегистрировался в сети Если длинный промежуток, значит есть конект к сети. - Третье это сигнал звонка/sms (RING) лог 0 Горит если есть входящий звонок и моргнет при получении sms-сообщения. Первые два сигнала нужно подключать через NPN транзистор в ключевом режиме.

А третий сигнал (RING) нужно подключать через PNP транзистор. Еще один не мало важный сигнал, это кнопка включения и выключения модуля. (куда же без нее). Вот что нам предлагает мануал.

То есть подали лог 1 на базу транзистора на 1 секунду и модуль включился.
Теперь давайте поговорим о питании. Да, я бы ща от хорошей тарелочки борьща не отказался бы, а вы? Ну ладно, едем дальше. Питается модуль напругой от 3 до 4.8 вольтов. Вроде все просто, да не так. В момент звонка, передачи sms, поиска сети модуль может потребовать аж до 2А. Во как. Так что любители LM7805 и КРЕНок могут огорчиться. К счастью в мануале присутствуют две схемы на микросхемах MIC29302 (я так в продаже ее и не нашел) и LM2596 (эту купить можно). Но я лениииивый и собирать питалово с таким большим количеством обвязки просто не захотел. Я пошукал в интернете и нашел. Есть такой хороший стабилизатор для процессоров типа "Пень", "AMD" на 3.3в и до 7.5А. Во, думаю то что надо и ARM запитать можно и модуль. Вот схема этого чуда.

А вот как это выглядит в собранном виде.

Радиатор поставил со страху, в принципе микросхема не греется даже во время звонка. И последнее на что следует обратить внимание, это на батарейку. Она нужна для поддержания жизни часов реального времени. Самое важное что оставлять этот вывод в воздухе нельзя. Лично я сошелся на подключении батарейки чего и вам желаю. Можно конечно две АА влепить)) но как-то крупновато, а вот в форме таблетки 2032 на 3v то что надо. Благо они стоят не дорого и отсеки паять можно прям на плату. По моему это самое простое решение. Решать вам. Ну вроде и все. Вот как это все безобразие выглядит вместе и в работающем состоянии.

В следующей статье я расскажу как ломал этот модуль но уже программно через терминал при помощи АТ команд.
Выкладываю схемы в PCAD-2006
Архив с файлами модуля GSM.
Архив с файлами блока стабилизации.
Продолжение цикла статей о GSM модуле.
AT-Команды.
Связь модуля с ATmega8515.
Отладочная плата на базе SIM900D


Foli 14.03.13

Хотелось бы подробней о АТ командах, UARTу и непосредственно работы с этим в CodeVision

Алексей 15.03.13

С АТ командами разбираюсь. Не хочу выкладывать половину работы, так как есть некоторые вопросы. А с UARTтом и CVAVR там все просто. Как только разберусь с АТ командами сразу выложу и какие команды и как из CVAVR их подать.

Anatok 04.11.13

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

Алексей 04.11.13

GSM модуль жрет до 2А при регистрации в сети или звонке или связи по GPRS. Для таких ресурсов требуется хороший аккумулятор, а при -30 АКБ долго не проживет. Даже в метеостанциях на уличных датчиках рекомендуют использовать простые батарейки.

Мишка 11.11.13

Если еще актуально и интересно...помотри на EAT для SIM900. В нем внутри ARM и есть SDK в котором можно загружать приложения в SIM900 из которых можно много всего делать...например посылать те-же AT команды...+клавиатура + SPI дисплей... + 2 АЦП:) Нескучного вечера:)

Мишка 11.11.13

А све-таки для него очень красиво делать для него питание на L5973D. Да про 2А написана в даташите...но практически это очень кратковременные импульсы. У меня он прекрасно работает например с Arduino Mega которая сама питается от USB порта (у которога ток 0.5 А)

Алексей 11.11.13

В этом-то и загвоздка. Я тоже по началу питал от 7805, все работало, а потом бац... И при подключении к сети все гаснет, а потом в рестарта идёт. Видимо сторожевая собака по припадке питания рестартует. А с L7953D будет красиво, но где её взять и скопа она будет стоить:) Поэтому я перешёл на IRU1075

Алексей 11.11.13

Прошу прощения за ошибки, это чертов ГУДРОЙД горбыли лепит за меня. Думает он умнее. Не буду править, пусть Гуглу стыдно будет за их работу.

дядяМиша 24.12.13

У меня при регистрации в сети атмега в перезагруз уходит. Хотя стоит импульсный dcdc. Конденсаторов на 200мкф. А бывает, работает стабильно. Замучался уже.

Алексей 25.12.13

Схему в студию. Со слов довольно сложновато понять проблему.

дядяМиша 25.12.13
дядяМиша 25.12.13

Http://ybex.com/d/tk7kgiefpklpeujb1zbl4lo5 mrkf7ayvci04ouq3.html МК запитан от 2.8 (пробовал даже 3.7) Вольт, чтобы не городить преобразователь уровня.

Алексей 25.12.13
сергей 19.07.14

Алексей здравствуйте! у вас есть готовые платы с сим900, можно ли купить?

Алексей 19.07.14

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

Андрей 28.09.14

Я так понимаю это прототип той платки которую я жду не дождусь. Только в коммерческом варианте её поженили с блоком питания и облагородили аудио выходами. Что есть большой гуд.

Алексей 28.09.14

Собственно так и есть. Я просто сразу убил несколько зайцев. Решил извечную проблему с питанием и согласованием уровней на UART. И для шика добавил аудио вход и выход. Фактически готовый сотовый телефон.

Андрей 28.09.14

Хотел бы внести рацуху на будущее. по сути данная плата законченный узел. И её ПРАКТИЧЕСКИ можно использовать в готовом изделии. однако есть одно НО. При мезонном навесе её по любому лучше ставить сверху (разъем антены, доступ к симкарте) поэтому вполне целесообразно параллельно всем штырькам для "периферии" оставлять отверстия для таких же штырьков с возможностью впайки оных направлением "вниз". Т.е. захотел я данный девайс насадить на плату микроконтроллера, развёл под твой, запаял ответные разъемы в него и состыковал. Ещё и с

Андрей 28.09.14

Сожрало полмессаги, но мысль надеюсь понятна-)

Алексей 28.09.14
Сергей 01.02.15

Подскажите почему модуль греется и неловит сеть?

Алексей 01.02.15

Здесь есть несколько причин. Первая, превышено питание. Второе, не попал ли плюс на общий. Нужно внимательно посмотреть ножки питания. Третье, не касается ли модулю брюхом питающих линий. На брюхе есть несколько технологических контактов которые должны быть изолированны от каких либо проводников. Четвертое, не замкнут ли вывод антенны с общим выводом. А если быть точнее, то необходимо смотреть плату. Сбросьте мне плату на почту и я посмотрю, может там что-то не так.

Сергей 01.02.15

Платы у меня заводские, МастерКит BM8039 и на обеих одна и та же проблема..вставляешь симку модуль начинает грется и нет сети.

Алексей 01.02.15

Довольно сложно сказать. Схема заводская, надо по плате полазить. Из документации видно что на плате нет рекомендуемых защитных диодов для SIM-карты. Сама карта и разъем по пинам совпадают? 300 модуль старый и по моему он работает только с симками 5 вольтовыми, а сейчас они все на 3в. Но я могу и ошибаться. Надо смотреть саму плату, так сложно что-то сказать. Если симптом на обеих один и тот же, то я бы какпал в сторону разъема и вольтажа симок. Еще раз, современные симки на 3-х вольтовые.

Сергей 01.02.15

Стоит sim900D...диодов нет.Когда вставляю карту появляется питание на модуле и он начинает греться,но на симку напр. с 9 ноги не идёт..

Сергей 01.02.15

Изначально работали нормально..потом что то коратнуло...не могу понять что..

Сергей 01.02.15

Можно как то проверить модуль не выпаивая?

Алексей 01.02.15

А что именно коротнуло? Если питание на симку не идет, то я боюсь сдохла линия для симки. А симка сколько ног? 6 или 8? Для проверки можно не вставляя симки пообщаться с модулем по шине UART 3, 4 ноги. Если откажется принимать АТ команды, то я думаю можно его хоронить.

АНОНИМ 01.02.15

Что коротнуло точно незнаю..ног 8 ..а как пообщаться то?

Алексей 01.02.15

А на разъеме тоже 8? Берем микросхему FT232RL, собираем переходник USB<->TTL, припаеваемся к UART модуля, запускаем терминал, например Putty, пишем AT и давим ентер. Если вернет ОК, значт еще не все потеряно. Если тишина... На помойку. А да, какие светодиоды а плате? как определяется наличие регистрации в сети?

Сергей 02.02.15 03:12

На разъёме тоже 8..на плате два светодиода зелёный и красный,наличие сети определяется по морганию зелёного раз в три секунды...можно как то вставить фото платы?

Алексей 02.02.15 07:42

Проще перейти на форум.

Сергей 02.02.15 14:02

Если не вставлять симку значит нужно подать питание на модуль?

Алексей 02.02.15 15:48

Я не могу гадать на кофейной гуще. Мне нужна либо схема, либо плата. И причем тут питание модуля и сим карта? Там скорее всего еще с каким-то микроконтроллером пересекается. Он и подает питание. В общем нужна схема. А так это как диагноз по телефону ставить.

Сергей 02.02.15 15:56

Где на форуме можно выложить схему?

Сергей 02.02.15 15:57

Питание на модуль приходит только когда вставляешь симку

Алексей 02.02.15 19:27

Ну нет такого у модуля SIM900D. Для включения модуля необходимо удержать низкий уровень на ножке 12, а потом поднять. Сим карту вообще нельзя вставлять или вынимать при включенном модуле, есть вероятность сжечь порт. Если посмотреть документацию, то можно там найти рекомендации по установке защитных диодов на линии порта сим карты. На форуме . Создать тему и выложить фото.

Евгений 08.09.15 12:04

У меня при подаче напряжения на модуль, на 12 ноге присутствует положительный потенциал, на 5 ноге так же положительный (при условии, что данные ноги висят в воздухе). Подскажите пожалуйста, ведь на 5 ноге вроде должен быть ноль? Если не так, пожалуйста поправьте меня.

Алексей 08.09.15 13:21

12 ножка это включения модуля. На ней при подаче питания висит 1. Для включения модуля нужно прижать на пару секунд 12-тую ножку к общему проводу, то есть подать 0. При подаче питания на модуль 5 ножка должна быть подтянута к общему проводу двумя резисторами (это видно из схемы включения транзистора в ключевом режиме) и на ней должен быть 0, так как базу нужно подтянуть к нулю для полного закрытия транзистора. После прижатия 12 ноги к нулю, на 5 ножке должна появится 1, а через некоторое время меандр с указанием статуса наличия и подключения к сети.

Добрый день! Опять мультиобзор китайских электронных компонентов, как обычно обо всём понемногу, постараюсь покороче, но получится ли? Итак, встречайте, GSM сигнализация стоимостью до 700 ₽. Интересно? Прошу под «cut»!

Приступим! Перед началом рекомендую заглянуть в этот , меньше компонентов и большая автономность. Итак, «техзадание», основные требования к сигнализации:

1) Оповещать при срабатывании датчиков.
2) В случае отключения питания должна быть предусмотрена некоторая автономность.
3) Управление сигнализацией через sms и звонки.

Из-за того, что процесс создания сигнализации затянулся на несколько месяцев и некоторые продавцы уже не продают те компоненты которые были у них куплены, ссылки будут актуализированы на товары других продавцов у которых максимальное или приближенное к максимальному число продаж товара и лучшая цена. Цены в обзоре актуальны на дату его написания.

Перечень того что понадобится:

Список изменений

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 - добавлена возможность подключения датчика движения , подключается к пину A0 (в данном случае пин A0 используется как цифровой). Добавлены смс - команды PIROn , PIROff . Занято: 48% SRAM, 76% Flash Memory.
GSM_2016_12_08-13-53.hex - Теперь после успешного выполнения команды, которая в ответ не отправляет смс сообщение, устройство однократно мигает синим светодиодом. Теперь после некорректного выполнения команды, которая в ответ не отправляет смс сообщение, устройство дважды мигает синим светодиодом. Теперь после инициализации параметров устройства, если включен «тихий» режим (SendSms = 0), устройство в течение 2 секунд часто мигает синим светодиодом. Исправлена ошибка из-за которой номер не всегда удалялся из памяти командой DeletePhone. Занято: 48% SRAM, 78% Flash Memory.
GSM_2016_12_11-09-12.hex - Добавлены консольные команды AddPhone и DeletePhone, синтаксис аналогичен смс-командам. Оптимизация памяти. Занято: 43% SRAM, 79% Flash Memory.
GSM_2017_01_03-22-51.hex - Реализована поддержка и ему подобных расширителей портов ввода/вывода на чипе PCF8574, для подключения дополнительных 8 датчиков, в том числе герконов. Автоматический поиск адреса и автоматическая настройка модуля. Стандартные названия датчиков и логический уровень их срабатывания изменяется с помощью команды EditSensor. Изменены содержания тревожных смс для основного датчика (пин D0) «Alarm! Main sensor!» и датчика движения (пин A0) «Alarm! PIR sensor!». Добавлены команды EditSensor и I2CScan. Занято: 66% SRAM, 92% Flash Memory.
GSM_2017_01_15-23-26.hex - Поддержка модема A6_Mini. Контроль наличия внешнего питания (пин D7). Добавлены смс команды WatchPowerOn, WatchPowerOff. Добавлены консольные команды ListConfig, ListSensor. Теперь смс команда EditSensor работает правильно. Незначительно «урезан» вывод отладочной информации в монитор порта. Занято: 66% SRAM, 95% Flash Memory.
GSM_2017_01_16-23-54.hex - Теперь в ответном сообщении на смс команду «Info» так же сообщается состояние датчика движения. Исправлена ошибка из-за которой иногда отправлялись пустые ответные смс сообщения. Теперь устройство оповещает не только об отключении, но и о возобновлении внешнего питания. Все модемы стали «меньше болтать», теперь в мониторе порта стало немного чище. Занято: 66% SRAM, 95% Flash Memory.
GSM_2017_02_04-20-23.hex - Исправлена ошибка «Watch the power on». Теперь после снятия с охраны, выключается «тревожный пин». Теперь после удаления номера в консоль выводится правильная информация. Возможно исправлена ошибка из-за которой иногда отправлялись пустые ответные смс сообщения. Занято: 66% SRAM, 90% Flash Memory.
GSM_2017_02_14-00-03.hex - Теперь по умолчанию отправляются смс сообщения, параметр SendSms снова равен 1. Теперь при замыкании контактов основного герконового датчика (закрытии двери) устройство мигает синим светодиодом в течение 2 секунд, сигнализируя о нормальной работе датчика. Занято: 66% SRAM, 90% Flash Memory.
GSM_2017_03_01-23-37.hex - Команда WatchPowerOn удалена. Добавлена консольная команда WatchPowerOff, идентична смс команде. Добавлены команды WatchPowerOn1, WatchPowerOn2. WatchPowerOn1 - мониторинг внешнего питания включен если сигнализация поставлена на охрану, WatchPowerOn2 - мониторинг внешнего питания включен всегда. Реализована функция постановки на охрану и снятия с охраны внешними устройствами, для этого используются выводы A1(D15) и A2(D16). Сигнализация ставит/снимает охрану при появлении на выводе A1(D15) высокого уровня +5В или на выводе A2(D16) низкого уровня GND. Вывод A1(D15) подтягивается к GND, вывод A2(D16) подтягивается к +5V через резисторы 20 (10) кОм. Добавлены команды GuardButtonOn и GuardButtonOff. Теперь после постановки на охрану мигает красный светодиод, пока не будет проверена целостность контура основного герконового датчика. Если контур целый загорается красный светодиод. Занято: 66% SRAM, 95% Flash Memory.
GSM_2017_03_12-20-04.hex - Теперь в консоли стало ещё чище, но если включен тестовый режим «TestOn», то в консоль выводится дополнительная информация. Исправлен баг «Sent!», теперь в консоль правильно выводится информация об отправке сообщений. Исправлен баг «повторного ложного вызова». Теперь запрос баланса должен работать корректно на всех модемах. Занято: 67% SRAM, 95% Flash Memory.
GSM_2017_04_16-12-00.hex - Исправлен . Теперь команды Info и Money всегда будут присылать ответное смс. Команда GuardButtonOn заменена командами GuardButtonOn1 и GuardButtonOn2. Занято: 67% SRAM, 99% Flash Memory.
GSM_2017_04_21-09-43.hex - не рекомендуется к использованию, только в качестве тестирования, спасибо за выявленные ошибки:) - Теперь параметр sendsms не влияет на отправку смс сообщений мониторинга электросети. Добавлена смс команда DelayBeforeGuard отвечающая за задержку при постановке на охрану, значение не может превышать 255 секунд. Добавлена смс команда DelayBeforeAlarm отвечающая за задержку отправки уведомлений и включение «тревожного пина» при срабатывании датчиков, значение не может превышать 255 секунд. Удалены команды ClearSMS, теперь сообщения удаляются автоматически после получения. Занято: 68% SRAM, 100% Flash Memory.
GSM_2017_04_22-20-42.hex - Исправлены множественные ошибки. Команды ClearSMS снова присутствуют в прошивке. Оптимизация памяти. Занято: 68% SRAM, 98% Flash Memory.
GSM_2017_04_23-17-50.hex - Теперь запрос баланса должен работать корректно на всех модемах. Постановка и снятие с охраны внешними устройствами теперь работает правильно. Ответные сообщения смс команды Info не должны быть пустыми. Оптимизация памяти. Занято: 68% SRAM, 98% Flash Memory.
GSM_2017_04_24-13-22.hex - Теперь передача консольных команд в GSM модуль производится только если включен тестовый режим. Теперь нет разделения на смс команды и консольные команды, все существующие команды можно передавать как через смс, так и через консоль. Возможно исправлен баг с командой Info. Оптимизация памяти. Занято: 68% SRAM, 94% Flash Memory.
GSM_2017_04_25-20-54.hex - Исправлен баг при котором команда ListConfig меняла значение последнего события. Теперь при вводе команд через косоль не отправляются ненужные смс сообщения. Возможно исправлен баг с командой Info. Оптимизация памяти. Занято: 66% SRAM, 94% Flash Memory.
GSM_2017_04_30-12-57.hex - Временно включён вывод дополнительной информации в консоль при отправке смс сообщений и формировании ответа на команду Info. Возможно исправлен баг с командой Info. Оптимизация памяти. Занято: 66% SRAM, 92% Flash Memory.
GSM_2017_05_06-11-52.hex - Исправлен с функцией DelayBeforeAlarm. Занято: 66% SRAM, 93% Flash Memory.
GSM_2017_05_23-21-27.hex - Незначительно изменён вывод информации в консоль. Добавлена поддержка модулей расширения портов на PCF8574A c адресами от 0x38 до 0x3f включительно. Исправлен баг c . Теперь устройство перезагружается автоматически после команд FullReset, ResetConfig, ResetPhone и в случае успешного выполнения команды MemTest. Добавлена команда WatchPowerTime. Теперь возможно установить время, по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Занято: 67% SRAM, 94% Flash Memory.
GSM_2017_05_26-20-22.hex - Исправлена инициализация памяти датчиков платы расширения. Изменён синтаксис команды AddPhone. Добавлена команда EditMainPhone. Изменен принцип работы системы уведомлений, при срабатывании датчика сначала будут отправлены sms сообщения, после чего будут совершены голосовые вызовы. Тревожные sms сообщения будут отправлены на телефонные номера с признаком «S» (SMS). Голосовые вызовы будут совершены на номера с признаком «R» (Ring). Сообщения об отключении/включении внешнего источника питания будут отправлены на телефонные номера с признаком «P» (Power). Добавлена команда RingTime. Теперь возможно установить длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд. Теперь команда RingOn/RingOff глобально включает/отключает оповещение голосовыми вызовами. Добавлена команда ResetSensor. Занято: 68% SRAM, 99% Flash Memory.
GSM_2017_06_02-17-43.hex - Командам AddPhone и EditMainPhone добавлен параметр «I» (Info), отвечающий за sms уведомление о постановке или снятии устройства с охраны. Теперь после добавления основного номера устройство автоматически перезагружается. Теперь можно вносить в память устройства одинаковые номера. При добавлении второго и последующих дублирующихся номеров с них автоматически будут сняты атрибуты «M», «S», «P» и «I». Эти номера будут использованы для повторного голосового вызова при срабатывании датчиков. Исправлен баг кривого вывода в консоль после выполнения команды AddPhone, теперь информация не выводится автоматически после добавления номера. Добавлена команда Reboot. Занято: 69% SRAM, 99% Flash Memory.
GSM_2017_06_11-00-07.hex - Теперь вновь при замыкании контактов основного герконового датчика (закрытии двери) устройство мигает синим светодиодом в течение 2 секунд, сигнализируя о нормальной работе датчика, при этом не учитывается поставлено или снято устройство с охраны. Команды RingOn/RingOff удалены. Теперь устройство можно снять с охраны во время тревожного вызова, теперь они совершаются в фоновом режиме. Занято: 69% SRAM, 99% Flash Memory.
GSM_2017_07_04-21-52.hex - Теперь команда Pause не присылает ответное смс. Удалены команды TestOn и TestOff. У всех номеров удалён признак Management. Занято: 68% SRAM, 96% Flash Memory.
GSM_2017_07_24-12-02.hex - Добавлены команды ReedSwitchOn/ReedSwitchOff для мониторинга основного герконовго датчика, теперь его можно включать/отключать так же как и датчик движения. Исправлен баг команды Info. Команды TestOn и TestOff снова присутствуют в прошивке. Занято: 68% SRAM, 96% Flash Memory.
GSM_2017_07_26-10-03.hex - Добавлена команда ModemID. Автоматическое определение модема осуществляется только если значение этого параметра равно 0. После установки значения параметра равным 0 производится автоматическая перезагрузка устройства. Занято: 68% SRAM, 98% Flash Memory.
GSM_2017_08_03-22-03.hex - Теперь сигнализация может управлять внешними устройствами. Для управления используется аналоговый выход A3 (D17 - используется как цифровой). Логический уровень выхода (+5В или GND) может быть изменен, после изменения уровня через команду настройки устройство автоматически будет перезагружено. Длительность сигнала управления внешним устройством может быть изменена. Добавлены команды ExtDeviceLevelLow, ExtDeviceLevelHigh, ExtDeviceTime, Open. Некоторые изменения в логике работы команд управления. Оптимизация памяти. Занято: 68% SRAM, 99% Flash Memory.
GSM_2017_08_10-12-17.hex - Удалены команды SmsOn/SmsOff, ReedSwitchOn/ReedSwitchOff, PIROn/PIROff и всё что с ними связано. Команда DelayBeforeAlarm заменена расширенными командами. Изменён вывод команды Info. Оптимизирован вывод команды ListConfig в консоль. Теперь к пинам D6 и A0 могут быть подключены любые цифровые датчики с высоким или низким уровнем срабатывания, в том числе герконы. Пины D6 и A0 должны быть притянуты к земле (GND) через сопротивление 10 (20) кОм. Если датчик настроен на низкий уровень срабатывания (включен в режиме геркона), то проверяется целостность цепи. Логический уровень срабатывания по входам D6 и A0 (+5В или GND) может быть изменен, после изменения логического уровня устройство автоматически будет перезагружено. Для каждого из датчиков (main, second, PCF-платы расширения) при срабатывании может быть установлено своё время по истечение которого будет осуществлено уведомление (смс и/или голосовой вызов). «PIR Sensor» переименован в «Second sensor». Исправлена работа платы расширения, ошибка из-за которой устройство всегда уведомляло о срабатывании датчиков, вне зависимости от того поставлено устройство на охрану или нет. Теперь можно выбрать режим работы при котором устройство может мониторить датчики платы расширения как во включенном режиме охраны (GuardOn), так и при выключенном режиме (GuardOff). Добавлены команды PCFForceOn/PCFForceOff, MainSensorLevelHigh/MainSensorLevelLow/MainSensorLevelOff, SecondSensorLevelHigh/SecondSensorLevelLow/SecondSensorLevelOff, MainDelayBeforeAlarm, SecondDelayBeforeAlarm, PCFDelayBeforeAlarm. Занято: 68% SRAM, 99% Flash Memory.

*Последующие версии прошивок включают в себя изменения предыдущих версий.


Используемые порты Arduino Nano v3

D4 - выход «тревожного» пина, при срабатывании датчика на этом пине устанавливается сигнал высокого уровня
D5 - инверсный выход «тревожного» пина, при срабатывании датчика на этом пине устанавливается сигнал низкого уровня

D6 - герконовый датчик. Начиная с версии GSM_2017_08_10-12-17.hex к пину D6 могут быть подключены любые цифровые датчики с высоким или низким уровнем срабатывания, в том числе герконы. Пин D6 должен быть притянут к земле (GND) через сопротивление 10 (20) кОм.
D7 - подключен к делителю напряжения от внешнего источника питания +5В. Верхнее плечо 2,2 кОм, нижнее 3,3 кОм.

Делитель напряжения


D8 - модем TX
D9 - модем RX

D10 - красный светодиод
D11 - синий светодиод
D12 - зеленый светодиод

Подключение периферии:
A0 - датчик движения . Начиная с версии GSM_2017_08_10-12-17.hex к пину A0 могут быть подключены любые цифровые датчики с высоким или низким уровнем срабатывания, в том числе герконы. Пин A0 должен быть притянут к земле (GND) через сопротивление 10 (20) кОм.

A1 - Вход для внешнего управления. Сигнализация ставит/снимает охрану при появлении на входе высокого уровня +5В.
A2 - Инверсный вход для внешнего управления. Сигнализация ставит/снимает охрану при появлении на входе низкого уровня GND.

A3 - Настраиваемый (+5В или GND) выход для управления внешними устройствами. При поступлении команды управления значение на этом выходе изменяется в зависимости от того какое было установлено на установленный промежуток времени.

A4 - SDA I2C
A5 - SLC I2C
, для подключения дополнительных 8 датчиков.


Команды управления для hex - прошивки

Внимание! Команды выделенные жирным шрифтом могут быть выполнены только с основного номера, так как отвечают за конфигурацию устройства. Остальные команды могут быть выполнены с номеров с признаком «Management».

SMS - команды управления не чувствительны к регистру :
AddPhone - Добавить номер телефона. Всего может быть добавлено не более 9 номеров + 1 основной номер который автоматически сохраняется в память при первом звонке на устройство после сброса на заводские установки командами ResetPhone или FullReset . Т.е. кто первый позвонил на устройство после его сброска на заводские установки тот и и «главный», этот номер заносится в первую ячейку памяти и его невозможно изменить или удалить через смс. Возможно добавить два одинаковых номера, но тогда у номера дубликата автоматически остаётся только признак «r» - исключительно для повторного голосового вызова.
Пример команды:



Синтаксис команды:

AddPhone - команда
: - разделитель
5 - записать в пятую ячейку памяти
+71234567890 - номер телефона
До версии GSM_2017_05_26-20-22.hex:
а - Параметр «Alarm» - на номера с этим параметром будут отправляться смс - сообщения о срабатывании сигнализации и сообщения постановке или снятии с охраны.
Начиная с версии GSM_2017_05_26-20-22.hex:
m - Параметр «Management» - разрешено управление сигнализацией
s - Параметр «SMS» - будет отправлено sms сообщение при срабатывании датчиков
r - Параметр «Ring» - будет совершен голосовой вызов при срабатывании датчиков
p - Параметр «Power» - будет отправлено sms сообщение при включении/отключении внешнего питания
i - Параметр «Info» - будет отправлено sms сообщение при постановке или снятии с охраны
При отсутствии параметров «m», «s», «r», «p»,«i» телефон заносится в память, но никак не используется.


DeletePhone - Удалить номер телефона.
Пример команды:

Синтаксис команды:

DeletePhone - команда
: - разделитель
+71234567891 - номер телефона


EditMainPhone - Изменить параметры «s», «r», «p», «i» основного телефона, этот номер занесён в первую ячейку памяти.
Пример команды:

Синтаксис команды:

EditMainPhone - команда
: - разделитель
srpi - параметры


BalanceNum - Изменение номера запроса баланса и обработка длины ответа запроса. Значение по умолчанию для Beeline: #100#L22.
Пример команды:

Синтаксис команды:

BalanceNum - команда
: - разделитель
#103# - номер запроса баланса
L24 - Длина (len) пересылаемого ответа 24 символа, обрезаем спам из запроса баланса.


EditSensor - Изменить название датчика и логический уровень срабатывания. Всего может быть не более 8 дополнительных датчиков. После изменения параметров необходима перезагрузка устройства.
Пример команды:
EditSensor:1+Datchik dvizheniya v koridore#h

Синтаксис команды:

EditSensor - команда
: - разделитель
1 - записать в первую ячейку памяти
+ - разделитель
Datchik dvizheniya v koridore - название датчика, не может превышать 36 символов, включая пробелы.
#h - Признак высокого логического уровня с датчика, при получении которого сработает сигнализация. Если отсутствует "#h", сигнализация будет срабатывать при получении с датчика низкого логического уровня.


SleepTime - Время «засыпания» сигнализации при получении смс - команды «Pause», указывается в минутах. Значение по умолчанию: 15, не может быть менее 1 и более 60.
Пример команды:

Синтаксис команды:

SleepTime - команда
: - разделитель
20 - 20 минут «сна».


AlarmPinTime - Время на которое включается/выключается тревожный/инверсный пин, указывается в секундах. Значение по умолчанию: 60, не может быть менее 1 секунды и более 43200 секунд (12 часов).
Пример команды:

Синтаксис команды:

AlarmPinTime - команда
: - разделитель
30 - 30 секунд включения/выключения тревожного пина.


DelayBeforeGuard - Время до постановки устройства на охрану, после получения соответствующей команды.
Пример команды:

Синтаксис команды:

DelayBeforeGuard - команда
: - разделитель
25 - 25 секунд до постановки на охрану


DelayBeforeAlarm - Время по истечении которого будет отправлено «тревожное» смс уведомление, если за этот период времени сигнализация не была снята с охраны. Заменена расширенными командами начиная с версии GSM_2017_08_10-12-17.hex
Пример команды:

Синтаксис команды:

DelayBeforeAlarm - команда
: - разделитель
40 - 40 секунд до отправки «тревожного» уведомления


WatchPowerTime - Время в минутах по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Если внешнее питание будет восстановлено до истечения установленного времени, то сообщение не будет отправлено.
Пример команды:

Синтаксис команды:

WatchPowerTime - команда
: - разделитель
5 - 5 минут до отправки смс сообщения


RingTime - Длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд.
Пример команды:

Синтаксис команды:

RingTime - команда
: - разделитель
40 - 40 длительность вызова составит 40 секунд, после чего будет вызван следующий абонент.


ModemID - Принудительная установка модели используемого модема. Возможные значения: 0 - автоопределение модема, 1 - M590, 2 - SIM800l, 3 - A6_Mini.
Пример команды:

Синтаксис команды:

ModemID - команда
: - разделитель
2 - ID модема.


ExtDeviceTime - Количество секунд на которое изменится уровень сигнала на выходе управления внешним устройством.
Пример команды:

Синтаксис команды:

ExtDeviceTime- команда
: - разделитель
5 - 5 секунд


ExtDeviceLevelLow - Внешнее устройство подключенное к выходу A3 управляется низким уровнем сигнала (GND). На выходе по умолчанию будет присутствовать высокий уровень +5В, пока не поступит команда управления внешним устройством
ExtDeviceLevelHigh - Внешнее устройство подключенное к выходу A3 управляется высоким уровнем сигнала (+5V). На выходе по умолчанию будет присутствовать низкий уровень GND, пока не поступит команда управления внешним устройством

ResetSensor - сброс параметров датчиков расширителя порта

ResetConfig - сброс настроек на заводские установки

ResetPhone - удаление из памяти всех телефонных номеров

FullReset - сброс настроек, удаление из памяти всех телефонных номеров, восстановление значения по умолчанию команды BalanceNum.

RingOn - включить уведомление звонком на «главный» номер записанный в первую ячейку памяти при срабатывании датчика. Удалена начиная с версии GSM_2017_06_11-00-07.hex
RingOff - выключить уведомление звонком при срабатывании датчика. Удалена начиная с версии GSM_2017_06_11-00-07.hex

SmsOn - включить sms-уведомление при срабатывании датчика. Удалена начиная с версии GSM_2017_08_10-12-17.hex
SmsOff - выключить sms-уведомление при срабатывании датчика. Удалена начиная с версии GSM_2017_08_10-12-17.hex

PIROn - включить обработку датчика движения
PIROff - выключить обработку датчика движения

ReedSwitchOn - включить обработку основного герконового датчика
ReedSwitchOff - выключить обработку основного герконового датчика

WatchPowerOn - включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что сигнализация поставлена на охрану. Удалена начиная с версии GSM_2017_03_01-23-37.

WatchPowerOn1 - включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что сигнализация поставлена на охрану.
WatchPowerOn2 - включить контроль внешнего питания, смс сообщение об отключении внешнего питания в любом случае будет отправлено

WatchPowerOff - выключить контроль внешнего питания

GuardButtonOn - управление сигнализацией внешними устройствами или кнопкой включено Удалена начиная с версии GSM_2017_04_16-12-00.
GuardButtonOn1 - функция постановки или снятия охраны внешними устройствами или кнопкой включена
GuardButtonOn2 - функция только постановки на охрану внешними устройствами или кнопкой включена, снятие с охраны производится по звонку на устройство или с помощью смс команды.
GuardButtonOff - управление сигнализацией внешними устройствами или кнопкой выключено

PCFForceOn - постоянный мониторинг группы всех датчиков модуля расширения
PCFForceOff - мониторинг группы всех датчиков модуля расширения только при постановке устройства на охрану

MainSensorLevelHigh - тревожное уведомление будет отправлено при появлении сигнала высокого уровня (+5 В) на входе (D6) от датчика
MainSensorLevelLow - тревожное уведомление будет отправлено при появлении сигнала низкого уровня (GND) на входе (D6) от датчика
MainSensorLevelOff - обработка датчика на входе (D6) отключена

SecondSensorLevelHigh - тревожное уведомление будет отправлено при появлении сигнала высокого уровня (+5 В) на входе (A0) от датчика
SecondSensorLevelLow - тревожное уведомление будет отправлено при появлении сигнала низкого уровня (GND) на входе (A0) от датчика
SecondSensorLevelOff - обработка датчика на входе (A0) отключена

MainDelayBeforeAlarm - время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании основного датчика (D6), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
SecondDelayBeforeAlarm - время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании дополнительного датчика (A0), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.
PCFDelayBeforeAlarm - время по истечении которого будет отправлено «тревожное» смс уведомление при срабатывании датчиков платы расширения (PCF8574), если за этот период времени сигнализация не была снята с охраны. Синтаксис аналогичен команде DelayBeforeAlarm.

GuardOn - поставить на охрану
GuardOff - снять охраны

Open - команда управления внешним устройством

Info - проверить состояние, в ответ на это сообщение будет отправлено sms с информацией о том с какого номера была включена/выключена охрана

Pause - приостанавливает работу системы на время установленное командой sleeptime в минутах, система не реагирует на срабатывания датчика.

TestOn - включается тестовый режим, мигает синим светодиодом.
TestOff - выключается тестовый режим.

LedOff - выключает светодиод режима ожидания.
LedOn - включает светодиод режима ожидания.

Money - запроса баланса.

ClearSms - Удалить из памяти все sms

Консольные команды (до версии GSM_2017_04_24-13-22.hex) - вводятся в мониторе порта Arduino IDE:

AddPhone - аналогична sms-команде AddPhone

DeletePhone - аналогична sms-команде DeletePhone

EditSensor - аналогична sms-команде EditSensor

ListPhone - вывод в монитор порта списка сохранённых в памяти телефонов

ResetConfig - аналогична sms-команде ResetConfig

ResetPhone - аналогична sms-команде ResetPhone

FullReset - аналогична sms-команде FullReset

ClearSms - аналогична sms-команде ClearSms

WatchPowerOn1 - аналогична sms-команде WatchPowerOn1
WatchPowerOn2 - аналогична sms-команде WatchPowerOn2
WatchPowerOff - аналогична sms-команде WatchPowerOff

GuardButtonOn - аналогична sms-команде GuardButtonOn . Удалена начиная с версии GSM_2017_04_16-12-00
GuardButtonOn1 - аналогична sms-команде GuardButtonOn1
GuardButtonOn2 - аналогична sms-команде GuardButtonOn2
GuardButtonOff - аналогична sms-команде GuardButtonOff

Memtest - тест энергонезависимой памяти устройства, все настройки устройства будут сброшены, аналогично команде FullReset.

I2CScan - поиск и инициализация поддерживаемых устройств на шине I2C.

ListConfig - вывод в монитор порта текущей конфигурации устройства.

ListSensor - вывод в монитор порта текущей конфигурации датчиков.

UPD. При использовании датчика движения , для исключения ложных срабатываний при работе модема, необходимо между пинами GND и A0 Arduino поставить сопротивление , спасибо говорим товарищу
AllowPhone = {«70001234501», «70001234502», «70001234503», «70001234504», «70001234505»} - Номера которым разрешено управлять охраной.
AlarmPhone = {«70001234501», «70001234502»} - Номера для отправки sms-уведомлений при срабатывании датчика и уведомления о снятии или постановке на охрану. На первый номер в списке будет осуществляться вызов при срабатывании датчика если выполнена команда RingOn, по-умолчанию эта опция включена. Это сделано потому что sms-сообщения могут прийти с некоторой задержкой, а звонок должен пройти сразу.

Если поступил вызов с разрешенного номера или sms-сообщение с командой GuardOn/GuardOff, то в зависимости от текущего состояния охраны будет отправлено sms-сообщение о постановке или снятии с охраны на номера перечисленные в массиве AlarmPhone, так же будет отправлено sms-сообщение на номер с которого поступил вызов.

При срабатывании датчика отправляются sms-сообщения на все номера из массива (списка) AlarmPhone и осуществится голосовой вызов на первый номер из этого массива.

Световая индикация:
Светодиод светится красным цветом - поставлено на охрану.
Светодиод светится зелёным цветом - снято с охраны, включается/отключается sms-командой LedOn/LedOff.
Светодиод постоянно мигает синим цветом - сигнализирует о том что c Arduino всё в порядке, плата не зависла, используется исключительно для отладки, включается/отключается sms-командой TestOn/TestOff.
* В коде присутствует функция LedTest(), она мигает синим светодиодом, сделана лишь для того чтобы мониторить Arduino, мигает - значит работает, не мигает - зависла. Пока ещё не зависала:)

НЕ Актуально!

Подключение 2 и более датчиков для открытых прошивок (касается только этой прошивки sketch_02_12_2016.ino)
Для подключения дополнительных герконовых датчиков используем свободные цифровые пины D2,D3,D5 или D7. Схема подключения с дополнительным датчиком на D7.

Необходимые изменения в прошивке
... #define DoorPin 6 // Номер входа, подключенный к основному датчику int8_t DoorState = 0; // Переменная для хранения состояния основного датчика int8_t DoorFlag = 1; // Переменная для хранения состояния основного датчика #define BackDoorPin 7 // Номер входа, подключенный к дополнительному датчику int8_t BackDoorState = 0; // Переменная для хранения состояния дополнительного датчика int8_t BackDoorFlag = 1; // Переменная для хранения состояния дополнительного датчика...
void setup() { ... pinMode(DoorPin, INPUT); pinMode(BackDoorPin, INPUT); ...
... void Detect() { // Считываем значения с датчиков DoorState = digitalRead(DoorPin); BackDoorState = digitalRead(BackDoorPin); //Обработка основного датчика if (DoorState == LOW && DoorFlag == 0) { DoorFlag = 1; delay(100); if (LedOn == 1) digitalWrite(GLed, LOW); Alarm(); } if (DoorState == HIGH && DoorFlag == 1){ DoorFlag = 0; delay(100); } //Обработка дополнительного датчика if (BackDoorState == LOW && BackDoorFlag == 0) { BackDoorFlag = 1; delay(100); if (LedOn == 1) digitalWrite(GLed, LOW); Alarm(); } if (BackDoorState == HIGH && BackDoorFlag == 1){ BackDoorFlag = 0; delay(100); } } ...

И ещё кое что :
1. Диоды лучше использовать рассчитанные на ток 2 А, так как модуль заражает током в 1 А и нам ещё нужно чем то питать Arduino и модем. В этом экземпляре используются диоды 1N4007, если выйдут из строя заменю на 2 А.
2. Все резисторы для светодиода использовал на 20 кОм, для того чтобы ночью не освещать весь коридор.
3. На герконовый датчик между пином GND и пином D6 так же повесил резистор на 20 кОм.

На этом пока всё. Спасибо за внимание! :)

Планирую купить +207 Добавить в избранное Обзор понравился +112 +243

Важной составляющей автоматизации любого объекта является система мониторинга и контроля. Если управлять объектом на небольших расстояниях (до нескольких сот метров) не вызывает больших проблем - можно использовать индивидуальные маломощные приемо-передатчики. То с мониторингом удаленных объектов такой прием не прокатит, организовать собственный радиоканал, скажем на 100 км, так просто не выйдет. Но тут есть один выход - можно использовать развернутые повсеместно сети сотовых операторов. Для этого есть даже специализированные GSM-модули, прикидывающиеся в сети опсоса простым мобильником. Один из таких GSM-модулей SIM900D попал ко мне в руки (за что спасибо товарищу RD3AVJ), о нем и пойдет речь.

SIM900D по сути является законченным устройством, который способен задействовать большинство услуг сотовой связи: совершать и принимать звонки, слать и получать SMS и MMS, использовать GPRS и заходить на FTP. Плюс такие плюшки как встроенный контроллер заряда Li-Ion батарей, часы реального времени, выход ШИМ интерфейс для подключения дисплея и аналогово-цифровой преобразователь (АЦП).

Для начала работы модуля нужно минимум внешних элементов и питание, но обо всем по порядку.


ПИТАНИЕ


Модуль необходимо запитывать постоянноым напряжением в диапазоне 3,2-4,5 вольта. Плюс питания подводится к выводам 38-39 (VBAT). Земля подводится ко всем выводам GND.

Потребление в режиме ожидания составляет всего 1мА, но следует учитывать что во время регистрации сети или при плохом сигнале модуль задирает мощность и потребление кратковременно может подниматься до 2 А. Источник питания должен быть готов к этому и электролиты на пару тысяч микрофарад здесь лишними не будут.


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



Источник питания для заряда аккумулятора подключается к выводу VCHG (28 вывод). Напряжение источника может находиться в диапазоне 5-6 Вольт с возможностью тянуть ток до 750 мА.

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

ПОДКЛЮЧЕНИЕ SIM-КАРТЫ

Следующим основным элементом является сим карта. Это ключ ко входу в сеть опсоса:) Для работы с модулем необходимы сим карты с напряжением питания 3 или 1,8 вольт (старые пяти вольтовые симки работать не будут). Общая схема подключения ниже.


Подключается она к выводам SIM_x (выводы 6-9). Для того чтобы на выводе SIM_VDD появилось питающее напряжение необходимо прижать вывод KBR0 (вывод 10) к земле.

Для защиты линий от статики рекомендуют использовать специальные TVS диоды типа SMF05С. Но их фиг где найдешь, поэтому можно оставить без них, главное поменьше трогать руками эти выводы. А при запайке, если нет паяльной станции, паять отключенным паяльником.

АНТЕННА

Тут вроде все просто, она подключается к выводу 33 (ANT). Желательно использовать специальную антенну GSM диапазона, от ее качества будет зависеть потребляемая мощность передатчика, и как итог - время автономной работы модуля. У меня на отрезок дорожки на плате длиной 7 мм уровень сигнала был 4 из 31, тоесть ловится но очень слабо. Но это при условии что репитер GSM находился на соседнем здании.

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

ЧАСЫ РЕАЛЬНОГО ВРЕМЕНИ

В модуле имеется собственный RTC, способный вести время даже при отсутствии основного питания. Для этого к выводу VRTC (вывод 15) должен быть подключен источник резервного питания, например 3-х вольтовая батарейка CR2032 или ионистр. В случае подключения незаряжаемого источника (как простая батарейка) необходимо использовать диод Шоттки, для ограничения обратного тока. Ниже приведены две схемы, слева подключение ионистра; справа - батарейки.

ИНДИКАЦИЯ

Для индикации собственного состояния в процессе работы, у модуля есть несколько выводов для подключения светодиодов. Первый из них вывод NETLIGHT (вывод 41). На этом выводе при работающем модуле появляется меандр, с частотой зависящей от состояния подключения к сотовой сети: во время поиска и регистрации высокий уровень на этом выводе появляется с периодом 800мс, после регистрации сети - с периодом 3 сек. Подключать светодиод к этому выводу можно только через транзисторный ключ:



Для индикации работы модуля есть еще один вывод - STATUS (5 вывод). На нем появляется высокий уровень когда модуль находится в рабочем режиме. Светодиод к этой ноге подключается также как и к выводу NETLIGHT (через NPN транзистор).

Вывод RING (вывод 11) служит для индикации входящих звонков и текстовых сообщений. Этот вывод удобно использовать с внешним прерыванием контроллера, для оперативного реагирования на события. В отличии от двух предыдущих на выводе RING активным уровнем явлется низкий, поэтому если сюда цеплять светодиод, то в качестве ключа нужно использовать PNP транзистор:



ЗАПУСК МОДУЛЯ

Модуль запускается при отрицательном импульсе длинной не менее 1 сек. на ноге PWRKEY (вывод 12). Для подачи импульса рекомендуется использовать следующую схему:


Для открытия транзистора можно использовать кнопку или импульс с микроконтроллера. Если снова подать импульс на эту ногу, то модуль выключится.

АУДИО

У модуля SIM900D имеется по два входа для микрофона и выхода на динамик. Для подключения используются выводы с 18 по 26. Схема согласования ниже.

Подключение микрофона:

Shield GPRS/GSM SIM900 с антенной
SIM900 GPRS/GSM Shield Development Board Quad-Band Kit For Arduino Compatible

Модуль для работы микроконтроллерных устройств Arduino и аналогичных в сетях сотовой связи по стандартам GSM и GPRS. Ориентирован на использование в системах автоматики и управления. Обмен данными с другими модулями происходит через интерфейс UART. Shield GPRS/GSM SIM900 с антенной может сопрягаться непосредственно с микроконтроллером через интерфейс UART или работать совместно с персональным компьютером при использовании преобразователя интерфейса портПК-UART. Это возможно благодаря программной совместимости на уровне класса команд используемых для управления модемами - АТ команды.
Мониторинг объектов и управление ими происходит благодаря обмену данными в пределах досягаемости мобильной связи. Обеспечивается голосовая связь, отправка СМС, ММС и много других функций и сервисов. Работа модуля основана на компоненте SIM900.

Статья на русском из журнала о компоненте SIM900 . Компонент разработан компанией SIMCom Wireless Solutions. Сайт SIMCom имеет русскоязычную версию . Плата GSM модуля на стороне компонентов содержит соединители для подключения антенны, наушников и микрофона. На стороне пайки платы размещены держатель батареи CR1220 3 вольта поддерживающей работу часов модуля и контейнер для установки симкарты.
Одно из применений устройства - система слежения за перемещениями транспорта совместно с ГЛОНАСС или GPS прибором. Отправка СМС сообщений позволяет использовать модуль в диспетчеризации, беспроводной сигнализации и в охранных системах. В результате происходящих событий могут отправляться различные СМС: “Аварийный стоп лифта 2 дома №34”, “Дверь автомобиля открыта”, “Подвал открыт”, “Напряжение 220 В выключено”, “Входная дверь дачи открыта”, “Включено освещение”, “Температура в теплице ниже критической”. Модуль незаменим для контроля и управления подвижными объектами, перемещающимися на большие расстояния. Или в случае удаления оператора на большое расстояние от стационарного объекта.

Shield GPRS/GSM SIM900 с антенной дает широкие возможности изучения работы компонента SIM900. Монтаж компонента SIM900 выполняется по самым современным технологиям из-за чего припаять к печатной плате SIM900 в лабораторных условиях весьма затруднительно. Имея модуль с установленным SIM900 можно проводить эксперименты по применению компонента SIM900. При использовании в собственных разработках компонента SIM900 появляется возможность отладки программного обеспечения и проверки схемотехнических решений.

Характеристики

Питание
напряжение, В
номинальное 5
диапазон 4,8-5,2
ток
обычный режим 50-450 мА
в спящем режиме 1,5 мА
предельный импульсный 2 А
Поддерживает симкарты питанием 1,8 и 3 В
Диапазоны связи 850, 900, 1800, 1900 МГц
Поддерживает сеть 2G
Мощность передачи в различных диапазонах
1 Вт 1800 и 1900 МГц
2 Вт 850 и 900 МГц
Соответствует стандарту GSM фазы 2/2+
Встроенные протоколы TCP и UDP
Класс передачи данных GPRS multi-slot class 10/8
Аудиокодеки HR, FR, EFR, AMR, подавление эха
CSD до 14,4кбит/сек
PPP стек
MUX (07.10)
Протоколы HTTP и FTP
Есть возможность отправлять сигналы DTMF и проигрывать записи как на автоответчике
Поддержка часов реального времени RTC
Температура, ℃
воздуха при работе -30...75
хранения -45...90
размеры 86 х 58 х 19 мм

Компоненты управления

Переключателем Power select устанавливается источник питания: внешний, подключенный к коаксиальному соединителю или источник питания микроконтроллерного модуля Arduino.

Кнопкой Power key включается или выключается питание при нажатии и удерживании в течение 2 с.

Индикация

О состоянии модуля сообщают 3 светодиода:
PWR (зеленый) - индикатор питания модуля,
Status (красный) - индикатор питания компонента SIM900,
Net Light (зеленый) - соединение с сетью.
Сообщения светодиода Net Light.
Выключен - SIM900 не работает.
Мигает с интервалами, указано в секундах:
0,064 включен и 0,8 выключен - сеть не обнаружена,
0,064 включен и 0,3 выключен - сеть обнаружена,
0,064 включен, 0,03 выключен - GPRS подключен.

Контакты

Компонент SIM900 содержит порт UART, его сигналы выведены на выводы компонента и соединены с перемычками, устанавливающими с какими контактами модуля Shield GPRS/GSM SIM900 будет соединен порт UART компонента SIM900 с D0, D1 или D7, D8.
UART Shield GPRS/GSM можно подключнить: к аппаратному интерфейсу МК через контакты TXD и RXD модуля Shield GPRS/GSM, для этого используются D0, D1. Или к программно эмулируемому средствами ардуино, для этого используются контакты D7 и D8 модуля Shield GPRS/GSM. Полный интерфейс UART имеет 10 сигналов выведенных на контакты в углу платы: R1, DCD, DSR, CTS, RTS, GND, 2V8, TX, RX, DTR.
12 подписанных контактов цифровых линий ввода-вывода GPIO расположены в углу платы. Имеется 2 контакта выходных сигналов с широтно-импульсной модуляцией PWM1, PWM2. Вход АЦП контакт ADC. Интерфейс встроенного счетчика времени имеет 4 контакта. Обозначение контактов: DISP_CLK, DISP_DATA, DISP_D/C, DISP_CS.
Контакт D9 используется для программного контроля включения или выключения SIM900.
На плате установлен соединитель для подключения антенны.

Назначение выводов компонента SIM900.

Внешнее включение и выключение питания

Включить или выключить питание модуля можно с помощью сигнала на управляющем входе D9. Для изменения состояния на D9 подается импульс продолжительностью 1 с. Изменение состояния происходит спустя 3,2 с после начала импульса.

Включение модуля. Графики напряжения питания модуля, внешнего управляющего импульса и индикатора питания STATUS.

При управлении модулем руководящим устройством включение должно происходить без применения кнопки Power key, т. е. сразу после подачи питания. Для этого в программу МК следует добавить несколько команд.

Void powerUpOrDown()
{
pinMode(9, OUTPUT);
digitalWrite(9,LOW);
delay(1000);
digitalWrite(9,HIGH);
delay(2000);
digitalWrite(9,LOW);
delay(3000);
}

Эту группу команд в программе можно использовать и для выключения модуля. Также выключить GSM модуль можно посылая AT команду.