Notice: Memcache::get(): Server localhost (tcp 11211) failed with: Connection refused (111) in /home/a146/www/we.easyelectronics.ru/engine/lib/external/DklabCache/Zend/Cache/Backend/Memcached.php on line 134
Очень короткое знакомство с WiFi модулем ESP8266 ESP-03 / Деталька / Сообщество EasyElectronics.ru

Очень короткое знакомство с WiFi модулем ESP8266 ESP-03

WiFi модуль ESP8266 ESP-03Знакомство действительно вышло очень коротким — буквально через несколько часов после его начала я по ошибке подал 5 Вольт на землю модуля, отчего он немедленно и бесповоротно сдох.

Тем не менее, уже первые результаты весьма радуют.

Во-первых, о том, что это за модуль, можно почитать тут, тут, тут ну и тут.

Есть несколько странное русскоязычное сообщество.

Документации немного, от слова совсем. Но что-то есть.

Что радует:

1) Это WiFi. Настоящий. Никаких «радио-удлинителей», никаких «удлинителей COM-порта» и прочих инфраструктурно угнетающих вещей. Подключился к WiFi роутеру (без которого уже как-то невозможно представить себе не то что приличный дом, а даже приличный телефон) и все — устройство управляемо из любой точки планеты.

2) Цена. Особенно до кризиса. В районе 3 (трех!) долларов. Это было 100 руб. Блин. Сейчас это уже 200 руб на ebay, но это дешевле Ардуины, это дешевле Ethernet Shield (порядка 500 руб) это не сильно дороже весьма причудливых модулей на базе ENC28J60 или «народной» NRF24L01 (которая стоит в два раза меньше, но их нужно минимум две!).

3) Заявлено рекордно низкое энергопотребление, в том числе позволяющее использовать модуль в устройствах, питающихся от батарей.

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

То есть потенциально все это очень интересно.

Что настораживает:

1) Если я правильно понял, это оригинальная китайская разработка. Хорошо это или нет сказать сложно, но каким образом малоизвестный разработчик смог создать продукт превосходящий разработки маститых брендов — я не понимаю.
Хотя все когда-нибудь случается первый раз.

2) Уже упомянутая скудность документации и отсутствие вменяемого даташита.

3) Некоторая небезглючность устройства.

В любом случае, было решено попробовать.

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

Выбор пал на вариант ESP-03 по следующим соображениям:
1) Есть встроенная керамическая антенна. Антенна — это как раз то, что я не готов подключать самостоятельно.
2) Выведено наибольшее количество ног. Будет возможность попробовать этими ногами чем-нибудь поуправлять.
3) Невысокая цена.

Верхняя сторонаИз минусов — у этого модуля шаг между контактными площадками не 2.5 мм, а 2.0. Поэтому я изначально планировал изготовить переходинк. Это не сильно напрягало, переходник требуется в любом случае, поскольку модуль принципиально работает от 3.3 Вольт, даже входы UART нетолерантны к 5 Вольт.

Поэтому было решено оснастить переходник линейным стабилизатором на базе моей любимой XC6206 (всей обвязки — два керамических конденсатора) и сопряжением уровней на две линии на полевых транзисторах (по ссылке см. раздел Интерфейс с последовательно включенным MOSFET транзистором).

Кроме того, принципиально вынес все контакты модуля на стандартную угловую гребенку по краю переходника. Пусть будет. Как потом оказалось — не зря.

Обычно, зная свою склонность втыкать провода не туда, куда нужно, я везде на автомате ставлю защиту от переплюсовки "идеальным диодом", а в переходник поставить забыл. За что и полатился в итоге :-(

Второй косяк с переходником выяснился после попытки выпаять из него жертву эксперимента в надежде на то, что пострадала не она, а сам переходник. Увы, это оказалось невозможно сделать, не отодрав от модуля все контакты. Правда паяльного фена у меня все еще нет, а прогревание газовой горелкой не помогло.

А это не совсем то, на что я рассчитывал. Я то думал поэкспериментировать с этим модулем в переходнике а потом перепаять его в какую-нибудь полезную поделку.

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

Теперь же собственно опыт использования.

Я подключал модуль к компьютеру через самодельный переходник USB-UART на базе cp2102. Питание на модуль (5 Вольт) брал с переходника — это фактически питание от USB порта компьютера.
Нижняя сторона

Поскольку для работы нога CH_PD — Chip enable — должна быть подключена к 3.3 Вольт, я просто соединил ее проводом с ногой 3.3.
В принципе, я заранее предусмотрел в переходнике возможность впаивания постоянной перемычки между CH_PD и 3V3, однако не впаивал ее.

Первоначально модуль повел себя странно.
Поскольку продавец в описании указал, что модуль работает по UART на скорости 115200/8/N/1 я выставил в терминале 115200 и получил мусор.
По вспышкам светодиодов на линиях UART и по терминалу было видно, что в момент соединения ног CH_PD и 3V3 модуль выдает какую-то информацию. Однако ни на скорости 115200, ни на какой другой из стандартного набора, она не читалась и модуль на дальнейшие команды не реагировал.

Однако гугление вот сюда подсказало решение — для запуска модуля ногу GPIO15 необходимо подтянуть к земле. Я просто соединил ее проводом с земляной ногой на постоянной основе.

Модуль статртовал на скорости… 96000.

Ладно, это уже легче.

Дальше я выполнял в основном действия по вот этому посту.

Примечание: команда «AT» нечувствительна к регистру (можно набирать маленькими буквами), все остальные — чувствительны.

Поменял скорость UART: AT+CIOBAUD=115200
Успешно.

Установил режим работы WiFi: AT+CWMODE=1

Посмотрел список доступных WiFi точек доступа: AT+CWLAP

Увидел. Вздохнул с облегчением — беспроводная связь есть.

Подключился к своему роутеру: AT+CWJAP="<SSID>","<PASSWORD>"

Получилось сразу же. Проще, чем настроить WiFi в телефоне.

У меня в квартире две WiFi точки доступа — одна рядом с входной дверью (Ethernet-роутер + WiFi), а вторая — за моим рабочим столом (это бывший ADSL-модем, он играет роль проводного хаба и WiFi точки достпа).

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

Что интересно.
Авторизация в WiFi сети запоминается где-то во внутренней памяти модуля и сохраняется даже после отключения питания. То есть только подаешь питание — а модуль уже и в сети зарегистрирован, и IP-адрес получить успел.
Причем происходит это все очень шустро. Субъективно — быстрее, чем у телефона.

Кстати, посмотреть полученный IP-адрес — AT+CIFSR

Осталось самое главное — дернуть какой-нибудь URL и получить ответ.
На практике это будет означать возможность передать информацию с устройства во внешний мир.

AT+CIPMODE=0 (режим двусторонней передачи данных)
AT+CIPMUX=1 (возможность иметь несколько соединний)
AT+CIPSTART=1,«TCP»,«64.233.161.106»,80 (открываем TCP/IP соединение с IP-адресом 64.233.161.106 по порту 80)
AT+CIPSEND=1,50
GET / HTTP/1.0
Host: www.google.com

(IP-адрес 64.233.161.106 — результат выполнения команды ping www.google.com)

Это фактически обычный HTTP GET-запрос.

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

Чтобы привести модуль в себя, его было достаточно перезагрузить кратковременно сняв 3.3 Вольта с ноги CH_PD.

При работе с собственным веб-сервером я успешно сделал несколько GET-запросов.

Замерял потребляемый ток. Точно померять не смог, потому что при подключении через мА-диапазон мультиметра модуль работать не захотел — начал опять выдавать мусор.

Что это было, я не понял.
Может быть, в момент старта модуль вышибал защиту мультиметра по току. Пришлось подключать через А-диапазон, получилось порядка 0.2-0.3 А, т.е. 200-300 мА, с понятно никакой точностью.

Однако в любом случае, для XC6206 это уже на пределе. Она то больше 200 мА выдавать не должна.

А дальше я попытался подключить модуль к Ардуине.
Причем поскольку «железный» UART Ардуины использовался для связи ее с компьютером, я подвесил ESP8266 на софтовый UART (библиотека SoftwareSerial) на 10-ый и 11-ый пины Ардуины.


#include <SoftwareSerial.h>

#define rxPin 10
#define txPin 11

SoftwareSerial esp(rxPin, txPin);

void writeESP(char* s) {
  esp.println(s);
}

void readESP() {
  while(esp.available()) Serial.write(esp.read());
}

void at(char* s) {
  Serial.print(s);
  Serial.print("> ");  
  writeESP(s);
  readESP();  
  Serial.println();  
}

void setup() {
  Serial.begin(115200);
  Serial.println(F("[ ESP8266 ]"));
 
  Serial.print(F("Connecting..."));
  esp.begin(115200);
  Serial.println(F("OK"));
  
  at("AT");
  at("AT+CWLAP");
  at("AT+CIFSR");
}

void loop() {
  if(esp.available()) Serial.write(esp.read());
}


И вот тут то ли софтовый UART не справлялся со скоростью 115200, то ли не стоило подключать питание через Ардуину, но нормально связаться с модулем через Ардуину мне уже не удалось — передача все время сбивалась на мусор.

А потом я для проверки и смены скорости ESP8266, начал переключать его между Ардуиной и переходником USB-UART, потом обратно, в результате чего переплюсовал питание и ESP8266 сгорел…
Файлы в топике: ESP8266.zip

Комментарии (73)

RSS свернуть / развернуть
3) Заявлено рекордно низкое энергопотребление, в том числе позволяющее использовать модуль в устройствах, питающихся от батарей.
Блажен, кто верует.
+2
Блажен, кто верует.

Ну, почему, запитать от батареи не проблема. А вот со временем работы проблемы действительно будут :)

Ни WiFi, ни стек протоколов уровнем выше изначально не проектировались под требования минимального энергопотребления. Поэтому я слабо верю в идею «интернета вещей» на основе WiFi. Особенно если учесть, что диапазоны частот под WiFi не резиновые, и уже сейчас в многоквартирном доме, у меня, добиться нормального качества от WiFi проблематично.
0
Кстати касательно проблем с «интернетом вещей» и энергопотреблением, недавно слышал от друга приблизительно следующую историю:

Заказчик: Вам нужно разработать прошивку для нашего «умного» WiFi унитаза и программу под Адндроид для управления унитазом

Исполнитель: ОК

Заказчик: Но у нас требовательные и далёкие от IT клиенты, поэтому все должно работать «из коробки», без необходимости конфигурации и т. д.

Исполнитель: Я сделаю функцию «автоматический поиск унитаза» через UDP броаткаст.

Заказчик: Ваша реализация «Найти унитаз -> Добавить в избранные унитазы» слишком сложна для наших клиентов. Пусть они сразу видят в приложении все доступные унитазы с интервалом обновления в 1 сек.

Исполнитель: ОК, но раз в секунду опрашивать все унитазы накладно, упадет время автономной работы унитаза от батареек.

Заказчик: Так надо, но вам не понять…

Исполнитель: Готово.

Заказчик: Интервал обновления в 1 сек – это много, были прецеденты, несколько заказчиков укакались … Давай период опроса в 10 мс.

Исполнитель: Нельзя так спамить броадкастами… Давайте пересмотрим архитектуру…

Заказчик: Ты что, слишком умный? Просто сделай сраный опрос через гребаные 10 мс.

Заказчик: Ой, а у нас тут проблемы с автономной работой, и под офисом стоит куча укаканых клиентов… И в глазах у них обида, а в руках – монтировка …
+2
Не-не, «интернет вещей» и работа от батареек — это две задачи достаточно перперндикулярные.
У нас большинство вещей пока от 220 Вольт работают, и проблема у них в первую очередь не с энергопотреблением, а с отсутствием канала передачи данных.

И собственно диапазонов то много не надо, если есть роутер в доме — ну вот все к нему и цепляются.
0
И собственно диапазонов то много не надо, если есть роутер в доме — ну вот все к нему и цепляются.
Это понятно. Но в своей квартире я ловлю от 5 до 10+ соседских точке доступа. Тобишь, свободных каналов нет, WiFi работает не стабильно (правда в 5ГГц ситуация пока лучше). Подозреваю, дальше будет все еще печальнее.
0
Если я понимаю правильно, несколько WiFi точек доступа на одном канале это не трагедия, т.к. они канал будут делить во времени.
Но вот если обе точки активно обмениваются информацией, то скорость упадет конечно.

Вот по ощущениям хорошая, но еще не до конца осознанная мной статья на эту тему — habrahabr.ru/post/149447/
0
Если я понимаю правильно, несколько WiFi точек доступа на одном канале это не трагедия, т.к. они канал будут делить во времени.

Да как-то так. На практике (несколько точек на одном канале, вечером, когда все придя с работы лезут в инет) это достаточно неприятно – сильно падает скорость, перманентные лаги и т. д.
0
Так для IoT то должно хватить :) То есть смотря конечно что делать. Но я рассматриваю чисто как канал для связи всех сенсоров/исполнителей в одну сеть. И для этого мне даже за… ного канала WiFi хватит, там принять/отправить-то несколько байт иногда надо всего.
Ну а для всякого стационарного медиа оставить по старинке гигабитный lan :)
+1
просто народ не в курсе что мощность передатчика можно (про то что нужно тем более) регулировать.
0
Да. Проблема в том, что все соседи должны договориться и снизить мощность. А это сделать (обойти соседей, рассказать зачем это нужно и т. д.) практически нереально. Если мошьность понижу только я – получится только хуже. Идеально вообще было бы договориться о «роуминге» (например, в одной из комнат уровень сигнала от соседской точки выше чем от моей, возможно у кого-то уровень моей точки выше чем собственной)…
0
Если мощность понижу только я – получится только хуже.
Отнюдь. Проверено.
0
Отнюдь. Проверено.
А как это должно сработать? Пусть я и сосед сидим на одном канале. Я «глушу» его, он меня. Я снижаю мощность – теперь я его «глушу» меньше, он меня так-же… Или есть какие-то особенности протокола?
0
Особенности распространения радиоволн: меньше интерференций и переотражений. Приемнику проще работать.
0
Wi-Fi N вроде ж любит переотражения — для передачи по нескольким пространственным потокам.
0
Так вроде или любит?
0
Для работы в MIMO-режиме с несколькими SS — наличие многолучевого приема необходимое условие. Для одноантенных решений — не знаю.
Впрочем, рекомендации снижения мощности действительно есть, с разными объяснениями. В том числе и по ссылке на хабр чуть выше.
0
Для использования 802.11 N MIMO нужна его поддержка в имеющемся железе и по несколько антенн (по 3, если быть точным) на каждом устройстве. Т.е. три «рогулины» на девайсе, или явное упоминание MIMO в ТТХ (если встроенные антенны).
0
Не обязательно три, от двух и больше. Только ты куда-то в сторону разговор уводишь.
Я игрался с мощностью, особых изменений в скорости и стабильности не заметил. Основное оборудование, скорость которого я оптимизирую, использует MIMO 3x2:2 или 2x2:2.
0
Я в сторону не увожу. Просто я и антенны, и техническую электродинамику, и распространение радиоволн изучал когда-то большими отдельными курсами. И для меня это несколько иная система понятий, подозреваю, нежели для тебя. Как MIMO работает в сложной помеховой обстановке (а ты смело валишь в одну кучу с технологией MIMO еще и интерференцию с посторонними сигналами) – это ты уж отдельно смотри и ковыряй сам.
0
Я, в общем, тоже изучал. Хотя и не уверен в качестве преподавания этой темы в нашем филиале.
а ты смело валишь в одну кучу с технологией MIMO еще и интерференцию с посторонними сигналами
Где это? Про посторонние сигналы я вообще ничего не говорил.
0
Wi-Fi N вроде ж любит переотражения — для передачи по нескольким пространственным потокам.
Я, возможно, слишком экстраполировал.

В сложной обстановке может дать преимущество даже отключение MIMO. Что до 2-антенных решений MIMO — плацебо. Апертуру в 3D по двум точкам не синтезировать никак. От слова совсем.
0
Глубоко в эти вопросы я не вдавался. Меня больше всего беспокоит стабильность связи — причем она, похоже, больше зависит от сочетания чипсетов (и версии винды), чем от радиообстановки.
0
5 ГГц
0
У нас когда GPON понаставили, то очень медленно и печально стало. Снизил мощность до минимума (у меня в Циске 3 уровня мощности: минимум, средний, максимум) – скорость подпрыгнула в 2 раза.
0
У меня сейчас рядом (!) на одной стене и на одном 6-ом канале висят GPON и старый Zyxel. И вроде ничего, не мешают друг другу. Правда c GPONа я данные пока не беру :-) Надо будет попробовать.
0
Я когда WiFi-анализатором обстановку посмотрел – ужаснулся. Рекомендую, кстати.
0
А я им уже и пользуюсь :-)
По сравнению с прошлым годом все стало куда плотнее…
0
Да, тоже его использую. Удобная прога. Благодаря этому анализатору я свой домашний 5GHz перекинул на другой канал и разошелся с соседом (благо нас только двое на пятерке). А вот на 2.4 мрак, правда на этом диапазоне с девятого этажа до улицы бьёт, я из машины иногда ловил его стоя под окном.
+1
Мог бы и ужасающую обстановку показать.
0
Вот старенький скриншот
0
OH SHI--
Еще и почти на каждом канале по сетке есть. Если верить статье — все друг другу мешают помехами, а не коллизиями.
0
Учитывая спред каналов, диапазон забит наглухо. И уменьшение мощности реально помогает в такой ситуации.
0
Потому и не мешают, раз на одном канале. Вот включить на разные — забьют друг друга шумами. Теоретически.
0
Спасибо! Первая действительно понятная и хорошая статья про этот модуль.
Я получил на неделе сабж, но времени нет, забросил в шкаф.
обрати внимание на версии 07 и 12:
1) модули заэкранированы
2) есть возможность запаять гребенку с шагом 2мм
3) на 07 можно подключить антенну
( не мой обзор этих модулей mysku.ru/blog/ebay/30626.html )
Цена отличается+-10 центов в зависимости от версии. Я брал за $2.90
0
  • avatar
  • woddy
  • 28 февраля 2015, 15:18
Да, чего-то я на 07 сразу не обратил внимания… Заказал :-)
0
Привет всем!
Что ж, и я добавлю, тоже не смог пройти мимо сих модулей.
Обзавелся 07 и 12 и уже (правда медленно) пару недель их ковыряю.
Вот тут писал об этом. Сюда копировать не буду, чтобы не плодить одну и ту же инфу. Если интересно, то прочитайте там, пожалуйста.

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

В принципе, могу что-то опровергнуть или подтвердить (что сам проверить успел).
Во-первых, модули довольно капризны по многим параметрам, потому подключать их следует именно так, как, например, я по ссылке выше описал.
То есть не оставлять в воздухе ни 1 ноги, все подтягивать. Причем не стоит подключать ни одну ногу прямиком ни к земле, ни к питанию, т.к. ноги могут в разных вариациях и на разных прошивках работать в разных режимах, и та же GPIO15 может включиться на выход, а если она у вас на землю жестко повешена, то просто выгорит.
В принципе, у меня модули заводятся с самым простым подключением: GPIO15 подтянуть на землю, CH_PD на 3.3 и RX|TX к переходнику на комп. Правда в таком режиме работает оно ну совсем не стабильно, но работает, если не трогать руками и не дышать :)

Питание опять же нужно модулю ровное и стабильное. Сам использую преобразователь на 1117-3.3. На самом деле у меня кучка куплена вот таких. Мелкие очень, места мало занимают, работу выполняют свою (не реклама).
Дополнительно по питанию еще электролит поставил да керамику…

Потребление, на самом деле вполне может превышать даже заявленные в документации mA. У меня подпрыгивало примерно до 270 mA. Точно не скажу — не помню. В среднем же модуль обычно кушал около 80 mA. Опять же по памяти. Я сильно с этим не заморачивался, просто померил — сравнил с ДШ и успокоился.В идеале рассчитывать на 300, а лучше с запасом на 350 mA — если проектировать для него питание/подбирать стабилизатор.

Далее, режим пониженного в модуле есть. На самом деле даже несколько вариантов оного есть.
Но в AT-прошивке только 1 самый простой присутствует: режим глубокого сна.
В него модуль переходит при подаче определенной команды на указанное в этой команде время. А через это время сам себя будит через GPIO16, если соединить его с ногой резета.
То есть по сути он сам себя сбрасывает через заданный отрезок времени. И если не подключить GPIO16 к резету, просто не проснется :)

Про работу через ардуино: софтового сериала на ардуино не хватает для нормальной работы с ESP, слишком скорость большая и мало ресурсов. Нормальной работы в таком режиме не получить.
Те, кому кровь из носу надо на ардуино с 1 хардварным UART использовать и ESP и подключение к ПК, делают наоборот: ESP подключают к хвардварному порту, а к ПК ардуино уже по софтварному вешают.
Ну и еще рекомендуется проверить, какие в библиотеках ардуино установлены буферы на UART на прием/передачу, и, возможно, увеличить их.
Я для тестов использую мегу, в ней 4 UART аппаратных, так что проблем нету, причем гоняю ее на 3.3 вольта, так что и согласовывать ничего не приходится :)

Что до прошивок, на данный момент есть такие самые распространенные варианты:
заводская на базе AT-команд
NodeMCUпрошивка, позволяющая загонять и использовать на ESP скрипты на языке lua
— ну и как вариант — народ пишет свои собственные прошивки на C/C++ — для этого все предпосылки есть, так как в таком случае можно избавиться (частично) от глючного кода Espressif и модуль действительно может превратиться в надежного самостоятельного исполнителя. Для примера можно глянуть вот такую вот сборку.
А так народ даже свой UDK делает, для разработки. Его тоже имеет смысл глянуть.

Если коротко: то прошивки. основанные полностью на коде от Espressif имеют множество багов (от нее же). И полагаться на них на 100% в качестве самостоятельного устройства — нельзя. Только если для домашних поделок.
Так что варианта два:
1) использовать дополнительно еще какой-либо МК в связке с ESP и просто рулить этой ESP с внешнего МК (по крайней мере хотя бы отслеживать ее зависание и перезагружать ее если зависнет)
2) писать свою прошивку, предварительно разобравшись в тонкостях работы и отказавшись по возможности от SDK Espressif
Я для себя пока остановился на 1 варианте. То есть использую ESP просто в качестве прозрачного WiFi моста для AVRки, через который оная общается уже с головным устройством.

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

Вооот… :)

PS: я на звание знатока не претендую, просто перечитал из того, что было, очень многое. Так что, если у кого вопросы какие — задавайте, постараюсь ответить на что смогу, или по крайней мере пошлю по ссылке подходящей.
+1
А комменты редактировать так и нельзя до сих пор, да? :) Что ж, добавлю ниже.

Очень советую для начала ознакомиться с этой вот документацией:
ESP8266_Module Application Design Guide.pdf
ESP8266_Beginners_Guide_V0.4.1.pdf
ESP8266_Specifications_v4.1.pdf
Для работы с AT-прошивкой:
4A-AT-Espressif AT Instruction Set_v0.21.pdf
4B-AT-Espressif AT Command Examples_v0.3.pdf
Для изучения SDK:
2C-SDK-Espressif IoT SDK Programming Guide_v0.9.5.pdf
Она вся есть тут.
Не густо, но общее какое-то понимание сложить можно и не наступить дальше на грабли, типа: «Почему-то при попытке померить встроенным ADC напряжение больше 1 вольта модуль перезагружается/зависает...» — а потому что такое ограничение у него: от 0 до 1 вольта, и в спецификациях это указано :)
Хотя и на 100% верить им не стоит конечно. В частности потребление максимальное указано в 215 mA в спецификациях, а на деле модуль может кушать больше.
0
Оффтоп но добрый совет. Знания должны дублироваться. Советую не лениться и писать на обоих ресурсах. Слишком много сайтов с полезной информацией просто исчезли за последние годы. Админ ли запил или женился, трамвай админа переехал, датацентр сгорел,… куча обстоятельств бывает. Сайт типа этого например зависит от одного человека. Не дай бог что с ним случится, ни базу не скачать, ни домен не продлить, ни хостинг не оплатить.
+1
Да уж, не дай Бог…
0
По совету добрых людей решил продублировать тут свое сообщение с esp форума. Целую тему для этого создавать вроде как смысла не имеет, так что в комментариях оставлю:

Имею и ESP-07 и ESP-12 по несколько штук. Все не проверял, ибо пришли в запаянных пакетиках, так что выбрал по 1 того и того. Брал на ali. У разных, емнип, продавцов. От ESP-01 чего-то сразу решил отказаться нафиг, почитав форум и интернет :)

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

Подключение использую стандартное:
— 3.3 вольта со стабилизатора на 1117 на VCC и GND
— дополнительно электролит и керамика по питанию
— ADC через 4,7кОм на землю
— GPIO15 через 10кОм на землю
— GPIO2, 0, 5, 4, 13, 12, 14 через 10кОм на +3.3
— GPIO16 через 10кОм на +3.3 и через 470Ом на REST
— CH_PD через 470Ом на +3.3
— RX, TX напрямую на arduino либо на USB-TTL (оба работают в режиме 3.3 вольта, поэтому без согласования, ну и земля еще общая)
(при перепрошивке: выключаю / GPIO0 перекидываю на землю / включаю / прошиваю / отключаю / возвращаю GPIO0 на +3.3 / включаю — profit)
Частично инфу брал с этой вот и других схем в интернете, частично додумывал сам по сообщениям тут на форуме (в частности от ув. pvvx) и по логике :) Если коротко, то подтягивать надо все и обязательно через резисторы, чтобы ненароком не попалить GPIO. Напрямую только само питание. Да RX|TX потому что уровни согласованы. Питание нужно подавать ровное/стабильное и с запасом по току.

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

Вот так это выглядит как-то тыц и тыц.

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

Итого: и 07 и 12 работают, шьются. Общаются с ПК как через USB-TTL (на CP-шке вроде) так и через arduino в режиме программного моста (в том смысле, что на arduino используется два UART порта и скрипт, пробрасывающий через них информацию прозрачно).
Тестирую пока на AT прошивках (на 07 залил последнюю бету).

Для себя написал пока программулину еще на delphi 7 (ужас, понимаю, но пока так), которую использую для тестирования стабильности передачи в прозрачном режиме: она отправляет разные объемы данных, принимает их и сравнивает. Выглядит как-то так. Если кому такое поделие нужно — пишите, выкину куда-нибудь.

В принципе стабильность работы для моих нужд достаточная (я собираюсь ESP использовать чисто как мост WiFi-UART). При большом размере пакета, либо если пакеты идут большим потоком, ESP конечно перезагружается, бывает. Но если иметь МК-мастер для контроля, который всегда даст ESPэшке по рогам, если та задурит, а последнюю использовать чисто как модуль связи — то норм. Да и пакеты я собираюсь передавать байт по 16-32. Ну еще 128 байт-пакетики будут, т.к. хочу еще прошивку головного МК (AVR-ки) через WiFi реализовать.
Как-то так.

Кстати, кто-нибудь пробовал внешнюю антенну подключать? У меня валяется антенна Wi-Fi, правда она сама все равно мелкая (внутренняя для ноутбука). Хотел попробовать с ней, но пока руки не дошли. Там же придется на модуле, как я понимаю, кондерчик отпаять, через который идет соединение с керамической набортной антенной. Так? Две антенны одновременно ведь нельзя же… Не силен я во всей этой приемо-передающей тематике :)
А так на встроенной керамической антенне 07 модули неплохо себя чувствуют вполне. В режиме WiFi AP телефон с ними общается по всей (3-х-к) квартире даже через 2 капитальные стены и в принципе еще и 3-юю уличную пробивает.
+2
ESP-07 получается теперь с выводом АЦП? Где на него футпринт найти?
0
Ну по ногам так 07 и 12 которые у меня — 1 в 1. И по размерам в общем-то почти тоже. 12 только чуть длиннее из-за антенны.
07 примерно 22 мм, а 12 — 24 мм. (Это не точно, линейкой быстро прикинул просто.)
По распиновке и принтам посмотрите тут (общее), тут и тут (eagle), тут (DipTrace).
Думаю, если пошерстить по форумам, можно и еще чего найти :)

Вы только на ADC-то не надейтесь сильно ;) Он не крут. Диапазон всего от 0 до 1 вольта. И WiFi на время измерения нужно отключать. Скорость измерения на форуме там тоже тестировали, но что-то так прямо не находится в лоб.
0
Печально. Значит не получится его везде использовать standalone
0
Ну, прибавлямс любой другой дешевый МК: AVR, STM, PIC — кому что нравится, и получамс то, что доктор прописал (заодно еще и контроль того, что ESP не зависла :)). Ну или на худой конец любой ADC внешний по I2C или SPI или любым другим удобным способом прикрутить. Да, обидно, что не на борту, ну что поделать…

Я для себя сразу решил его совместно с доп. МК использовать. Может где и попробую применить отдельно, но пока не вижу в этом особого смысла — это ж надо копаться в новом SDK, отлавливать заново все ошибки и т.п. А если применить свой проверенный и удобный МК — то проблема сразу снимается. И если потом вдруг этот ESP совсем отвалится (продавать перестанут, например), можно будет в своих поделках его на другой заменить (сейчас многие в эту степь ударились), переписать в проверенном коде на основном МК только часть, отвечающую за настройку связи и вперед.
0
Если кому интересно, протестировал (как мог) силу и дальность сигнала модуля ESP-07 на паре разных антенн. Результаты тут. (да-да, я помню, что лучше продублировать полностью, но пока не до этого, извините)
0
>> "Подключился к WiFi роутеру (без которого уже как-то невозможно представить себе не то что приличный дом, а даже приличный телефон)"
Оказывается, я живу уже «неприлично». Во всем доме никакого вайфая, радиоудлиннителей и пр. Все только витая пара 6 категории…
0
А в доме только вы? Извините, если вопрос личный :) Или это многоквартирка все же?
Если многоквартирка, то странно… У меня вот на 1 этаже (9-этажка на 7 подъездов) кроме своей вафли, WiFi анализатор на телефоне показывает от 5 до 10 соседских О_о Хотя живу вроде в глубинке…
И никуда от этого не деться, даже если захотеть :(

Но автор статьи конечно шуткой своей мог тронуть за живое :) Но, уверен, это всего лишь шутка, не принимайте на свой счет.
0
Никаких обид, живу в пятизтажке. Из-за того что имею только кабельное хозяйство, знать не знаю, у кого чего показывает. А за живое не тронул, то есть вообще…
0
У меня основная часть потребителей нуждается в беспроводном инете (ноут, планшет, телефоны). Потому, решил отказаться от проводов совсем. Недавно порезал даже кабель до десктопа. Витуха доходит до роутера и все. Вся домашняя сетка на WiFi. Удобно и для моих нужд достаточно. И жена довольна, что меньше лишних проводов:)
Хотя, конечно, у каждого свои потребности. Если много компов и надо именно гигабитный канал, то тогда кабель подешевле.
0
Ну это все-таки была шутка :-)

А если серьезно — то две недели назад МГТС добровольно-принудительно перевел меня на телефонию через оптику, на GPON. И это общемосковская программа.
А GPON — он же сразу и WiFi точка доступа. Так что у меня теперь в квартире ТРИ WiFi точки доступа и ДВА выхода в Интернет (МГТС дает 2 месяца тестового доступа по 300 Мбит по 30 руб за месяц, ну я и взял...)

Народ, кстати, ругается, что монтажники не отключают WiFi даже если человек заказывает только телефонию.

Так что скоро у всех владельцев проводных телефонов появиться WiFi маршрутизатор :-) Которым, скорее всего, можно пользоваться даже не покупая Интернет у МГТСа…

Ну и во многих смартфонах есть встроенная WiFi точка доступа.
0
Настоятельно рекомендую использовать прошивки с esp8266.ru от pvvx. Показали себя стабильно работающими и почти со всем возможным функционалом. Ну и не рассчитывать на низкое потребление в режиме сервера, все таки жрет он прилично.
+1
Потребление до 300mA — про USB питание можно забыть. Я использую LMR14006 + 3xAA (AAA). SDK вполне достаточно для меня
0
  • avatar
  • x893
  • 28 февраля 2015, 20:47
В каком смысле забыть? USB дает до 500 мА.
+1
Если usb устройство прикинется хабом
0
Просто сигнальные линии не трогать, и 90% оборудования отдаст 500-1000ма. Умное управление питанием редко где реализовано (а если быть честным пока ни разу не встретил)
+2
От материнки многое зависит… Многие современные материнки сами выдают по 1,5 ампера на USB. Понятно, что по стандарту оно конечно не так, но на деле так. Моя материнка как раз из таких (и не сильно и новая, несколько лет ей уже). Спокойно тянет такие вещи.
Хотя все же питаю по привычке не от USB — так спокойней :)

А по теме: может глупый вопрос, но зачем питать от USB вообще эту штуку?
По идее она же WiFi, как раз ее от компа убирать куда-то… Или имеется ввиду — во время отладки и тестов? Ну, тут я вообще считаю, что USB от ПК — плохая затея, можно мамку на ПК попалить неудачной поделкой своей :)
0
от компа во время отладки. а потом от зарядки стандартной
0
От компьютера только во время отладки и надо. Поэтому я сделал breakout в размер ESP-03, с нижней стороны DC-DC с LMR14006 и с торца header 2.54 — так как преобразователь на 600mА — он же на остальное работает.
И через коннектор к разным поделкам соединяется. Так как сам ESP тоже программируется — можно сразу соединять с периферией.
0
Не хабом — любое устройство может получить 5 юнитов питания, если попросит (это по стандарту — а реально ни разу не видел, чтобы эта часть реализовывалось, порт выдает полуампера и выше независимо от запросов — за исключением OTG-портов на мобильных устройствах).
0
Я от USB как раз питал — нормально работала. Да и не только ее приходилось приличными токами питать…
0
почему-то с поста поржал
а 01 у меня нормально работал и питалсы от быдлодуины, а она от усб
и 5в вроде перенес на входах

потом заказал белые большие платы со штырьками, это не номерные платы и пока очень редкие по 4 бакса были в ебее
номерные модули сасут

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

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

в пзу есть область памяти, где лежат настройки влан и поэтому они сохраняются независимо от прошивки
правда формат и диапазон адресов я не нашел и не нашел тулзы для перенестройки через загрузчик
0
в пзу есть область памяти, где лежат настройки влан и поэтому они сохраняются независимо от прошивки 
правда формат и диапазон адресов я не нашел и не нашел тулзы для перенестройки через загрузчик

А ничего и не надо искать, все уже найдено и легко перенастраивается.
0
а где об этом написано?
0
Топик Разработка ‘библиотеки’ малого webсервера на esp8266. является более качественным источником данных о чипе, чем китайская документация :) Особенно сами исходники прошивки webсервера.
+1
Спасибо за ссылку. Почитаем.
0
это не номерные платы и пока очень редкие по 4 бакса были в ебее
номерные модули сасут
Это что за не_номерные_модули, и почему номерные sucks?

мелкасхема эта пока тестовый образец и паялы являются бетатестерами
Откуда такая инфа?
0
номерные это епс-хх, а неномерная — большая белая плата со всеми контактами
из номерных годный только 12

а белый вот
www.ebay.de/itm/301445049284
0
Так это ж две штуки с антенной и разъемом под нее.
Вроде цена не выше?
0
ну да, 2 штуки за 7 евров
когда я брал вроде бы 8 стоили что ли или то в баксах было
0
из номерных годный только 12
Они все инвалидные, но esp-01 прекрасно подошел как мост tcp2uart. Пяток штук сунул в опытную эксплуатацию, пока нареканий не было. тьфу-тьфу
0
если тебе тупо мост надо, то пойдет и такой
только вот сам контроллер можно использовать и тогда выгодней иметь доступ ко всем выводам
а мой белый как раз имеет штырьки уже в отличии от остальных и все выводы наружу

насчет стабильности — контроллер сильно греется и бывает отваливается и требует хорошего питания, так что насчет батареечного питания там еще непонятно
впрочем сотню байт отправить раз в минуту он вполне может, а больше с него и не стоит требовать
хотя я 250кбит гнал со специальной прошивкой и все нормально
0
А чего с батареечным непонятно, народ уже тестировал, если работать чуть-чуть и слать чуть-чуть раз в пол часа-час данные, то на несколько месяцев человеку батареек хватало (остальное время Deep Sleep конечно).
0
… контроллер сильно греется и бывает отваливается ...
Греться могут из-за некорректной прошивки. Пока что заметили что например неправильная обработка прерываний от FIFO UART может вызывать Fatal Exception что приводит к перегреву.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.