Разное

Wifi модуль esp8266: ESP8266 для WiFi связи в Arduino проектах умного дома

Arduino + ESP8266 с нуля на примере Wi-Fi термометра, часть первая / Хабр

Часть 1. Подготовка ESP8266

Зачем эта статья? На хабре уже есть ряд статей про использование ESP в разных конфигурациях, но почему-то без подробностей о том, как именно все подключается, прошивается и программируется. Типа «я взял ESP, две пальчиковые батарейки, DHT22, закинул в коробку, потряс часик и термометр готов!». В итоге, получается странно: те, кто уже работают с ESP не видят в сделанном ничего необычного, а те, кто хочет научиться — не понимают с чего начать. Поэтому, я решил написать подробную статью о том, как подключается и прошивается ESP, как его связать с Arduino и внешним миром и какие проблемы мне попадались на этом пути. Ссылки на Aliexpress привожу лишь для представления порядка цен и внешнего вида компонентов.

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

Питание

Для работы ESP8266 нужно напряжение 3.3В и ток не ниже 300мА. К сожалению, Arduino Uno не в состоянии обеспечить такой ток, как не в состоянии обеспечить его и переходники USB-UART (программаторы) типа FT232RL — их предел около 50мА. А значит придется организовать отдельное питание. И лучше бы, чтобы Arduino тоже работал от 3.3В, чтобы избежать проблем типа «я подал пятивольтовый сигнал на вывод RX модуля ESP, почему пахнет паленой пластмассой?».

Есть три решения.

1. Купить готовый блок питания на 3.3В.

2. Купить готовый модуль с регулятором напряжения, понижающий 5В до 3.3В. Пожалуй, это самый удобный вариант.

3. Собрать модуль самому из регулятора AMS1117 и одного танталового конденсатора на 22мкФ.

Я выбрал третий пункт, поскольку мне часто нужно 3.3В, я жадный и я люблю встраивать регуляторы прямо в блоки питания.

С AMS1117 все просто: если положить его текстом вверх, то напряжение на ногах растет слева направо: 0(Gnd), 3.3В (Vout), 5В (Vin).

Между нулем и выходом нужен танталовый конденсатор на 22мкФ (так по инструкции, что будет если поставить электролитический — я не проверял). У танталового SMD-конденсатора плюс там, где полоска. Немного чудовищной пайки совершенно не предназначенных для такого варварства SMD-компонентов и:

Обязательно проверяйте выходное напряжение. Если оно значительно меньше 3.3В (например, 1.17В) — дайте регулятору остыть после пайки и проверьте контакты. Если поставите конденсатор больше, чем на 22мкФ, то мультиметр может показать более высокое напряжение.

Почему именно AMS1117? Он широко используется. Его вы можете найти почти везде, даже в Arduino Uno, как правило, стоит AMS1117-5.0.

Если вы знаете что-то схожих габаритов и цены, еще более простое в использовании — напишите, пожалуйста.

Важный момент. Не знаю уж почему, но AMS1117 крайне капризно относится к качеству соединений. Контакты должны быть надежны. Лучше — пропаяны. Иначе он на тестах выдает 3.3В, но под нагрузкой не выдает ничего.

Подключение ESP8266

Я выбрал модель 07, поскольку у нее отличный металлический экран, который работает как защита от наводок, механических воздействий и как радиатор. Последнее обеспечивает разницу между сгоревшим модулем и просто нагревшимся. Кроме того, есть гнездо под внешнюю антенну.

Чтобы чип запустился нужно соединить VCC и CH_P через резистор 10кОм. Если такого нет, то сгодится любой из диапазона 1-20кОм. Кроме того, конкретно модель 07 еще требует, чтобы GPIO15 (самый ближний к GND) был «на земле» (этого на картинке не видно, потому что соединение с другой стороны).

Теперь берем переходник USB-UART, переключаем его на 3.3В и подключаем RX к TX, TX к RX и GND к «земле» (у меня без этого передача нестабильна). Если вы не можете переключить на 3.3В, то можно использовать простейший резисторный делитель напряжения: соедините ESP RX с TX переходника через сопротивление в 1кОм, а ESP RX с «землей» через 2кОм. Существует масса более сложных и более надежных способов связать 3.3В и 5В, но в данном случае и так сойдет.

И соединяемся на скорости 9600 по нужному COM-порту (можно посмотреть в диспетчере устройств).

Я использую SecureCRT, Putty тоже подойдет, а ценители Линукса и так знают, что делать и где смотреть.

(AT+RST перезагружает чип)

Если ничего не происходит — выключите — включите питание, если все равно ничего не происходит — проверьте соответствие TX/RX, попробуйте переставить их местами или припаять к чипу.

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

Иногда фокусы с переходником вешают USB-порт. Можно в качестве временного решения использовать другой USB-порт, но вообще лучше перезагрузить компьютер.

Иногда при этом меняется номер COM-порта. Под Linux это можно решить с помощью udev.

Если вместо текста приходит мусор, то проверьте настройки скорости. Некоторые старые чипы работают на 115200.

На старте чип нагревается, но если он реально горячий и продолжает греться — отключайте и проверяйте все соединения. Чтобы на корпус не попадало +3.3В, чтобы 5В к нему вообще никуда не приходили, чтобы «земля» переходника была соединена с «землей» чипа. Модели с металлическим экраном очень трудно сжечь (но нет ничего невозможного), а на модели без экранов жалуются, мол даже небольшая ошибка может стать последней в жизни чипа. Но это я не проверял.

Прошивка

Мой выбор — NodeMCU. У нее проблемы с памятью и поддержкой железа, но это многократно окупается простотой кода и легкостью отладки.

Так же потребуются NodeMCU flasher и LuaLoader (последнее — опционально, есть и другие клиенты для работы с этой прошивкой).

Выключаем чип. Подсоединяем GPIO0 к земле и включаем чип:

Если ничего не происходит и поля AP MAC/STA MAC пустые — проверьте еще раз, чтобы GPIO0 был на «земле».

Если прошивка началась, но зависла — посмотрите в закладке Log, у меня почему-то конкретно этот чип отказался прошиваться на FT232RL, но зато без проблем прошился на PL2303HX на скорости 576000. PL2303HX в указанном варианте не имеет переключения на 3.3В, чтобы им воспользоваться нужно открыть пластиковый корпус и перепаять провод с 5V на 3.3V, есть варианты с пятью выходами: 3.3, 5, TX, RX, Gnd.


Обратите внимание: STA MAC поменялся. Подозреваю, что flasher его неправильно показывал, но требуется проверка.

Для экономии сил и нервов можно взять готовый или полуготовый вариант.

Есть одноразовые адаптеры с удобной разводкой.

Есть готовые к прошивке.

Есть варианты с простенькие кит-комплекты и посложнее — ESP8266-EVB

Есть с готовым USB-адаптером — NodeMCU Development Board. Под нее даже какие-то шилды делают.

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

Ценные ссылки из комментариев:
NodeMCU custom builds
Programming ESP8266-EVB with Arduino IDE
Объяснение про танталовый конденсатор.

Update: заменил в тексте «программатор» на «переходник USB-UART» или просто «переходник». По моему опыту термин «программатор» используется чаще, но, пожалуй, «переходник USB-UART» будет точнее.

ESP-201 WIFI модуль на ESP8266 (Arduino урок №1)

Решил изучить Ардуино. Построить «умный» дом. С чего-то надо начинать.
На базе WI-FI модуля ESP8266 можно получить беспроводной датчик температуры, влажности, давления, освещенности… Надо всего лишь обновить прошивку модуля и подключить датчики. Дополнительные микроконтроллеры не требуются.
Около двух лет назад на китайском рынке появились дешёвые WI-FI модули ESP8266 китайского разработчика. Это не просто WI-FI модуль, а полноценный 32 битный микроконтроллер со своим набором GPIO, в том числе SPI, UART, I2C.

Технические характеристики:

Процессор: одноядерный Tensilica L106 частотой до 160 MHz.

Поддерживаемые стандарты WI-FI: 802.11 b / g / n.

Поддерживаемы типы шифрования: WEP, WPA, WPA2.

Поддерживаемые режимы работы: Клиент(STA), Точка доступа(AP), Клиент+Точка доступа(STA+AP).

Напряжение питания 1.7..3.6 В.

Потребляемый ток: до 215мА в зависимости от режима работы.

Количество GPIO: 16 (фактически до 11). Доступно на модулях: ESP-01 — 4, ESP-03 — 7+1, включая UART. Существуют и другие варианты модулей.

Интерфейсы: 1 ADC, I2C. UART, SPI, PWM.

Внешняя Flash память может быть установлена от 512кБ до 4МБ.

RAM данных 80 кБ, RAM инструкций — 64 кБ.

Смотрим, в каком виде прислали.

Заказал сразу три модуля. Одного для «умного» дома будет маловато.

Эти модули необычные. Имеют возможность подключения внешней антенны.


Техническая информация на странице магазина отсутствует полностью.

Поэтому ориентируемся на то, что расположено на плате и на то, что нарыл.

Схема модуля состоит из минимального количества деталей: самого чипа ESP8266,


flash памяти 25Q41BT (4M-bit Serial Flash, 512K-byte, 256 bytes per programmable page)
www.elm-tech.com/en/products/spi-flash-memory/gd25q41/gd25q41.pdf

и кварца на 26МГц.

Памяти для серьёзных проектов маловато. Способ увеличения несложный. Достаточно перепаять МС памяти на более ёмкую. Обзор на Муське не так давно был:
mysku.ru/blog/aliexpress/41089.html

Для простых проектов той, что стоит, вполне достаточно.

Для проектирования своих задач решено было использовать макетницу. Но возникла проблемка.


Выводы для программирования модуля явно были «лишними». Пришлось немного переделать.

Левые снимки – оригинал, справа после переделки. Никого не заставляю так делать. Просто это моё решение, мне так удобнее.

Теперь ничто не мешает, и программировать удобно.


Как писал ранее, эти модули могут работать как с внутренней (на печатке) антенной, так и с внешней. Изначально модуль «настроен» на работу с внешней антенной. Для перенастройки придётся перепаять перемычку-сопротивление.


Я решил проверить, насколько разнится коэффициент усиления внутренней и внешней антенны. Именно для этого на одном модуле перепаял перемычку.

Но возникла ещё одна сложность: два модуля из трёх пришли пустыми (не прошитые).

Заодно потренировался.

Пригодился кабель-конвертер (USB To RS232 TTL UART) из одного моего обзора про ВольтАмперВаттметр с функцией счётчика PZEM-004.


Обычный кабель-конвертер.


У меня есть более дешёвый вариант. Но этот более удобен (для меня).

Устанавливаю модуль на макетку и вгоняю в него скетч-пример для ESP8266 при помощи Arduino IDE. Есть нюансы. Смотрим схему подключения.

Модуль запитал от внешнего источника. В моём случае узел питания был в комплекте с макеткой.

При загрузке скетча GPIO 00 сажаем на Gnd. Для запуска скетча (после прошивки) GPIO 00 подключаем на +3.3V.

Подключил, всё работает. Осталось проверить, у какой антенны коэффициент усиления выше.

Установил на макетку три модуля.

— ESP-201 с внутренней антенной.

— ESP-201 с «хвостиком» для внешней антенны (шёл в комплекте).

— И у же стандартный модуль на основе ESP8266, купленный по этой ссылке с год назад:
aliexpress.com/item/New-Wireless-module-NodeMcu-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266-with-pcb-Antenna/32299982691.html

Для питания использовал PowerBank. Для чистоты эксперимента пришлось выйти почти в поле. Тем не менее, один несанкционированный роутер всё же поймался:) Название на графике удалил. Мешаться не будет.

Оценивать силу сигнала буду при помощи программы Acrylic Wi-Fi. Программ существует множество, в том числе и для смартфонов. Но эта может отслеживать все изменения в динамике.

В непосредственной близости от модулей.


Wifi_int_ant — ESP-201 с внутренней антенной.

Wifi_ext_ant — ESP-201 с «хвостиком» для внешней антенны.

WeatStat — ESP8266,

Отошёл на 10 метров.


Отошёл ещё на 10 метров.


Ещё.


И ещё.


Погрешности измерения естественно присутствуют. Но общая картина ясна.

Пора объявлять победителей.

1 место: ESP-201 с внутренней антенной.

2 место: стандартный модуль на основе ESP8266.

3 место: ESP-201 с «хвостиком» для внешней антенны.

Подпаялся к банке из-под сгущённого молока.


Картина реально изменилась.


Дело было не бабине… 🙂

С выносной антенной сигнал намного сильнее. Даже если в качестве антенны обычная консервная банка.

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

Надеюсь, хоть кому-то помог.

Удачи!

Продолжение следует…

Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

Модуль ESP-01(esp8266) или WiFi для начинающих.

Рано или поздно все мы приходить к тому что нам не хватает подключения к Сети в наших проектах на платформе Ардуино. Действительно как же в 21 веке без статуса Онлайн )) И тут нам на выручку приходит  WiFI чип ESP8266 и готовые  модули на его основе. У меня в руках самый простой модуль (для новичков) ESP-01 :

Модуль устроен достаточно просто и имеет минимальный набор выводов :

  • ESP8266EX — сердце всего модуля.
  • P25Q80H (или другой чип) — Flash Memory на 1 Мбайт.
  • Кварц и обвязка со свето диодиками.
ESP8266EX

Китайский производитель Espressif сделал дешовый чип  с интерфейсом Wi-Fi и возможностью исполнять программы из внешней флеш-памяти с интерфейсом SPI. По сути это микроконтроллер и радио модуль для Wi-Fi в одном корпусе :

  • 80 MHz 32-bit процессор Tensilica.
  • IEEE 802.11 b/g/n Wi-Fi. Поддерживается WEP и WPA/WPA2.
  • 14 портов ввода-вывода(из них возможно использовать 11), SPI, I²C, I²S, UART, 10-bit АЦП. В нашем случае мы можем использовать только ограниченные выводы чипа.
  • Питание 2,2…3,6 В. Логика и питание чипа 3.3 В, будьте внимательны !  
  • Интегрированный стек TCP/IP. HTML

Выводы, подключение :

Возможности чипа очень большие, будем разбираться по степенно.

Выводы модуля :

  • VCC — плюс питания 3.3 В
  • GND — минус питания 3.3 В
  • TX — аппаратный UART.
  • RX — аппаратный UART.
  • RST — кратковременно подав на неё низкий логический уровень, модуль перезагрузиться. Лучше прижать ее через резистор 10 кОм к плюсу питания.
  • CH_PD(или по-другому EN) — служит для перевода модуля в энергосберегающий режим, в котором он потребляет очень маленький ток. Ну и снова — не будет лишним «прижать» эту ногу резистором на 10 кОм к плюсу питания.

По умолчанию во флешь-память ужа записана заводская прошивка с поддержкой АТ команд для управления чипом. Конечно можно залить и другие прошивки, но в этой статье мы будем работать именно в таком режиме с модулем. Суть проста по UART передаем команду, получаем ответ от модуля. Для этого нам потребуется  USB-to-Serial TTL конвертор что бы подключить модуль к компу. Так как у меня под рукой его нету то я буду использовать Arduino Nano в его качестве. 

Питание модуля отдельный вопрос. Пиковое потребление чипа может достигать 250 мА ( в datasheet указано 170 мА при использование Tx802.11b). Внимание! Этот модуль основан на 3.3 В логике, так что придется его питать от своего источника питания. Или через резисторный делитель(1 кОм и 2 кОм) с вывода +5 Ардуино. Выводы RX и TX надо тоже подключить через делитель  или через logic converter (например CD4050B).

Что бы Ардуино превратить в USB-to-Serial TTL конвертор зальем в контролер пустой скетч :

void setup() { }
void loop() { }

Далее Arduino нужно замкнуть RESET на GND.  Это изолирует процессор от I/O пинов. Альтернатива этому удаление микросхемы из «кроватки».  При этом выводы TX, RX устройства нужно подключить без перекрещивания. т.е. :

esp TX → ard TX
esp RX → ard RX

Подключаем все , открываем монитор портов в Arduino IDE и поехали.

Для простоты вы можете купить USB адаптер у наших Китайских партнеров.

AT-Команды.

Для на чало мы проверим  что все работает и  отправим в терминале:

AT

OK

Проверим  прошивку :

AT+GMR

AT version:1.2.0.0(Jul 1 2016 20:04:45)
SDK version:1.5.4.1(39cb9a32)
Ai-Thinker Technology Co. Ltd.
Dec 2 2016 14:21:16
OK

Для подключения Wi-Fi выберем режим модуля: доступны следующие режимы: 1 — STA, 2 — AP, 3 — Station+AP

AT+CWMODE=1

OK

Смотрим список точек доступа командой:

AT+CWLAP 
+CWLAP:(3,"MTSRouter-047188",-77,"00:1f:ce:ac:e4:de",2,-21,0)
+CWLAP:(3,"RT-WiFi_2958",-93,"78:96:82:44:29:58",4,10,0)
+CWLAP:(3,"Test",-63,"ac:f1:df:c9:a5:82",6,0,0)
+CWLAP:(3,"TP-LINK_4E54E0",-85,"f8:1a:67:4e:54:e0",6,103,0)
+CWLAP:(3,"GARNIER",-89,"60:a4:4c:df:83:38",6,-31,0)
+CWLAP:(2,"Oslik",-73,"bc:f6:85:cb:d7:53",7,-9,0)
+CWLAP:(3,"Keenetic-6619",-80,"e8:37:7a:9a:93:46",8,8,0)
+CWLAP:(2,"beeline-router_78",-90,"fc:75:16:4a:39:42",9,-26,0)
+CWLAP:(3,"ASUS",-91,"f4:6d:04:df:d3:e8",11,-14,0)
+CWLAP:(4,"Beeline_2G_F14986",-83,"78:94:b4:a3:8c:cc",11,-14,0)

OK

В скобках указывается: SECURITY, SSID, RSSI, BSSID, CHANNEL
SECURITY может принимать значения:
0 — OPEN, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)

Подключаемся к нашей точке:

AT+CWJAP="Oslik","password"
WIFI CONNECTED
WIFI GOT IP

OK

Посмотреть какой ip получил наш модуль:

AT+CIFSR
+CIFSR:STAIP,"192.168.0.55"
+CIFSR:STAMAC,"b4:e6:2d:22:f6:61"

OK

Все настройки запоминаются во флешь память, сбросить настройки на заводские можно командой:

AT+RESTORE

Задать скорость UART :

AT+CIOBAUD=9600

OK

Перезагрузить модуль :

AT+RST

OK
?)⸮⸮⸮@H

<⸮⸮⸮⸮@H⸮⸮!`̌⸮
⸮K⸮ZHRh|$ ⸮⸮ؤ⸮
Ai-Thinker Technology Co. Ltd.

ready

Команды делятся условно на три части : системные, Wi-Fi,TCP. Полный список команд можно посмотреть в datasheep. Ну а мы перейдем к командам режима TCP-сервера. На плате ESP-01 можно запустить TCP-сервер для приема-отправки данных или она может выступать TCP-клиентом для приема-отправки данных на сервер.
Для запуска TCP-сервера выполним следующие команды:

AT+CIPMODE=0

OK

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

Устанавливаем возможность множественных соединений:

AT+CIPMUX=1

OK

0 — single connection.
1 — multiple connection.

Запускаем сервер на порту 80:

AT+CIPSERVER=1,80 (mode,port)

OK

0 — to close server
1 — to open server

Теперь можно подключиться к ESP-01 и отправить-принять какие-нибудь данные. На потребуется telnet клиент, я использую PuTTY. При подключение модуль нам сообщает что подключился клиент и показывает нам id клиента.

0,CONNECT

+IPD,0,21:⸮⸮⸮⸮ ⸮⸮⸮⸮'⸮⸮⸮⸮⸮⸮

Посмотреть список активных подключений к ESP-01 можно командой AT+CIPSTATUS
Пример:

AT+CIPSTATUS

+CIPSTATUS:0,"TCP","192.168.0.19",57907,80,1
OK

Закрыть активное соединение можно командой

AT+CIPCLOSE=id или все соединения AT+CIPCLOSE без параметров.

AT+CIPCLOSE=0 
0,CLOSED

OK

Отправляем данные с ESP-01 на ПК. Для режима Single connection отправка идет так :AT+CIPSEND=length, для режима Multiple connection отправка идет так: AT+CIPSEND=id,length.

AT+CIPSEND=0,6  (6 байт)

OK
> 
Hellow

busy s...
Recv 6 bytes
SEND OK

Модуль Wi-Fi реле на 1 канал esp8266 — обзор и подключение

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

Это модуль одноканального реле с интерфейсом WiFi выполнен на основе микросхемы ESP8266. Он контролирует работу реле посредством приложения. Идеальный инструмент, чтобы управлять всей бытовой техникой в вашем доме с помощью телефона, где бы вы ни находились.

  • Встроенный модуль WiFi с микросхемой ESP8266, работающий в режиме точки доступа, можно подключить к 5‑и клиентам одновременно.
  • У модуля реле с WiFi два режима работы:
    • 1. Смартфон напрямую подключается к модулю WiFi;
    • 2. Смартфон и модуль WiFi подключены к одному маршрутизатору.
  • Дальность передачи: На открытом пространстве максимальная дальность передачи составляет 400 м в случае, когда смартфон напрямую подключается к модулю WiFi. Если модуль WiFi и смартфон подключены к одному маршрутизатору, дальность передачи зависит от силы сигнала маршрутизатора.
  • Встроенное реле на 1 канал с входным напряжением 5 В для выходных цепей 10, А, 250 В переменного тока и 30 В постоянного тока, выдерживает до 100 000 срабатываний в непрерывном режиме, обладает малым временем срабатывания.

Блок-схема модуля представлена на чертеже ниже:

1. WiFi модуль ESP8266 имеет три режима работы:

  • STA (клиент)
  • AP (точка доступа)
  • STA + AP (точка доступа + клиент)

Режим WiFi модуля ESP8266 выбирается исходя из выбранного режима работы модуля реле.

2. Модуль настраивается посредством отладочной программы, предназначенной для работы через последовательный порт, команды на последовательный порт отправляются через конвертер USB в TTL. Для модулей ESP-01 существует специальный программатор – USB программатор Ch440G для ESP-01. Контакты TX, RX и GND конвертера подключаются к выводам RX, TX и GND модуля реле, а выводы IN+ и IN- — к источнику питания постоянного тока 3.3В.

3. Скорость передачи данных WiFi модуля может быть 115.200 или 9600 бод. Чтобы изменить скорость, вы можете использовать АТ‑команды, например: AT+CIOBAUD=115200. В общих случаях мы рекомендуем использовать скорость 115.200, но вам будет необходимо изменить скорость на 9600, если вы используете смартфон для управления реле (так как скорость встроенного в модуль микроконтроллера STC15F104W составляет 9600 бод).

Запустите отладочную программу USR-TCP232-Test-V1.3 на ПК и отправьте следующие AT команды, одну за другой:

  • AT+CWMODE=2 — выбираем режим точки доступа AP;
  • AT+RST — перезапускаем модуль;
  • AT+CIPMUX=1 — устанавливаем несколько соединений;
  • AT+CIPSERVER=1,8080— настраиваем сервер TCP, устанавливаем номер порта;
  • AT+CIFSR — смотрим адрес IP для режима AP, примерно такой: APIP, “192.168.4.1”;
  • AT+CIOBAUD=9600 — устанавливаем скорость передачи последовательного порта на 9600 бод.

Теперь подключаемся к точке доступа, созданной WiFi модулем, посредством смартфона с ОС Android.

Установите приложение EasyTCP_20 (ссылка на Play Market) на смартфон с ОС Android и запустите его; нажмите кнопку «CONNECT» и введите адрес устройства (IP Address) и номер порта (Port).

Нажимайте на блоки функций и вводите имена и содержимое команд, отправляемых через последовательный порт. Например, командой “A00101A2” — можно задать открытие реле, а командой “A00100A1” — закрытие реле.

Все команды должны задаваться в шестнадцатеричном виде.

Теперь, нажимая на блоки функций, вы можете отправлять команды на последовательный порт и таким образом управлять расположенным на плате реле.

Запустите отладочную программу USR-TCP232-Test-V1.3 на ПК, отправьте следующие команды одну за другой:

  • AT+CWMODE=1 — выбираем режим клиента STA;
  • AT+RST — перезапускаем модуль;
  • AT+CWJAP=<ssid>,<password> — позволяем модулю WiFi подключиться к маршрутизатору, например: AT+CWJAP=«LCTECH»,«12345678»;
  • AT+CIPMUX=1 — устанавливаем несколько соединений; Например:
    AT+CIPSERVER=1,8080 – настраиваем сервер TCP, устанавливаем номер порта;
  • AT+CIFSR — смотрим адрес IP для режима STA, примерно такой: STAIP, “192.168.1.103”;
  • AT+CIOBAUD=9600 — устанавливаем скорость передачи последовательного порта на 9600 бод.

Теперь подключитесь со смартфона к вашему маршрутизатору.

Установите приложение EasyTCP_20 на смартфон с ОС Android (ссылка на Play Market) и запустите его; нажмите кнопку «CONNECT», введите в поля адрес IP (Address) модуля и номер порта (Port).

Нажимайте на блоки функций и вводите имена и содержимое команд, отправляемых через последовательный порт . Например: A00101A2 — открытое реле, A00100A1 — закрытое реле. Команды должны быть написаны  в шестнадцатеричном виде.

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

  1. После перезапуска, модуль реле с WiFi необходимо настроить заново. Если ваша прошивка написана на Arduino IDE, то минимальный набор необходимых при запуске команд можно поместить в функцию setup()
  2. У модуля ESP8266 есть функция простоя; если смартфон не посылает команды на модуль WiFi в течение некоторого периода времени (по умолчанию — 180 с), то он переходит в режим ожидания и отключается от вашего смартфона. Для изменения этого периода вы можете отправить с ПК команду «AT + CIPSTO = ” («время» может быть от 0 до 7200 сек), например: AT + CIPSTO = 3600.
  3. Если модуль в ответ вместо «OK» отправляет команду, которую вы послали посредством программы USR-TCP232-Test-V1.3, то модуль необходимо настроить заново. Перед отправкой команд вы можете нажать кнопку «ВВОД» (ENTER).
  4. Если нет никакого ответа при работе через программу USR-TCP232-Test-V1.3, то посмотрите на скорость при обмене с модулем — возможно, она настроена неверно. Вы можете попробовать 115200 или 9600, однако если для управления реле вы используете смартфон, то скорость обязательно должна быть 9600 бод (скорость можно изменить, отправив команду AT+CIOBAUD=9600), поскольку скорость передачи встроенного микроконтроллера STC15F104W составляет 9600 бод.
  5. Если вы хотите использовать компьютер для управления реле напрямую (скорость передачи — 9600 бод), то можно сделать следующее: отсоедините модуль WiFi с микросхемой ESP8266; выводы TX, RX и GN от USB – TTL конвертера подключите к выводам TX, RX и GND модуля реле; выводы IN+ и IN- подключите к источнику питания постоянного тока 5В. Отправьте команды на последовательный порт (A00101A2 — открытое реле, A00100A1 — закрытое реле, команды должны быть в шестнадцатеричном виде) посредством отладочной программы, установленной на ПК, чтобы управлять реле.
  6. Ели реле не открывается или не закрывается, возможно, вам необходимо убрать резистор R4 и подключить вывод питания VCC от USB – TTL конвертера к 5V выводу модуля реле.

Статья подготовлена по материалам www.hackster.io

Arduino с WiFi модулем и модуль ESP8266: обзор и подключение

Привет! Эта статья должна была стать законченной точкой в ознакомлении с Wi-Fi модулями для Arduino или непосредственно Arduino со встроенными модулями, но получилась какая-то пеленка от чайника. Так что от чайника для чайников про Arduino WiFi.

Есть исправления, важные дополнения или хороший анекдот? Внизу статьи люди оставляют комментарии, можно написать и туда!

Для чего это нужно?

Вся суть сводится к тому, что неплохо бы стандартные платы Arduino было бы прошивать не по проводу, а на лету по воздуху. Да и приятно изменять код удаленно, или даже просто иметь доступ к Wi-Fi сетям. И тут начинается – вначале не было ничего хорошего, пока китайцы из Espressif не показали рынку свою ESP8266 – классный модуль с широким функционалом.

Крутая цена и возможности сделали этот модуль по-настоящему народным. Его даже теперь встраивают в некоторые платы – например, в Arduino Uno WiFi. А как итог – подключили раз, и можно менять прошивки удаленно без использования паяльника. Старперы индустрии люто плачут на этом месте (но провод тоже никто не отменял).

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

Та же версия 07 идет в металлическим экраном-радиатором, но 01 – самая пополурная

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

Характеристики

Тут уже голимый паблик, все и так известно по этой игрушке. Что у нас имеется на борту:

  • 160 МГц, 32 бит
  • IEEE 802.11 b/g/n, WEP/WPA/WPA2
  • Флеш-память аж на 4 Мб, внешняя память до 16 Мб.
  • 14 портов ввода-вывода, SPI, I2C, UART, 10-бит АЦП
  • Питание – 2,2-3,6 В (оптимально 3,3 В, не сожгите пятивольниками), 300 мА (стандартная Ардуино не разгонит ее, лучше использовать доппитание)
  • ОЗУ – примерно 50 Кб
  • Кнопки перезагрузки и перепрошивки
  • И все это за пару баксов – шоколадка в микроэлеткронике, можно заказывать тоннами на Aliexpress

Подключение

Этот раздел будет посвящен разным схемам подключения. Проще всего в таких случаях сразу же глянуть первое попавшееся видео от зачетного автора. Вот, например, вот это:

В видео выше не только про то, как подключить, но и общую информацию о плате со всеми ее фичами и информацией по всем вариантам прошивок – обязательно посмотрите, о таком в одном месте никто и не пишет. При этом рабочая версия – NodeMCU.

Остальным же рекомендуется искать свою распиновку и документацию в официальных источниках. Схема распиновки на примере ESP8266 12E:

Есть несколько вариантов плат и несколько ревизий с разным расположением светодиода – копайте мануалы под свой вариант. Здесь лишь общая ознакомительная бесполезная информация.

Подключение к Arduino Nano:

Подключение к Arduino Uno:

Помните, Arduino использует 5В, а ESP8266 до 3,6 В. При соединении используйте резистивные делители, иначе есть риск спалить контроллер.

Не забываем, что сам «модуль» по сути является полноценным микроконтроллером со встроенной памятью. Т.е. при желании можно его запрограммировать через тот же USB-UART, а не использовать для этого подключение через отдельную плату. Тем более встроенной памяти хватит на хранение нескольких весомых библиотек.

Про программирование

Хоть модуль и является сторонним, извращаться с поиском всевозможных программ здесь не нужно. Базовая Arduino IDE все поддерживает из коробки, нужно лишь выбрать в списке нашу 8266 и уже будут доступны базовые программы, начиная от стандартного моргания диода через USB-UART (хеллоу ворлд епта, пример будет в видео ниже).

Про питание

Это прям начальная дилемма этой платы. Она требует 3,3 В и 300 мА. Та же Arduino Nano или просто USB-UART не вывозят такого тока – заранее нужно позаботиться о питании. Существующие варианты:

  • Покупка блока питания на 3,3 В – существуют такие, самый простой и скорее верный вариант.
  • Покупка модуля для понижения напряжения 5 В -> 3,3 В. Тоже доступно и удобно.
  • Самопальные сборки (на том же Хабре видел пример на базе регулятора AMS1117 и конденсатора 22 мкФ) – кто ищет, тот всегда найдет решение в любой непонятной ситуации. А для втянувшихся с головой в микроэлектронику подобные деяния просто мастхэв.

Платы со встроенным ESP8266

Вот основной список плат с уже встроенным ESP8266 и всем доступным для него функционалом:

NodeMCUWeMosArduino Uno WiFi

Последняя в списке Arduino Uni WiFi – это уже упоминаемый ТОП в платостроении. Именно на ней создают многие интересные проекты. И она как раз из коробки позволяет перепрошивать себя по воздуху (режима OTA – Firmware Over The Air). А вот и видеообзор этого чуда с характеристиками, подключением, базовым использованием:

 

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

Обзор модуля реле для ESP8266-01S – RobotChip

#include <ESP8266WiFi.h>                      // Подключаем библиотеку ESP8266WiFi

const char* ssid = «Название Вашей Сети»;     // Название Вашей WiFi сети

const char* password = «Пароль от вашей сети»;// Пароль от Вашей WiFi сети

 

#define RELAY 0                               // Пин к которому подключен датчик

WiFiServer server(80);                        // Указываем порт Web-сервера

void setup(){

  delay(2200);      

  Serial.begin(115200);                       // Скорость передачи 115200

  pinMode(RELAY,OUTPUT);                      // Указываем вывод RELAY как выход

  digitalWrite(RELAY, LOW);                   // Устанавливаем RELAY в LOW (0В)

  Serial.println();                           // Печать пустой строки

  Serial.print(«Connecting to «);             // Печать «Подключение к:»

  Serial.println(ssid);                       // Печать «Название Вашей WiFi сети»

  WiFi.begin(ssid, password);                 // Подключение к WiFi Сети

  while (WiFi.status() != WL_CONNECTED)       // Проверка подключения к WiFi сети

  {

    delay(500);                               // Пауза 500 мкс

    Serial.print(«.»);                        // Печать «.»

  }

  Serial.println(«»);                         // Печать пустой строки  

  Serial.println(«WiFi connected»);           // Печать «WiFi connected»

  server.begin();                             // Запуск сервера

  Serial.println(«Server started»);           // Печать «Server starte»

  Serial.print(«Use this URL to connect: «);  // Печать «Use this URL to connect:»

  Serial.print(WiFi.localIP());               // Печать выданого IP адресса          

}

void loop(){

   WiFiClient client = server.available();    // Получаем данные, посылаемые клиентом

  if (!client)                                

  {

    return;

  }

  Serial.println(«new client»);               // Отправка «new client»

  while(!client.available())                  // Пока есть соединение с клиентом

  {

    delay(1);                                 // пауза 1 мс

  }

 

  String request = client.readStringUntil(‘\r’);

  Serial.println(request);

  client.flush();

  int value = LOW;

  if (request.indexOf(«/RELAY=ON») != -1)  

  {

    Serial.println(«RELAY=ON»);

    digitalWrite(RELAY,LOW);

    value = LOW;

  }

  if (request.indexOf(«/RELAY=OFF») != -1)  

  {

    Serial.println(«RELAY=OFF»);

    digitalWrite(RELAY,HIGH);

    value = HIGH;

  }

 

  client.println(«HTTP/1.1 200 OK»);

  client.println(«Content-Type: text/html»);

  client.println(«»);

  client.println(«<!DOCTYPE HTML>»);

  client.println(«<html>»);

  client.println(«<head><title>ESP8266 RELAY Control</title></head>»);

  client.print(«Relay is now: «);

  if(value == HIGH)

  {

    client.print(«OFF»);

  }

  else

  {

    client.print(«ON»);

  }

  client.println(«<br><br>»);

  client.println(«Turn <a href=\»/RELAY=OFF\»>OFF</a> RELAY<br>»);

  client.println(«Turn <a href=\»/RELAY=ON\»>ON</a> RELAY<br>»);

    client.println(«</html>»);

  delay(1);

  Serial.println(«Client disonnected»);

  Serial.println(«»);

}

Подключение WiFi модуля ESP8266 Witty Cloud к 3D принтеру TEVO Tarantula I3

RuslanG

Загрузка

15.04.2017

21756

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Подписаться

21

Приветствую всех!

Меня уже давно будоражит мысль отвязать мой 3D принтер от USB кабеля и подключаться к принтеру по WiFi сети.

Оказалось это не так уж и трудно в наш век 😉

У меня получилось отвязать мой 3D принтер TEVO Tarantula I3, надеюсь что и остальные RepRap принтеры без труда можно сделать беспроводными.

Необходимые устройства и программы:

  • WiFi модуль ESP8266 Witty Cloud.

    Я выбрал модуль ESP8266 Witty Cloud за простоту его прошивки и подключения.

  • Провода с коннекторами.

    Чтобы ничего не паять.

  • Прошивка для WiFi модуля ESP3D v0.6.2

    Выбрал по нескольким причинам:

    — позволяет WiFi модулю работать как в режиме точки доступа, так и в режиме клиента.

    — имеет Web форму для настройки модуля и для управления принтером.

    — проект развивается.

  • Arduino IDE v1.6.8

    Почему именно эта версия? Потому что именно под нее протестирована и заточена последняя стабильная прошивка ESP3D.

  • Плагин ESP8266FS.

    Необходим для заливки файлов во внутреннюю файловую систему WiFi модуля.

Итак, начнем:

  • Скачиваем и устанавливаем Arduino IDE v 1.6.8 по ссылке https://www.arduino.cc/download_handler.php?f=/arduino-1.6.8-windows.exe
  • Запускаем Arduino и в настройках (меню: Файл -> Настройки) добавляем дополнительную ссылку для Менеджера плат: http://arduino.esp8266.com/stable/package_esp8266com_index.json

  • Устанавливаем расширение для поддержки WiFi модуля. Для этого запускаем Менеджер плат.
  • В окне менеджера плат выполняем поиск расширения ESP8266. Выбираем курсором мышки ‘esp8266 by ESP8266 Community’. И нажимаем кнопку ‘Установить’.
  • Подключаем WiFi модуль к компьютеру с помощью USB кабеля. Модуль состоит из двух частей: самого модуля и платы для прошивки модуля. Кабель нужно подключить в плату для прошивки модуля.
  • Ждем пока установятся драйвера платы Ch440. При установке можно увидеть номер последовательного порта. В моем случае устройство установилось на порт COM4. Запомним его. Далее эта информация нам пригодится.
    Если вы пропустили это окно, то номер порта можно посмотреть в Диспетчере устройств:
  • Открываем Arduino.
  • Скачиваем плагин ESP8266FS по ссылке https://github.com/esp8266/arduino-esp8266fs-plugin/releases/download/0.2.0/ESP8266FS-0.2.0.zip. Его нужно распаковать в папку ‘tools’, где находится установленная Arduino. По умолчанию: ‘c:Program Files (x86)Arduino ools’.
  • Перезапускаем Arduino.
  • Запускаем обновление файловой системы. Для этого выполняем команду ‘ESP8266 Sketch Data Upload‘ в меню ‘Инструменты’.
  • Долго ждем обновления файловой системы. В конце процесса обновления появится надпись ‘SPIFFS Image Uploaded‘.
  • Скачиваем и распаковываем прошивку для WiFi модуля ESP3D v0.6.2 по ссылке https://github.com/luc-github/ESP3D/archive/v0.6.2.zip.
  • Запускаем файл ‘esp8266.ino‘ из папки ‘esp8266’.
  • Проверяем скетч на ошибки.
  • Если ошибок не обнаружено, то запускаем процесс прошивки модуля.
  • После успешной прошивки можно сразу проверить работу WiFi модуля. Должна определяться беспроводная сеть ‘ESP8266’
  • Подключаемся к этой сети с паролем ‘12345678’.
  • Открываем ваш любимый браузер и в поле ссылки вводим ‘192.168.0.1’. Нажимаем Enter и радуемся. Появилась главная страница админки WiFi модуля.
  • Теперь можно настроить WiFi модуль для работы в режиме клиента, чтобы модуль подключался к вашему роутеру и был виден в вашей сети. Для этого нужно перейти на страницу ‘Station‘.
  • Откроется страница авторизации пользователя. Нужно ввести логин и пароль.

    Введите логин: ‘admin’ и пароль ‘admin’. Для авторизации нажмите кнопку ‘Apply‘.

  • Настройте параметры подключения к вашему роутеру. Выберите из списка ваш роутер, введите пароль к нему, задайте имя принтера (например, 3dPrinter), выберите протокол передачи данных (самый нижний — самый быстрый) и задайте IP адрес для подключения. IP адрес сейчас лучше задать статичным, для отладки. Он не должен совпадать с существующими IP устройств, подключенных к роутеру. Мне повезло, и такой адрес был не занят. 😀

    Нажмите кнопку ‘Apply’ для того чтобы применить изменения.

  • После того как WiFi модуль сохранит изменения и перезагрузится, он должен будет подключиться к вашему роутеру. Теперь мы в браузере вводим ‘192.168.1.246’ и должны увидеть ту же самую админку WiFi модуля.
  • С модулем разобрались, теперь самое легкое — подключить модуль к плате 3D принтера. В моем случае плата MKS Base v1.2.
  • Схема коммутации следующая:
  • WiFi модуль теперь нужно разделить на две части и дальше работать только с основной платой.
  • Берем заготовленные заранее проводки и соединяем согласно схеме коммутации.
  • Проверяем еще раз что мы все правильно соединили и включаем 3d принтер. Сначала принтер подключается к вашему роутеру.
  • После подключения принтер показывает IP адрес, по которому к нему можно подключаться.
  • Далее настраиваем вашу программу для печати по сети TCP/IP. Или заходим в Web админку на вкладку 3D Printer и выбираем файл д[IMG]ля отправки на принтер, по аналогии с SD картой. Функционал с записью на SD карту принтера не пробовал.
  • Для печати я использую программу Repetier-Host. Ее легко настроить для печати по сети.
  • Открываем программу Repetier-Host. Заходим в настройки принтера и на вкладке ‘Соединение’ задаем параметры нашего принтера, подключенного к сети.
  • Нажимаем кнопку ‘Ок’. И пробуем управлять 3D принтером.
  • Пробуем печать

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

Ну для первого раза очень даже радостно для меня 🙂

Буду также думать куда прикрепить этот модуль на принтере или в системном блоке?!

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Подписаться

21

Комментарии к статье

Еще больше интересных постов

Pasterrio

Загрузка

09.10.2020

1311

10

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Подписаться

День добрый.

На днях столкнулся с проблемой следующего характера: при перепрошивке моего Photon S у меня аппарат завис. А чем это обы…

Читать дальше

METALCLAYSTUDIO

Загрузка

09.10.2020

1669

7

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Подписаться

У меня в мастерской несколько 3D-принтеров, два из которых — московские MZ3D-360 от МЗТО, выпуска 2017 и 2018 годов. Рабочие машинки, с которых и начи…

Читать дальше

plastmaska

Загрузка

17.06.2016

480076

188

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы
будете
получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Подписаться

Всем привет!

Как уже анонсировал Серега, я начинаю публиковать цикл статей по сборке принтера Ultimaker своими руками. В статьях я ра…

Читать дальше

Модуль Wi-Fi реле на 1 канал esp8266 — обзор и подключение

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

Это модуль одноканального реле с интерфейсом WiFi выполнен на основе микросхемы ESP8266. Он контролирует работу реле посредством приложения. Идеальный инструмент, чтобы управлять всей бытовой техникой в ​​вашем доме с помощью телефона, где бы вы ни были.

  • Встроенный модуль WiFi с микросхемой ESP8266, работающий в режиме точки доступа, можно подключить к 5 ‑ и клиентам одновременно.
  • У модуля реле с WiFi два режима работы:
    • 1. Смартфон напрямую подключается к модулю WiFi;
    • 2. Смартфон и модуль WiFi подключены к одному маршрутизатору.
  • Дальность передачи: На открытом пространстве максимальная дальность передачи составляет 400 м в случае, когда смартфон напрямую подключается к модулю WiFi. Если модуль WiFi и подключены к одному маршрутизатору, дальность передачи зависит от силы сигнала маршрутизатора.
  • Встроенное реле на 1 канал с входным напряжением 5 В для выходных цепей 10, А, 250 В постоянного тока и 30 В постоянного тока, выдерживает до 100 000 срабатываний в непрерывном режиме, обладает малым временем срабатывания.

Блок-схема модуля представлена ​​на чертеже ниже:

1. WiFi-модуль ESP8266 имеет три режима работы:

  • STA (клиент)
  • AP (точка доступа)
  • STA + AP (точка доступа + клиент)

Режим WiFi модуля ESP8266 выбирается из выбора режима работы модуля реле.

2. Модуль настраивается посредством отладочной программы, предназначенной для работы через последовательный порт, через конвертер USB в TTL. Для модулей ESP-01 существует специальный программатор — USB-программатор Ch440G для ESP-01. Контакты TX, RX и GND конвертера подключаются к выводам RX, TX и GND модуля реле, выводы IN + и IN- — к источнику питания постоянного тока 3.3В.

3. Скорость передачи данных WiFi модуля может быть 115.200 или 9600 бод. Чтобы изменить скорость, вы можете использовать АТ ‑ команды, например: AT + CIOBAUD = 115200 . В общих случаях мы рекомендуем использовать скорость 115.200, но вам необходимо изменить скорость на 9600, если вы используете встроенное устройство для управления реле (так как скорость в модуле микроконтроллера STC15F104W составляет 9600 бод).

Запустите отладочную программу USR-TCP232-Test-V1.3 на ПК и отправьте следующие команды AT, одну за другой:

  • AT + CWMODE = 2 — выбираем режим точки доступа AP;
  • AT + RST — перезапускаем модуль;
  • AT + CIPMUX = 1 — устанавливаем несколько соединений;
  • AT + CIPSERVER = 1,8080 — настраиваем сервер TCP, устанавливаем номер порта;
  • AT + CIFSR — смотрим адрес IP для режима AP, примерно такой: APIP, «192.168.4.1 ”;
  • AT + CIOBAUD = 9600 — установить скорость передачи последовательного порта на 9600 бод.

Теперь подключаемся к точке доступа, созданной WiFi модулем, с помощью смартфона с ОС Android.

Установите приложение EasyTCP_20 (ссылка на Play Market) на смартфон с ОС Android и запустите его; нажмите кнопку «CONNECT» и введите адрес устройства (IP-адрес) и номер порта (Порт).

Нажимайте на блоки функций и вводите имена и содержимое команд, отправляемых через последовательный порт.Например, командой « A00101A2 » — можно задать открытие реле, а командой « A00100A1 » — закрытие реле.

Все команды должны задаваться в шестнадцатеричном виде.

Теперь, нажимая на блоки функций, вы можете команды на последовательный порт и таким образом расположенным на плате реле.

Запустите отладочную программу USR-TCP232-Test-V1.3 на ПК, отправьте следующие команды одну за другой:

  • AT + CWMODE = 1 — выбираем режим клиента STA;
  • AT + RST — перезапускаем модуль;
  • AT + CWJAP = , — позволяем модулю WiFi подключиться к маршрутизатору, например: AT + CWJAP = «LCTECH», «12345678» ;
  • AT + CIPMUX = 1 — устанавливаем несколько соединений; Например:
    AT + CIPSERVER = 1,8080 — настраиваем сервер TCP, устанавливаем номер порта;
  • AT + CIFSR — смотрим адрес IP для режима STA, примерно такой: STAIP, «192.168.1.103 ”;
  • AT + CIOBAUD = 9600 — установить скорость передачи последовательного порта на 9600 бод.

Теперь подключитесь со смартфона к вашему маршрутизатору.

Установите приложение EasyTCP_20 на смартфон с ОС Android (ссылка на Play Market) и запустите его; нажмите кнопку « CONNECT », введите в поле адрес IP (Адрес) модуля и номер порта (Порт).

Нажимайте на блоки функций и вводите имена и содержимое команд, отправляемых через последовательный порт.Например: A00101A2 — открытое реле, A00100A1 — закрытое реле. Команды должны быть написаны в шестнадцатеричный виде.

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

  1. После перезапуска, модуль с WiFi необходимо заново настроить. Если ваша прошивка написана на Arduino IDE, то минимальный набор необходимых при запуске команд можно поместить в функцию setup ()
  2. У модуля ESP8266 есть функция простоя; если смартфон не посылает команды на модуль WiFi в некотором периоде времени (по умолчанию — 180 с), то он переходит в режим ожидания и отключается от вашего смартфона.Для изменения этого периода вы можете отправить с ПК команду «AT + CIPSTO =» («время» может быть от 0 до 7200 сек), например: AT + CIPSTO = 3600 .
  3. Если модуль в ответ вместо « OK » отправляет команду, которую вы послали посредством программы USR-TCP232-Test-V1.3, то модуль необходимо настроить заново. Перед кнопкой команд вы можете нажать «ВВОД» (ENTER).
  4. Если ответа нет при работе через программу USR-TCP232-Test-V1.3, посмотрите на скорость при обмене с модулем — возможно, она настроена неверно.Вы можете попробовать 115200 или 9600, однако если для управления реле вы используете смартфон, то скорость обязательно должна быть 9600 бод (скорость можно изменить, отправив команду AT + CIOBAUD = 9600 ), поскольку скорость передачи встроенного микроконтроллера STC15F104W составляет 9600 бод.
  5. Если вы хотите использовать компьютер для управления реле напрямую (скорость передачи — 9600 бод), то можно сделать следующее: отсоедините модуль WiFi с микросхемой ESP8266; выводы TX, RX и GN от USB — TTL конвертера подключите к выводам TX, RX и GND модуля реле; выводы IN + и IN- подключите к источнику питания постоянного тока 5В.Отправьте команду на последовательный порт ( A00101A2 — открытое реле, A00100A1 — закрытое реле, команды должны быть в шестнадцатеричном виде) посредством отладочной программы, установленной на ПК, чтобы управлять реле.
  6. Ели реле не открывается или не закрывается, возможно, вам необходимо убрать резистор R4 и подключить вывод питания VCC от USB — TTL конвертера к 5V выводу модуля реле.

Статья подготовлена ​​по материалам www.hackster.io

.

Незаметный сниффер Wi-Fi пакетов на базе микроконтроллера ESP8266

Незаметный сниффер Wi-Fi пакетов на базе микроконтроллера ESP8266

Библиотека Arduino PCAP может оказаться очень полезной во время сниффинга

Автор: Коды

Обычно для сниффинга Wi-Fi-сетей нужен беспроводной сетевой адаптер. Однако благодаря библиотеке, написанной для Arduino, и дешевому чипу ESP8266, в некоторых случаях можно обойтись «малой кровью».Заплатив менее 10 долларов, можно смастерить крошечный Wi-Fi-сниффер на платформе Arduino, сохраняющий собранную информацию в файлах PCAP, совместимые с Wireshark, уместится практически где угодно.

Анализ пакетов Wi-Fi позволяет узнать многое о беспроводных сетях. Даже без знания пароля вы можете изучить различные близлежащие устройства, какие устройства, подключенные к какой сети, а также много другой информации, полезной для хакера. Однако вначале обычно требуется инвестировать средства в сетевой адаптер, предоставляющий больше контроля по сравнению с обычным адаптером, доступным на рынке.

Уже сломано много копий касательно выбора наилучшего беспроводного сетевого адаптера. Но если вам нужен простой сниффинг, скорее всего, можно обойтись дешевым программируемым микроконтроллером.

Микроконтроллер ESP8266

Микроконтроллер ESP8266 может быть запрограммирован в Arduino и интегрированным модулем Wi-Fi, который заметен по антенне, напечатанной на плате.Эти очень дешевые устройства часто используются производителями с дополнительными примочками, например, в виде USB портов для облегчения программирования. На рынке представленных устройств на базе контролеров ESP8266 мы всегда имеем дело с одним и тем же чипом в центре платы с диаграммой направленности антенны.

Одна из самых популярных макетных плат на базе ESP8266 — D1 Mini. Эти платы распространены среди нескольких производителей и по стоимости начинаются от 3 долларов.Также в этих устройствах есть пины для подключения к сенсорам и дисплеям. Количество выводов меньше, чем, например, на платформе NodeMCU, но и размер D1 Mini в два раза тоже меньше.

Вследствие производителей среди производителей для D1 Mini есть много «накладок», размещаемых друг над другом с целью расширения функциональности. Один из наиболее популярных модулей — для чтения и записи карты microSD.

Рисунок 1: Модуль для работы с картой microSD, подключенный к макетной плате

библиотека PCAP

Благодаря Стефану Кремзеру (Стефану Кремзеру), также известному под псевдонимом Spacehuhn, в нашем распоряжении есть библиотека для генерации PCAP-файлов, совместимых с Wireshark, которую можно загрузить в микроконтроллер ESP8266 в считанные минуты.Хотя по функциональности ESP8266 намного слабее многих беспроводных сетевых адаптеров, этот микроконтроллер вполне подходит для работы с пакетами Wi-Fi.

У микроконтроллера ESP8266 есть некоторые ограничения, а библиотека будет работать лучше на чуть более дорогом и мощном микроконтроллере серии ESP32. Однако из-за экономии приходится идти на компромиссы, поскольку на нашем устройстве D1 Mini есть модуль («накладка») для сбора данных, то есть мы вполне можем смириться с ограничениями.

Как только библиотека оказалась на микроконтроллере ESP8266, возможно будет скопировать собранные данные. Лучше всего — через последовательное подключение, позволяющее передать информацию с микроконтроллера на компьютер через последовательный порт. Конечно, было бы неплохо наблюдать в данных Wireshark, поступать с небольшого микроконтроллера в режиме реального времени, но мы будем собирать небольшое автономное устройство, сохраняющее собранный трафик на карте microSD.

Этот форм-фактор легко скрыть и использовать в тех местах, где списки MAC адресов, в пассивном Wi-Fi-сниффера, который может построение устройства на охватываемой территории в определенное период времени. Или в качестве анализатора для исследования сети и обнаружения у каких устройств к какой сети есть разрешение на подключение. Крошечный D1 Mini вы сможете спрятать практически где угодно.

Необходимое оборудование

Во-первых, нам понадобится устройство на базе микроконтроллера ESP8266 (например, NodeMCU или D1 Mini).Я настоятельно рекомендую D1 Mini, поскольку это устройство размером, позволяющее прикрепить модуль для SD карты.

Из названия уже понятно, что модуль («накладка») предназначен для сохранения собранной информации на карту microSD. Я рекомендую упомянутый ранее регистратор данных D1 Mini, который можно купить довольно дешево. Нам потребуется всего лишь припаять пины, а затем подключить модуль к устройству. Сборщик данных включает в себя часы реального времени, позволяющие записывать информацию с временными метками на любую правильно отформатированную карту microSD.

Также нам понадобится паяльник для припаивания штыревого разъема, идущим в комплекте с ним D1 Mini, в который будет вставляться модуль. Наконец, карта microSD должна быть отформатирована под файловую систему Fat32 (с Exfat работать не будет).

В итоге получается следующий перечень необходимого оборудования:

Также нужно установить бесплатную и кроссплатформенную среду Arduino IDE для создания прототипа, записи и загрузки скриптов на микроконтроллер (поддерживающий Arduino).

Шаг 1. Установка библиотек

Для успешной реализации потребуется установка библиотек. Микроконтроллер должен пакеты на карту microSD. Соответственно, нужны библиотеки для коммуникации с картой microSD и преобразования радио сигналов в данные, пригодные для чтения. Установить библиотеку в Arduino довольно просто. Кроме того, обычно доступны полезные примеры, которые можно адаптировать под наши потребности.

Откройте папку с именем Arduino, в среде Arduino IDE файлы проектов. Внутри должна быть папка с именем «Библиотеки», которая должна находиться внутри одной из папок, указанных ниже (в зависимости от операционной системы). После добавлении библиотека появится в меню Импорт библиотеки:

  • macOS: ~ / Документы / Arduino / библиотеки /
  • Windows: Мои документы \ Arduino \ библиотеки \

В терминале перейти в папку, где хранятся библиотеки, введите команду git clone для копирования репозитария Arduino PCAP, библиотеки времени Arduino и зависимостей для ESP8266.

  cd ~ / Documents / Arduino / libraries /  
  git clone https://github.com/spacehuhn/ArduinoPcap.git  
  git clone https://github.com/PaulStoffregen/Time.git  
  git clone https://github.com/esp8266/Arduino.git  

В этой папке проверяется присутствие библиотек во время каждого запуска Arduino IDE. Зайдите в меню «Sketch», затем в раздел «Включить библиотеку» и выберите «Управление библиотеками» для поиска нужной библиотеки.

Рисунок 2: Добавление библиотек

В появившемся окне можно найти и сразу загрузить библиотеку, популярные в сообществе. Например, библиотеке neopixel от Adafruit или библиотеке SdFat, специальной записи информации на карту microSD. Введите в поисковом поле «sdfat» и загрузите библиотеку, кликнув на «Установить». Теперь эту библиотеку можно использовать во всех проектах.

Рисунок 3: Установка библиотеки SdFat

Закройте и перезапустите Arduino IDE, чтобы все нужные библиотеки загрузились.

Шаг 2: Привязка оборудования

Теперь нужно показать Arduino IDE, с каким оборудованием мы работаем. Зайдите в меню «Arduino» и выберите «Preferences». Затем вставьте URL-адрес, указанным ниже, в поле URL-адреса диспетчера дополнительных плат и нажмите «OK». В списке должны появиться платы на базе микроконтроллера ESP8266.

http : // arduino . esp 8266. com / стабильный / пакет _ esp 8266 com _ index . json

Для добавления устройства D1 Mini, зайдите в меню «Инструменты» и поместите курсор мыши на раздел «Доска» со списком поддерживаемых плат. В самом верху кликните на «Boards Manager». Появится окно, где можно добавить дополнительные платы.

В появившемся окне Boards Manager в поисковом поле введите «esp8266». Затем выберите esp8266 by ESP8266 Community и установите выбранную плату для поддержки устройства D1 Mini в Arduino IDE.Возможно, поддержка этих устройств появилась после предыдущего шага, но нужно убедиться, что установлены все обновления.

Теперь должна появиться секция «Модули ESP8266» в разделе «Board». Выберите плату «WeMos D1 R2 & mini».

Рисунок 4: Выбор платы WeMos D1 R2 & mini

Шаг 3. Изменение настроек в коде

Для открытия тестового проекта зайдите в меню Arduino, нажмите на Файл -> Примеры -> Arduino Pcap.В этом файле должен быть проект с именем «esp8266_pcap_sd», используемый в качестве шаблона, который мы подправим и загрузим на устройство D1 Mini. Если вы хотите использовать более мощный микроконтроллер серии ESP32, нужно выполнить те же самые шаги и выбрать проект с префиксом ESP32.

Рисунок 5: Выбор проекта esp8266_pcap_sd

После открытия проекта вы раздел с настройками.

 // ===== НАСТРОЙКИ ===== // 
 #define  CHANNEL 1  
 #define  FILENAME "esp8266"  
 #define  SAVE_INTERVAL 30 // сохранять новый файл каждые 30 секунд  
 #define  CHANNEL_HOPPING true // если true, он будет сканировать по всем каналам  
 #define  MAX_CHANNEL 11 // (необходимо, только если channelHopping истинно)  
 #define  HOP_INTERVAL 214 // в мс (необходимо, только если channelHopping правда)  

Во-первых, нужно установить на устройстве канал для сниффинга.Наиболее часто используемые сетевые каналы: 1, 6 и 11. Устанавливаем канал 6.

 #define    КАНАЛ 6  

Далее нужно установить время ожидания перед сохранением файла на карту microSD. В устройстве D1 Mini не так много памяти, и поэтому установить сохранение каждые 30 секунд. Также можно указать имя сохраняемого файла. Если установить больший интервал ожидания, высокая вероятность, что память устройства переполненной.

 #define  FILENAME "esp8266"  
 #define  SAVE_INTERVAL 30 // сохранять новый файл каждые 30 секунд  

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

Если переключение между доступным, нужно на указатьивысший канал. В США Wi-Fi сети не используют каналы с номером выше 11, но в других странах используют.

 #define  CHANNEL_HOPPING false // если true, он будет сканировать по всем каналам  
 #define  MAX_CHANNEL 11 // (необходимо, только если channelHopping истинно)  

Если мы выбрали переключение между каналами, то можно снизить фрагментацию, установив параметр, идущего далее. При более высоком сниффинге одного канала будет проходить дольше, что уменьшит фрагментацию пакетов из выборок.

 #define  HOP_INTERVAL 214 // в мс (необходимо, только если channelHopping истинно)  

В итоге настройки должны выглядеть так:

 // ===== НАСТРОЙКИ ===== // 
 #define  CHANNEL 6  
 #define  FILENAME "nullbyte"  
 #define  SAVE_INTERVAL 30 // сохранять новый файл каждые 30 секунд  
 #define  CHANNEL_HOPPING false // если true, он будет сканировать по всем каналам  
 #define  MAX_CHANNEL 11 // (необходимо, только если channelHopping истинно)  
 #define  HOP_INTERVAL 214 // в мс (необходимо только если channelHopping правда)  

Шаг 4.Соединение устройства и модуля

Пришло время соединить аппаратную часть. Если вы покупали D1 Mini и модуль для сбора данных в интернет-магазине, нужно припаять пины (особого труда не составит). Штыревой разъем должен быть установлен так, как показано на рисунке ниже, чтобы не возникло проблем с подключением модуля:

Рисунок 6: Подключение регистратора данных в припаянный штыревой разъем на устройстве D1 Mini

Если вы не хотите заморачиваться с паянием и в тоже время хотите поддержать Spacehuhn, можно купить плату в специальном магазине.

Шаг 5: Загрузка проекта и сниффинг пакетов

Теперь пришло время собрать все воедино. Вначале вставляем карту microSD в модуль, подключаем USB кабель к компьютеру и устройству D1 mini. Затем заходим в меню «Инструменты» и далее в раздел «Порт». В списке должен быть уже выбранный последовательный порт. В противном случае этот порт нужно выбрать. Если нужный последовательный порт не отображается, скорее всего, не установлены корректные драйверы для USB интерфейса устройства D1 Mini.Соответственно, устанавливаетем нужные драйверы.

Как только все вопросы с последовательным портом решены, можно загрузить проект. Вначале нужно убедиться, что код скомпилирован без ошибок, кликнув на галочку в левом верхнем углу экрана. Затем кликните на иконку, находящуюся справа от галочки, для отправки кода на устройство D1 Mini.

Рисунок 7: Компиляция и загрузка проекта на устройство

После загрузки кода зайдите в меню «Инструменты» и раздел «Монитор последовательного порта» для проверки статуса устройства D1 Mini.Установленная скорость равной 115 200, обладает большей силой набор случайных символов.

Рисунок 8: Отслеживание статуса устройства

Если вы видите сообщение, как показано на рисунке ниже, все работает нормально. Теперь вы можете загрузить файлы PCAP на SD-карту. После окончания сбора информации отключаете устройство, вынимаете карту и анализируете полученную информацию на компьютере.

Благодаря маленькой батарейке в виде таблетки для запитывания часов и источника питания в виде кабеля Micro-USB, подключенного к компьютеру или адаптеру питания, для запитывания всего устройства, вы можете собирать информацию, пока есть место на карте.

Вместо порта питания через Micro-USB вы можете использовать батарейный аккумулятор в связке с модулем аккумуляторной батареи (или другую батарейную конструкцию) для запитывания устройства D1 Mini, но, поскольку подключение через Micro-USB все равно понадобится, появится риск возгорания. К тому же, батареи хватит ненадолго. Хотя есть одна интересная идея для экономии питания, связанная с использованием пассивного инфракрасного датчика движения, который будет активировать сбор информации с близлежащих устройств, пока в помещении находятся люди.

Заключение

Библиотека Arduino PCAP может оказаться очень полезной во время сниффинга, однако есть ограничения, отсутствием у микрокроллера ESP8266 возможности, которые есть в более мощных беспроводных сетевых адаптерах. Соответственно, высока вероятность порчи фреймов и пропуска пакетов по разным причинам.

Следует учитывать, что всегда будет несколько каналов, которые сниффер не могут прослушивать одновременно.Если вы собираете трафик Wi-Fi, переключаясь между каналами, будет фрагментация. Для снижения фрагментации нужно прослушивать только один канал.

.

Обзор модуля реле для ESP8266-01S — RobotChip

#include // Подключаем библиотеку ESP8266WiFi

const char * ssid = «Название Вашей Сети»; // Название Вашей сети WiFi

const char * password = «Пароль от вашей сети»; // Пароль от Вашей сети WiFi

#define RELAY 0 // Пин к которому подключен датчик

Сервер WiFiServer (80); // Указываем порт Web-сервера

void setup () {

delay (2200);

Серийный.begin (115200); // Скорость передачи 115200

pinMode (RELAY, OUTPUT); // Указываем вывод RELAY как выход

digitalWrite (RELAY, LOW); // Устанавливаем РЕЛЕ в НИЗКОЕ (0В)

Serial.println (); // Печать пустой строки

Serial.print («Подключение к»); // Печать «Подключение к:»

Serial.println (ssid); // Печать «Название Вашей WiFi сети»

WiFi.begin (ssid, пароль); // Подключение к Wi-Fi Сети

while (WiFi.status ()! = WL_CONNECTED) // Проверка подключения к Wi-Fi сети

{

delay (500); // Пауза 500 мкс

Serial.print («.»); // Печать «.»

}

Serial.println («»); // Печать пустой строки

Serial.println («WiFi подключен»); // Печать «WiFi подключен»

server.начать(); // Запуск сервера

Serial.println («Сервер запущен»); // Печать «Сервер запущен»

Serial.print («Используйте этот URL для подключения:»); // Печать «Используйте этот URL для подключения:»

Serial.print (WiFi.localIP ()); // Печать выданого IP-адресса

}

void loop () {

WiFiClient client = server.available (); // Получаем данные, полученные клиентом

если (! Клиент)

{

возврат;

}

Последовательный.println («новый клиент»); // Отправка «новый клиент»

while (! Client.available ()) // Пока есть соединение с клиентом

{

delay (1); // пауза 1 мс

}

String request = client.readStringUntil (‘\ r’);

Serial.println (запрос);

client.flush ();

int value = LOW;

if (request.indexOf («/ RELAY = ON»)! = -1)

{

Последовательный.println («РЕЛЕ = ВКЛ»);

digitalWrite (РЕЛЕ, НИЗКИЙ);

значение = НИЗКОЕ;

}

if (request.indexOf («/ RELAY = OFF»)! = -1)

{

Serial.println («RELAY = OFF»);

digitalWrite (РЕЛЕ, ВЫСОКИЙ);

значение = ВЫСОКОЕ;

}

client.println («HTTP / 1.1 200 OK»);

client.println («Content-Type: text / html»);

client.println («»);

клиент.println (««);

client.println (««);

client.println (« ESP8266 RELAY Control«);

client.print («Реле сейчас:»);

if (value == HIGH)

{

client.print («ВЫКЛ»);

}

else

{

client.print («ON»);

}

client.println («

»);

клиент.println («Отключить ВЫКЛЮЧИТЬ РЕЛЕ
«);

client.println («Включите RELAY
«);

client.println (««);

задержка (1);

Serial.println («Клиент отключен»);

Serial.println («»);

}

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *