Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Wi-Fi модуль ESP-12 (5В) ====== ===== Описание ===== Модуль для связи плат Arduino и Smart с беспроводной сетью Wi-Fi. Часто требуется добавить в проект возможность управления по wi-fi, или передача каких-либо данных по беспроводной сети. Для таких случаев подойдёт данный модуль. Данный модуль может выступать как самостоятельный контроллер. На плате расположены выводы под управляющие контакты, к которым можно подключать различные датчики, модули и другую периферию, общаться по разным протоколам. Изначально модуль настроен на работу с помощью AT-команд. Однако, его можно прошить любой из желаемых прошивок, по своему желанию (Внимание! Самостоятельная прошивка осуществляется на свой страх и риск!) ==== Технические характеристики: ==== * Чип связи: ESP8266EX * Конфигурация чипа: ESP-12F * Беспроводные интерфейсы: Wi-Fi 802.11 b/g/n 2,4 ГГц * Напряжение питания через вывод "+": 3,3 или 5 В (в зависимости от выбранной модификации) * Мощность (в режиме в режиме 802.11b, максимально): 20 дБ * Потребляемый ток: 250 мА ==== Физические размеры: ==== * Модуль (Д х Ш х В): 50 х 26 х 8 мм ==== Плюсы использования: ==== * Мощный модуль для работы по Wi-Fi * Возможность использования как самостоятельного контроллера * Расширенные возможности конфигурации * Работа с управляющими устройствами ==== Ресурсы для загрузки: ==== * [[https://files.smartelements.ru/datasheet/esp8266_at_instruction_set_en.pdf|Список AT-команд]] * [[https://files.smartelements.ru/datasheet/ESP-12F.pdf|Даташит на модуль 12F]] * [[https://files.smartelements.ru/datasheet/ESP8266EX.pdf|Даташит на модуль ESP8266EX]] ==== Ещё больше примеров: ==== * [[main:comm:esp12]] * [[main:comm:esp12_allnetwork]] * [[main:comm:esp12_printvalue]] * [[main:comm:esp12_server_rgb]] ===== Пример подключения и использования ===== В данном мини-проекте рассматривается подключение модуля к контроллеру и подключение к существующей сети Wi-Fi. Модуль общается с контроллером посредством интерфейса UART. Так как на контроллерах UNO (Arduino Uno, Genuino Uno, Smart Uno) всего один аппаратный интерфейс UART, мы будем общаться с контроллером с помощью программного UART интерфейса. Это даёт нам возможность не занимать аппаратный интерфейс, таким образом мы сможем, как минимум, наблюдать за происходящим на Wi-Fi модуле, через монитор Serial-порта контроллера. Изначально модуль настроен на работу с помощью AT-команд. Но вручную писать AT-команды очень неудобно, по нескольким причинам: * Очень велика вероятность ошибиться и ввести неверную AT-команду; * Разбор ответа от контроллера будет довольно ёмким * Скетч будет трудно-читаемым из-за огромного количества кода * Сложно выявить ошибки Поэтому, чтобы общение с модулем было наиболее эффективным, простым и быстрым, мы воспользуемся библиотекой WiFiEsp * [[https://files.smartelements.ru/know_libs/WiFiEsp.zip|Скачать библиотеку WiFiEsp]] Скачайте и установите данную библиотеку в среду разработки Arduino IDE. <WRAP center round tip 80%> Перед началом работы настройте модуль на скорость обмена в 9600 бод. О том как это сделать, рассказано [[main:comm:esp12#Установка скорости обмена данными|на этой странице]]. </WRAP> ==== Шаг 1. Вам потребуется ==== Возьмите необходимые для проекта элементы, представленные в таблице ниже. ^ Что нужно ^ Кол-во, шт ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart Uno]] | 1 | | [[httpss://smartelements.ru/collection/svyaz/product/wifi-modul-esp-12|Wi-Fi модуль ESP-12]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/sensor-shield|Sensor Shield]] | 1 | | [[https://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-mama-mama|Провода мама-мама]] | 4 | ==== Шаг 2. Подключите Wifi модуль к шилду ==== Выполните подключение модуля в соответствии со схемой ниже. {{ :главная:связь:wifi_sensor_shield_2.png?nolink |}} ==== Шаг 3. Загрузите скетч на контроллер ==== Загрузите скетч, представленный ниже, на контроллер. <WRAP center round tip 60%> Предварительно измените значения переменных: * char ssid[] - здесь должно быть Ваше имя WiFi сети * char pass[] - здесь должен быть пароль от Вашей WiFi сети </WRAP> <file Arduino> #include "WiFiEsp.h" //подключение библиотеки WiFiEsp // Эмуляция Serial соединения #ifndef HAVE_HWSERIAL1 #include "SoftwareSerial.h" SoftwareSerial wifiSerial(6, 7); // TX - модуля , RX - модуля #endif char ssid[] = "SmartElements"; //имя сети wifi char pass[] = "1234567890"; //пароль от сети wifi int status = WL_IDLE_STATUS; // статус сети wifi void setup() { //инициализация Serial-соединения для отладки Serial.begin(9600); //инициализация Serial-соединения для ESP-модуля wifiSerial.begin(9600); //инициализация ESP модуля WiFi.init(&wifiSerial); //проверка существования модуля if (WiFi.status() == WL_NO_SHIELD) { Serial.println("WiFi module not present"); //если модуля нет, то не продолжать работу далее while (true); } //попытка подключения к wifi сети while (status != WL_CONNECTED) { Serial.print("Attempting to connect to WPA SSID: "); //вывод надписи о попытке подключения Serial.println(ssid); //вывод названия сети //подключение к сети, используя имя и пароль status = WiFi.begin(ssid, pass); } Serial.println("You're connected to the network"); } void loop() { //вывод информации о подключении к сети каждые 10 секунд Serial.println(); printCurrentNet(); printWifiData(); delay(10000); } void printWifiData() { //вывод IP-адреса модуля IPAddress ip = WiFi.localIP(); Serial.print("IP Address: "); Serial.println(ip); //вывод MAC-адреса модуля byte mac[6]; WiFi.macAddress(mac); char buf[20]; sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X", mac[5], mac[4], mac[3], mac[2], mac[1], mac[0]); Serial.print("MAC address: "); Serial.println(buf); } void printCurrentNet() { //вывод информации о сети, к которой подключен модуль Serial.print("SSID: "); Serial.println(WiFi.SSID()); //вывод MAC-адреса роутера byte bssid[6]; WiFi.BSSID(bssid); char buf[20]; sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X", bssid[5], bssid[4], bssid[3], bssid[2], bssid[1], bssid[0]); Serial.print("BSSID: "); Serial.println(buf); //вывод силы сигнала сети wifi long rssi = WiFi.RSSI(); Serial.print("Signal strength (RSSI): "); Serial.println(rssi); } </file> ==== Шаг 4. Результат соединения ==== Далее, откройте монитор Serial-порта в Arduino IDE, и посмотрите параметры подключения. Вы увидите информацию вида: <file> [WiFiEsp] Initializing ESP module [WiFiEsp] Initilization successful - 1.5.4 Attempting to connect to WPA SSID: SmartElements [WiFiEsp] Connected to SmartElements You're connected to the network SSID: SmartElements BSSID: 7C:B9:3C:CC:B8:94 Signal strength (RSSI): -89 IP Address: 192.168.1.18 MAC address: 19:FE:56:F1:29:EF </file> Где: * SSID - имя сети, к которой подключился модуль * Signal strength (RSSI) - уровень сигнала * IP Address - IP адрес модуля * MAC address - уникальный MAC модуля