В этом посте я постараюсь убедить вас в том, что добавить поддержку Wi-FI к своему устройству на микроконтроллере можно абсолютно без проблем. И для этого не надо ни курочить свой любимый роутер и подпаиваться к выводам отладочного uart’а, ни ставить переходник usb-uart (что, конечно выход).
Я расскажу о двух модулях фирмы WizNet: WizFi220.
Вместо предисловия
Компания WizNet основана в 1998 в Корее и занимается производством сетевых решений. Спектр того, что компания производит, широк. Это и микроконтроллеры на ядре 8051 со встроенный PHY-контроллером, и отдельные SPI-управляемые контроллеры Ethernet, и модули Wi-FI, и макетки почти к каждой микросхеме.
Про первые два вида я мало чего знаю, поскольку с ними не работал. А про Wi-Fi довольно много.
Кому интересно — прошу под кат.
WizFi220
Отличается от WizFi210 более высокой мощностью сигнала и, как следствие, повышенным энергопотреблением.
Эта небольшая штука размером 32х24.5 мм имеет следующие характеристики:
- Вся настройка — через UART
- Время старта — 20 мс
- Относительно малое потребление: 34 мкА в режиме ожидания, 125 мА — приём, 250 мА — передача
- Поддерживает стандарты 802.11b/g/n.
- Поддержка следующих типов шифрования: WEP, WPA/WPA2-PSK, Enterprise EAP-FAST, EAP-TLS, EAP-TTLS, PEAP
- Температурный диапазон: -40℃… 85℃
- Напряжение питания — 3.3В
Распиновка модуля
Легко видеть, что в сам модуль много чего понапихано: SPI, UART, GPIO, I2C, ADC, JTAG. Но что из этого списка можно использовать — другой вопрос.
Простейшая схема подключения модуля
Здесь все предельно просто. Выводы CTS2, RX2, RTS2, TX2 идут к контроллеру. Если нет желания выделять какой-либо пин микроконтроллера под управление сбросом модуля, то EXT_RESETN можно подтянуть к питанию через резистор 10К или бросить в воздухе.
Вывод №25 (GPIO_21/CLK_11MHz) нужен для того, чтобы применить одну из двух стандартных настроек WizFI220.
- Два раза опустить в ноль на 300 мс с паузой между импульсами в 300 мс — включение режима Limited AP (максимум 3 клиента)
- Три раза опустить в ноль — включение ad-hoc
Светодиоды нужны для индикации происходящих в модуле процессов.
Начнём эксперименты
Все эксперименты будем проводить с помощью макетки WizFi220-EVB.
Которая для оценки возможностей WizFi220 — самое то.
Для включения модуля потребуется mini-USB кабель и переходник USB-RS232. После подачи питания синие светодиоды (что в правом нижнем углу) весело моргнут три раза. Это свидетельство того, что WizFi220 успешно запустился. Открываем любимый терминал и подключаемся к порту. Конфигурация порта: скорость 115200, 8 бит, 1 стоп-бит, контроль четности отключен.
И вводим туда первое, что в голову пришло AT.
Замечание: каждая команда должна заканчиваться символом CR (carriage return, 0x0D) иначе она не будет обработана.
Модуль должен весело отрапортовать
AT [OK]
Те две буквы, которые сейчас были приняты модулем, назваются AT-командой. WizFi220 понимает множество AT-команд, описание к которым (порой весьма скудное) содержится в мануале.
Давайте теперь поднимем Limited AP. Сделать это можно небольшим числом команд.
AT+WD [OK] AT+WM=2 [OK] AT+WAUTH=0 [OK] AT+NDHCP=0 [OK] AT+NSET=192.168.55.1,255.255.255.0,192.168.55.1 [OK] AT+WA=MyCoolFreeAP,,8 IP SubNet Gateway 192.168.55.1: 255.255.255.0: 192.168.55.1 [OK] AT+NSTCP=2345 [OK]
Пройдемся по каждой команде.
- AT+WD — разрываем все соединения, если они были.
- AT+WM=2 — модуль будет работать в режиме Limited AP.
- AT+WAUTH=0 — отсутствует шифрование.
- AT+NDHCP=0 — отключен DHCP. Поэтому необходимы статические параметры при подключении к этой точке доступа.
- AT+NSET=192.168.55.1,255.255.255.0,192.168.55.1 — задаём адрес модуля, маску подсети и адрес шлюза.
- AT+WA=MyCoolFreeNet,,8 — задаём имя сети и канал, на котором она будет работать. Две запятые подряд означают то, что между ними стоит необязательный параметр.
- AT+NSTCP=2345 — поднимаем TCP — сервер на 2345 порту.
Всё, мы подняли точку доступа. Видите, как всё просто!
А помните tcp-сервер на 2345 порту? Мы ведь его не просто так поднимали. Подключитесь к сети MyCoolFreeNet, откройте браузер и введите в адресной строке 192.168.55.1:2345.
Вопрос: что делает браузер, когда пользователь вводит что-то подобное? Правильно, посылает GET-запрос. А что делает наш умный WizFi220? Он кидает текст запроса в UART. Если не верите, то можно легко убедиться в этом самостоятельно. Поэтому с помощью этого модуля и МК можно сделать что-нибудь, управляемое через Wi-Fi с собственной админкой.
WizFi220, равно как и WizFi210, имеет встроенную web-админку. Но она слабая и хилая. Вот её общий вид.
Резюме
WizFi220/210 хороший и недорогой (примерно $38) модуль для тех, кто хочет попробовать поработать с Wi-FI. И встроить его куда-нибудь. К примеру, в радиоуправляемую машинку.
С этим модулем я работаю около трех месяцев и могу сказать про него следующее.
Плюсы: малые габариты, малое энергопотребление, простая схема включения, простота настройки и работы, дешевизна.
Минусы: не очень хорошая документация, некоторые непредвиденные сюрпризы при работе.
Берите, работайте, получайте удовольствие!
ссылка на оригинал статьи http://habrahabr.ru/post/155203/
Добавить комментарий