12 063
правки
Kilpio (обсуждение | вклад) |
(Подготовка страницы к переводу) |
||
Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | |||
В Wiren Board установлен GSM/GPRS-модуль, с помощью которого можно: | В Wiren Board установлен GSM/GPRS-модуль, с помощью которого можно: | ||
* отправлять/принимать SMS | * отправлять/принимать SMS | ||
* подключаться к интернету по GPRS | * подключаться к интернету по GPRS | ||
Полный список возможностей смотрите в описании модуля: | Полный список возможностей смотрите в описании модуля: | ||
* 3G модем в Wiren Board 5 и Wiren Board 6: [[SIM5300E]]; | * 3G модем в Wiren Board 5 и Wiren Board 6: [[Special:MyLanguage/SIM5300E|SIM5300E]]; | ||
* 2G модем в Wiren Board 4, 5 и 6 : [[SIM800]] или [[M660A]]; | * 2G модем в Wiren Board 4, 5 и 6 : [[Special:MyLanguage/SIM800|SIM800]] или [[Special:MyLanguage/M660A|M660A]]; | ||
* Wiren Board Smart Home 3.5, Wiren Board 4: [[SIM900R]]. | * Wiren Board Smart Home 3.5, Wiren Board 4: [[Special:MyLanguage/SIM900R|SIM900R]]. | ||
== Начало работы == | == Начало работы == | ||
Подключите антенну и вставьте SIM-карту перед запуском контроллера. Если вы включили контроллер без SIM-карты, после её установки перезапустите модем с помощью утилиты '''wb-gsm''' (смотрите ниже). | Подключите антенну и вставьте SIM-карту перед запуском контроллера. Если вы включили контроллер без SIM-карты, после её установки перезапустите модем с помощью утилиты '''wb-gsm''' (смотрите ниже). | ||
== Модем в Linux == | == Модем в Linux == | ||
Внутри контроллера модем подключён к процессору одним из двух способов: | Внутри контроллера модем подключён к процессору одним из двух способов: | ||
* по порту UART (устройство ''/dev/ttyGSM'' (ранее: ''/dev/ttyAPP0'')) - все модемы, включая 3G; | * по порту UART (устройство ''/dev/ttyGSM'' (ранее: ''/dev/ttyAPP0'')) - все модемы, включая 3G; | ||
Строка 16: | Строка 22: | ||
Для 3G-связи порт UART не подходит в силу ограничения пропускной способности UАRT-канала, следует использовать ACM-порт /dev/ttyACM0. | Для 3G-связи порт UART не подходит в силу ограничения пропускной способности UАRT-канала, следует использовать ACM-порт /dev/ttyACM0. | ||
Также к процессору подключены управляющие пины модема PWRKEY и RESET, с помощью которых можно выключить или перезагрузить модем. Обычно работать с ними напрямую не требуется - перезагрузка производится утилитой '''wb-gsm''' (смотрите ниже), но также реализован прямой доступ к этим контактам через GPIO (подробнее читайте [[GPIO]], ищите в таблице соответствующие названия). | Также к процессору подключены управляющие пины модема PWRKEY и RESET, с помощью которых можно выключить или перезагрузить модем. Обычно работать с ними напрямую не требуется - перезагрузка производится утилитой '''wb-gsm''' (смотрите ниже), но также реализован прямой доступ к этим контактам через GPIO (подробнее читайте [[Special:MyLanguage/GPIO|GPIO]], ищите в таблице соответствующие названия). | ||
=== Включение модуля === | === Включение модуля === | ||
По умолчанию, модем автоматически включается при загрузке контроллера. Потом его можно выключать и перезагружать утилитой '''wb-gsm''' (утилита включена в стандартный образ в пакет '''wb-utils'''). | По умолчанию, модем автоматически включается при загрузке контроллера. Потом его можно выключать и перезагружать утилитой '''wb-gsm''' (утилита включена в стандартный образ в пакет '''wb-utils'''). | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Строка 26: | Строка 34: | ||
$ wb-gsm restart_if_broken # включение или перезагрузка, если модем не отвечает | $ wb-gsm restart_if_broken # включение или перезагрузка, если модем не отвечает | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Модемы SIM7000E 2G/NB-IoT === | === Модемы SIM7000E 2G/NB-IoT === | ||
Модем SIM7000E 2G/NB-IoT по умолчанию настроен на автоматический выбор GSM- и LTE-сетей. Однако в сети или с SIM-картой без поддержки NB-IoT модем не регистрируется в сети GSM (GPRS). | Модем SIM7000E 2G/NB-IoT по умолчанию настроен на автоматический выбор GSM- и LTE-сетей. Однако в сети или с SIM-картой без поддержки NB-IoT модем не регистрируется в сети GSM (GPRS). | ||
Для того, чтобы модем смог зарегистрироватся в сети GSM, необходимо принудительно перевести его в режим GSM only. | Для того, чтобы модем смог зарегистрироватся в сети GSM, необходимо принудительно перевести его в режим GSM only. | ||
В терминальном режиме работы с модемом, например, в программе minicom (смотрите ниже раздел [[#Низкоуровневая работа с модулем через AT-команды]]), необходимо ввести команду выбора режима: | В терминальном режиме работы с модемом, например, в программе minicom (смотрите ниже раздел [[Special:MyLanguage/#низкоуровневая-работа с модулем через at-команды|#Низкоуровневая работа с модулем через AT-команды]]), необходимо ввести команду выбора режима: | ||
<pre> | <pre> | ||
AT+CNMP=13 | AT+CNMP=13 | ||
Строка 45: | Строка 55: | ||
AT+CNMP=51 | AT+CNMP=51 | ||
</pre> | </pre> | ||
===Отправка и получение SMS и USSD=== | ===Отправка и получение SMS и USSD=== | ||
[[File:Gammu-config.png|300px|thumb|right|''gammu-config'']] | [[File:Gammu-config.png|300px|thumb|right|''gammu-config'']] | ||
Работать с SMS проще всего при помощи программы [http://wammu.eu/gammu/ ''Gammu''] (это форк утилиты '''gnokii''', которую перестали развивать). | Работать с SMS проще всего при помощи программы [http://wammu.eu/gammu/ ''Gammu''] (это форк утилиты '''gnokii''', которую перестали развивать). | ||
Строка 62: | Строка 74: | ||
$ gammu sendsms TEXT +79154816102 -unicode -text 'Привет' # отправить на номер сообщение с текстом | $ gammu sendsms TEXT +79154816102 -unicode -text 'Привет' # отправить на номер сообщение с текстом | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====SMS и USSD на русском==== | ====SMS и USSD на русском==== | ||
SMS и USSD на русском пока работают в ''gammu'' не всегда хорошо, поэтому могут пригодиться команды для переключения языка USSD и перекодирования входящих и исходящих SMS в транслит: | SMS и USSD на русском пока работают в ''gammu'' не всегда хорошо, поэтому могут пригодиться команды для переключения языка USSD и перекодирования входящих и исходящих SMS в транслит: | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 77: | Строка 91: | ||
|Теле2||*120#||*120*1#||неизвестно||неизвестно | |Теле2||*120#||*120*1#||неизвестно||неизвестно | ||
|} | |} | ||
===Выход в интернет=== | ===Выход в интернет=== | ||
Перед выходом в интернет необходимо, чтобы модем был включен. Для этого вручную или в файле настройке сетевых интерфейсов (см. далее) выполните команду <pre>wb-gsm restart_if_broken</pre> | Перед выходом в интернет необходимо, чтобы модем был включен. Для этого вручную или в файле настройке сетевых интерфейсов (см. далее) выполните команду <pre>wb-gsm restart_if_broken</pre> | ||
==== Быстрая настройка автоматического выхода в интернет ==== | ==== Быстрая настройка автоматического выхода в интернет ==== | ||
В стандартное ПО Wiren Board входят настройки подключения для операторов МТС, Мегафон и Билайн по протоколу ppp. Если вы пользуетесь одним из них, для запуска подключения выполните команду | В стандартное ПО Wiren Board входят настройки подключения для операторов МТС, Мегафон и Билайн по протоколу ppp. Если вы пользуетесь одним из них, для запуска подключения выполните команду | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Строка 99: | Строка 116: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Но если вы хотите, чтобы подключение само восстанавливалось при обрыве, смотрите полную инструкцию ниже. | Но если вы хотите, чтобы подключение само восстанавливалось при обрыве, смотрите полную инструкцию ниже. | ||
==== Пошаговая инструкция настройки постоянного GPRS-подключения ==== | ==== Пошаговая инструкция настройки постоянного GPRS-подключения ==== | ||
Строка 118: | Строка 136: | ||
* Выполните команду <code>ifup ppp0</code> — через 15 секунд интерфейс ppp0 будет доступен. | * Выполните команду <code>ifup ppp0</code> — через 15 секунд интерфейс ppp0 будет доступен. | ||
*После перезагрузки интерфейс будет автоматически включаться и восстанавливать соединение после обрыва сотовой связи. | *После перезагрузки интерфейс будет автоматически включаться и восстанавливать соединение после обрыва сотовой связи. | ||
==== Полная инструкция ==== | ==== Полная инструкция ==== | ||
Выход в интернет через GPRS происходит по протоколу PPP с использованием сервиса [https://linux.die.net/man/8/pppd pppd]. | Выход в интернет через GPRS происходит по протоколу PPP с использованием сервиса [https://linux.die.net/man/8/pppd pppd]. | ||
Для его работы нужно создать конфигурационный файл, соответствующий настройкам вашего оператора. Конфигурационные файлы для операторов "большой тройки" уже есть в [https://github.com/contactless/wirenboard/tree/master/configs/configs/etc/ppp стандартном образе]. Файлы хранятся в директориях /etc/ppp/peers и /etc/chatscripts. Для других операторов или специальных APN создайте свои конфигурационные файлы на основе стандартных. Для этого при помощи утилиты '''pppconfig''' (устанавливается командой '''apt-get install pppconfig''') создайте конфигурационный файл подключения с параметрами для вашего оператора (например, [http://www.corp.mts.ru/help/corp_settings/gprs_edge/win_xp/ МТС]). Также можете ориентироваться на [https://help.ubuntu.com/community/DialupModemHowto/SetUpDialer#Alternative_Way_2_.28using_pppconfig_.26_pon.2Fpoff.29 инструкцию]. Обратите внимание на настройки ''115200 nocrtsct'', которые должны присутствовать в конфигурационных файлах. | Для его работы нужно создать конфигурационный файл, соответствующий настройкам вашего оператора. Конфигурационные файлы для операторов "большой тройки" уже есть в [https://github.com/contactless/wirenboard/tree/master/configs/configs/etc/ppp стандартном образе]. Файлы хранятся в директориях /etc/ppp/peers и /etc/chatscripts. Для других операторов или специальных APN создайте свои конфигурационные файлы на основе стандартных. Для этого при помощи утилиты '''pppconfig''' (устанавливается командой '''apt-get install pppconfig''') создайте конфигурационный файл подключения с параметрами для вашего оператора (например, [http://www.corp.mts.ru/help/corp_settings/gprs_edge/win_xp/ МТС]). Также можете ориентироваться на [https://help.ubuntu.com/community/DialupModemHowto/SetUpDialer#Alternative_Way_2_.28using_pppconfig_.26_pon.2Fpoff.29 инструкцию]. Обратите внимание на настройки ''115200 nocrtsct'', которые должны присутствовать в конфигурационных файлах. | ||
Строка 125: | Строка 145: | ||
Если подключение к интернету осуществляется в сети 3G, то в конфигурационном файле для вашего оператора следует заменить UART-порт (/dev/ttyGSM (или /dev/ttyAPP0 в старых моделях контроллеров)) на CDC-ACM-порт (/dev/ttyACM0). Это необходимо, чтобы скорость обмена данными не ограничивалась пропускной способностью UART-порта модема: | Если подключение к интернету осуществляется в сети 3G, то в конфигурационном файле для вашего оператора следует заменить UART-порт (/dev/ttyGSM (или /dev/ttyAPP0 в старых моделях контроллеров)) на CDC-ACM-порт (/dev/ttyACM0). Это необходимо, чтобы скорость обмена данными не ограничивалась пропускной способностью UART-порта модема: | ||
[[Файл:GSM-ACM.png]] | [[Файл:GSM-ACM.png|Файл:GSM-ACM.png]] | ||
Строка 160: | Строка 180: | ||
Для ppp-интерфейсов существуют директории, исполняемые файлы из которых также запускаются на разных фазах установления соединения. Но, если для, например, ethernet-интерфейсов эти скрипты должны находиться в директориях /etc/network/if-down.d, if-post-down.d, if-pre-up.d, if-up.d, то соответствующие директории для ppp-интерфейсов находятся в /etc/ppp/ip-down.d, ip-up.d и т.п (подробнее об их назначении и функционировании можно узнать в документе [http://citforum.ru/operating_systems/linux/HOWTO/PPP-HOWTO.shtml PPP HOWTO]). | Для ppp-интерфейсов существуют директории, исполняемые файлы из которых также запускаются на разных фазах установления соединения. Но, если для, например, ethernet-интерфейсов эти скрипты должны находиться в директориях /etc/network/if-down.d, if-post-down.d, if-pre-up.d, if-up.d, то соответствующие директории для ppp-интерфейсов находятся в /etc/ppp/ip-down.d, ip-up.d и т.п (подробнее об их назначении и функционировании можно узнать в документе [http://citforum.ru/operating_systems/linux/HOWTO/PPP-HOWTO.shtml PPP HOWTO]). | ||
====Настройки DNS и маршрутизации==== | ====Настройки DNS и маршрутизации==== | ||
'''Важно!''' По умолчанию интерфейс ppp0 при инициализации '''не добавляет нового маршрута по умолчанию''' через ppp, в случае, если такой маршрут существует и настроен, скажем, через eth0. Если это требуется, то изменение таблицы маршрутизации можно выполнять через скрипты в директориях ip-down.d, ip-up.d. В простейшем случае, можно назначать шлюзам по умолчанию разные метрики, чтобы в случае падения одного начинал бы использоваться второй. Однако ситуация, когда интерфейс функционирует нормально, но трафик не проходит на уровне провайдера, делает такой механизм неработоспособным. Смотрите следующий раздел о том, как использовать ppp-соединение в качестве резервного. | '''Важно!''' По умолчанию интерфейс ppp0 при инициализации '''не добавляет нового маршрута по умолчанию''' через ppp, в случае, если такой маршрут существует и настроен, скажем, через eth0. Если это требуется, то изменение таблицы маршрутизации можно выполнять через скрипты в директориях ip-down.d, ip-up.d. В простейшем случае, можно назначать шлюзам по умолчанию разные метрики, чтобы в случае падения одного начинал бы использоваться второй. Однако ситуация, когда интерфейс функционирует нормально, но трафик не проходит на уровне провайдера, делает такой механизм неработоспособным. Смотрите следующий раздел о том, как использовать ppp-соединение в качестве резервного. | ||
Строка 169: | Строка 191: | ||
Обратите внимание, что при деинициализации ppp0 интерфейса все созданные маршруты, связанные с ним, будут автоматически удалены. | Обратите внимание, что при деинициализации ppp0 интерфейса все созданные маршруты, связанные с ним, будут автоматически удалены. | ||
==== Использование GPRS в качестве резервного канала ==== | ==== Использование GPRS в качестве резервного канала ==== | ||
Самый простой способ, обеспечить отказоустойчивость, это задать два маршрута по умолчанию с разными метриками, например: | Самый простой способ, обеспечить отказоустойчивость, это задать два маршрута по умолчанию с разными метриками, например: | ||
для интерфейса eth0 указать метрику 10: | для интерфейса eth0 указать метрику 10: | ||
Строка 202: | Строка 226: | ||
# https://serverfault.com/questions/360131/ubuntu-failover-from-ethernet-to-adsl-modem-to-usb-3g-dongle?rq=1 | # https://serverfault.com/questions/360131/ubuntu-failover-from-ethernet-to-adsl-modem-to-usb-3g-dongle?rq=1 | ||
</translate> | |||
<span id="низкоуровневая-работа с модулем через at-команды"></span> | |||
<translate> | |||
=== Низкоуровневая работа с модулем через AT-команды === | === Низкоуровневая работа с модулем через AT-команды === | ||
Ознакомьтесь с инструкцией - [[Работа с последовательным портом из Linux]]. | |||
Ознакомьтесь с инструкцией - [[Special:MyLanguage/Работа с последовательным портом из Linux|Работа с последовательным портом из Linux]]. | |||
Обратите внимание на настройки: 115200, 8N2, '''no hardware flow control'''. | Обратите внимание на настройки: 115200, 8N2, '''no hardware flow control'''. | ||
Строка 211: | Строка 240: | ||
$ minicom -s /dev/ttyGSM | $ minicom -s /dev/ttyGSM | ||
</pre> | </pre> | ||
[[Файл:Minicom_settings.png|Настройки Minicom]] | [[Special:MyLanguage/Файл:Minicom_settings.png|Настройки Minicom]] | ||
* Зайти в настройки (нажать ''Ctrl+A'', затем ''O''), выбрать пункт ''Serial port setup'', там установить порт ''/dev/ttyGSM'', скорость и чётность - ''115200, 8N1'', ''Hardware flow control - No'', ''Software flow control - No'' | * Зайти в настройки (нажать ''Ctrl+A'', затем ''O''), выбрать пункт ''Serial port setup'', там установить порт ''/dev/ttyGSM'', скорость и чётность - ''115200, 8N1'', ''Hardware flow control - No'', ''Software flow control - No'' | ||
* Сохранить настройки: ''Save setup as _dev_ttyGSM'' | * Сохранить настройки: ''Save setup as _dev_ttyGSM'' | ||
* Далее запускать как '''minicom /dev/ttyGSM''' (все параметры будут сразу браться из профиля с названием ''/dev/ttyGSM'', который мы ранее создали) | * Далее запускать как '''minicom /dev/ttyGSM''' (все параметры будут сразу браться из профиля с названием ''/dev/ttyGSM'', который мы ранее создали) | ||
* Первой вашей командой должна стать ''AAAAAAAAAT'' - с её помощью модуль распознает скорость, с которой мы к нему обращаемся (смотрите [[SIM900R]]) | * Первой вашей командой должна стать ''AAAAAAAAAT'' - с её помощью модуль распознает скорость, с которой мы к нему обращаемся (смотрите [[Special:MyLanguage/SIM900R|SIM900R]]) | ||
* Второй командой выполните просто ''AT''. Вам должен прийти ответ '''OK''' | * Второй командой выполните просто ''AT''. Вам должен прийти ответ '''OK''' | ||
==== Примеры команд ==== | ==== Примеры команд ==== | ||
(некоторые команды могут различаться в разных модулях, смотрите подробнее в документации на модуль) | (некоторые команды могут различаться в разных модулях, смотрите подробнее в документации на модуль) | ||
Строка 256: | Строка 287: | ||
OK | OK | ||
</pre> | </pre> | ||
===RTC=== | ===RTC=== | ||
===Мультиплексирование=== | ===Мультиплексирование=== | ||
Модем поддерживает режим мультиплексирования - создание виртуальных портов, через которые можно одновременно работать с модемом. | Модем поддерживает режим мультиплексирования - создание виртуальных портов, через которые можно одновременно работать с модемом. | ||
Например, через один порт можно открыть сессию PPP для GPRS, а через другой получать и отправлять SMS, проверять баланс и т.д. | Например, через один порт можно открыть сессию PPP для GPRS, а через другой получать и отправлять SMS, проверять баланс и т.д. | ||
Подробнее смотрите [[CMUX]]. Этот режим не поддерживается для 2G-модемов. | Подробнее смотрите [[Special:MyLanguage/CMUX|CMUX]]. Этот режим не поддерживается для 2G-модемов. | ||
</translate> |
правки