Как узнать ip esp8266
Как узнать ip esp8266
Ваша корзина пуста!
Как задать статический IP адрес контроллеру ESP8266?
Будем рассматривать этот вопрос на примере платы контроллера NodeMcu 0.9 ESP-12 WIFI ESP8266.
Давайте для начала рассмотрим этот способ удобного обращения к нашему WiFi контроллеру при помощи придуманных символьных адресов. Тем более, что в примерах приведен не полный и неправильный синтаксис обращения к классу mDNS.
Действительно, задумка очень интересная. Работает это так: мы в программном коде своей программы указываем символьное название сервера, который будет крутиться в ESP8266. Например мы назовем его «teplica1» (теплица1). И чтобы обратиться к web-странице этого сервера, мы просто в адресной строке браузера нашего компьютера или гаджета пишем
и браузер нам отобразит содержимое, полученное от контроллера, не зависимо от динамически полученного IP-адреса в данный момент.
Вот изменённый код web-сервера, взятый со стандартного библиотечного примера, который поддерживает сетевое назначение имен mDNS.
Хочу статический IP на ESP8266
Раз предыдущий способ не годится для использования на различных гаджетах, давайте раскопаем припрятанные функции библиотеки ESP8266WiFi. Представляю вам функцию, зашитую в стандартную библиотеку, для назначения параметров сетевого соединения контроллера. Её синтаксис выглядит следующим образом.
Эта функция принимает следующие параметры: IP-адрес, гейтвей и маску подсети. У них довольно интересный тип переменной (посмотрим в примере). config активируют после функции begin.
Я взял предыдущий пример с mDNS и переделал его под задаваемый IP адрес без класса mDNS.
После загрузки этой программы в плату контроллера, можно любым браузером в WiFi сети перейти по адресу
и получим ответ hello from esp8266!
Тоесть мы получаем контроллер, строго привязанный к осязаемому IP адресу. Это дает нам рычаги для организации более сложных конфигураций сети умного дома. Можно работать над организацией клиент-серверных обменов полезной информацией между контроллерами.
Ну что же, продолжим и дальше раскапывать запрятанные возможности нашей родной WiFi библиотеки и отображать результаты раскопок в статьях!
Сменное жало паяльника 900M-T 1шт.
Жало для паяльника 60Вт с регуляторомДиаметр рабочей части 3 ммВнутренний диаметр отверстия под нагр..
OLED шилд для контроллера WeMos D1 mini
Шилд OLED под WiFi-контроллер WeMos D1 mini с диагональю 0,66″ и разрешением 64x..
Модуль 8 дискретных входов I2C на DIN-рейку
Модуль восьми дискретных входов I2C для построения домашней или промышленной системы автоматического..
Задатчик тока 4 20мА. Схема простого в изготовлении токового задатчика
Прибор позволяет получать на выходе 0. 20 мА, 4. 20 мА. Области применения представленного устр..
Оконцеватель для перемычек 2,54мм папа мама
как узнать IP, посоветуйте
Legantmar
New member
Опыт работы с контроллерами esp8266 более 2 лет.
Извиняюсь за многобукв, но не знаю как короче объяснить «проблему» ))
Предисловие:
Планирую коммерческое устройство подсоединяемое к роутеру пользователя с выходом в интернет (нужны NTP часы).
Проблема:
У всех роутеров различается третий сегмент IP адреса, примеры
192.168.0.1, 192.168.1.1, 192.168.100.1, 192.168.200.1 и другие..
Как я себе видел решение:
Пользователь при первом включении (esp встает в точку доступа) подключается к устройству, например, с телефона.
На странице настроек задает имя и пароль своего роутера.
После перезагрузки esp подключается к роутеру (включает режим клиента), определяет IP адрес который выдал роутер (при необходимости меняет последний сегмент). И при этом сохраняет режим точки доступа. (т.е. находится в двойном режиме WI-FI)
Пользователь снова заходит с телефона на точку доступа (esp) и смотрит IP адрес по которому esp подключился к роутеру.
Далее может управлять с любого компьютера подключенного к роутеру.
Проблема:
В таком режиме полностью отваливается WI-FI при запросе html страниц буквально через 5-10 минут. Независимо откуда заходит пользователь, напрямую с телефона (на точку доступа esp) или через роутер (esp клиент).
Проблема точно не в блоке питания и не в стабилизаторе 3,3В. Проверял на 3 экземплярах. У всех одинаковые симптомы (подозрение на сам контроллер и мою схему включения). (При этом в режиме приема get запросов без выдачи html ответов живет дольше, чем если каждый раз загружать в браузер html страницы с контроллера)
Посоветуйте свое решение.
Спасибо за внимание.
Примеры использования AT команд ESP8266
В данной статье приведены некоторые конкретные примеры использования AT команд ESP8266. Для получения дополнительной информации о полном наборе команд смотрите предыдущие статьи из этой серии, в которых содержится полная документация на команды.
Для тестирования и отправки команд на ESP8266 вам понадобится установленный на компьютере UART терминал:
Внимание:
AT команды должны вводиться заглавными буквами.
Модуль ESP-12E на базе ESP8266
Содержание
Одиночное подключение в качестве TCP клиента
Внимание:
UDP передача
UDP (фиксированные удаленные IP адрес и порт)
Примечания:
Внимание:
UDP (удаленные IP адрес и порт могут быть изменены)
При создании UDP передачи последний параметр » AT+CIPSTART » установите в значение 2. Это означает, что удаленные IP адрес и порт могут быть изменены.
Примечания:
Внимание:
Сквозной режим UART-WiFi
Сквозной режим UART-WiFI может быть включен, только когда ESP8266 работает как TCP клиент при одиночном подключении, или в UDP передаче.
Сквозной режим UART-WiFi при одиночном клиентском TCP подключении
В данном примере станция ESP8266 действует в качестве TCP клиента, чтобы создать одиночное подключение и выполнять сквозную передачу UART-WiFi. Для режима SoftAP (точка доступа) ESP8266, режим сквозной передачи UART-WiFi может быть выполнен аналогичным образом.
Примечание:
Цель ввода » +++ » заключается в выходе ESP8266 из режима сквозной передачи и возвращение в обычный прием AT команд, пока TCP соединение остается подключенным. Поэтому мы также можем использовать команду “ AT+CIPSEND ” чтобы вернуться в режим сквозной передачи.
Сквозной режим UART-WiFi при UDP передаче
В данном примере точка доступа SoftAP ESP8266 создает сквозную UDP передачу UART-WiFi. Для режима станции ESP8266, режим сквозной UDP передачи UART-WiFi может быть выполнен аналогичным образом.
Примечание:
Цель ввода » +++ » заключается в выходе ESP8266 из режима сквозной передачи и возвращение в обычный прием AT команд, пока TCP соединение остается подключенным. Поэтому мы также можем использовать команду “ AT+CIPSEND ” чтобы вернуться в режим сквозной передачи.
Несколько подключений в качестве TCP сервера
Когда ESP8266 работает в качестве TCP сервера, должны быть доступны несколько соединений, поскольку к ESP8266 может подключиться более одного клиента.
Ниже приведен пример, показывающий, как реализован TCP сервер, когда ESP8266 работает в режиме точки доступа SoftAP.
Примечание:
Когда ESP8266 работает как TCP сервер, используется механизм тайм-аута. Если TCP клиент подключился к TCP серверу ESP8266, но данные не передвались в течение определенного периода времени, то сервер закрывает соединение по истечении этого периода. Чтобы избежать подобных проблем, пожалуйста, настройте циркуляцию передачи данных каждые 5 секунд.
Внимание:
Как узнать ip esp8266
Экспериментирование проводилось с использованием Wi-Fi модуля ESP-01 и точки доступа DIR-320NRU (использовались материалы статей [1, 3, 4]).
[Одиночное подключение (ESP8266 в качестве клиента TCP)]
1. Настройка режима WiFi. Переведите ESP-01 в режим станции.
В этой команде 3 означает softAP и режим станции. Ответ:
Примечание: настроенный режим сохраняется в энергонезависимой памяти. Т. е. если сейчас выключить и снова включить питание модуля ESP, то модуль автоматически перейдет в режим станции. Чтобы узнать текущий режим модуля, введите команду «AT+CWMODE?».
2. Перезагрузите модуль, чтобы настройка вошла в действие:
3. Подключение к точке доступа Wi-Fi (например, это может быть домашний роутер наподобие DLink DIR-320):
В этой команде вводятся идентификатор точки доступа (ssid) и пароль (password). Ответ:
Примечание: SSID и пароль обязательно должны быть заключены в двойные кавычки. SSID и пароль команды также запоминаются в энергонезависимой памяти, и после выключения и включения питания произойдет автоматическое подключение к точке доступа и получение IP-адреса.
4. Как узнать IP-адрес, который получил модуль от точки доступа.
Устройство ESP-01 получило IP от роутера. Можно протестировать командой ping:
5. С помощью специальной сетевой утилиты на компьютере создайте сервер. Это может быть программа NetAssist.exe [2]. Например, создайте сервер на TCP-порт 8080 с IP адресом 192.168.0.53.
После этого дайте команду ESP подключиться к этому серверу в качестве клиента:
В этой команде через запятую протокол, IP сервера, номер порта. Ответ:
6. Передача данных.
В этой команде задана длина передаваемых данных в байтах (в этом примере 4 байта). Модуль ESP выдаст приглашение >. Введите 4 любых символа, Enter нажимать не надо (в этом примере введены буквы QWER).
Примечание: если количество отправляемых байт будет больше, чем заданный размер (в этом примере 4), то после лишние байты переданы не будут. Если нужно снова передать данные, то команду AT+CIPSEND=N нужно ввести повторно.
В окне программы NetAssist.exe будут отображаться принятые данные, которые передал модуль ESP-01 (в виде HEX-кодов ASCII, потому что стоит галочка Receive As HEX).
7. Прием данных (передача данных от утилиты NetAssist.exe).
Введите текст для передачи (например «http://microsin.net»), и нажмите кнопку Send (поле ввода и кнопка находятся в нижней части окна программы NetAssist.exe).
[Прозрачная передача данных (Transparent transmission)]
1. Установка режима WiFi (режим станции, т. е. сетевого клиента, который может подключиться к точке доступа).
2. Подключение к точке доступа Wi-Fi:
3. Создайте TCP-сервер на компьютере с помощью утилиты NetAssist.exe. В нашем примере это сервер на IP-адресе 192.168.0.56, порт 8080. Выдайте для ESP AT-команду для подключения к серверу:
4. Пока что мы повторили все предыдущие шаги из предыдущего раздела «Одиночное подключение (ESP8266 в качестве клиента TCP)». Теперь будут отличия: дадим команду разрешить прозрачный режим, когда все передаваемые и принимаемые данные будут прозрачно появляться на сигналах RS-232 TTL TXD и RXD.
5. Передача данных. Чтобы начать передачу, введите команду:
Теперь все данные, которые поступают на ножке RXD модуля ESP-01, будут прозрачно передаваться по радио на точку доступа и далее на TCP-сервер. И наоборот, все данные, которые передаст TCP-сервер, появятся на ножке TXD модуля ESP-01.
6. Как выйти из прозрачного режима и остановить передачу. Тут не все однозначно. На некоторых модулях для остановки передачи нужно передать магическую комбинацию символов «+++». Но на моем модуле ESP-01 с прошивкой ai-thinker.com Version:0.9.2.4 это сделать не получилось. Поэтому для выхода из прозрачного режима нужно выполнить аппаратный сброс модуля (подать короткий импульс на сигнал EXT_RSTB, это ножка 6 коннектора модуля ESP-01).
Как вариант можно остановить сервер TCP. В нашем примере для этого надо нажать кнопку Disconnect в программе NetAssist.exe, которая обеспечивала работу сервера. Модуль ESP-01 выдаст сообщение об отключении от сервера:
[ESP8288 в качестве TCP-сервера]
1. Настройка режима Wi-Fi. Переведите ESP-01 в режим станции.
2. Подключение к точке доступа Wi-Fi (например, это может быть домашний роутер наподобие DLink DIR-320):
В этой команде вводятся идентификатор точки доступа (ssid) и пароль (password). Ответ:
3. Разрешите множественные подключения к модулю ESP-01 (иначе сервер не запустится).
4. Запуск сервера на модуле ESP-01.
По умолчанию сервер заработает на TCP-порту 333. Ответ модуля ESP-01, сигнализирующий о нормальном запуске сервера:
5. Теперь можно протестировать работу TCP-сервера. В качестве сетевого клиента можно использовать команду telnet, указав в командной строке IP-адрес и порт сервера:
Модуль ESP-01 просигнализирует о подключении к серверу сообщением:
Примечание: ESP8266EX работает как сервер с использованием механизма таймаута. Это означает, что когда соединение установлено, и за определенный период времени (таймаут) не передавалось никаких данных через это соединение, то сервер ESP-01 отключит его, и выдаст при этом сообщение:
Поэтому, если Вы хотите, чтобы соединение сохранялось, то обеспечьте повторение передач пакетов от клиента как минимум каждые 5 секунд.
6. Прием данных TCP-сервером. В качестве теста можно передавать данные от команды telnet, если нажимать клавиши в её окне. Вот ответ сервера ESP-01, сигнализирующий поступление данных (в окне telnet были последовательно нажаты друг за другом клавиши q, w, e, r, t, y).
Примечание: после +IPD через запятую идет 0, означающий номер сетевого соединения, дальше через запятую идет количество принятых байт 1, и дальше через двоеточие идет принятый байт в символьном виде (т. е. его код отображается как символ ASCII).
7. Передача данных TCP-сервером.
В этой команде задана длина передаваемых данных в байтах (в этом примере 4 байта). Модуль ESP-01 выдаст приглашение >. Введите 4 любых символа, Enter нажимать не надо (в этом примере введены буквы QWER).
[Передача пакетов UDP]
1. Настройка режима Wi-Fi. Переведите ESP-01 в режим станции.
2. Подключение к точке доступа Wi-Fi (например, это может быть домашний роутер наподобие DLink DIR-320):
В этой команде вводятся идентификатор точки доступа (ssid) и пароль (password). Ответ:
3. Узнайте IP-адрес, который получил модуль от точки доступа.
4. В нашем сценарии компьютер PC и модуль ESP-01 подключен к одному и тому же роутеру DIR-320. Запустите утилиту NetAssist.exe, в выпадающем списке Settings выберите UDP и нажмите кнопку Connect. В поле Local Host IP будет отображен IP компьютера, куда будет подключаться модуль ESP-01.
5. Разрешите множественные соединения.
В этом примере «192.168.0.56»,8080 это IP и порт удаленной точки подключения (программа NetAssist.exe на компьютере), 1112 это номер локального порта модуля ESP-01 (если это число опустить, то номер порта ESP-01 сам выберет случайным образом). Завершающий 0 означает, что параметры удаленного участника обмена не поменяются. Для нашего примера и случая, если другой компьютер также создаст соединение UDP и отправит данные к ESP-01 на порт 1112, то ESP-01 сможет принять эти данные, но когда ESP-01 отправит данные командой «AT+CIPSEND=4,n», то он отправит их на первый компьютер. Если этот последний параметр будет не 0, то данные будут посланы новому компьютеру.
7. Отправка данных от ESP-01 к компьютеру.
В этом примере указано передать 5 байт на соединение с идентификатором 4. В ответ на эту команду модуль выдаст приглашение >. Введите 5 любых символов, Enter нажимать не надо (в этом примере введены буквы asdfg).
В окне NetAssist.exe принятые данные введенных символов asdfg отобразятся как HEX-коды (61 73 64 66 67).
8. Прием данных модулем ESP-01 от компьютера (передача данных от утилиты NetAssist.exe).
Введите текст для передачи (например «http://microsin.net»), и нажмите кнопку Send (поле ввода и кнопка находятся в нижней части окна программы NetAssist.exe).
Обратите внимание, что после +IPD теперь стоит не только количество принятых байт 19, но и еще идентификатор соединения 4.
Работа с ESP8266: Первоначальная настройка, обновление прошивки, связь по Wi-Fi, отправка-получение данных на ПК
На Хабре уже было пару статей о чипе ESP8266 китайской компании Espressif. Статья №1 и Статья №2. Не так давно я получил плату ESP-01 для проведения тестирования. Кому интересно, прошу под кат.
Мной была заказана самая простая плата с ESP8266 — ESP-01, выглядит она так:
В старой ревизии платы на разьем были выведены только VCC, GND, URXD и UTXD.
В последней ревизии добавились RST, GPIO0, GPIO2 и CH_PD.
Всего есть 11 модификаций плат, различающихся количеством выводов и вариантом исполнения:
ESP-01: PCB antenna, after matching the distance to do about the open 400 meters, easy to use.
ESP-02: SMD package for submission limit, the antenna can be drawn with the IPX header casing.
ESP-03: SMD package, the built-in ceramic antenna technology, all available IO leads.
ESP-04: SMD package, customers can customize the antenna types, flexible design, all the IO leads.
ESP-05: SMD package, only leads to serial and RST pin, small external antenna.
ESP-06: bottom mount technology, leads all the IO ports, with metal shielding shell, can be had FCC CEcertification, recommended.
ESP-07: Semi-hole chip technology, all the IO leads, with metal shielding shell, can be had FCC CE certifiedIPX external antenna, can also be built-in ceramic antenna.
ESP-08: with the ESP-07, except that the antenna is in the form of customers can define their own.
ESP-09: Ultra-small size package, only 10 * 10 mm, four-layer board technology 1M bytes.
ESP-10: SMD interface, narrow-body design, 10 mm wide, suitable for light with controller.
ESP-11: SMD interface, ceramic antenna, small volume.
Распиновка разъёма ESP-01:
Назначение выводов платы ESP-01 такое:
VCC, GND — питание платы (+3.3В);
URXD,UTXD — выводы RS232 толерантны к 3.3В
RST — Аппаратный сброс (reset)
GPIO0, GPIO2 — выводы GPIO
CH_PD — Chip enable, для работы должен быть подключен к +3.3В.
Для переключения в режим обновления прошивки нужно подать низкий уровень на GPIO0 и высокий на CH_PD.
Для подключения платы ESP-01 к ПК я использовал USB-to-RS232 преобразователь на FT232R с выходами TTL 3.3В, можно использовать например такой.
Питание ESP-01 нужно строго 3.3В, поэтому пришлось воспользоваться DC-DC преобразователем, можно использовать такой.
С базовой прошивкой плата ESP-01 управляется AT командами, поэтому нам потребуется программа-терминал, я использовал CoolTerm.
Возможно 2 варианта использования модуля:
1. Использование платы ESP-01 совместно с доп.микроконтроллером, который будет управлять модулем по UART.
2. Написание собственной прошивки для чипа ESP8266 и его использование как самодостаточного устройства.
Естественно более выгодным является 2-й вариант, тем более потенциал чипа ESP8266 достаточно велик.
Для начала мы попробуем вариант №1, то есть управлять платой ESP-01 через RS232.
Схема подключения очень простая:
Вывод VCC — питание платы (+3.3В);
Вывод GND — общий;
Выводы URXD,UTXD — подключаем к конвертеру USB-to-RS232 (в режиме 3.3В)
Вывод CH_PD — подключаем к питанию платы (+3.3В);
В терминале (CoolTerm) устанавливаем скорость COM-порта 57600. Установить нужно именно такую скорость, т.к. если в чипе ESP8266 стоит старая прошивка (а скорее всего это так и есть), то он будет работать только с такой скоростью порта.
Жмем Connect, вводим команду AT, в ответ должно прийти OK. Если все так, то плата работает, можно двигаться дальше.
Процедура обновления прошивки
Вводим команду AT+GMR — проверка версии AT и SDK, в ответ выдает 0016000902, где 0016 — версия SDK, 0901 — версия AT
На текущий момент (06.11.2014) уже доступна прошивка 0018000902 (Версия SDK — 0018, в версия AT — 0902)
После обновления до версии 0018000902 изменится дефолтная скорость COM-порта с 57600 на 9600, но эту скорость в новой прошивке теперь можно задать командой AT+CIOBAUD. Смотрим AT+CIOBAUD=? доступные скорости и ставим командой AT+CIOBAUD=115200 скорость 115200, в ответ должно выдать ОК. Даем команду на рестарт: AT+RST. Меняем скорость порта в программе-терминал на 115200.
Настройка подключения к Wi-Fi
Теперь попробуем подключить нашу плату ESP-01 к Wi-Fi точке доступа.
Выполняем следующие команды:
1. Устанавливаем режим работы Wi-Fi командой: Доступны следующие режимы: 1 — STA, 2 — AP, 3 — BOTH
Пример:
2. Смотрим список точек доступа командой: AT+CWLAP
Пример
В скобках указывается: SECURITY, SSID, RSSI, BSSID, CHANNEL
SECURITY может принимать значения:
0 — OPEN, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)
3. Подключаемся в нашей AP командой: Пример:
Подключение длится 2-5 секунд, после чего в случае успешного выполнения появится OK.
3. Посмотрим какой IP адрес получила наша плата командой: AT+CIFSR
Отключение от точки доступа делается командой AT+CWQAP.
Адрес получен, можно двигаться дальше.
Плата ESP-01 может выступать в качестве Soft-AP, для включения этого режима выполняем следующие команды:
1. Отключаемся от точки доступа: AT+CWQAP.
2. Меняем режим работы Wi-Fi командой: AT+CWMODE=2
3. Создаем свою AP командой: Пример:
4. Пробуем подключиться в нашей AP с компьютера. Посмотрим результат:
Как видно на картинке скорость только 54Мбит/с и еще меня смущают адреса DNS серверов, думаю они явно китайские, поставить свои через AT-команды нельзя.
Адрес AP можно узнать командой: AT+CIFSR
Пример:
Список клиентов нашей AP можно посмотреть командой: AT+CWLIF
Пример:
Настройка режима TCP-сервер
На плате ESP-01 можно запустить TCP-сервер для приема-отправки данных или она может выступать TCP-клиентом для приема-отправки данных на сервер.
Для запуска TCP-сервера выполним следующие команды:
1. Устанавливаем режим передачи командой mode = 0 — not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента)
mode = 1 — data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента)
Пример:
2. Устанавливаем возможность множественных соединений: mode 0 — single connection
mode 1 — multiple connection
Проверить режим соединений можно командой AT+CIPMUX?
Пример:
3. Запускаем сервер на порту 8888: mode 0 — to close server
mode 1 — to open server
Пример:
Настройка режима TCP-клиента
Теперь поменяем роли, ПК — сервер, ESP-01 — клиент, пробуем:
1. Рестартуем плату AT+RST
2. Устанавливаем режим передачи командой mode = 0 — not data mode (клиент может отправлять данные серверу и может принимать данные от сервера)
mode = 1 — data mode (клиент не может отправлять данные серверу, но может принимать данные от сервера)
Пример:
3. Режим соединений ставим Multiple connection: AT+CIPMUX=1
4. На ПК в SocketTest запускаем сервер на порту 8888
5. Запускаем клиента на ESP-01
Для режима Single connection (+CIPMUX=0) формат такой Для режима Multiple connection (+CIPMUX=1) формат такой Возможные значения параметров:
id = 0-4
type = TCP/UDP
addr = IP адрес
port= порт
Пример:
6. Отправляем данные с ESP-01 на ПК
Для режима Single connection (+CIPMUX=0) отправка идет так: Для режима Multiple connection (+CIPMUX=1) отправка идет так: После выполнения AT+CIPSEND нужно ввести текст, завершение ввода и отправка осуществляется по Enter.
Пример:
Пример отправки и получения данных:
Как мы видим, плата успешно справляется с поставленными задачами, а именно — подключение к Wi-Fi в качестве клиента, может выступать в роли Soft-AP, на плате можно поднять TCP-сервер для приема-отправки данных, а можно быть TCP-клиентом.
В данной статье мы рассмотрели работу с платой ESP-01 через RS232, в качестве управляющего контроллера выступал ПК, можно без проблем подключить плату Arduino или любой микроконтроллер с UART и выполнять отправку-прием данных через Wi-Fi сеть между контроллерами или ПК.
В следующей статье (как позволит карма) я попробую рассказать о принципах написания собственных прошивок для чипа ESP8266, тем самым плата ESP-01 будет полностью автономной, ей будет не нужен доп.контроллер для управления всеми параметрами. Мы попробуем подключить к плате различные периферийные устройства.
Буду рад ответить на вопросы, хотя до конца я еще не узучил плату ESP-01.