FLProg
Категории раздела
Проекты пользователей [36]
Помощь начинающим [15]
Железо [1]
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика

Онлайн всего: 16
Гостей: 11
Пользователей: 5
aleks73, Aleks2158, denis_ka, vacz, nikmotorin60

Яндекс.Метрика
Четверг, 08.12.2016, 12:46
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Каталог статей
Главная » Статьи » Публикации » Помощь начинающим

ESP8266 - трудности первого контакта
В7 привет! Сегодня я решил создать небольшой туториал для начинающих ардуиншиков и флпрогеров, касающийся небезызвестного WiFi модуля ESP8266. Информации по этому девайсу в сети предостаточно, но первое знакомство с модулем не всегда доставляет положительные эмоции. И связано это с его капризным нравом. Но его можно обуздать и он вам подарит новые возможности о которых вы раньше даже и не мечтали!
Начнем по порядку. Для начала вам нужно выбрать сам модуль, если у вас его еще нет. И выбрать тут есть из чего. Вот описание и распиновка основных. На мой взгляд самые предпочтительные варианты это ESP8266 ESP-07  или  ESP8266 ESP-12  .Если модуля у вас еще нет и вы его хотите заказать например на #Aliexpress, то срезу же присмотрите еще некоторые девайсы, которые облегчат вам знакомство с ESP8266. Прежде всего советую посмотреть конвертор USB-TTL с возможностью выбора питания 5V и 3,3V  .(понадобится для прошивки вашей ESP). Вторая необходимая (на мой взгляд) вещь это преобразователь уровней 5-3.3V. Дело в том что ESP питается напряжением до 3.6V больше ни в коем случае не подавайте (гарантированно сгорит) и логика соответственно имеет уровень 3.3V и если вы захотите подключить ESP например к Arduino Uno то вам придется решать вопрос с согласованием их логических уровней. на мой взгляд, самое простое решение. Хотя для экспериментов можно подключать напрямую, но для стабильной работы в готовом проекте согласование, на мой взгляд, необходимо.  Ну раз уж я обмолвился о питании, то хочу заметить, что этот модуль очень прожорлив и капризен! Питание должно быть стабилизированным не более 3.6V, модуль потребляет ток до 300мА(!!!). В качестве питания я использую  линейный преобразователь напряжения LM1117 3.3V.
Ну вот, теперь когда у вас уже все есть для первого старта, начнем… Начнем с того, что обеспечим наш ESP стабильным питание. Если вы выбрали  линейный преобразователь напряжения LM1117 3.3V. , то во-первых посоветую подавать на него не больше 5V, можно конечно и больше, но он будет сильнее греться и может вызвать нестабильную работу ESP, и во вторых советую поставить между +3.3v и GND ESP-шки конденсатор 0.1мкФ, это тоже избавит от неожиданных приколов. С питанием разобрались, казалось бы модуль готов к работе, но не тут то было. Для того, чтобы модуль начал что-нить вещать в эфир нужно найти на своем модуле пин с названием CH_DP и подать туда +3.3V через резистор 10кОм, если в вашем модуле есть пин GPIO15, то соединить его с GND, опять же через резистор в 10кОм. Ну и на всякий случай подтягиваем RESET к +3.3V, при помощи все того-же 10кОм резистора. Ну вот теперь наш модуль готов для первого запуска. Подайте питание включить ноутбук, телефон или планшет в режим поиска WiFi сети. Если ваш девайс запеленговал точку доступа примерно с таким названием «AI-THINKER_AXXXXC», значит у вас все получилось и вы можете использовать ESP8266 в своих проектах совместно с какой-нибудь ардуинкой. Ну а если нет, то не расстраивайтесь, просто придется немного больше повозиться. Для начла проверьте схему соединений, возможно ошибка там, посмотрите не греется ли модуль и линейный стабилизатор. Если с этим все в порядке, тогда идем дальше. 
Вам понадобиться конвертор USB-TTL и программа-терминал последовательного порта. Если у вас нет ни того ни другого, то отчаиваться все равно еще рано! Вместо USB-TTL конвертора можно использовать например Arduino Uno, у него этот конвертор уже встроен. Но тогда появиться проблема в согласовании TTL уровней (помним что в UNO - 5V, а в ESP8266 – 3,3!!!). Но не буду вас пугать, все будет работать и бес согласования уровней, но нужно помнить, что это должно быть только временным решением проблемы.
Теперь о подключении ESP8266 к вашему компу. Если у вас USB-TTL конвертор, то для начала выберите на нем перемычкой уровень 3,3V. Соедините RX на конвертере с TX на ESP8266, ну и соответственно TX USB-TTL конвертора с RX на ESP8266. Несмотря на то, что у вас на конвертере может быть выход 3,3V, я вам крайне не рекомендую его использовать для питания ESP8266. Используйте внешний источник питания. Это сэкономит вам время и нервы. Только не забудьте соединить GND на двух платах!!!
Подключение через Arduino Uno ничем не сложнее, единственно отличие – соединяем RX-RX, TX-TX. Питание ESP8266 лучше взять отдельно, ну и естественно GND в кучу!
Теперь нужно запустить программу-терминал, если у вас ее нет то я советую взять вот эту ESPlorer.
Запускаем наш терминал, подключаем наш TTL-USB конвертор (или UNO) к компьютеру, убеждаемся что у вас что-то появилось на новом COM порту. В программе-терминале выбираем Serial port  с вашим девайсом и пробуем получить конект, путем нажатия на кнопку OPEN в терминале. В окне терминала должна появиться надпись
PORT OPEN 115200
 
Communication with MCU...

Если точки после этой надписи продолжают бежать и конекта не происходит, попробуйте на ESP8266 кратковременно замкнуть RESET на GND, это перезагрузит модуль. Если в окне терминала появились какие-то крякозяблы, то это уже неплохо! Нажмите на кнопку CLOSE, поменяйте скорость с 115200 например на 57600  и повторите соединение со всеми вытекающими манипуляциями. Перебирайте скорости пока в окне терминала не увидите нормальные английские буквы)) Идеально если вы увидите слово READY. Если вам повезло и вы увидели сообщение о том что модуль готов, то можете смело слать в него AT команды.
Но при моем первом знакомстве с ESP8266 все было не так идеально… После нескольких удачных соединений по несколько минут, модуль уходил в забастовку на неопределенной срок и не подавал признаков жизни, при этом жутко грелся. Если честно, в тот момент я уж было чуть не сложил руки…  Если вы такие же “счастливчики”, как и я, то могу сказать, что у меня проблема решилась после замены прошивки.
Стандартная прошивка, которая идет «в коробке» позволяет общаться с ESP8266 через UART при помощи AT команд. Это позволяет соединив ESP и Arduino организовать связь по «воздуху» между несколькими контроллерами ну или использовать Web браузер для управления вашим контроллером. Очень советую посмотреть видео урок на эту тему от многоуважаемого с моей стороны (думаю и не только с моей) автора проекта FLProg. Но хочу вас предупредить – на этом возможности ESP8266 не заканчиваются. Т.к. на его борту есть полноценный контроллер, причем с довольно неплохими характеристиками, то ESP можно использовать и без Arduino и заливать скетчи напрямую в него. Но эта тема выходит за рамки данного туториала. Если вам будет интересно как использовать Arduino IDE для работы с ESP, пишите в комментариях, по возможности напишу о своих первых шагах в этой теме. И может быть, когда-нибудь, многоуважаемый автор FLProg Сергей Глушенко, добавить ESP8266 в список контроллеров, которые можно будет программировать из его прекрасной программы.
Ну а теперь перейдем к прошивке. Из всех модулей. которые я покупал в Китае, ни один не пришел с нормальной прошивкой в коробке. О стабильной работе модуля можно было мечтать. Надеюсь вам повезет больше чем мне и многие не дочитают этот туториал до конца и найдут решение проблем, которые может подкинуть этот модуль. Если же вы, все таки, видите, что модуль работает нестабильно, (не всегда соединяется с терминалом, сильно греется, или пропадет из списка доступных точек доступа) я советую вам сменить стандартную прошивку. Тем более, что процедура эта не очень сложная и у вас уже есть практически все, что потребуется. Для начала нужно скачать прошивку. Я выбираю вот эту. Она, конечно, не самая последняя, но зато работает стабильно. Теперь нужно скачать утилиту, при помощи которой будем заливать прошивку. Их великое множество, но я пользуюсь вот этойПоэтому процесс заливки буду описывать по ней. Распаковываем, запускаем. Теперь обратите внимание, в программе есть 7 строчек с указанием пути к файлам с прошивками. Вам нужно снять все галки, кроме второго пункта. Теперь нажимаем на многоточие и в открывшимся проводнике указываем путь к файлу с вашей новой прошивкой. Обратите внимание, что почти все новые прошивки надо записывать начиная с адреса 0х0000. Именно этот адрес вы видите во второй строчке после слова OFFSET . Ну что же, почти все готово… Осталось только взять наш ESP8266 найти в нем пин GPIO0 и повесить его на GND. Именно так загрузчик в контроллере ESP узнает о том, что нужно не выполнять залитую в него программу, а смотреть в UART. Подключаем наш ESP к компьютеру при помощи USB-TTL (ну или Arduino), выбираем СОМ порт на котором оказалось наше соединение (не забываем закрыть все терминальные программы, которые могут обратиться к этому же порту), нажимаем на кнопку START ждем несколько минут и смотрим в окно терминала программы за ходом прошивки. После успешной заливки не забываем снять перемычку между GPIO0 и GND. Ну вот и все! Все танцы с бубном закончены! Кстати, не забывайте о том, что все не использованные в вашем проекте GPIO было бы неплохо подтянуть к +3.3V, для этого подойдут резисторы с номиналом от 4.7кОм до 50кОм.
P.S. Надеюсь этот туториал кому-нибудь пригодиться и сэкономит время и нервы))
 
Категория: Помощь начинающим | Добавил: bulldozzer (01.03.2016)
Просмотров: 2853 | Комментарии: 4 | Теги: ESP8266 | Рейтинг: 5.0/1
Всего комментариев: 4
avatar
0
1
У самого есть пару таких модулей, но пока руки не дойдут их использовать.
Но может кому пригодится ссылка Проект умного модуля на базе ESP8266
Там есть ссылка на  Конструктор прошивок под богатый спектр датчиков и других внешних устройств, с передачей данных на разные сервисы.
К стати на этом сайте вообще много чего интересного есть biggrin
avatar
0
2
Все верно. Прошивка, указанная здесь, рабочая. Но у нее скорость по умолчанию 115200, с этой скоростью ардуина не справляется. Для блока RemoutXY я изменил на скорость 19200 и все заработало. Подробности здесь:http://flprog.ru/forum/18-901-1.
avatar
0
3
Я для пробы купил ESP8266 (ESP-01). Собрал небольшую отладочную плату для экспериментов на макетке с металлизированными дырками, поставил туда минимальную ардуину (UNO). Модуль подключил к плате через 8pin-колодку и к ATMega328 через 4-х канальный преобразователь уровней 5 ↔ 3.3 (2 канала остались висеть свободными). Преобразователь уровней сделал съемным для подключения в эту колодку китайского USB-TTL UART адаптора-шнура на чипе PL2303HX для прошивки UNO (нажимая в этот момент кнопку RESET)

ФОТО:


Запитал ESP-01 через LM1117 3.3V, а его в свою очередь и ATMega328P 5-ти вольтовым стабилизатором типа 78L05 в корпусе TO-220. Всю плату питаю через сетевой 9-ти вольтовый БП от радиотелефона. «AI-THINKER_AXXXXC» появилось в эфире сразу, но c родной прошивкой (v0.40) ничего не получалось: на планшете в приложении RemoteXY появлялась ошибка: "Socket create error: failed to connect to/192.168.4.1 (port 6377): connect failed: ECONNREFUSED (Connecttion refused)" обновил прошивку до AT version:1.0.0.0(Apr 16 2016 13:02:45) SDK version:1.5.3(aec24ac9) и только потом прочитал, что надо установить скорость  19200, установил, планшет стал видеть его через WiFi как RemoteXY, но всё равно не конектится.
Прошил AT ver: 0.21.0.0 SDK ver: 0.9.5 - не пошло (модуль потреблял 140 мА). И только после этого прочел эту статью. Установил AT ver: 0.40.0.0 SDK ver: 1.3.0 из статьи автора проекта (модуль потребляет 90 мА), заработало. Единственное, что пока не победил - каждый раз надо нажимать RESET на ATMega328 после включения.
Максимальная температура чипа 8266 достигает 65°С после часа непрерывного коннекта.
avatar
0
4
Подключил ESP-12  по этой  схеме через адаптер USB-TTL CP2104 с алиэкспресса. На моем экземпляре адаптера поменял местами DTR и RTS иначе GPIO0 не притягивался к нулю, а это нужно для старта в режиме прошивки ЕСП. Прошивал так- во flash download tool выставил параметры по рекомендации к файлу прошивки, затем нажал старт и вручную сбросил модуль (замкнул резет на минус, т.к. RTS нога переходника не срабатывала). Прошивка прошла на ура с первого раза.
Да, и ещё кое что, в настройках драйвера включил аппаратное управление потоком.
avatar
FLProg © 2016
Яндекс.Метрика