Применение модуля LPB100
Наиболее удобно работать с модулем в режиме ТСР и прозрачном режиме последовательного порта по следующим сценариям:
- Сценарий Связь с центром.
Модуль настраивается в режим STA (Station) и в режим TCP-клиента. Задаются параметры для подключения к Wi-Fi, а также IP-адрес и порт удаленного сервера. Настраивается тайм-аут ТСР-соединения (для постоянного соединения 0). После настройки модуль готов работать автономно. Наиболее удобно использовать прозрачный режим последовательного порта вместо режима команд, который используется при конфигурации. После подачи питания модуль самостоятельно подключится к Wi-Fi и установит соединение с удаленным сервером (выполнит три попытки). После этого данные, посланные с сервера, будут отправлены в последовательный порт модуля, и наоборот.
2. Сценарий Настройка без проводов.
Модуль настраивается в режим AP (Access Point) и ТСР-сервера. Задаются параметры Wi-Fi, а также IP-адрес и слушающий порт. Также настраивается тайм-аут соединения. Здесь удобнее работать в прозрачном режиме последовательного порта. После настройки модуль готов работать автономно. После подачи питания или сброса модуль автоматически включит Wi-Fi. С ноутбука или мобильного устройства осуществляется подключение к данной Wi-Fi, и далее ТСР-клиент подключается к заданному IP-адресу и порту модуля. Данные, отправленные в установленный сокет, прозрачно передаются в последовательный порт, и наоборот. В режиме работы устройство, в котором использован Wi-Fi-модуль LPB100, работает с модулем как с обычным последовательным портом. Работа с Wi-Fi и по ТСР происходит полностью автономно. Рассмотрим оба варианта подробнее.
После включения питания модуль находится в прозрачном режиме. Если он настроен по первому сценарию, модуль пытается подключиться к заданной сети Wi-Fi, а затем к удаленному серверу (модуль предпримет три попытки). Если модуль успешно подключился к Wi-Fi сети, она установит сигнал Link в активный уровень. После подсоединения к серверу модуль готов принимать и передавать данные. Если модуль настроен по второму сценарию, он сразу начинает работать в качестве точки доступа. При этом сигнал Link не устанавливается. В данном режиме модуль примет соединение в качестве ТСР-сервера. Всего модуль может принять до пяти соединений одновременно. Возможный логический конфликт между несколькими клиентами модуль разрешает следующим образом. Пакеты от ТСР-клиентов отправляются в последовательный порт в порядке поступления. Пакеты, пришедшие из последовательного порта, отправляются всем клиентам одновременно. Селекция и адресация клиентов здесь не предусмотрена.
Как в режиме ТСР-клиента, так и в режиме ТСР-сервера можно использовать не только прозрачный режим, но и режим команд. Но это менее удобно по нескольким причинам. Во-первых, нужно отслеживать момент соединения, периодически подавая команду. Это относится как с Wi-Fi-соединению, так и к соединению по ТСР. Во-вторых, в режиме сервера при отправке установлен тайм-аут (3 с). Независимо от заданного в команде отправки количества байт, модуль будет ожидать 3 с после приглашения. То есть появляется значительный дополнительный тайм-аут. В-третьих, при запросе полученных данных нужно указывать значительное количество байт (например, 100). Иначе возможна следующая ситуация. Допустим, модуль получил по ТСР 32 байта. Микроконтроллер запрашивает 10 байт и модуль их отдает. В это время по ТСР приходит новый пакет в 25 байт, который затирает незабранные 22 байта. То есть при запросе нужно указывать, например, 100 байт, и модуль передаст микроконтроллеру от 0 до 100 байт за один раз. Это создает неудобства. При работе по первому сценарию используется Socket B. При работе по второму сценарию используется Socket A. Команды записи/чтения (если в модуле используется режим команд) разные. При настройке обязательно нужно настроить тайм-аут соединения, так как по умолчанию через 300 с модуль соединение разорвет. Клиентское соединение при этом придется восстановить заново, перезапустив модуль или подав команду. Подключение к Wi-Fi (или создание точки доступа) модуль осуществляет после сброса. Сброс возможен при помощи включения питания, подачи сигнала Reset на модуль или команды AT+Z в командном режиме. В любой момент времени из прозрачного режима перейти в режим команд можно, подав на модуль +++ и затем a. После подачи +++ модуль ответит a, а после подачи a +ok, т. е., он готов принимать команды. Обратно, в удобный для работы прозрачный режим, можно вернуться, подав команду AT+ENTM. В заводской версии модуль не может работать в качестве маршрутизатора и хорошо работает только с одним сетевым интерфейсом. Режим APSTA не следует использовать!
Рассмотрим работу в качестве ТСР-клиента и клиента Wi-Fi. Здесь команды приведены в кавычках, однако при общении с модулем кавычки не используются! Для ТСР-клиента IP-адрес не имеет значения, будем пользоваться адресом, полученным по DHCP от точки доступа (рис. 1).
- Переходим в режим команд, подав +++, а затем a.
- Подаем команду настройки режима станции AT+WMODE=STA.
- Подаем команду настройки ID сети, к которой подключаемся. В нашем случае сеть Guest: AT+WSSSID=Guest.
- Подаем команду настройки пароля и шифрования в сети. В нашем случае пароль Plus+, шифрование AES, безопасность WPA2PSK: AT+WSKEY=WPA2PSK,AES,Plus+.
- Настраиваем IP-адрес и порт сервера, к которому планируем подключиться. Также можно использовать и доменное имя сервера. В нашем случае вместо IP-адреса ТСР-порт 80: AT+SOCKB=TCP,80, ya.ru.
- Настраиваем нулевой тайм-аут сокета B, чтобы модуль не разрывал соединение: AT+TCPTOB=0.
- Подаем команду перезагрузки модуля AT+Z.
- Модуль готов принимать и передавать данные.
Теперь рассмотрим работу в качестве ТСР-сервера и точки доступа. Клиенты будут подключаться и получать адреса по DHCP (рис. 2).
- Переходим в режим команд, подав +++, а затем a.
- Подаем команду настройки режима точки доступа AT+WMODE=AP.
- Зададим параметры нашей локальной сети (Wi-Fi). Адрес сервера пусть будет 192.168.0.1, маска 24 бита: AT+LANN=192.168.0.1,255.255.255.0.
- Задаем ID сети, которую создаст модуль. Имя сети будет Drug. Сеть запустим в полном варианте (b/g/n) на шестом канале: AT+WAP=11BGN,Drug,CH6.
- Зададим уровень безопасности и пароль (AES, WPA2PSK, пароль drugdruga): AT+WAKEY=WPA2PSK,AES, drugdruga.
- Включаем режим сервера. Модуль будет слушать на своем адресе 192.168.0.1, слушающий порт 23456: AT+NETP=TCP,Server,23456,192.168.0.1.
- Задаем нулевой тайм-аут сокета A: AT+TCPTO=0.
- Перезагружаем модуль командой AT+Z.
- Модуль готов принимать и передавать данные.
Приведем несколько полезных команд: - AT+VER и AT+LVER версия ПО модуля.
- AT+PING=10.10.100.150 проверить доступность данного IP-адреса (или доменного имени). Ответ success или time-out.
- AT+ команда, на которую модуль ответит +ok (с эхом или без эха).
Заключение
Мы рассмотрели основные сценарии работы Wi-Fi-модуля HF-LPB100. Можно сделать вывод о том, что данная модель способна решить ряд задач по созданию систем с каналом Wi-Fi, обеспечив стабильный канал передачи данных. Модуль обладает дружественным интерфейсом и легкой настройкой, что существенно сокращает время тестирования и разработки