Modem-stretch: различия между версиями

Строка 3: Строка 3:
* подключаться к интернету по GPRS
* подключаться к интернету по GPRS
Полный список возможностей смотрите в  описании модуля:
Полный список возможностей смотрите в  описании модуля:
* Wiren Board Smart Home 3.5,  Wiren Board 4: [[SIM900R]]
* Wiren Board 5 с 3G: [[SIM5320E]];
* Wiren Board 5 и Wiren Board 4: [[SIM800]] или [[M660A]]
* Wiren Board 5 и Wiren Board 4: [[SIM800]] или [[M660A]];
* Wiren Board 5 с 3G: [[SIM5320E]]
* Wiren Board Smart Home 3.5,  Wiren Board 4: [[SIM900R]].


== Работа из Linux ==
== Начало работы ==
Внутри контроллера модем подключён к процессору по двухпроводному последовательному порту (UART). В Linux этот порт отображается как псевдоустройство '''/dev/ttyAPP0''' (первый порт (Application UART) процессора). Модуль управляется посредством передачи команд на этот порт.
Подключите антенну и вставьте SIM-карту перед запуском контроллера. Если вы включили контроллер без SIM-карты, после её установки перезапустите модем с помощью утилиты '''wb-gsm''' (смотрите ниже).
== Модем в Linux ==
Внутри контроллера модем подключён к процессору одним из двух способов:
* по порту UART (устройство ''/dev/ttyAPP0'') - все модемы, включая 3G;
* по порту USB (устройства ''/dev/ttyACM0''-''/dev/ttyACM6'') - только 3G.
Работать с модемом на низком уровне можно, посылая команды на порт ''/dev/ttyAPP0'' или ''/dev/ttyACM0'' соответственно.


Кроме того, модуль можно выключить и перезагрузить, подав сигналы на контакты модуля PWRKEY и RESET. Для этих целей написана простая утилита '''wb-gsm''' (примеры использования смотрите ниже). Прямой доступ к этим контактам реализован через GPIO (подробнее читайте [[GPIO]], ищите в таблице соответствующие названия).
Также к процессору подключены управляющие пины модема PWRKEY и RESET, с помощью которых можно выключить или перезагрузить модем. Обычно работать с ними напрямую не требуется - перезагрузка производится утилитой '''wb-gsm''' (смотрите ниже), но также реализован прямой доступ к этим контактам через GPIO (подробнее читайте [[GPIO]], ищите в таблице соответствующие названия).


=== Включение модуля ===
=== Включение модуля ===
Для включения или перезагрузки модуля можно пользоваться утилитой wb-gsm ([https://github.com/contactless/wirenboard исходники]).
По умолчанию, модем автоматически включается при загрузке контроллера. Потом его можно выключать и перезагружать утилитой '''wb-gsm''' (утилита включена в стандартный образ в пакет '''wb-utils''').
Утилита установлена в стандартном образе в пакете wb-utils.
 
Примеры:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
$ wb-gsm on #  включение устройства
$ wb-gsm on #  включение устройства
Строка 23: Строка 25:
$ wb-gsm restart_if_broken #  включение или перезагрузка, если модем не отвечает
$ wb-gsm restart_if_broken #  включение или перезагрузка, если модем не отвечает
</syntaxhighlight>
</syntaxhighlight>
===Отправка и получение SMS===
[[File:Gammu-config.png|300px|thumb|right|''gammu-config'']]
Работать с SMS проще всего при помощи программы [http://wammu.eu/gammu/ ''Gammu''] (это форк утилиты '''gnokii''', которую перестали развивать).
#Создайте файл конфигурации, запустив ''gammu-config''
##В параметре ''Port'' укажите ''/dev/ttyAPP0''
##В параметре ''Connection'' укажите ''at115200''
#Примеры команд:
<syntaxhighlight lang="bash">
$ gammu networkinfo # посмотреть сеть и базовую станцию, к которой вы подключены
$ gammu geteachsms # вывести все SMS
$ gammu sendsms TEXT +79154816102 -unicode -text 'Привет' # отправить на номер сообщение с текстом
$ gammu getussd #100# # запросить баланс на МТС
$ gammu getussd *100# | grep "Service reply" | sed -e "s/.*\"\(.*\)\".*/\1/" | xxd -r -ps | iconv -f=UTF-16BE -t=UTF-8 # запросить баланс на МТС
</syntaxhighlight>
Полную документацию смотрите на [http://wammu.eu/gammu/ сайте проекта]
===Выход в Интернет===
Конфигурационные файлы для операторов "большой тройки" уже есть в стандартном образе: [https://github.com/contactless/wirenboard/tree/master/configs/configs/etc/ppp ссылка]. Для других операторов или специальных APN рекомендуется использовать стандартные конфигурационные файлы в качестве основы.
Создание конфигурационных файлов с нуля происходит стандартно для Linux.
Сначала при помощи утилиты '''pppconfig''' создаётся конфигурационный файл подключения с параметрами для вашего оператора (например, [http://www.corp.mts.ru/help/corp_settings/gprs_edge/win_xp/ МТС]). Если вам нужна всего одна конфигурация, назовите её provider - тогда она будет запускаться по умолчанию, подключение можно будет запускать просто командой pon без аргументов.
Подробная информация по настройке: [https://help.ubuntu.com/community/DialupModemHowto/SetUpDialer#Alternative_Way_2_.28using_pppconfig_.26_pon.2Fpoff.29 ссылка]


=== Работа с модулем ===
Обратите внимание на настройки "115200 nocrtscts", которые должны присутствовать в конфигурационных файлах.
 
 
Запускается подключение командой
<pre> pon <имя конфигурации> </pre>
 
например
 
<pre> pon mts </pre>
 
 
Для автоматического подключения к GPRS при загрузке, убедитесь, что файл <pre> /etc/network/interfaces </pre> содержит следующие строчки:
 
<pre>
auto ppp0
iface ppp0 inet ppp
  provider mts
</pre>
 
где вместо mts должно быть название конфигурационного файла для вашего оператора.
 
=== Низкоуровневая работа с модулем через AT-команды ===
Ознакомьтесь с инструкцией - [[Работа с последовательным портом из Linux]].
Ознакомьтесь с инструкцией - [[Работа с последовательным портом из Linux]].
Обратите внимание на настройки: 115200, 8N2, '''no hardware flow control'''.
Обратите внимание на настройки: 115200, 8N2, '''no hardware flow control'''.
Строка 39: Строка 87:
* Второй командой выполните просто ''AT''. Вам должен прийти ответ '''OK'''
* Второй командой выполните просто ''AT''. Вам должен прийти ответ '''OK'''


=== Примеры команд ===
==== Примеры команд ====
(Полный список команд смотрите в [[SIM900R | документации модуля]])
(Полный список команд смотрите в [[SIM900R | документации модуля]])


Строка 76: Строка 124:
OK
OK
</pre>
</pre>
 
===RTC===
===Мультиплексирование===
===Мультиплексирование===
Модем поддерживает режим мультиплексирования - создание виртуальных портов, через которые можно одновременно работать с модемом.
Модем поддерживает режим мультиплексирования - создание виртуальных портов, через которые можно одновременно работать с модемом.
Например, через один порт можно открыть сессию PPP для GPRS, а через другой получать и отправлять SMS, проверять баланс и т.д.
Например, через один порт можно открыть сессию PPP для GPRS, а через другой получать и отправлять SMS, проверять баланс и т.д.
Подробнее смотрите [[CMUX]].
Подробнее смотрите [[CMUX]].
===Работа с GPRS===
Конфигурационные файлы для операторов "большой тройки" уже есть в стандартном образе: [https://github.com/contactless/wirenboard/tree/master/configs/configs/etc/ppp ссылка]. Для других операторов или специальных APN рекомендуется использовать стандартные конфигурационные файлы в качестве основы.
Создание конфигурационных файлов с нуля происходит стандартно для Linux.
Сначала при помощи утилиты '''pppconfig''' создаётся конфигурационный файл подключения с параметрами для вашего оператора (например, [http://www.corp.mts.ru/help/corp_settings/gprs_edge/win_xp/ МТС]). Если вам нужна всего одна конфигурация, назовите её provider - тогда она будет запускаться по умолчанию, подключение можно будет запускать просто командой pon без аргументов.
Подробная информация по настройке: [https://help.ubuntu.com/community/DialupModemHowto/SetUpDialer#Alternative_Way_2_.28using_pppconfig_.26_pon.2Fpoff.29 ссылка]
Обратите внимание на настройки "115200 nocrtscts", которые должны присутствовать в конфигурационных файлах.
Запускается подключение командой
<pre> pon <имя конфигурации> </pre>
например
<pre> pon mts </pre>
Для автоматического подключения к GPRS при загрузке, убедитесь, что файл <pre> /etc/network/interfaces </pre> содержит следующие строчки:
<pre>
auto ppp0
iface ppp0 inet ppp
  provider mts
</pre>
где вместо mts должно быть название конфигурационного файла для вашего оператора.
===RTC===
===Отправка и получение SMS===
[[File:Gammu-config.png|300px|thumb|right|''gammu-config'']]
Работать с SMS проще всего при помощи программы [http://wammu.eu/gammu/ ''Gammu''] (это форк утилиты '''gnokii''', которую перестали развивать).
#Сначала создайте файл конфигурации, запустив ''gammu-config''
##В параметре ''Port'' укажите ''/dev/ttyAPP0''
##В параметре ''Connection'' укажите ''at115200''
#Популярные команды:
<syntaxhighlight lang="bash">
$ gammu networkinfo # посмотреть сеть и базовую станцию, к которой вы подключены
$ gammu geteachsms # вывести все SMS
$ gammu sendsms TEXT +79154816102 -unicode -text 'Привет' # отправить на номер сообщение с текстом
$ gammu getussd #100# # запросить баланс на МТС
$ gammu getussd *100# | grep "Service reply" | sed -e "s/.*\"\(.*\)\".*/\1/" | xxd -r -ps | iconv -f=UTF-16BE -t=UTF-8 # запросить баланс на МТС
</syntaxhighlight>
Полную документацию смотрите на [http://wammu.eu/gammu/ сайте проекта]