- @amperka/wifi
- Функции и объекты модуля
- setup(uart, callback);
- ESP8266
- ESP8266.reset(callback)
- ESP8266.getVersion(callback)
- ESP8266.connect(ssid, key, callback)
- ESP8266.getAPs(callback)
- ESP8266.createAP(ssid, key, channel, enc, callback)
- ESP8266.getConnectedDevices(callback)
- ESP8266.getIP(callback)
- ESP8266.on(‘err’, function(error) < … >)
- Инструменты страницы
- Wi-Fi (Troyka-модуль): распиновка, схема подключения и программирование
- Видеообзор
- Общие сведения
- Подключение и настройка
- HardwareSerial
- SoftwareSerial
- HardwareSerial Mega
- Примеры работы AT-команд
- Тестовая команда «AT»
- Настройка режима работы
- Wi-Fi (Troyka-модуль)
- Взаимодействие
- Перепрошивка модуля
- Питание
- Подключение
- Комплектация
- Характеристики
- Ресурсы
- Обзор модуля:
@amperka/wifi
Библиотека для работы с Wi-Fi (Troyka-модуль) по протоколу UART.
// Настраиваем интерфейс UART PrimarySerial.setup(115200); // логин и пароль WiFi-сети var SSID = 'Amperka.ru'; var PSWD = 'iskraJS'; var wifi = require('@amperka/wifi').setup(PrimarySerial, function(err) { // подключаемся к Wi-Fi сети wifi.connect(SSID, PSWD, function(err) { print('Connected'); // Выполняем запрос require('http').get('http://amperka.ru', function(res) { var response = ''; res.on('data', function(d) { response += d; }); res.on('close', function() { print(response); }); }); }); });
Функции и объекты модуля
setup(uart, callback);
Возвращает новый объект ESP8266 для взаимодействия с модулем. В качестве параметра uart принимается интерфейс передачи данных между модулем и управляющей платой. В функцию callback передаётся параметр error , который будет непустым при возникновении ошибки.
ESP8266
Класс для взаимодействия с WiFi-модулем. Для создания нового объекта, используйте функцию setup .
ESP8266.reset(callback)
Перезагружает модуль. В функцию callback передаётся параметр error , который будет непустым при возникновении ошибки.
var wifi = require('@amperka/wifi').setup(PrimarySerial, function(err) { if (err) print('error on setup:', err); wifi.reset(function(err) { if (err) print('error on reset:', err); }); });
ESP8266.getVersion(callback)
Получает версию прошивки модуля. В функцию callback передаётся параметр error , который будет непустым при возникновении ошибки, а также параметр version , содержащий информацию о версии прошивки модуля.
var wifi = require('@amperka/wifi').setup(PrimarySerial, function(err) { wifi.getVersion(function(err, version) { if (err) print('error on reset:', err); print('Version:', version); }); });
ESP8266.connect(ssid, key, callback)
Подключается к WiFi-сети. В параметр ssid передаётся имя сети, в параметр key — пароль. В функцию callback передаётся параметр error , который будет непустым при возникновении ошибки.
ESP8266.getAPs(callback)
Получает список WiFi-сетей поблизости. В функцию callback передаётся параметр error , который будет непустым при возникновении ошибки, а также массив найденных сетей aps , каждый элемент которого представляет объект с полями:
>wifi.getAPs(function(err, aps) { print(aps); });
[ { "ssid": "MyHomeRouter", "enc": "wpa2_psk", "signal": -81, "mac": "f0:29:29:26:b8:30" }, { "ssid": "Amperka.ru", "enc": "wpa2_psk", "signal": -54, "mac": "d4:ca:6d:e0:44:eb" } ]
ESP8266.createAP(ssid, key, channel, enc, callback)
В функцию callback передаётся параметр error , который будет непустым при возникновении ошибки.
ESP8266.getConnectedDevices(callback)
Получает список подключённых устройств к WiFi-сети, созданной методом createAP . В функцию callback передаётся параметр error , который будет непустым при возникновении ошибки, а также массив устройств-клиентов devs , каждый элемент которого представляет объект с полями:
ESP8266.getIP(callback)
Получает IP-адрес модуля, подключённого к WiFi-сети методом connect . В функцию callback передаётся параметр error , который будет непустым при возникновении ошибки, а также параметр ip с IP-адресом модуля.
ESP8266.on(‘err’, function(error) < … >)
Событие, возникающее при ошибке подключения к сети. Параметр error может принимать следующие значения:
Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 4.0 International
Производные работы должны содержать ссылку на http://wiki.amperka.ru, как на первоисточник, непосредственно перед содержимым работы.
Вики работает на суперском движке DokuWiki.
Инструменты страницы
Wi-Fi (Troyka-модуль): распиновка, схема подключения и программирование
Wi-Fi (Troyka-модуль) на модуле ESP-12 с чипом ESP8266EX позволит передать данные по Wi-Fi сети.
Видеообзор
Общие сведения
По умолчанию модуль настроен на работу через «AT-команды». Управляющая плата посылает команды — Wi-Fi модуль выполняет соответствующую операцию.
Но под металлической крышкой прячется целый микроконтроллер, который является самодостаточным устройством. Прошивать модуль можно на разных языках программирования. Но обо всё по порядку.
Подключение и настройка
В стандартной прошивке Troyka Wi-Fi общается с управляющей платой через «AT-команды» по протоколу UART. Дополнительный сигнальный пин P служит для перевода модуля в режим сна или пониженного энергопотребления.
На всех платах Iskra и Arduino присутствует хотя бы один аппаратный UART — HardwareSerial. Если же по каким-то причинам он занят другим устройством, можно воспользоваться программным UART — SoftwareSerial.
HardwareSerial
На управляющей плате Iskra JS и платах Arduino с микроконтроллером ATmega32U4 / ATSAMD21G18 данные по USB и общение через пины 0 и 1 осуществляется через два раздельных UART . Это даёт возможность подключить Wi-Fi модуль к аппаратному UART на пинах 0 и 1 .
Список поддерживаемых плат:
При подключении удобно использовать Troyka Shield. С Troyka Slot Shield можно обойтись без лишних проводов. Прошейте управляющую платформу кодом ниже.
Код прошивки
// serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
SoftwareSerial
Некоторые платы Arduino, например Uno, прошиваются через пины 0 и 1 . Это означает невозможность использовать одновременно прошивку/отладку по USB и общение с Wi-Fi модулем. Решение проблемы — программный UART . Подключите пины TX и RX Troyka Wi-Fi к другим контактам управляющей платы и используйте библиотеку SoftwareSerial.
Для примера подключим управляющие пины Wi-Fi модуля TX и RX — на 8 и 8 контакты управляющей платы.
При подключении удобно использовать Troyka Shield. Прошейте управляющую платформу кодом ниже.
Код прошивки
// библиотека для работы программного Serial #include // создаём объект для работы с программным Serial // и передаём ему пины TX и RX SoftwareSerial mySerial(8, 9); // serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL mySerial void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
HardwareSerial Mega
На платах форм-фактора Arduino Mega 2560 аппаратный UART, который отвечает за передачу данных через пины 1 и 0 , отвечает также за передачу по USB. Это означает невозможность использовать одновременно UART для коммуникации с модулем Wi-Fi и отладки по USB.
Но на платах такого форм-фактора есть ещё дополнительно три аппаратных UART:
Список поддерживаемых плат:
Подключите Wi-Fi модуль к интерфейсу Serial1 на пины 18 и 19 на примере платы Mega 2560 Прошейте управляющую платформу кодом ниже.
Код прошивки
// serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
Примеры работы AT-команд
Рассмотрим несколько примеров по работе с «AT-командами» при подключении к Uno.
Тестовая команда «AT»
Откройте монитор порта. Настройте скорость соединения — 9600 бод. Конец строки — NL & CR . Введите команду AT и нажмите «Отправить». Это — базовая команда для проверки работы Wi-Fi модуля. В ответ получим «OK»: Если ответа нет или появляются непонятные символы — проверьте правильность подключения и настройки скорости обмена данными.
Настройка режима работы
Wi-Fi модуль умеет работать в трёх режимах:
Wi-Fi (Troyka-модуль)
Товары из офиса нельзя заказать через интернет или забронировать. Можно только прийти, схватить и бежать. Доступное количество актуально на момент загрузки страницы.
Офис находится в 3 минутах ходьбы от м. Парк культуры по адресу: ул. Тимура Фрунзе, 8/5.
Товары из магазина-мастерской нельзя заказать через интернет или забронировать. Можно только прийти, схватить и бежать. Доступное количество актуально на момент загрузки страницы.
Магазин-мастерская находится в трёх минутах пешком от метро Лиговский Проспект, на территории пространства «Лофт Проект Этажи», по адресу Лиговский проспект 74Д.
Подключайте свои гаджеты к соцсетям, добавляйте модули в IoT-облака и пользуйтесь API веб-сервисов для управления ими. WiFi модуль на ESP8266 откроет беспроводной доступ для любых проектов на Arduino и Iskra JS.
С двухюнитовым Troyka-модулем удобно работать на макетке — ножки сделаны со стандартным шагом 2,54 мм, а их разводка практически исключает случайные «коротыши».
Регулятор напряжения позволяет подключать модуль к Arduino без дополнительной обвязки.
Взаимодействие
Управляющее устройство общается с ESP8266 через UART (Serial-порт) с помощью набора AT-команд.
Для любой платы с UART-интерфейсом: используйте Arduino, Raspberry Pi, что душе угодно. Для Iskra JS мы написали отдельную библиотеку.
Работа над приёмом и передачей данных выглядит, как взаимодействие с сырым TCP-сокетом или с serial-портом компьютера.
Перепрошивка модуля
Выполнение AT-команд — это просто функция штатной прошивки, устанавливаемой на заводе. Но модуль можно перепрошивать. Пишите и загружайте свои прошивки через Arduino IDE, точно так же, как при работе с Arduino.
Для того, чтобы среда Arduino IDE научилась прошивать ESP8266, достаточно добавить директорию с конфигурацией платформы в папку со своими скетчами. Визуальная среда программирования XOD IDE поддерживает ESP866 прямо из коробки.
На модуле предусмотрено четыре порта ввода-вывода общего назначения — вы можете обойтись вовсе без управляющей платы: просто подключите периферию непосредственно к ним и залейте свою прошивку на ESP8266.
Питание
Рабочее напряжение ESP8266 — 3,3 вольта. Но для совместимости с логикой разных управляющих мы предусмотрели регулятор уровня напряжения. Благодаря этому модуль работает и от 5 В.
Подключение
Для Arduino модуль выглядит как последовательный интерфейс. Соедините контакты модуля с макетной платой или Arduino проводами «мама-папа».
К Troyka Shield будет удобно подключаться двумя трёхпроводными шлейфами. А если возьмёте Troyka Slot Shield, то модуль станет беспроводным в полном смысле этого слова — для коммутации провода не понадобятся вовсе.
- Контакт RX модуля подключите к контакту TX целевого устройства
- Контакт TX модуля подключите к контакту RX целевого устройства
- Контакт V подключите к контакту питания 3.3 — 5 В
- Контакт G подключите к земле
- Контакт P используйте для перевода модуля в режим программирования
Комплектация
Характеристики
- Модификация: ESP-12E
- Беспроводной интерфейс: Wi-Fi 802.11 b/g/n 2,4 ГГц
- Интерфейс: UART
- Максимальная выходная мощность: 20 дБ (в режиме 802.11b )
- Номинальное напряжение: 3,3 В
- Максимальный потребляемый ток: 250 мА
- Портов ввода-вывода свободного назначения: 5
- Габариты: 50,8×25,4 мм