- PVSM.RU - https://www.pvsm.ru -
Всем здравствуйте!
В этом посте я постараюсь убедить вас в том, что добавить поддержку Wi-FI к своему устройству на микроконтроллере можно абсолютно без проблем. И для этого не надо ни курочить свой любимый роутер и подпаиваться к выводам отладочного uart'а, ни ставить переходник usb-uart (что, конечно выход).
Я расскажу о двух модулях фирмы WizNet [1]: WizFi220.
Компания WizNet основана в 1998 в Корее и занимается производством сетевых решений. Спектр того, что компания производит, широк. Это и микроконтроллеры на ядре 8051 со встроенный PHY-контроллером, и отдельные SPI-управляемые контроллеры Ethernet, и модули Wi-FI, и макетки почти к каждой микросхеме.
Про первые два вида я мало чего знаю, поскольку с ними не работал. А про Wi-Fi довольно много.
Кому интересно — прошу под кат.
Отличается от WizFi210 более высокой мощностью сигнала и, как следствие, повышенным энергопотреблением.
Эта небольшая штука размером 32х24.5 мм имеет следующие характеристики:
Легко видеть, что в сам модуль много чего понапихано: SPI, UART, GPIO, I2C, ADC, JTAG. Но что из этого списка можно использовать — другой вопрос.
Здесь все предельно просто. Выводы CTS2, RX2, RTS2, TX2 идут к контроллеру. Если нет желания выделять какой-либо пин микроконтроллера под управление сбросом модуля, то EXT_RESETN можно подтянуть к питанию через резистор 10К или бросить в воздухе.
Вывод №25 (GPIO_21/CLK_11MHz) нужен для того, чтобы применить одну из двух стандартных настроек WizFI220.
Светодиоды нужны для индикации происходящих в модуле процессов.
Все эксперименты будем проводить с помощью макетки 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]
Пройдемся по каждой команде.
Всё, мы подняли точку доступа. Видите, как всё просто!
А помните tcp-сервер на 2345 порту? Мы ведь его не просто так поднимали. Подключитесь к сети MyCoolFreeNet, откройте браузер и введите в адресной строке 192.168.55.1:2345.
Вопрос: что делает браузер, когда пользователь вводит что-то подобное? Правильно, посылает GET-запрос. А что делает наш умный WizFi220? Он кидает текст запроса в UART. Если не верите, то можно легко убедиться в этом самостоятельно. Поэтому с помощью этого модуля и МК можно сделать что-нибудь, управляемое через Wi-Fi с собственной админкой.
WizFi220, равно как и WizFi210, имеет встроенную web-админку. Но она слабая и хилая. Вот её общий вид.
WizFi220/210 хороший и недорогой (примерно $38) модуль для тех, кто хочет попробовать поработать с Wi-FI. И встроить его куда-нибудь. К примеру, в радиоуправляемую машинку.
С этим модулем я работаю около трех месяцев и могу сказать про него следующее.
Плюсы: малые габариты, малое энергопотребление, простая схема включения, простота настройки и работы, дешевизна.
Минусы: не очень хорошая документация, некоторые непредвиденные сюрпризы при работе.
Берите, работайте, получайте удовольствие!
Автор: argz
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/wi-fi/17458
Ссылки в тексте:
[1] WizNet: http://www.wiznet.co.kr
Нажмите здесь для печати.