Интернет. Настройки. Тарифы. Телефон. Услуги

CC3200 — микроконтроллер Cortex-M4 со встроенным WiFi. Самостоятельно улучшаем домашний роутер Wi fi pcmcia внутренняя схема микросхемы

От Teхas Instruments включает в себя полнофункциональное ядро WiFi и производительный микроконтроллер Cortex-M4 с тактовой частотой 80 МГц и большим набором привычной периферии. Микросхема позволяет создавать законченные устройства Интернета вещей, использующее сеть WiFi для доступа в Интернет и разнообразные проводные интерфейсы для связи с внешним миром.

Для приложения пользователя доступны все ресурсы встроенного микроконтроллера — 4-канальный АЦП 12 бит, 4х16-битных таймера, интерфейсы UART, SPI, I2C и SD/MMC. Мультимедийные возможности чипа включают последовательный интерфейс для передачи аудио I2S и параллельный интерфейс для подключения видеокамеры. Для достижения высокой скорости обработки данных в микросхеме имеется контроллер прямого доступа в память (32-канальный DMA) и аппаратный акселератор для защиты передаваемой информации — узел шифрования AES-256.

Области применения CC3200

  • Умный дом и интеллектуальное здание;
  • Системы безопасности и управления доступом;
  • Промышленная телеметрия и беспроводные датчики;
  • Беспроводная передача звука и видео;
  • Интеллектуальные сети энергоснабжения (SmartGrid);
  • Доступ к Интернет и облачным сервисам для любых встраиваемых устройств.

Wi-Fi-подсистема CC3200 включает в себя отдельное ARM-ядро, которое выполняет все задачи по беспроводной передаче данных в прозрачном для пользователя режиме и не требует ресурсов микроконтроллера Cortex-M4, который полностью находится в распоряжении разработчика. С этой точки зрения CC3200 можно рассматривать как чип к которому просто добавили внешний микроконтроллер c ядром Cortex-M4. WiFi-радио CC3200 работает в стандарте 802.11 b/g/n и может выступать как в качестве базовой станции («раздавать интернет»), так и выступать в качестве клиента, подключаясь к любому обычному WiFi-роутеру. Эфирная скорость составляет до 72 Мбит/сек, при этом реальная скорость передачи полезных данных достигает 12 Мбит/сек в режиме TCP-соединения. От других подобных решений CC3200 отличается поддержкой большего набора режимов безопасного подключения к WiFi-сети и обеспечивает надежное защищённое соединение на основе протоколов TLS/SSL.

Несомненным достоинством CC3200 является созданная Texas Instruments экосистема, включающая встроенные в микросхему стеки протоколов Wi-Fi и TCP/IP, недорогие отладочные средства, примеры программ для типовых WiFi-задач и открытые разработки законченных WiFi-устройств для которых доступна полная схема, перечень элементов, разводка печатной платы и исходный код исполняемой программы.

Wi-Fi модуль ESP-01 – самый популярный модуль серии ESP8266. Общение с компьютером или микроконтроллером осуществляется с через UART с помощью набора AT-команд. Кроме того, модуль можно использовать как самостоятельное устройство, для этого необходимо в него загрузить свою прошивку. Программировать и загружать прошивки можно через Arduino IDE версии выше 1.6.5. Для прошивки модуля понадобится переходник UART-USB. Модуль ESP-01 может получить широкое распространение для использования в устройствах IoT (Интернет вещей).

Технические характеристики модуля

  • Wi-Fi 802.11 b/g/n
  • Режимы WiFi: клиент, точка доступа
  • Выходная мощность - 19,5 дБ
  • Напряжение питания - 1.8 -3.6 В
  • Ток потребления - 220 мА
  • Портов GPIO: 4
  • Тактовая частота процессора - 80 МГц
  • Объём памяти для кода
  • Оперативная память - 96 КБ
  • Размеры - 13×21 мм

Подключение

Рассмотрим режим AT-команд. Для этого подключим модуль к компьютеру через переходник USB-UART. Назначение выводов модуля (см. рисунок 1):
  • VCC - +3.3 В
  • GND - земля
  • RX, TX - выводы UART
  • ВыводCH_PD - Chip enable
  • GPIO0, GPIO2 - цифровые контакты
Модулю требуется внешнее питание 3.3 В.

Рисунок 1. Назначение контактов модуля ESP-01

Схема подключения для общения с модулем в режиме AT-команд (рисунок 2):

Рисунок 2. Схема подключения модуля ESP-01 к компьютеру по последовательному порту

Рисунок 3. Схема в сборе

Для отправки команд AT-команд в ОС Mac OS X можно использовать программу CoolTerm, в операционной системе Windows программу Termite. Узнать скорость COM-порта для соединения с модулем можно только экспериментально, для разных прошивок она может быть разной. Для моего модуля скорость оказалась равной 9600 бод. Кроме того установить обмен удалось только после отключения и повторного подключения к питанию вывода CH_PD. После подключения набираем в терминале AT и должны получить в ответ от модуля OK. Команда AT+GMR выдает номер версии прошивки модуля, команда AT+RST - перезагружает модуль (см. рис. 4). Список основных AT-команд можно посмотреть в этом документе (ESP8266ATCommandsSet.pdf).

Рисунок 4. Отправка AT-команд в модуль из программы Termite

Если режим AT команд для вас не удобен, плату можно настроить с помощью программы AppStack ESP8266 Config, скачать которую можно по ссылке http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip . Внешний вид программы представлен на рисунке 5. Настройка модуля осуществляется с помощью графического интерфейса, при этом выполнение команд можно видеть в мониторе программы (см. рис. 6). В мониторе также можно послать AT-команды из командной строки.

Рисунок 5. Программа AppStack ESP8266 Config

Рисунок 6. Serial monitor программы AppStack ESP8266 Config

Есть два варианта использования данного модуля:

  • в связке с микроконтроллером (например Arduino), который будет управлять модулем по UART;
  • написание собственной прошивки для использования ESP8266 в качестве самостоятельного устройства.

Пример использования

Рассмотрим пример подключения к модулю ESP-01 датчика влажности и температуры DHT11 и отправки данных в облачный сервис ThingSpeak (https://thingspeak.com/). Нам понадобятся следующие детали:
  • модуль ESP-01
  • макетная плата
  • датчик влажности и температуры DHT11
  • резистор 10 кОм
  • соединительные провода
  • блок питания 3 - 3.6В
Сначала подключим датчик DS18B20 к модулю ESP-01. DS18B20 – цифровой датчик температуры, работающий по однопроводному интерфейсу 1-Wire. Схема подключения датчика DS18B20 к модулю показана на рис. 7.

Рисунок 7. Схема подключения датчика DHT11 к модулю ESP-01.

Затем необходимо завести профиль в сервисе ThingSpeak. В сервисе есть инструкции для отправки данных в сервис и получения данных из сервиса.

Рисунок 8. Схема в сборе.

Программу будем писать в среде Arduino IDE для ESP8266. Будем использовать библиотеки ESP8266WiFi.h (встроенную) и OneWire.h. Загрузим на плату Arduino скетч из листинга 1 – получение данных с датчика температуры и отправка данных в сервис ThingSpeak. Необходимо внести свои данные для WiFi точки доступа для модуля ESP-01:

  • const char *ssid;
  • const char *password;
а также параметр privateKey для вашего приложения в сервисе ThingSpeak. Листинг 1 // сайт // Подключаем библиотеку для работы с esp8266 #include // Подключаем библиотеку DHT для работы с DHT11 #include // пин подключения контакта DATA #define DHTPIN 4 // датчик DHT11 #define DHTTYPE DHT11 // создание экземпляра объекта DHT DHT dht(DHTPIN, DHTTYPE); // ssid WiFi сети подключения const char ssid = "********"; // Пароль WiFi сети подключения const char password = "******"; // Сервер ThingSpeak const char* host = "184.106.153.149"; // API KEY вашего приложения ThingSpeak const char* privateKey = "****************"; // переменные для хранения температуры и влажности float temp; float humidity; // переменная для интервала измерений unsigned long millis_int1=0; void setup() { // запуск последовательного порта Serial.begin(115200); delay(10); Serial.print("Connect to WiFi"); Serial.println(ssid); // Соединяемся по WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } Serial.println("WiFi connected"); // запуск dht dht.begin(); } void loop() { // ждем интервал 10 минут if(milis()-millis_int1>=10*60000) { Serial.print("connect to ThingSpeak"); Serial.println(host); // Используем WiFi клиент WiFiClient client; if (!client.connect(host, 80)) { Serial.println("connection failed"); return; } // получить данные температуры temp = get_data_temperature(); humidity = get_data_humidity(); // Создаем URL с запросом для сервера String url = "/update?key="; url += privateKey; url += "&temp="; url += temp; url += "&humidity="; url += humidity; // Отправляем запрос на сервер client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); delay(10); // ответ сервера ThingSpeak while(client.available()){ String req = client.readStringUntil("\r"); Serial.print(req); } } } Теперь в сервисе ThingSpeak мы можем смотреть график показаний нашего датчика температуры DHT11 (рисунок 9).

Рисунок 9. График показаний датчика температуры DS18B20 в сервисе ThingSpeak.

Часто задаваемые вопросы FAQ

1. Модуль не отвечает на AT-команды
  • Проверьте правильность подключения модуля;
  • Проверьте правильность подключения контактов Rx,Tx к переходнику UART-USB ;
  • Проверьте подключение контакта CH_PD к 3.3 В;
  • Подберите экспериментально скорость обмена по последовательному порту.
2. Модуль ESP-01 не получает данные температуры от датчика DHT11
  • Проверьте правильность подключения датчика DHT11 к модулю.
3. Не передаются данные в сервис ThingSpeak
  • Проверьте подключение модуля к точке доступа WiFi;
  • Проверьте подключение точки доступа WiFi к сети интернет;
  • Проверьте правильность запроса к сервису ThingSpeak.

Самый многочисленный класс роутеров – модели, обладающие «средними» характеристиками. Большинство таких систем, в то же время, построено на современной элементной базе. По идее, в роутере можно кое-что заменить, чтобы его улучшить. Рассмотрим, какие компоненты содержит схема роутера, чтобы решить, что именно нуждается в «апгрейде».

Как улучшить характеристики роутера

Роутер можно «улучшить» программно, установив в него альтернативную прошивку. Авторы этих прошивок – стараются делать так, чтобы все работало на стандартном «железе».

Аппаратный апгрейд роутера – это установка разъемов портов и увеличение объема памяти. Последнее, кстати, выполняют на свой страх и риск, так как замена микросхемы – операция сложная, а вероятность успеха здесь меньше, чем 100%.

Устройство современного роутера

Рассмотрим структурную схему роутера, построенного на базе микросхемы SoC (System on Chip). К процессору напрямую подключается память (ОЗУ), ПЗУ, модуль Wi-Fi и тактовый генератор:

Схема соединения модулей роутера

В реальности, многие чипы SoC не имеют в своем распоряжении пяти контроллеров LAN (так что, на плате будет распаян еще и свитч). Вдобавок, будут присутствовать элементы схемы питания, разные порты (USB, COM), кнопки и лампочки:

Устройство роутера – взгляд изнутри

  1. Микросхема Soc, содержащая CPU
  2. Память Flash
  3. Оперативная память (2 модуля по 16 Мегабайт)
  4. Радиомодуль (в данном роутере – CX50221 либо CX50321)
  5. Аппаратный свитч
  6. Порт для отладки
  7. Разъем последовательной памяти SPI
  8. Кнопка управления и reset
  9. Контакты под USB-порт

Можно заметить, что на плате распаяно множество интерфейсов (например, USB), которые не используются. Логично начать апгрейд роутера с установки соответствующих разъемов. Но дело в том, что проблема может заключаться в отсутствии программного обеспечения, в котором нужный интерфейс – поддерживается.

В любой прошивке, изготовленной на базе Linux (что используется в большинстве роутеров), есть поддержка COM-порта. В самом роутере, чаще всего, такой порт – тоже присутствует. Надо просто припаять к плате пару-тройку контактов:

COM-порт на плате роутера

Rx и Tx – стандартные контакты последовательного интерфейса, Gnd – сигнальная земля. Кому нужно питающее напряжение, могут взять его с разъема SPI (но это – 3,3 Вольта).

Апгрейд микросхем памяти

В роутерах используется память SD-RAM или DDR, такая же, как в старых компьютерах (Pentium I..IV). Подобные планки памяти выпускались до появления DDR2, но их можно купить сейчас. Тем не менее, не нужно спешить! Сначала надо выяснить, какие именно микросхемы будут работать на данном роутере (не только их тип, например, PC133, но и марку).

После замены микросхем, возможны следующие «негативные» последствия:

  1. Роутер работает, но объем памяти – остался прежним
  2. Роутер не включается и не загружается

Вторая ситуация может возникнуть не из-за дефекта пайки, а всего лишь оттого, что установленные микросхемы – не совместимы с распаянным на плате процессором. При выборе памяти «наугад», так и бывает.

Память в роутере (две микросхемы Samsung)

Причины возникновения ситуации «1» вполне могут быть «программными», то есть, уметь задействовать всю память – стандартная прошивка не обязана.

«Аппаратные» причины ограничения объема – отсутствующая дорожка или резистор. Чип SoC адресует 128 Мб (для большинства моделей). На плате может отсутствовать дорожка старшего адреса (тогда, будет «видеться» только 64 Мб). Иногда проводник есть, но нет требуемых деталей (это может быть один резистор на нижней стороне платы).

Важно знать, что «первый» контакт на микросхеме выделен кружком или точкой. На плате в соответствующей области – должна быть стрелочка или единица.

Так ли уж важен апгрейд? Несложно микросхему припаять, труднее снять ее с платы, не убив при этом. Вот о чем следует помнить перед тем, как принять решение.

Активируем требуемый объем памяти в прошивке

Надо зайти в консоль управления роутером по SSH или Telnet. Последний из этих протоколов поддерживают все модели (но по умолчанию он может быть запрещен).

Дальше, выполняют команды:

  • nvram set sdram_init=0x11//верно для 128Мб, для 64 надо 0x13
  • nvram set sdram_config=0x62//или 0x32, надо пробовать
  • nvram commit//так надо

В завершение, останется перезагрузить роутер командой reboot. Посмотреть объем доступной памяти – можно тоже из консоли, командой free:

Доступно 128 Мб

Удачного апгрейда!

А теперь (не пытайтесь повторить) – замена микросхем памяти при помощи паяльника 30 Watt:

Предлагаю сегодня познакомиться с новинкой радиолюбительской техники - WiFi модулем . Он представляет собой что-то наподобие уже давно всем знакомого NRF24L01, но по размерам чуть меньше и немного другой функционал. WiFi модуль имеет как свои неоспоримые достоинства, так и некоторые недостатки, последнее как раз скорее всего отчасти связано с тем, что это новинка и разработчики весьма странным способом подошли к этому - информация распространяется очень туго (документация дает лишь общие представления о модулях, не раскрывая их полный функционал). Ну что же, будем ждать снисхождения компании предоставившей "железо".

Особо стоит отметить стоимость модуля: на текущий момент она составляет 3-4$ (например на AliExpress)

Справа NRF, слева ESP модуль.

Что конкретнее представляет собой эти WiFi модули? На плате расположена сама микросхема WiFi, помимо того в этом же корпусе имеется микроконтроллер 8051, который можно программировать, обходясь без отдельного микроконтроллера, но об этом в другой раз, далее на плате расположена микросхема EEPROM памяти, необходимая для сохранения настроек, также на плате модуля имеется вся минимально необходимая обвязка - кварцевый резонатор, конденсаторы, бонусом индикация светодиодами напряжения питания и передачи (приема) информации. Модуль реализует интерфейс только UART, хотя возможности микросхемы WiFi позволяют использовать и другие интерфейсы. Печатным проводником на плате сделана антенна WiFi необходимой конфигурации. Самая большая деталь - это разъем 4 х 2 штырька.

Для подключения в схему этого модуль нужно подключить питание на VCC и GND, на TX и RX соответствующие вывода UART принимающего устройства (помните, что RX соединяется с TX, а TX с RX) и CH_PD (типа чип энэбл, без него все горит, но ничего не работает) на плюс питания.

Параметры модуля ESP8266:

  • напряжение питания 3,3 В (причем сам то модуль терпит 5 В, но выводы ввода - вывода откажутся работать скорее всего)
  • ток до 215 мА в режиме передачи
  • ток до 62 мА во время приема
  • 802.11 b/g/n протокол
  • +20.5dBm мощность в режиме 802.11b
  • SDIO (два вывода присутствуют на плате модуля, но ими особо нельзя пользоваться кроме как для служебных операций)
  • режимы сохранения энергии и сна для экономии энергии
  • встроенный микроконтроллер
  • управление по средством AT-команд
  • температура функционирования от -40 до +125 градусов Цельсия
  • максимальная дистанция связи 100 метров

Как было указано, модулем можно управлять посредством AT-команд, однако их полный список не известен, самое необходимое представлено ниже:

# Команда Описание
1 Просто тестовая команда, при нормальном состоянии модуль ответит OK
2 AT+RST
3 Проверка версии прошивки модуля, ответом будет версия и ответ OK
4

AT+CWMODE=<режим>

Задать режим работы модуля mode: 1 - клиент, 2 - точка доступа, 3 - совмещенный режим, ответ OK
5 Получить список точек доступа, к которым можно подключиться, ответ список точек и OK
6

AT+CWJAP=<имя>,<пароль>

Присоединиться к точке доступа, задав ее имя и пароль, ответ OK
7 Отключиться от точки доступа, ответ OK
8

AT+CWSAP=<имя>,<пароль>,<канал>,<шифрование>

Установить точку доступа самого модуля, задав ее параметры, ответ OK
9 Получить список присоединенных устройств
10 Получить текущий статус TCP соединения
11


AT+CIPSTART=<тип>,<адрес>,<порт>

AT+CIPSTART=<айди>,<тип>,<адрес>,<порт>

Соединение TCP/UDP
<айди>- идентификатор соединения
<тип>- тип соединения: TCP или UDP
<адрес>- адрес IP или URL
<порт>- порт
12

AT+CIPMODE= <режим>

Установить режим передачи:

<режим>= 0 - not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента)
<режим>= 1 - data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента)

13

Для одного соединения (+CIPMUX=0):
AT+CIPSEND=<длина>
Для мульти соединения (+CIPMUX=1):
AT+CIPSTART=<айди>,<длина>

Отправить данные
<айди>- идентификатор соединения
<длина>- количество отправляемых данных
Передаваемые данные отправляются после ответа модулем символа > , после ввода команды
14

Для одного соединения (+CIPMUX=0):
AT+CIPCLOSE
Для мульти соединения (+CIPMUX=1):
AT+CIPCLOSE=<айди>

Закрыть соединение. Параметр для мультипоточного режима <айди>- идентификатор соединения. Ответом модуля должно быть OK и unlink
15 Получить IP модуля
16

AT+CIPMUX= <режим>

Задать количество соединений, <режим>=0 для одного соединения, <режим>=1 для мультипоточного соединения (до четырех подключений)
17

AT+CIPSERVER= <режим>, <порт>

Поднять порт. <режим>- режим скрытности (0 - скрыт, 1 - открыт), <порт> - порт

18

AT+CIPSTO=<время>

Установить время одного соединения на сервере
19

AT+CIOBAUD=<скорость>

Для версий прошивки от 0.92 можно задать скорость UART
20

Прием информации

Данные принимаются с преамбулой +IPD, после которой следует информация о принятых данных, а потом сама информация

Для одного соединения (+CIPMUX=0): +IPD,<длинна>:<передаваемая информация>

Для мульти соединения (+CIPMUX=1): +IPD,<айди>,<длинна>:<передаваемая информация>

Пример: +IPD,0,1:x - принят 1 байт информации

Как вводятся команды:

  • Выполнение команды: <Команда>.
  • Просмотреть статус по команде: <Команда>?
  • Выполнить команду с заданием параметров: <Команда>=<Параметр>

При покупке модуля можно проверить версию прошивки модуля через команду AT+GMR. Версию прошивки можно обновить при помощи отдельного софта или при версии прошивки от 0.92 это можно делать только при помощи команды AT+CIUPDATE. При этом модуль нужно соединить с роутером для доступа к интернету. Прошивка и программа для прошивки модуля до версии 0,92 будет предоставлена в конце статьи. Для прошивки через софт необходимо вывод GPIO0 подсоединить к плюсу питания. Это включит режим обновления модуля. Далее выбрать файл прошивки модуля в программе и соединиться с модулем WiFi, обновление прошивки пойдет автоматически после соединения. После обновления последующие обновления прошивки возможны будут только через интернет.

Теперь, зная организацию команд модуля WiFi, на его основе можно организовать передачу информации по средством беспроводной связи, в чем, я считаю, их основное назначение. Для этого мы будем использовать микроконтроллер AVR Atmega8 в качестве устройства, которое управляется через беспроводной модуль. Схема устройства:

Суть схемы будет заключаться в следующем. Термодатчиком DS18B20 измеряется температура, обрабатывается микроконтроллером и передается по WiFi сети с небольшим промежутком по времени. При этом контроллер следит за получаемыми данными по WiFi, при получении символа "а" загорится светодиод LED1, при получении символа "b" светодиод потухнет. Схема больше демонстративная, чем полезная, хотя ее можно использовать для удаленного контроля температуры, например, на улице, необходимо только написать софт для компьютера или телефона. Модуль ESP8266 требует питания напряжением 3,3 вольта, поэтому вся схема запитывается от стабилизатора AMS1117 на 3,3 вольта. Микроконтроллер тактируется от внешнего кварцевого генератора на 16 МГц с обвязкой конденсаторами на 18 пФ. Резистор R1 подтягивает ножку микроконтроллера reset к плюсу питания для исключения самопроизвольного перазапуска микроконтроллера при наличии каких-либо помех. Резистор R2 выполняет функцию ограничения тока через светодиод, чтобы не сгорел ни он, ни вывод МК. Эту цепочку можно заменить, например, на цепь реле и использовать схему для дистанционного управления. Резистор R3 необходим для работы термометра по шине 1-Wire. Схему нужно питать от достаточно мощного источника, так как пиковое потребления WiFi модуля может доходить до 300 мА. В этом, наверное, и кроется главный недостаток модуля - большое потребление. Такая схема от батареек долго может не проработать. При подаче питания на схему во время ее инициализации светодиод должен 5 раз моргнуть, что будет свидетельствовать об успешном открытии порта и предыдущих операциях (после включения схемы по нажатию кнопки ресет светодиод может моргать по 2 раза - это нормально).

Более подробно работу схемы можно посмотреть в исходном коде прошивки микроконтроллера на языке Си, который будет представлена ниже.

Схема собиралась и отлаживалась на макетной плате, термометр DS18B20 используется в формате "зонда" с металлическим колпачком:

Для "общения" с такой схемой можно использовать как стандартный WiFi контроллер компьютера, так и построить схему приемопередатчика при помощи USB-UART преобразователя и еще одного модуля ESP8266:

К слову о переходниках и терминалах, эти модули достаточно капризны к ним, хорошо работают с преобразователем на CP2303 и отказываются адекватно работать с преобразователями, построенными на микроконтроллерах (самодельных), терминал лучше всего подходит Termite (там в настройках есть автоматическое добавление символа возвращения каретки, без чего также адекватно модуль не будет работать с терминалом). А вот просто при подключении к микроконтроллеру модули работают без нареканий.

Итак, для обмена информацией с микроконтроллером по WiFi будем использовать второй модуль, подключенный к компьютеру и терминал Termite. Перед началом работы со схемой каждый модуль нужно подключить через USB-UART и проделать несколько операций - настроить режим работы, создать точку подключения и подключиться к точке, к которой в последующем будем подключаться для обмена информацией, AT командой узнать IP адрес модулей WiFi (необходимо будет для подключения модулей друг к другу и обмена информацией). Все эти настройки сохранятся и будут автоматически применяться при каждом включении модуля. Таким образом можно сэкономить немного памяти микроконтроллера на командах подготовки модуля к работе.

Модули работают в совмещенном режиме, то есть могут быть как клиентом, так и точкой доступа. Если по настройкам модуль уже работает в этом режиме (AT+CWMODE=3), то при повторной попытке настроить в этот же режим модуль выдаст ответ "no change". Чтобы настройки вступили в силу нужно перезапустить модуль или ввести команду AT+RST.

После аналогичных настроек второго модуля в списке доступных точек появится наша точка под названием "ATmega":

В нашем случае схема WiFi будет такой - модуль с микроконтроллером будет подключаться к домашнему роутеру (фактически микроконтроллер в таком случае может выходить в интернет, если это прописать), далее поднимать порт и действовать по алгоритму. На другой стороне модуль также подключим к роутеру и соединимся с микроконтроллером через TCP (как показано на скриншоте, для этого нужно настроить режим передачи и количество соединений командами AT+CIPMODE и AT+CIPMUX соответственно и ввести команду на соединение с сервером AT+CIPSTART). Все! Если подключиться к точке доступа (WiFi точка только, к серверу нужно переподключаться каждый раз, ровно также каждый раз сервер нужно поднимать на другом конце каждый раз при включении питания) и перезапустить модуль, то надобности самостоятельно еще раз присоединяться нет, это тоже сохраняется в памяти и автоматически подключается при доступности при включении модуля. Удобно, однако.

Теперь данные о температуре автоматически должны пойти на компьютер, а по командам с компьютера можно управлять светодиодом. Для удобства можно написать софт под Windows и мониторить температуру по WiFi.

Командой AT+CIPSEND мы отправляем данные, при приеме данных появится сообщение "+IPD,<айди>,<длинна информации>:" после двоеточия идет наша полезная (передаваемая) информация, которую нужно использовать.

Одно НО - желательно модуль питать не от батареек, а от стационарного питания розетки (естественно через блок питания) из-за большого потребления модулей.

Это один из вариантов передачи информации между модулями WiFi, можно их подключать также без роутера напрямую друг к другу, а можно к модулю подключаться через стандартный WIFi компьютера и работать уже через него.

Функционал задействован самый очевидный этих модулей, кто знает, что там еще разработчики приготовили для нас!

Для программирования микроконтроллера нужно использовать следующую комбинацию фьюз битов:

В заключении хочется отметить, что это действительно революция интернет вещей! При цене модуля в несколько зеленых единиц, мы имеем полноценный Wi-Fi модуль с огромными возможностями (которые пока что ограничивают разработчики сего чуда), область применения просто не ограничена - везде, где позволит фантазия, а учитывая тот факт, что в этом модуле уже присутствует микроконтроллер, отпадает надобность в использовании внешнего микроконтроллера, однако который нужно как-то программировать. Так что, друзья, вот такое дело - даем Wi-Fi каждой розетке!

К статье прилагается прошивка для микроконтроллера, исходный код в программе , документация на микросхему модуля Wi-Fi, программа для обновления прошивки модуля и прошивка модуля версии 0,92 (архив разбит на 3 части, потому что общий размер его слишком велик, чтобы приложить к статье), а также видео, демонстрирующее работу схемы (на видео управляемая плата, соединенная по WiFi с управляющим модулем, управляемая плата периодически передает информацию о температуре, при погружении термометра в воду на видео видно, что температура начинает падать, далее если передать символ "а" от управляющего модуля, на управляемой плате загорится светодиод, а если символ "b", то он потухнет).

На этом, кажется, все. Не забывайте писать свои замечания и пожелания, при наличии внимания к этой теме будем развивать идеи для новых.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 WiFi модуль 1 В блокнот
IC1 МК AVR 8-бит

ATmega8

1 В блокнот
IC2 Датчик температуры

DS18B20

1 В блокнот
VR1 Линейный регулятор

AMS1117-3.3

1 В блокнот
C1, C2 Конденсатор 18 пФ 2 В блокнот
C3, C7, C8 Электролитический конденсатор 100 мкФ 3

ВСЕ ЗАКАЗЫ, НАХОДЯЩИЕСЯ В СТАТУСЕ "ОЖИДАЕТ ОПЛАТЫ" ПО ИСТЕЧЕНИЮ СУТОК БУДУТ АВТОМАТИЧЕСКИ ОТМЕНЕНЫ БЕЗ ПРЕДВАРИТЕЛЬНОГО ОПОВЕЩЕНИЯ.

В нашем интернет-магазине цена на товары указанная на страницах сайта является окончательной.

Порядок оплаты электронными деньгами, банковской картой, со счета мобильного:

  • После оформления заказа Ваш заказ будет помещен в Ваш личный кабинет со статусом "Ожидает проверки "
  • Наши менеджеры проверят наличие на складе, и ставят выбранный Вами товар в резерв. При этом изменяют статус вашего заказа на "Оплачивается ". Рядом со статусом "Оплачивается " отобразится ссылка "Оплатить ", кликнув на которую Вы перейдете на страницу выбора способов оплаты сайта Robokassa.
  • После выбора способа и проведения оплаты заказа статус автоматически изменится на "Оплачен ". Далее в кратчайшие сроки товар будет вам отправлен выбранным в процессе формирования заказа способом доставки.

1. Оплата наличными средствами

Наличными средствами возможно оплатить купленные Вами товары курьеру (доставляющему Ваши товары), либо в магазине (при самовывозе). При наличной оплате Вам выдают товарный чек, кассовый чек.

ВНИМАНИЕ!!! Наложенным платежом НЕ РАБОТАЕМ , поэтому оплата при получении почтовой посылки невозможна!

2. Оплата по безналичному расчету

Для юридических лиц мы предусмотрели возможность оплатить покупки с помощью безналичного расчета. В процессе формирования заказа выберите способ оплаты безналичный расчет и введите данные для выставления счета.

3. Оплата через платежный терминал

ROBOKASSA — позволяет принимать платежи от клиентов с помощью банковских карт , в любой электронной валюте , с помощью сервисов мобильная коммерция (МТС, Мегафон, Билайн), платежи через интернет-банк ведущих Банков РФ, платежи через банкоматы, через терминалы мгновенной оплаты , а также с помощью приложения для iPhone .