СОПРЯЖЕНИЕ КОМПЬЮТЕРОВ С ВНЕШНИМИ УСТРОЙСТВАМИ

Яндекс цитирования

Друзья ресурса:

www.roboforum.ru



Первое знакомство с Ke-GSM (Часть 1)

Обычно мы занимались управлением различных внешних приборов (от светодиода до 220 В лампочки) через различные порты компьютера. Однако, иногда есть необходимость в управлении оборудованием на расстоянии причем на большом расстоянии а применять мощные приемо-передатчики не хочется или они все равно не помогут. Вот тут то и необходимо использовать GSM/GPRS канал передачи данных. Т.е. на удаленном объекте устанавливается GSM модем (другими словами обычный сотовый телефон со всеми ему присущими атрибутами: SIM картой, антенной и т.д.). К модему подключен микропроцессор, который всей этой кухней управляет. Теперь можно общаться с системой через SMS сообщения, GSM канал передачи данных и даже через сеть Интернет !

Такая система имеет кучу преимуществ. Например, дальность действия системы ограничена только зоной действия сети сотовой связи. Это значит, что я могу управлять различными приборами по сотовому телефону на расстоянии хоть 100 км хоть 1000 км, главное чтоб связь была. Возможность управления через интернет так это вообще здорово - можно управлять системой из любой точки земного шара!

В качестве такого чудо-прибора будем использовать модуль Ke-GSM от KernelChip. Более подробную информацию по модулю можно найти на сайте www.kernelchip.ru. Там же его можно и заказать.

GSM модуль Ke-GSM для систем УМНЫЙ ДОМ

Рассмотрим вкратце что это за зверь такой. Ke-GSM это OEM-плата с установленным GSM модемом и микропроцессором. С помощью этого модема можно подать команду процессору для управления различными аппаратными ресурсами. На колодке выводов доступны:

  • 12 выходных линий (дискретная линия, лог. 0 или 1)
  • 12 входных линий (дискретная линия, лог. 0 или 1)
  • четыре канала 10-ти разрядного АЦП
  • четыре 16-ти разрядных счетчиков импульсов

Модуль работает в автоматическом режиме, поддерживает управление через SMS, Интернет. К нему можно обратиться через Web-браузер! Более того можно писать собственные программы для управления модулем через Интернет! Но до всего этого мы дойдем немного позже. Для начала давайте произведем первое знакомство. Как известно, разбираться с чем-то новым лучше всего на примере решения какой-либо чисто практической задачи. Давайте так и поступим.


ЗАДАЧА: Хочу удаленно управлять включением/выключением светодиода на большом расстоянии через SMS сообщения.


Ну что ж, эта задача вполне по плечу модулю Ke-GSM. Как говориться, дело мастера боится. Приступим к действу! Берем коробку с закупленным модулем (небольшое отступление: как я понял, модуль можно вернуть после покупки, если он не подошел.). Итак, "выпотрашиваем" содержимое из коробки. У меня на руках оказались:

  • собственно сам модуль Ke-GSM
  • GSM антенна
  • распаянный шлейф RC-50 с разъемом IDC-50
  • подключенный к шлейфу ЖКИ дисплей
  • разъем питания
  • "запасной" отрезок шлейфа RC-50
  • "запасной" разъем на шлейф

Теперь давайте начнем все это хозяйство оживлять. В первую очередь подключим GSM антенну. Тут дело не мудреное. На плате есть антенный разъем SMA (папа). Подключаем и все. Как показала дальнейшая практика наличие подключенной антенны является если не обязательным то уж настоятельно рекомендуемым требованием уж точно. Без нее модуль плохо ловит сигнал и не может настроить GSM профиль в условиях квартиры, например.

Далее установим SIM карточку. Для этого на плате предусмотрен специальный слот. Необходимо отодвинуть защелку, поднять крышечку, вставить карту правильной стороной (пазы помогут не перепутать), опустить крышечку и зафиксировать защелку. Тут больших проблем нет.

Далее займемся питанием (пока его на модуль не подавайте!). Модулю нужен внешний источник питания постоянного напряжения величиной 8 - 13 В. Практика показала, что можно немного меньше (7 В) и немного больше (15 В). Источник должен быть рассчитан на большую нагрузку. Модуль может потреблять ток до 1.5 А. Такие бешеные значения возникают, по-видимому, из-за GSM модема который в условиях слабого сигнала от базовой станции может резко поднимать мощность своего передатчика. К сожалению, готового источника питания комплект не содержит. Пришлось пользоваться своим. Я также пробовал использовать аккумулятор на 9 В и автомобильный аккумулятор на 12 В - все нормально работает. Так что запитать эту штуковину от аккумулятора вполне можно. Для "удаленного" объекта где сети 220 В нет это является весьма важным.

Настало время подойти поближе к аппаратным ресурсам модуля Ke-GSM, доступным на колодке разъема. В комплекте у нас есть готовый шлейф (уже распаянный, что удобно) с подключенным ЖКИ. Вставляем шлейф в разъем модуля. Паз на разъеме не позволит перепутать сторону установки. Если посмотреть официальное описание модуля (можно скачать на сайте www.kernelchip.ru), то мы увидим что каждый вывод шлейфа имеет свое назначение. Какие-то выводы являются линиями ввода, какие-то - линии вывода (цифровые, т.е. либо 0 либо 1). Также там есть АЦП, счетчики импульсов и т.д. Соответственно к этим выводам и нужно подключать наши внешние устройства, которыми мы хотим управлять. В нашем случае это светодиод.

Коли так, то давайте его и подключим к этому шлейфу. Покопавшись в описании, находим что раз нам нужно установить уровень напряжения на внешнем приборе то нам нужен некий ВЫХОДНОЙ порт модуля, т.е. порт, на выводах которого мы можем устанавливать высокое или низкий напряжение. Тут их две штуки. Порт A и порт B. Давайте воспользуемся портом A. Раз уж тут есть такое понятие как порт, то давайте понатыкаем светодиодов на весь порт, т.е. 8 штук, т.к. этот порт имеет восемь разрядов. Схема подключения получается вот такая:

Схема подключения светодиодов к модулю Ke-GSM

Тут нам понадобятся: 8 светодиодов и 8 резисторов. Соответственно один из выводов каждого светодиода через резистор подключается к линиям порта A модуля на шлейфе. Это выводы PA0 - PA7 или номера 39 - 46 (см. описание модуля). Второй вывод каждого светодиода должен быть подключен к общему проводу, т.е. земле. На шлейфе это выводы GND. Их две штуки. Их номера 2 или 49. К какому из них подключать не имеет значения. Насчет резисторов. Я их советую поставить для этого модуля. Т.к. один раз я поставил светодиоды на все порты модуля и все их зажег. Видимо модулю не хватило выходной мощности питать их всех (выходного тока) и он решил перезагрузиться, что в мои планы совершенно не входило. После этого я поставил эти токоограничивающие резисторы и все стало отлично. Номинал их сопротивления принципиального значения не имеет и может быть свободно выбран из диапазона 1 - 3 кОм. Для того чтобы определить какой из выводов светодиода куда подключать необходимо провести небольшой тест. Подайте на светодиод питание напряжением этак 3-5 В и путем проб добейтесь чтобы он светился. Запомните какой вывод был подключен к "+" а какой к "-" питания. Теперь тот вывод, что был подключен к "-" нужно подключать к выводу GND шлейфа, т.е. к земле.


Итак, с железом разобрались. Пора подключить модуль к компьютеру. "Стоп-стоп-стоп!", - воскликнет кото-то. Зачем это нам подключать модуль к компьютеру? Он же автономен, сам может обработать команды через SMS или Интернет? Что ж это мне нужно на удаленном объекте не только модуль держать так еще и компьютер?!

Не волнуйтесь. Все в порядке. Модуль действительно автономен и не требует подключения к компьютеру для своей работы. Однако, нам нужно его настроить. Необходимо указать модулю ряд важных параметров, без которых он работать то просто не сможет. Например, PIN код для SIM карты. Не зная его Ke-GSM не сможет даже GSM модем включить. Там есть еще ряд параметров помимо PIN кода. Поэтому давайте продолжим.

Для настройки модуля используется подключение через USB порт. На плате установлен разъем USB-B. Как и все модули серии Ke от KernelChip USB устройство определяется как виртуальный COM порт. Итак, подключаем модуль через USB к компьютеру с помощью кабеля USB-AB. Это стандартный кабель, он используется для USB принтеров, сканеров и т.д. Подключили и ни чего не происходит. Верно, т.к. мы еще не подали питание на модуль. Включаем питание. Теперь видим, что загораются два зеленых светодиода на плате. Они говорят нам, что питание GSM модема и процессора в норме. Тут же слышим радующий наше ухо звуковой сигнал от Windows и получаем сообщение, что обнаружено новое USB устройство.

Теперь нужно установить драйвер. Надеюсь, уважаемые читатели, Вы позволите мне не описывать всю процедуру установки. К тому же, она подробно описана в официальном руководстве пользователя. Упомяну лишь, что необходимо скачать файлик Ke-GSM_SerialPort.inf (можно найти на том же сайте) и подсунуть его установщику. В результате в системе должен появиться новый COM порт с произвольным номером. Этот порт исчезает, если отключить модуль от USB и появляется вновь при повторном включении.

Теперь настало время обратить наши взоры к ЖКИ дисплею. Наверняка он показывает что-то вроде такого:

Настройка модуля Ke-GSM

Что это означает? Означает это вот что. После подачи питания модулб начинает работу в автономном режиме. В самом начале работы он пытается извлечь из энергонезависимой пямяти сохраненные настройки и параметры. В нашем случае (первое включение) никаких параметров еще не сохранялось. Без этих данных модуль работать дальше не может. Как уже упоминалось, например, без знания PIN кода сделать что-либо модуль не в состоянии. Найдя отсутствие или несоответствие в каком-либо важном параметре Ke-GSM выдает сообщение об обнаружении критической ошибки в виде значка "ЗВОНОК" и информационной строки "ERROR" с кодом ошибки. Покопавшись в руководстве пользователя находим что код ошибки "4" означает отсутствие PIN кода. Вот и он наш родимый.

Пора нам уже задать все эти давно упоминавшиеся параметры. Итак, приступаем к USB. Как уже упоминалось, модуль Ke-GSM определяется ОС Windos как виртуальный COM порт (кстати, в Linux тоже самое). Для управлением модулем нужно отправлять в порт текстовые команды. Это удобно, т.к. настройку можно производить вообще без постореннего софта. Можно использовать штатный терминал для общения с COM портом. В ОС Windows это программа называется HyperTerminal. Более подробное руководство по настройке и использованию этой программы с модулями Ke можно найти здесь. Я же воспользуюсь программой KeTerm от KernelChip. В тоже время Вы можете использовать любой другой терминал, который Вам больше подходит. В крайнем случае, Вы можете написать свою собственную программу (это вполне реально, см. серию статей по работе с модулем Ke-USB24A).

Итак, запускаем KeTerm. Открываем нужный COM порт, введя его номер (только номер без символов "COM") в окошке ввода. У программы есть два поля. В нижнем мы можем набирать команды и отправлять их модулю нажав клавишу Enter. В верхнем поле появляются ответы модуля. Итак, какие же команды нам необходимо подать, т.е. какие параметры необходимо задать модулю? Вот они:


Параметр Какую команду использовать
PIN код SIM карты $KE,PIN,SET
Номер базового телефона $KE,PHN,SET
Пароль модуля $KE,PSW,SET
Настройки GPRS $KE,GPRS,SET
Включение GSM модема $KE,INIT

Начнем по порядку. Первым идет наш хорошо знакомый PIN код. Например, код нашей карты равен 1234. Тогда нужно подать команду:

$KE,PIN,SET,1234

Настройка модуля Ke-GSM

В ответ от модуля должны получить #PIN,SET,OK. Поехали дальше. Некий базовый номер. Это телефонный номер на который Ke-GSM будет отправлять ответные SMS сообщения на входящие команды и именно на этот номер будет производится информирование в виде SMS или звонка при срабатывании охранной системы (система EHS). До этой системы мы дойдем немного позже. Сделаю небольшое пояснение важное для практики. Например, мы "зашили" в модуль некий базовый номер. Теперь отправляем SMS команду модулю (той SIM карте, которая установлена на плате) с другого телефона. При этом ответ будет отправлен не на наш телефон, с которого мы делали отправку, а на тот, базовый номер. Пусть нашей "базой" будет номер 8-916-123-45-67 (любые совпадения случайны :) ). Тогда нужно подать команду:

$KE,PHN,SET,89161234567

Обратите внимание, что "черточки" в номере телефона были убраны, вводить нужно только цифры. В ответ получаем #PHN,SET,OK. Продолжаем. Дальше у нас пароль модуля. Это такая штуковина, которая позволяет ограничить доступ к управлению модулем кем попало. Ведь действительно, если каждый будет знать номер телефона, установленного в Ke-GSM, все смогут им управлять, посылая SMS команды управления. Чтобы такого не было и используется этот пароль. Мы должны придумать и сохранить в памяти модуля 4-х символьный пароль. Теперь, посылая SMS команду мы должны указать этот пароль в теле команды. Если мы не знаем пароля или он не совпадает с сохраненным - модуль команду выполнять не будет. Пусть наш пароль будет abcd. Подаем команду:

$KE,PSW,SET,abcd

В ответ от модуля должны получить #PSW,SET,OK. Переходим к настройкам GPRS. Что это такое. Это параметры подключения к GPRS сети: имя точки доступа (ANP), логин и пароль. Эти данные задаются сотовым оператором связи и для каждого оператора имеют свои конкретные значения. Например, для оператора МТС эти данные соответственно равны: internet.mts.ru, mts и mts. Поскольку у меня SIM карточка от МТС то я и буду использовать эти параметры. Пользователям других сетей необходимо уточнить эти параметры на сайтах своих операторов. Обычно все это находится в разделе настройки GPRS соединения. Важный момент! В этой статье мы пользоваться услугами GPRS не будем - мы пока поработаем только с SMS. Более того, некоторые тарифные планы вообще не поддерживают услугу GPRS. В этом случае можно установить эти параметры для модуля в произвольные значения, например not set. Задать их все равно придется, хоть какие-нибудь, в противном случае модуль Ke-GSM будет сообщать об ошибке. Итак, пользователи услуг МТС могу подать команду:

$KE,GPRS,SET,"internet.mts.ru","mts","mts"

В ответ получаем #GPRS,SET,OK. Обратите внимание на кавычки. Они должны использоваться. Ну и напоследок нам необходимо включить автоматическую инициализацию GSM модема, т.к. он по умолчанию автоматически не запускается. Для этого предназначена команда $KE,INIT с двумя параметрами. Первый из них указывает модулю, нужно ли автоматически запускать и инициализировать GSM модем после подачи питания на модуль. Второй говорит о том нужно ли автоматически настраивать GPRS. В нашем случае нашем случае GPRS не нужен, т.к. мы собрались пользоваться только SMS. В следующих статьях мы обязательно познакомимся и с возможностями управления модулем через сеть Интернет. Также обратите внимание на будущее, что если Вы решили GPERS включить, но при этом задали в качестве параметров настройки GPRS всякую лабуду типа NotSet, то модулю будет "плохо" - он будет пытаться использовать эти априорно неверные параметры при инициализации, разумеется, настроиться не сможет, подумает, что это он виноват и произведет перезапуск GSM модема. И опять не сможет настроиться, и опять себя перезагрузит и так до посинения. Ну да ладно это на будущее, а пока подаем команду:

$KE,INIT,Y,N

Настройка модуля Ke-GSM

В ответ получаем #INIT,OK. Ну что же, в принципе, настройку можно считать законченной. Можете смело выдергивать USB кабель. Он нам в ближайшее время не понадобиться. Но что же с модулем? Он по-прежнему показывает сообщение об ошибке. Правильно. Параметры то мы задали, но вот после обнаружения критической ошибки модуль нужно перезагрузить путем банального передергивания питания. Делаем эту нехитрую процедуру.



На этом первую часть знакомства с модулем Ke-GSM хотел бы закончить. Во второй части статьи мы с Вами поуправляем этим модулем через SMS сообщения. Так что если данная тема Вас заинтересовала - ждите обновлений.


© Дмитрий Иванов
11 октября 2009 года
www.pcports.ru




Контакты | Гостевая книга

© 2005-2009 сопряжение компьютеров с внешними устройствами PCPORTS.RU © Иванов Д.В.