→ Sim900 описание. Освоение GSM на базе модуля SIM900D. Подключение с помощью GSM-GPRS шилда

Sim900 описание. Освоение GSM на базе модуля SIM900D. Подключение с помощью GSM-GPRS шилда

Работу с GSM/GPRS-шилдом SIM900 , сейчас речь пойдёт о дешёвом (порядка 150 рублей) модуле GSM NEOWAY M590 .

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

В комплекте поставляется
Две маленькие, чёрные штучки - это резисторы, полярность не имеет значения.
Квадратная жёлтая штука - это танталовый конденсатор, полярность здесь важна, поэтому припаиваем как на картинке.
Чёрный цилиндр - это диод (в данной конструкции отвечает за понижение напряжения) , обязательно соблюдение полярности, так что делаем как на иллюстрации.
Маленькая прозрачная штучка - это светодиод, опять же, важна полярность, на плате минус расположен ближе к букве B oot.

Остальные детали, думаю, не вызывают вопросов.

Для тех, кто планирует разводить плату под модуль самостоятельно:

Подключение и эксплуатация

NEOWAY общается с ардуиной (или иным устройством) через UART (RX, TX) с помощью AT-команд . Для того чтоб посылать команды, надо выяснить скорость UARTа.
Для выяснения скорости, нужно подключить собраный модуль к компьютеру с помощью USB-UART моста, выглядит эта штука так:

В этом случае соединяем:

USB-UART <> NEOWAY

+5 <> +5
GND <> GND
TX <> RX
RX <> TX

Контакт BOOT используется для включения/отключения модуля кратковременным (~1сек) соединением с GND , однако удобнее просто соединить его с GND и не отсоединять. Включение модуля будет происходить при подачи питания.

Если такой штуки нет, то можно превратить ардуину в USB-UART мост залив в неё вот такой скетч…

Void setup() { pinMode(0, INPUT); pinMode(1, INPUT); } void loop() {}

… и соединив следующим образом:

Ардуина <> NEOWAY

+5 <> +5
GND <> GND
RX <> RX
TX <> TX

Контакт BOOT соедините с GND .

О питании

Модуль может потреблять большой ток , до 2-х ампер в пике, поэтому для надёжной работы необходимо организовать дополнительный БП. В принципе заработает то он и от ардуины, но в момент регистрации в сети или приёма звонка, модуль может перегружаться.

Так же будет не лишним поставить электролитический конденсатор (~1000 микрофарад, 16 вольт) поближе к модулю.

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

Теперь подключаем Вашу конструкцию к компьютеру, в IDE Arduino открываем «Монитор последовательного порта» (в дальнейшем «терминал») , выбираем (внизу-справа) NL & CR , устанавливаем скорость 9600 и отправляем команду проверки связи - AT

Если ответ - ОК, то значит модуль работает и скорость UARTа установлена 9600 . Если ответа нет, то проверьте правильность соединения UARTа и дальше действуйте методом «тыка» подставляя разные скорости, пока не увидите заветное ОК .

После старта модем скажет - MODEM:STARTUP , а о готовности к работе сообщит - +PBREADY

Если модему не будет хватать питания (большинство возникающих проблем происходят из-за этого) , то он будет постоянно рестартовать.

Ещё я столкнулся с тем, что модем работает не со всеми сим-картами.

Если всё в порядке, тогда переходим к изучению АТ-команд для общения с NEOWAY и его настройки.

АТ-команды

АТ - запрос состояния, ответ - ОК.

ATE0 - отключить «эхо».

ATE1 - включить «эхо».
Эхо - это повтор введённой команды в терминал.

ATI - название и версия модуля.

AT+getvers - версия прошивки.

AT+IPR=9600 - установка скорости UARTа (9600) , возможные варианты - 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200.

AT&W0

AT&W1 - сохранение конфигурации настроек в EEPROM.
0 для нулевого профиля, 1 для первого профиля.

AT+CPAS - проверка статуса модема, ответ - +CPAS: 0.
Статусы: 0 - готов к работе, 2 - неизвестно, 3 - входящий звонок, 4 - в режиме соединения.

AT+CPWROFF - отключение модуля.

AT+CLIP=1 - включить АОН.

AT+CLIP=0 - отключить АОН.

ATD+79634759175; - позвонить.
В терминал будут выводиться сообщения: CONNECT - соединение установлено, BUSY - занят, NO ANSWER - нет ответа, NO CARRIER - вызов сброшен.

ATH - сбросить все соединения.

ATH1 - сбросить текущие соединение.

AT+CMGF=1 - настроить на текстовый формат SMS.

AT+CMGF=0 - настроить SMS на PDU формат.

AT+CSCS=«GSM» - кодировка текста sms - ASCII. Переправьте на нормальные кавычки.
Возможны другие кодировки: HEX – шестнадцатеричными значениями, IRA – международный справочный алфавит, PCCP437 – кодировка CP437(IBM PC), 8859-1 – кодовые страницы семейства ISO 8859, UCS2 – кодировка unicode.

AT+CMGR=1 - чтение sms, где цифра - порядковый номер сообщения. То есть в данном случае читается первое сообщение, так - AT+CMGR=2 второе и т.д.

AT+CMGD=1 - удаление sms, где цифра - порядковый номер сообщения.

AT+CMGD=1,1 - удалить все прочитанные sms.

AT+CMGD=1,2 - удалить все прочитанные и отправленные sms.

AT+CMGD=1,3 - удалить все прочитанные, отправленные и неотправленные sms.

AT+CMGD=1,4 - удалить все sms.

AT+CNMI=1,2,2,1,0 - вывод принятого sms в терминал.

Можно найти исчерпывающую информацию по ат-командам.

Отправка SMS будет осуществляться ардуиной.

Далее будем управлять модулем с помощью ардуины

Если на вашем модуле установлена скорость UARTа отличная от 9600 , тогда дайте команду:

AT+IPR=9600
При взаимодействии с ардуиной будет использоваться SoftwareSerial, а он плохо работает на скоростях выше 9600.

Отключите девайс от питания и переключите RX и TX (остальное без изменений) модуля к ардуине следующим образом:

Ардуина <> NEOWAY

+5 <> +5
GND <> GND
D2 <> TX
D3 <> RX

Контакт BOOT соедините с GND .

Вначале загружаем в ардуину простой скетч (предварительно вписав номер, с которого будете звонить на модуль) .

При старте, на каждую команду должно быть подтверждение - ОК.

#include SoftwareSerial mySerial(2, 3); byte led = 13; void setup() { delay(2000); pinMode(led, OUTPUT); digitalWrite(led, LOW); Serial.begin(9600); mySerial.begin(9600); Serial..println(); Serial.println("Turn on AOH:"); mySerial.println("AT+CLIP=1"); //включить АОН delay(100); // ПРИ СТАРТЕ, НА КАЖДУЮ КОМАНДУ ДОЛЖНО БЫТЬ ПОДТВЕРЖДЕНИЕ - ОК } void loop() { if(mySerial.available()) //если модуль что-то послал { char ch = " "; String val = ""; while(mySerial.available()) { ch = mySerial.read(); val += char(ch); //собираем принятые символы в строку delay(3); } Serial.print("Neo send> "); Serial.println(val); if(val.indexOf("RING") > -1) //если есть входящий вызов, то проверяем номер { if(val.indexOf("79891196709") > -1) // ВПИШИТЕ НОМЕР, с которого Вы будете звонить на модуль { Serial.println("Call my phone"); mySerial.println("ATH"); //разрываем связь Serial.println("Disconnection"); Serial.println("On D13"); digitalWrite(led, HIGH); //включаем светодиод на 5 сек Serial.println("5 sec pause"); delay(5000); digitalWrite(led, LOW); //выключаем Serial.println("Off D13"); } } } }
При звонке со вписанного номера, будет на 5 секунд зажигаться D13, а связь обрываться. Если это будет другой номер, то ничего не произойдёт. Все действия отображаются в терминале.

Следующий скетч будет посылать SMS в ответ на наш звонок:

#include SoftwareSerial mySerial(2, 3); byte led = 13; void setup() { delay(2000); pinMode(led, OUTPUT); digitalWrite(led, LOW); Serial.begin(9600); mySerial.begin(9600); Serial..println(); Serial.println("Turn on AOH:"); mySerial.println("AT+CLIP=1"); // включить АОН delay(100); Serial.println("Text format sms:"); mySerial.println("AT+CMGF=1"); // текстовый формат SMS delay(100); Serial.println("Mode GSM:"); mySerial.println("AT+CSCS=\"GSM\""); // кодировка текста - GSM delay(100); // ПРИ СТАРТЕ, НА КАЖДУЮ КОМАНДУ ДОЛЖНО БЫТЬ ПОДТВЕРЖДЕНИЕ - ОК } void loop() { if(mySerial.available()) //если модуль что-то послал { char ch = " "; String val = ""; while(mySerial.available()) { ch = mySerial.read(); val += char(ch); //собираем принятые символы в строку delay(5); } Serial.print("Neo send> "); Serial.println(val); if(val.indexOf("RING") > -1) //если есть входящий вызов, то проверяем номер { if(val.indexOf("79919790861") > -1) // ВПИШИТЕ НОМЕР, с которого Вы будете звонить на модуль { Serial.println("Call my phone"); mySerial.println("ATH"); //разрываем связь Serial.println("Disconnection"); delay(3000); sms(String("Hello from сайт"), String("+79919790861")); // ВПИШИТЕ НОМЕР, с которого Вы будете звонить на модуль } } } } void sms(String text, String phone) // отправка СМС { Serial.println("Start SMS send"); mySerial.println("AT+CMGS=\"" + phone + "\""); delay(500); mySerial.print(text); delay(500); mySerial.print((char)26); delay(500); Serial.println("SMS send OK"); delay(2000); }
Вместо строки «Hello from сайт» можно вписать какую-либо переменную, например температуру с датчика, а звонок заменить каким-либо событием, например, нажатием на кнопку (дописав обработчик нажатия кнопки).

С помощью этого скетча можно отправлять в модуль через терминал какие-то свои команды или АТ-команды. Ответ будет выводится в терминал.

#include SoftwareSerial mySerial(2, 3); byte led = 13; void setup() { delay(2000); pinMode(led, OUTPUT); digitalWrite(led, LOW); Serial.begin(9600); mySerial.begin(9600); Serial..println(); } void loop() { if(Serial.available()) //если в мониторе порта ввели что-то { char ch = " "; String val = ""; while (Serial.available()) { ch = Serial.read(); val += char(ch); //собираем принятые символы в строку delay(5); } if(val.indexOf("callmy") > -1) // своя команда { mySerial.println("ATD+79196989701;"); // ВПИШИТЕ номер, на который нужно позвонить } else mySerial.println(val); // передача всего, что набрано в терминале в GSM модуль } while(mySerial.available()) { Serial.print((char)mySerial.read()); delay(3); } }
Если ввести в терминале ат-команду - AT+CLIP=1 , то включится АОН, а если ввести свою команду - callmy , тогда модуль перезвонит на вписанный в скетче телефон.

Скетч для отправки SMS-команд:

#include SoftwareSerial mySerial(2, 3); byte led = 13; void setup() { delay(2000); pinMode(led, OUTPUT); digitalWrite(led, LOW); Serial.begin(9600); mySerial.begin(9600); Serial..println(); Serial.println("Turn on AOH:"); mySerial.println("AT+CLIP=1"); //включить АОН delay(300); Serial.println("Text format sms:"); mySerial.println("AT+CMGF=1"); // текстовый формат SMS delay(300); Serial.println("Mode GSM:"); mySerial.println("AT+CSCS=\"GSM\""); // кодировка текста - GSM delay(300); Serial.println("SMS to terminal:"); mySerial.println("AT+CNMI=2,2,0,0,0"); // вывод смс в консоль delay(300); } void loop() { if(mySerial.available()) //если модуль что-то послал { char ch = " "; String val = ""; while(mySerial.available()) { ch = mySerial.read(); val += char(ch); //собираем принятые символы в строку delay(3); } Serial.print("Neo send> "); Serial.println(val); if(val.indexOf("+CMT") > -1) //если есть входящее sms { if(val.indexOf("led13on") > -1) // смотрим, что за команда { Serial.println("On D13"); digitalWrite(led, HIGH); //включаем светодиод } if(val.indexOf("led13off") > -1) // смотрим, что за команда { digitalWrite(led, LOW); //выключаем Serial.println("Off D13"); } } } }
Если отправить модулю смску с текстом - led13on , то светодиод зажжётся, а если отправить текст - led13off , то погаснет.

И последний скетч, который позволяет отправив в модуль смс со специальным словом, получить в ответ смс с балансом денег на симке, которая стоит в NEOWAY
Не забудьте вписать нужный номер.

#include SoftwareSerial mySerial(2, 3); byte led = 13; void setup() { delay(2000); pinMode(led, OUTPUT); digitalWrite(led, LOW); Serial.begin(9600); mySerial.begin(9600); Serial..println(); Serial.println("Turn on AOH:"); mySerial.println("AT+CLIP=1"); //включить АОН delay(300); Serial.println("Text format sms:"); mySerial.println("AT+CMGF=1"); // текстовый формат SMS delay(300); Serial.println("Mode GSM:"); mySerial.println("AT+CSCS=\"GSM\""); // кодировка текста - GSM delay(300); Serial.println("SMS to terminal:"); mySerial.println("AT+CNMI=2,2,0,0,0"); // вывод смс в консоль delay(300); } void loop() { if(mySerial.available()) //если модуль что-то послал { char ch = " "; String val = ""; while(mySerial.available()) { ch = mySerial.read(); val += char(ch); //собираем принятые символы в строку delay(3); } Serial.print("Neo send> "); Serial.println(val); if(val.indexOf("+CMT") > -1) //если есть входящее sms { if(val.indexOf("money") > -1) // смотрим, что за команда { delay(3000); mySerial.println("ATD#100#;"); } } if(val.indexOf("+CUSD") > -1) //если есть входящее sms { if(val.indexOf("Balance") > -1) // смотрим, что за команда { delay(3000); val = val.substring(val.indexOf("Balance"),val.indexOf("r")); sms(String(val), String("+79967081199")); // ВПИШИТЕ ВАШ НОМЕР } } } } void sms(String text, String phone) //отправка СМС с балансом модема { Serial.println("Start SMS send"); mySerial.println("AT+CMGS=\"" + phone + "\""); delay(500); mySerial.print(text); delay(500); mySerial.print((char)26); delay(500); Serial.println("SMS send OK"); delay(2000); }
Отправьте модулю смску с текстом - money и через несколько секунд придёт ответная смс с количеством денег на балансе симки NEOWAY.

Все эксперименты проводились с оператором МТС.

Теперь можно из этих скетчей собирать то, что Вам нужно.

При поступлении входящего вызова на контакте RING появляются импульсы с низким логическим уровнем длительностью 30 мс, в такт звуку гудка. При получении SMS сообщения, появляется однократный импульс длительностью 25-35 мс.

На этом пожалуй всё…

Вступайте в

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 команду.

К ряду побывавших в моих руках GSM модемах недавно добавился небезызвестный SIM900.

В статье речь пойдёт об отладочной плате для него.

Почему SIM900? Т.к. много слышал о нём и много, где его видел, давно захотелось ознакомиться с ним и его функционалом. Особенно заинтересовал он после статьи из журнала «Беспроводные технологии» «Все в одном или что нового в GSM-модуле SIM900». И один проект.

Основные характеристики:

  • Четыре диапазона GSM 850/ 900/ 1800/ 1900 МГц;
  • Класс передачи данных GPRS 10/8;
  • Класс мощности 4 (2Вт в диапазонах 850.900 МГц);
  • Класс мощности 1 (1Вт в диапазонах 1800/1900 МГц);
  • Управление AT-командами (GSM 07.07, 07.05 + AT команды от SIMCom);
  • Аудиокодеки HR, FR, EFR, AMR, подавление эха;
  • CSD до 14,4кбит/сек;
  • PPP-стек;
  • Встроенный стек TCP/IP, UPD/IP;
  • MUX (07.10);
  • Протоколы HTTP и FTP;
  • Напряжение питания 3,2-4,8В;
  • Температурный рабочий режим -30 +80 °С;
  • SIM карты поддерживает с напряжением 1,8 и 3,3В;
  • Размеры: 24* 24 * 3 мм
  • Вес 4 гр.

Характеристики взяты из той статьи и даташита к модулю.

Перейдём к получившемуся отладочному или демонстрационному модулю. За основу разработки взял свои наработки от . Вот что вышло:

В схеме были применены следующие упрощения от рекомендаций из даташита:


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

Теперь о том, что реализовано:

  1. Питание от 5В (что удобно при работе от USB или в 5В микроконтроллером) до 7-8В, стало возможно благодаря LM1086CT с низким падение напряжения;
  2. UART – для отладки или подключения к МК;
  3. + выведен I2C (не забываем про согласование уровней, если подключать к 5В логике, в отладке их не заложил);
  4. Кнопка и спец. вывод (5 пин на UART интерфейсе, включение высоким уровнем), как для ручного запуска модуля, т.к. и для его включения с микроконтроллера;
  5. Аудио вход и выход, для экспериментов, где может понадобиться голосовая связь.
  6. 2 статус диода, для отображения режимов работы модуля;
  7. Джампер JUMP1, который замыкает стабилизатор и позволяет питать модуль от 3,3-4,7В, что в свою очередь позволяет его напрямую запитать, например от литий-ионной батареи. Во время сборки и проверки не оказалось под рукой стабилизатора, питал от одной 18650 банки ;
  8. Разведены дополнительные земли для удобного подключения периферии;
  9. Разведена SMD площадка линии NRESET, для возможности добавлении цепи перезагрузки модуля.

Печатка выглядит следующим образом:

Плата выполнена на одностороннем стеклотекстолите размером 61х49мм. Основа – GSM модуль SIM900 (B09). Стабилизатор VR1 LM1086CT-ADJ в корпусе ТО-220. Держатель симкарт Sim card SCV-W2523X-08 или Sim card SCV-W2523X-06. Светодиоды любые в корпусах 0603 или 0805 с малым током потребления. Единственный транзистор VT1 – BC847 или подобный. Резисторы R1 и R2, токоограничители статус светодиодов, по 510Ом 0805. R3 4,7кОм, R4 47кОм, R5-R6 1кОм все типоразмера 0805. R7 0805 68Ом, R8 1206 10Ом. R8-R10 по 22Ома в корпусах типоразмера 0805. R12 1кОм, R13 10кОм, оба 0805. Конденсаторы C2-C3, C7-C8 по 33пФ, С4 22пФ, C5 1мкФ, С6 10пФ, С9,С10, С12 0,1мкФ, все они типоразмера 0805. Конденсатор C1 10мкФ чип-тантал типоразмера A. С10 100мкФ не менее 16В, C13 470-680мкФ не менее 10В, плату разводил под EPCOS: 100мкФ бочонок размера 8х11,5мм и 470-680мкФ той же серии размера 10х12,5-20мм. Кнопка S1 – DTSM13-5.0N (в пормэлектроннике), возможно её настоящее название – DTSM13-4.3N. Антенна любая на GSM диапазон с разьемом SMA-M, на плате SMA-F гнездо. Штыри PLS5 и 3х PLS2 + для перемычки JUMP1 нужны PLS3 и сам джампер с шагом 2,54. Аудио разъемы Jack 3,5 — CK3-101B, ставил, что было в наличии, не удачный вариант, лучше поставить какие-нибудь моно гнёзда .

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

Вот так владелец открывает ворота при въезде на территорию

Наиболее широкое распространение GSM-модуль получил как надежный и бюджетный контроллер для управления групповым доступом на объект, совместимый с популярной автоматикой ворот и шлагбаумов Doorhan и Came.

Как работает модуль

По сути GSM-модуль — это радиоприемник с установленной sim картой любого оператора сотовой связи и контроллер для обработки поступающей и исходящей информации. В базу данных модуля заносятся телефонные номера всех пользователей, имеющих право доступа на закрытую территорию. Современные модели поддерживают запись и хранение до 2000 номеров, более дорогие модификации способны обрабатывать до 10000 номеров.

Принцип работы устройства показан на рисунке.

Принципиальная схема работы устройства

При осуществлении звонка контроллер производит сверку входящего номера с записанными данными, и при его наличии в памяти подается команда на осуществление открытия и приведение в действие привода шлагбаума и откатных ворот. Если номера в списке нет, то устройство просто сбрасывает звонок, не производя больше никаких действий. Подобным же образом контроллер открывает распашные ворота, оборудованные электрозамком и приводом Doorhan или Came.

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

Приведем пример gsm-модуля от компания ООО «Тор-Хаус». Существуют две модели, которые отличаются количеством пользовательских номеров и набором функций. Фото модулей на рисунке ниже.

Технические характеристики модулей приведены в таблице.

Характеристика Модель TH-G01 Модель TH-G02
Электропитание, В =12 или 24 В =9 … 24В
Частота, МГц Диапазоны 850/900/1800 Диапазоны 850/900/1800
SIM-карта Стандартная 1.8/3В Стандартная 1.8/3В
Антенна 50 Q SMA, возможно подключение выносной антенны с разъемом SMA
Реле 1, сухой контакт NO/NC 2, сухой контакт NO/NC
Кол-во пользователей 99 3002
Запись пользователей SMS SMS или звонок
Диапазон температур -30 … +60 -30 … +60

Плюсы и минусы gsm модулей

  • отпадает необходимость покупки индивидуальных пультов, брелоков или карточек, причем не все системы управления шлагбаумом «резиновые» и рассчитаны на их ограниченное число;
  • открыть шлагбаум или ворота можно с любого места, входящего в сеть покрытия мобильного оператора, благодаря чему обеспечить пропуск знакомого на территорию, находясь вне зоны досягаемости - не проблема, + упрощение работы службы охраны;
  • осуществление контроля - с помощью программного обеспечения или смс-команд, возможно добавление и удаление номеров из базы, настройка таких параметров, как допуск по дням недели, времени суток, запрет въезда при неуплате обязательных взносов, ведение журнала въездов и т. д.;
  • возможность установки на автоматические шлагбаум и ворота любого производителя;
  • экономия - цена на один gsm-контроллер приблизительно равняется стоимости трех пультов Came, и при большом количестве пользователей такая автоматизация проезда существенно выгоднее.

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

Характеристики популярных моделей

Teltonika

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

Teltonika VRT012

Совместим с автоматикой Doorhan, рабочее напряжение - 12 В, укомплектовывается блоком питания для подключения к сети 220 В. Стабильно работает от -20 до +40°С. Настройка списка клиентов осуществляется с помощью смс или через компьютерное приложение.

Doorhan

Контроллер сохраняет в базе данных до 500 номеров. Предназначен для установки как непосредственно в корпус откатных ворот и шлагбаума с автоматикой Doorhan, так и снаружи. Работает при температуре -20 до +40°С, имеет собственный корпус для защиты от внешних воздействий. Электропитание 12-24 В.

Модуль Doorhan

Настройка параметров производится смс-командами или через компьютер. Модуль Doorhan совместим с автоматикой других производителей, существует лишь небольшое число приводов, для которых требуется дополнительная адаптация. Чтобы выяснить о возможности установки, обратитесь к специалистам организации-продавца.

ESIM 110/120

Осуществляет пропуск на территорию до 500 клиентов, дополнительная опция - расширение до 2000. В улучшенной версии - ESIM 120 реализована технология облачного управления через WEB-интерфейс и с мобильного приложения.

ESIM120 ELDES — GSM контроллер для открывания ворот и скуд

Контроллер совместим с автоматикой откатных ворот Doorhan, компактен и может встраиваться внутри блока системы привода. Удобное ведение журнала, где можно задать различные параметры разрешений на въезд индивидуально по каждому клиенту и просмотреть, кто и когда заезжал - память на 1000 событий. Рабочее напряжение 10-24 В, диапазон температур от -20 до +55°С.

Места применения

Модули применяются для управления любого типа оборудования с электроприводом:

  • автоматических ворот, шлагбаумов;
  • котлов;
  • офисных дверей (при наличии электрозамка);
  • сигнализаций;
  • автомобилей;
  • и прочих устройств.

Мы уже знакомы с такими устройствами, как GSM/MMS камеры (), GSM-сигнализации (), отправляющие сообщения при активации датчика движения. Это были первые устройства с применением GSM-модулей и их применение стало расширятся.

GSM-модули активно внедряются, наибольшую эффективность показали для управления на въездах в коттеджные поселки, большие жилые комплексы, на коммерческие объекты с большим числом персонала или клиентов.

Допустим, в ЖК «Березка» 5 домов, 500 квартир умножаем на 1500 руб. (средняя цена ключа). ТСЖ придется собрать с жильцов 750000 руб. только на закупку ключей.

Получается большая экономическая выгода в сравнении с покупкой ключей!

Уговорить собственников жилья на покупку автоматического шлагбаума будет легче, когда сумма инвестиций в оборудование и монтаж будет составлять 2000-3000 руб с квартиры.

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

В следующей статье разберем модуль от компании SmartAirkey — бесключевой доступ в подъезды и парковки многоквартирных домов.

Рассмотрим как связать Адруино с GSM модулем SIM800L. Существуют GSM шилды специально для Ардуино, но по цене они достаточно дороги, потому решил приобрести бюджетный вариант. Статья может быть полезна так же для подключения модуля SIM900, NEOWAY M590, и некоторых сотовых телефонов. Неудобный нюанс в том, что этот модуль требует нестандартное для Ардуино питание 3.7В, поэтому запитывать пришлось отдельно через понижающий преобразователь напряжения.

Подключение

Для подключения я использовал следующие компоненты:

  1. Контроллер Arduino UNO R3 + USB кабель
  2. GSM модуль SIM800L (питание от 3.7В до 4.2В)
  3. Преобразователь напряжения понижающий (DC-DC step-down converter)
  4. Батарея 12В (или любой источник питания от 6В до 20В)
  5. Соединительные провода

Соединяем Ардуино с компьютером через USB кабель.

Даем питание к GSM модулю от батареи 12В через преобразователь:

  • от 12В "минус" идет на ардуино в "GND", от "GND" в преобразователь напряжения во "входящий минус".
  • от 12В "плюс" идет в преобразователь напряжения во "входящий плюс".

Возникает вопрос: можно ли подать питание от самой Ардуино от 5В? Напрямую не рисковал бы. Но можно подобрать диод или стабилизатор напряжения.

Перед подключением к преобразователю напряжения необходимо его настроить выставив выходное напряжение на любое в диапазоне 3.7В - 4.2В. От преобразователя напряжения выходящие контакты подключаем к GSM модулю, соблюдая полярность.

TX и RX контакты на GSM модуле соединяем с 2 и 3 цифровыми контактами на Ардуино. Если необходимо подключить несколько GSM модулей к Arduino, то используйте другие пины и прописывайте в скетче через SoftwareSerial.

Скетч

#include <SoftwareSerial .h> SoftwareSerial mySerial(2, 3); // RX, TX void setup () { Serial .begin (19200); //Скорость порта для связи Arduino с компьютером Serial .println ("Goodnight moon!" ); mySerial.begin (19200); //Скорость порта для связи Arduino с GSM модулем mySerial.println ("AT" ); } void loop () { if (mySerial.available ()) Serial .write (mySerial.read ()); if (Serial .available ()) mySerial.write (Serial .read ()); }

Процедура для отправки СМС

void sms (String text , String phone ) { Serial . println ("SMS send started" ) ; mySerial . println ("AT+CMGS=\"" + phone + "\"" ) ; delay (1000 ) ; mySerial . print (text ) ; delay (300 ) ; mySerial . print ((char ) 26 ) ; delay (300 ) ; Serial . println ("SMS send finish" ) ; delay (3000 ) ; }

Процедуру добавлять в конец скетча и вызывать её из основного цикла так: sms(String("текст СМС на англ."),String("+791212345678"));

Проверка

Включаем питание затем через монитор порта, выставив скорость 19200 и обязательно опцию "новая строка".

Вводите команду "ATI" и нажмите ENTER. Должна появиться информация от модели модуля.

Пробовал отправить на модуль СМСку через бесплатный сервис от Теле2, приходят непонятные строки. Пробовал в модуле сменить кодировки. Вопрос пока не решен.

Видео

 

 

Это интересно: