Микроконтроллер esp8266: область применения и подключение

Wi-Fi модули ESP8266 и AVR микроконтроллер

Предлагаю сегодня познакомиться с новинкой радиолюбительской техники – WiFi модулем ESP8266. Он представляет собой что-то наподобие уже давно всем знакомого NRF24L01, но по размерам чуть меньше и немного другой функционал.

WiFi модуль имеет как свои неоспоримые достоинства, так и некоторые недостатки, последнее как раз скорее всего отчасти связано с тем, что это новинка и разработчики весьма странным способом подошли к этому – информация распространяется очень туго (документация дает лишь общие представления о модулях, не раскрывая их полный функционал). Ну что же, будем ждать снисхождения компании предоставившей “железо”.

Особо стоит отметить стоимость модуля: на текущий момент она составляет 3-4$ (например на AliExpress)

Справа NRF, слева ESP модуль.

Что конкретнее представляет собой эти WiFi модули? На плате расположена сама микросхема WiFi, помимо того в этом же корпусе имеется микроконтроллер 8051, который можно программировать, обходясь без отдельного микроконтроллера, но об этом в другой раз, далее на плате расположена микросхема EEPROM памяти, необходимая для сохранения настроек, также на плате модуля имеется вся минимально необходимая обвязка – кварцевый резонатор, конденсаторы, бонусом индикация светодиодами напряжения питания и передачи (приема) информации. Модуль реализует интерфейс только UART, хотя возможности микросхемы WiFi позволяют использовать и другие интерфейсы. Печатным проводником на плате сделана антенна WiFi необходимой конфигурации. Самая большая деталь – это разъем 4 х 2 штырька. 

Распиновка WiFi модуля ESP8266:

Для подключения в схему этого модуль нужно подключить питание на VCC и GND, на TX и RX соответствующие вывода UART принимающего устройства (помните, что RX соединяется с TX, а TX с RX) и CH_PD (типа чип энэбл, без него все горит, но ничего не работает) на плюс питания.

Параметры модуля ESP8266:

  • напряжение питания 3,3 В (причем сам то модуль терпит 5 В, но выводы ввода – вывода откажутся работать скорее всего)
  • ток до 215 мА в режиме передачи
  • ток до 62 мА во время приема
  • 802.11 b/g/n протокол
  • +20.5dBm мощность в режиме 802.11b 
  • SDIO (два вывода присутствуют на плате модуля, но ими особо нельзя пользоваться кроме как для служебных операций)
  • режимы сохранения энергии и сна для экономии энергии
  • встроенный микроконтроллер
  • управление по средством AT-команд 
  • температура функционирования от -40 до +125 градусов Цельсия
  • максимальная дистанция связи 100 метров

Как было указано, модулем можно управлять посредством AT-команд, однако их полный список не известен, самое необходимое представлено ниже:

 #  Команда Описание
 1     AT  Просто тестовая команда, при нормальном состоянии модуль ответит OK
 2  AT+RST  Перезагрузка модуля, после введения команды выдаст лог перезагрузки в конце и ответ ready 
 3  AT+GMR   Проверка версии прошивки модуля, ответом будет версия и ответ OK
 4  AT+CWMODE=  Задать режим работы модуля mode: 1 – клиент, 2 – точка доступа, 3 – совмещенный режим, ответ OK 
 5  AT+CWLAP  Получить список точек доступа, к которым можно подключиться, ответ список точек и OK
 6  AT+CWJAP=,   Присоединиться к точке доступа, задав ее имя и пароль, ответ OK
 7  AT+CWQAP  Отключиться от точки доступа, ответ OK
 8  AT+CWSAP=,,,  Установить точку доступа самого модуля, задав ее параметры, ответ OK
 9  AT+CWLIF  Получить список присоединенных устройств
 10  AT+CIPSTATUS   Получить текущий статус TCP соединения
 11  AT+CIPSTART Для одного соединения (+CIPMUX=0):  AT+CIPSTART=,,  Для мульти соединения (+CIPMUX=1): AT+CIPSTART=,,,  Соединение TCP/UDP — идентификатор соединения — тип соединения: TCP или UDP — адрес IP или URL— порт
 12  AT+CIPMODE=   Установить режим передачи:  = 0 — not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента)  = 1 — data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента)
 13  AT+CIPSEND Для одного соединения (+CIPMUX=0):  AT+CIPSEND=  Для мульти соединения (+CIPMUX=1): AT+CIPSTART=,  Отправить данные  — идентификатор соединения  — количество отправляемых данных Передаваемые данные отправляются после ответа модулем символа > , после ввода команды
 14  AT+CIPCLOSE Для одного соединения (+CIPMUX=0):  AT+CIPCLOSE  Для мульти соединения (+CIPMUX=1): AT+CIPCLOSE=  Закрыть соединение.  Параметр для мультипоточного режима — идентификатор соединения. Ответом модуля должно быть OK и unlink 
 15  AT+CIFSR  Получить IP модуля
 16  AT+CIPMUX=   Задать количество соединений,  =0 для одного соединения,  =1 для мультипоточного соединения (до четырех подключений)
 17  AT+CIPSERVER=  ,    Поднять порт.  – режим скрытности (0 – скрыт, 1 – открыт),  – порт 
 18  AT+CIPSTO=  Установить время одного соединения на сервере
 19  AT+CIOBAUD=  Для версий прошивки от 0.92 можно задать скорость UART
 20  Прием информации   Данные принимаются с преамбулой +IPD, после которой следует информация о принятых данных, а потом сама информацияДля одного соединения (+CIPMUX=0): +IPD,:Для мульти соединения (+CIPMUX=1): +IPD,,:Пример: +IPD,0,1:x – принят 1 байт информации

Как вводятся команды: 

  • Выполнение команды: .
  • Просмотреть статус по команде: ?
  • Выполнить команду с заданием параметров: =

При покупке модуля можно проверить версию прошивки модуля через команду AT+GMR. Версию прошивки можно обновить при помощи отдельного софта или при версии прошивки от 0.92 это можно делать только при помощи команды AT+CIUPDATE. При этом модуль нужно соединить с роутером для доступа к интернету.

Прошивка и программа для прошивки модуля до версии 0,92 будет предоставлена в конце статьи. Для прошивки через софт необходимо вывод GPIO0 подсоединить к плюсу питания. Это включит режим обновления модуля. Далее выбрать файл прошивки модуля в программе и соединиться с модулем WiFi, обновление прошивки пойдет автоматически после соединения.

После обновления последующие обновления прошивки возможны будут только через интернет.

Теперь, зная организацию команд модуля WiFi, на его основе можно организовать передачу информации по средством беспроводной связи, в чем, я считаю, их основное назначение. Для этого мы будем использовать микроконтроллер AVR Atmega8 в качестве устройства, которое управляется через беспроводной модуль. Схема устройства:

Суть схемы будет заключаться в следующем. Термодатчиком DS18B20 измеряется температура, обрабатывается микроконтроллером и передается по WiFi сети с небольшим промежутком по времени.

При этом контроллер следит за получаемыми данными по WiFi, при получении символа 'а' загорится светодиод LED1, при получении символа 'b' светодиод потухнет.

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

Микроконтроллер тактируется от внешнего кварцевого генератора на 16 МГц с обвязкой конденсаторами на 18 пФ. Резистор R1 подтягивает ножку микроконтроллера reset к плюсу питания для исключения самопроизвольного перазапуска микроконтроллера при наличии каких-либо помех.

Резистор R2 выполняет функцию ограничения тока через светодиод, чтобы не сгорел ни он, ни вывод МК. Эту цепочку можно заменить, например, на цепь реле и использовать схему для дистанционного управления. Резистор R3 необходим для работы термометра по шине 1-Wire.

Схему нужно питать от достаточно мощного источника, так как пиковое потребления WiFi модуля может доходить до 300 мА. В этом, наверное, и кроется главный недостаток модуля – большое потребление. Такая схема от батареек долго может не проработать. При подаче питания на схему во время ее инициализации светодиод должен 5 раз моргнуть, что будет свидетельствовать об успешном открытии порта и предыдущих операциях (после включения схемы по нажатию кнопки ресет светодиод может моргать по 2 раза – это нормально).

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

Схема собиралась и отлаживалась на макетной плате, термометр DS18B20 используется в формате “зонда” с металлическим колпачком:

Для “общения” с такой схемой можно использовать как стандартный WiFi контроллер компьютера, так и построить схему приемопередатчика при помощи USB-UART преобразователя и еще одного модуля ESP8266:

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

Итак, для обмена информацией с микроконтроллером по WiFi будем использовать второй модуль, подключенный к компьютеру и терминал Termite.

Перед началом работы со схемой каждый модуль нужно подключить через USB-UART и проделать несколько операций – настроить режим работы, создать точку подключения и подключиться к точке, к которой в последующем будем подключаться для обмена информацией, AT командой узнать IP адрес модулей WiFi (необходимо будет для подключения модулей друг к другу и обмена информацией). Все эти настройки сохранятся и будут автоматически применяться при каждом включении модуля. Таким образом можно сэкономить немного памяти микроконтроллера на командах подготовки модуля к работе. 

Модули работают в совмещенном режиме, то есть могут быть как клиентом, так и точкой доступа. Если по настройкам модуль уже работает в этом режиме (AT+CWMODE=3), то при повторной попытке настроить в этот же режим модуль выдаст ответ “no change”. Чтобы настройки вступили в силу нужно перезапустить модуль или ввести команду AT+RST.

После аналогичных настроек второго модуля в списке доступных точек появится наша точка под названием “ATmega”:

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

На другой стороне модуль также подключим к роутеру и соединимся с микроконтроллером через TCP (как показано на скриншоте, для этого нужно настроить режим передачи и количество соединений командами AT+CIPMODE и AT+CIPMUX соответственно и ввести команду на соединение с сервером AT+CIPSTART).

Все! Если подключиться к точке доступа (WiFi точка только, к серверу нужно переподключаться каждый раз, ровно также каждый раз сервер нужно поднимать на другом конце каждый раз при включении питания) и перезапустить модуль, то надобности самостоятельно еще раз присоединяться нет, это тоже сохраняется в памяти и автоматически подключается при доступности при включении модуля. Удобно, однако.

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

Командой AT+CIPSEND мы отправляем данные, при приеме данных появится сообщение “+IPD,,:” после двоеточия идет наша полезная (передаваемая) информация, которую нужно использовать.

Одно НО – желательно модуль питать не от батареек, а от стационарного питания розетки (естественно через блок питания) из-за большого потребления модулей.

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

Читайте также:  Ардуино левитация горшка с карликовым деревом

Функционал задействован самый очевидный этих модулей, кто знает, что там еще разработчики приготовили для нас!

Для программирования микроконтроллера нужно использовать следующую комбинацию фьюз битов:

В заключении хочется отметить, что это действительно революция интернет вещей! При цене модуля в несколько зеленых единиц, мы имеем полноценный Wi-Fi модуль с огромными возможностями (которые пока что ограничивают разработчики сего чуда), область применения просто не ограничена – везде, где позволит фантазия, а учитывая тот факт, что в этом модуле уже присутствует микроконтроллер, отпадает надобность в использовании внешнего микроконтроллера, однако который нужно как-то программировать. Так что, друзья, вот такое дело – даем Wi-Fi каждой розетке!

К статье прилагается прошивка для микроконтроллера, исходный код в программе AVRStudio4, документация на микросхему модуля Wi-Fi, программа для обновления прошивки модуля и прошивка модуля версии 0,92 (архив разбит на 3 части, потому что общий размер его слишком велик, чтобы приложить к статье), а также видео, демонстрирующее работу схемы (на видео управляемая плата, соединенная по WiFi с управляющим модулем, управляемая плата периодически передает информацию о температуре, при погружении термометра в воду на видео видно, что температура начинает падать, далее если передать символ “а” от управляющего модуля, на управляемой плате загорится светодиод, а если символ “b”, то он потухнет).

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

Скачать список элементов (PDF)

Прикрепленные файлы:

Источник: http://cxem.net/mc/mc337.php

Автоматическая система контроля насосов — необычное решение необычной задачи с микроконтроллером ESP8266. Часть 2. Воплощение в железе

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

И если это время превышает заранее установленный порог, просто отключать насосы. Но то задумка, которую необходимо было реализовать в реальном проекте. Для ее реализации, мне требовалось создать как программное, так и аппаратное обеспе́чение. Собственно, о последнем и пойдет речь в этой части статьи.

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

Реле

В обычной бытовой электропроводке принято использовать автоматы, ограничивающие нагрузку по току, в калибре 16А для розеток и 10А для освещения.

Для более мощных потребителей, таких как электроплиты или нагреватели, могут применяться автоматы с током отсечки 25А и выше.

Но, а для двух насосов у меня используется одна, выделенная фаза, с автоматом как раз на 16А, что соответствует по мощности и насосам и проводке, идущей на них.

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

Проблема подгорающих контактов

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

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

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

Отключение контактов реле при переходе через 0

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

Но применение подобной схемы несколько проблематично, если речь идет о мощном асинхронном двигателе, нагрузке индукционной, да еще и с мощным конденсатором. Более того, с механическим реле, доступном для простого обывателя, ловить 0 и переключать контакты — задача бесперспективная.

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

А на большие нагрузки его еще и поискать нужно, да и греться твердотельное реле под серьёзной нагрузкой будет как паровой утюг.

Использование более мощного по номиналу реле

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

1 кВт от сети 220 В во время устоявшейся работы, то с учетом переходных процессов во время запуска двигателя можно считать, что для него требуется реле с номинальным током коммутации порядка 10А. А если брать с запасом, то лучше использовать реле, рассчитанное на нагрузку в 20, а еще лучше 30А.

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

Применение различных «гасителей» перенапряжения

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

Что дает дополнительный шанс на появление хорошей такой электрической дуги между контактами электромеханического реле.

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

Готовая плата снаббера для защиты реле от перенапряжений вызванных индуктивной нагрузкой.

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

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

Правда механика применяется уже не для компенсации электрических помех, а для нивелирования сейсмического воздействия на здания и сооружения.

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

До определенного уровня напряжения варистор ведет себя практически как изолятор, его сопротивление чрезвычайно велико.

Но как только напряжение превышает определенный порог, то его сопротивление падает, и он становится проводником.

Варистор 7N391K

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

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

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

Сам варистор при этом, в большинстве случаев, благополучно выходит из строя, не влияя на работоспособность защищаемого устройства.

Что в остатке?

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

Сборка реле с гальванической развязкой на базе Songle SLA-12VDC-SL-C 30А

Для защиты реле я использую варисторы. Поскольку коммутация у меня будет происходить всего одной фазы переменного тока, то я использовал варисторы 391, хотя можно применить и 491. Отличаются они по напряжению срабатывания, 390 и 430В соответственно. Энергия поглощения варистора порядка 30-33 Дж, чего должно быть вполне достаточно для успокоения остатков энергии в насосах.

Модификация платы реле FC-75. Добавлен резистор вместо отключенного, к выходам реле подключен варистор.

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

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

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

Коммутация реле

Поскольку реле достаточно мощное, то для его работы требуется напряжение питания в 12V. Конечно, оно срабатывает и при более низком напряжении, но работа в таком режиме будет нестабильной.

Плата же управления, имеющая гальваническую развязку от нагрузки посредством оптрона, работает с управляющим напряжением в диапазоне от 12V и до 5V. Но вот беда. Рабочее напряжение WeMos D1 R2 Mini Pro составляет всего 3.3V.

Да и по силе тока, требуемой для активации реле, параметры портов WeMos (и соответственно ESP8266) находятся на грани.

В таком случае управлять платой управления реле с микроконтроллера можно только при помощи внешнего ключа: транзистора или маломощного реле.

Самый простой способ управления подобной нагрузкой — использование транзистора. С его помощью можно небольшим напряжением и малой силой тока коммутировать подачу более высокого напряжения с большей силой тока от внешнего источника на вход управления платы реле.

Подключение транзистора

Для подобной схемы управления может быть применена широкая номенклатура NPN-транзисторов, например, BC547BTA или BC337-40. Однако следует учитывать, что управление тут будет инверсированным.

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

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

Поэтому я пошел немного другим путем. Известно, что плата управления реле имеет гальваническую развязку между нагрузкой и входом управления.

Читайте также:  Выбираем язык программирования исходя из требований к проекту

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

Гальваническая развязка построена на основе оптопары, ток на которой определяется по старинке, при помощи токоограничивающего резистора.

Модификация реле, штатный SMD резистор отключен проволочкой.

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

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

А диод, насколько мы помним, прибор токовый, поэтому на напряжение ему, по большому счету, все равно (хотя с оригинальным резистором от 3.3V он и не запускался).

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

Элементы питания

Полученную схему стоит как-то питать от сети переменного тока. В качестве опорного элемента у меня выступает преобразователь на 12V и 3Вт от Hi-Link. Для управления электромеханическим реле как раз и требуется 12V, для сенсоров напряжения можно использовать напряжение в широком диапазоне, начиная от 12V и заканчивая 3.3V, а для платы WeMos можно использовать либо 5V либо 3.3V.

Преобразователь Hi-Link на 12V и 3 Вт

Запитать WeMos, напрямую от преобразователя на 12V нельзя, требуется еще раз понизить напряжение до 5V или же напрямую до 3.3V.

Кстати, питание на платы WeMos можно подавать не только через USB-разъем, но и через соответствующие пины на плате.

Схемотехника позволяет безболезненно использовать прямые подключения, минуя стабилизаторы на плате. Более того цифровые пины у WeMos вполне толерантны к 5V напряжению.

Таким образом, при разработке схемы питания, я оказался перед некоторой дилеммой: использовать два напряжения в схеме 12V + 3.3V, либо остановиться на варианте с тремя напряжениями 12V + 5V + 3.3V.

Ради одного элемента, а его я упомяну в конце настоящей части, я все же остановился на варианте с тремя напряжениями в схеме и для получения напряжения 5V применил настраиваемый DC-DC стабилизатор на основе микросхемы LM2596S.

DC-DC преобразователь на основе LM2596S и регулятором выходного напряжения

Подобная схема показала себя не очень здо́рово в проекте по подключению видеорегистратора к бортовой сети автомобиля.

Step-Down преобразователь отлично переваривал все напряжения, что возникали в сети, но в ту же сеть отправлял слишком уж много помех, что негативно сказывалось на качестве радиоприема и отображения картинки на экране магнитолы.

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

Сенсоры напряжения

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

Схема детектора напряжения переменного тока

Автор схемы объясняет общее наличие компонентов как дополнительный обвес, который позволит избавиться от преждевременного выхода всей схемы из строя. Ну и, конечно же, обязательно наличие гальванической развязки между низковольтной и высоковольтной частями.

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

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

Одна из реализаций сенсора сетевого напряжения 220V.

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

R1: 100R -> 100 Ом ¼ Вт резистор R2: 470K ¼ Вт резистор R3: 1K ¼ Вт резистор R4: 100K ¼ Вт резистор C1: 100nF/250V = 0.1 мкф конденсатор металлопленочный C2: 220uF/16V = 220 мкф конденсатор электролитический D1: 1n4007 диод выпрямительный ZD1: 5V1/0.5W стабилитрон/диод Зенера напряжение 5.1V мощность 0.5V

PC1: PC817B оптопара

Источник: http://blog.kvv213.com/2017/05/avtomaticheskaya-sistema-kontrolya-nasosov-neoby-chnoe-reshenie-neoby-chnoj-zadachi-s-mikrokontrollerom-esp8266-chast-2-voploshhenie-v-zheleze/

Макетирование и программирование платы ESP-01 с помощью Arduino IDE

Новый микроконтроллер привлек внимание профессиональных разработчиков и любителей, и он может стать потенциальным лидером в интернете вещей.

Микросхема под названием “ESP8266” представляет собой 32-битный RISC процессор со всеми свистелками и перделками, которые вы могли бы ожидать от полнофункционального микроконтроллера, но это еще не всё.

ESP8266 также включает в себя встроенную схему Wi-Fi 802.11 b/g/n, которая готова к непосредственному подключению к антенне.

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

ESP8266 в настоящее время доступен только в 32-выводном корпусе QFN, в данном семействе присутствует только одна микросхема. Разработчик, Espressif, Шанхай, Китай, решил в полной мере использовать эффективность масштабного производства и предложить одну микросхему, которая подходит для использования в различных сборках печатных плат.

В настоящее время существует более десятка печатных плат модулей ESP, которые отличаются в основном типом антенн и количеством доступных входов/выходов. Из-за QFN корпуса ESP8266, большинство любителей довольны этим решением, тем более, что рыночные цены начинаются с менее 5 долларов США за модель младшего класса, получившей название ESP-01 и изображенной ниже.

Модуль ESP-01 (вид сверху и снизу)

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

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

В настоящее время многие DIY проекты работают в режиме «проб и ошибок», но есть много поставщиков, которые продают платформы разработки и другие аксессуары. Однако, как вы увидите ниже в этой статье, запустить ESP8266 на макетной плате совсем не трудно.

Варианты программирования

От поставщика многие (возможно, все) модули ESP8266 загружаются с прошивкой “AT” и могут программироваться через простую программу консоли. Если вы используете модуль в первую очередь для использования его Wi-Fi возможностей и управления им с помощью другого микроконтроллера, это может быть всё, что вам нужно.

Более сложный вариант доступен от NodeLua, который предлагает прошивку с открытым исходным кодом на основе языка программирования Lua. NodeLua всё еще находится в разработке, но уже содержит обширные возможности. Другие варианты включают в себя Python, BASIC и Arduino IDE, которая представлена в данной статье.

Входы и выходы ESP-01

Модуль ESP-01 содержит микроконтроллер ESP8266 и чип флэш-памяти.

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

Wi-Fi антенна – это дорожка на печатной плате на верхней части модуля; она носит название MIFA-антенна (Meandered Inverted-F Antenna), и, на удивление, она эффективна и только слегка направлена.

Расположение выводов модуля ESP-01

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

Обычно на задней части модуля установлены два 4-пиновых разъема, которые припаяны сверху.

Это делает входы/выходы доступными, но не очень подходящими для макетной платы, и требует перемычек между ESP-01 и макетной платой. Альтернативный способ размещения разъемов показан ниже.

Размещение разъемов модуля ESP-01

Разъем на передней части печатной платы использует стандартные прямоугольные выводы без каких-либо изменений.

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

Этот способ позволяет вставлять ESP-01 в беспаечную макетную плату в вертикальном положении над центральным зазором платы и делает все восемь контактов независимыми.

Собираем всё вместе

На приведенной ниже схеме показаны соединения, необходимые для ESP-01, а на фотографиях показан завершенный макет на беспаечной макетной плате. Цвета проводов на схеме соответствуют цветам проводов на фотографиях.

Соберите макет, как показано на рисунке, но не подключайте кабель USB-TTL конвертера к компьютеру, пока не установите перемычку на плате конвертера в положение 3,3В, и дважды перепроверьте правильность всех соединений. Использование 5В для питания ESP-01 может вывести модуль из строя, после чего тот не будет подлежать ремонту.

Более надежная схема прошивки приведена в этой статье.

Схема подключения модуля ESP-01 к компьютеруМакет подключения модуля ESP-01 к компьютеру (вид сверху)Макет подключения модуля ESP-01 к компьютеру (вид спереди)Макет подключения модуля ESP-01 к компьютеру (вид сзади)

Для сборки макета вам может понадобиться дополнительная информация:

  • USB-TTL конвертер, показанный на фотографиях, использует UART микросхему FTDI232 и хорошо работает с операционными системами Windows, Mac и Linux. Он также предоставляет напряжение 3,3В для питания ESP-01. Убедитесь, что перемычка на печатной плате преобразователя установлена в положение 3,3В; что обеспечит как напряжение питания 3,3В, так и правильное напряжение на линии TxD. Использование более высокого напряжения может повредить ESP-01.
  • Независимо от того, какой USB-TTL конвертер вы решите использовать, он должен быть проверен перед использованием с ESP-01. Драйвера устройств на FTDI можно найти на сайте FTDI.
  • Величина тока, необходимого для ESP-01 во время работы Wi-Fi, варьируется от 250 мА до 750 мА. Ток, поставляемый USB-TTL преобразователем, должен быть достаточным для программирования ESP-01, но может оказаться недостаточным для длительного использования. Лучшим выбором является стабилизированный источник постоянного напряжения 3,3В, рассчитанный на ток 1 А и выше.
  • Выводы DTR и CTS USB-TTL конвертера остаются неподключенными.
  • Два коммутатора на схеме – это нормально разомкнутые однополюсные кнопки.
  • Одним из расхождений в доступных источниках информации об ESP-01 является то, должен ли CH_PD быть подключен к +3,3В напрямую или через подтягивающий резистор 10 кОм. Автор протестировал оба способа, и оба они работают. После того, как вы собрали и проверили схему, как показано здесь (с CH_PD, подключенным к +3,3В напрямую), попробуйте использовать подключение через резистор 10 кОм. Если схема работает с подтягивающим резистором 10 кОм, то оставьте его в схеме.

Как видите на приведенных выше фотографиях, использование свободных проводов от USB-TTL конвертера не оптимально.

Лучшим вариантом является замена шести загнутых выводов разъема конвертера на шесть прямых выводов на нижней части печатной платы.

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

Альтернативная сборка макета подключения ESP-01 к компьютеру

Читайте также:  Reset для esp8266: когда необходим и способы реализации

Включение питания

Перед подключением USB-TTL конвертера к компьютеру убедитесь, что перемычка выбора напряжения находится в положении 3,3В, и что все провода в макете установлены правильно и надежно.

Затем подключите USB кабель; красный светодиод на ESP-01 должен загореться и продолжать гореть, а синий светодиод должен мигать каждый раз, когда между ESP-01 и компьютером происходит обмен данными. Затем проверьте кнопку сброса, нажав и удерживая ее.

Посмотрите на ESP-01, когда вы отпустите кнопку, синий светодиод должен мигнуть два раза. Если всё прошло хорошо, отключите схему от компьютера и перейдите к следующему разделу.

Arduino IDE

Для использования совместно с ESP8266 рекомендуется использовать Arduino IDE версии 1.6.5. Если у вас более ранняя версия, то можете попробовать и её или обновить IDE до версии 1.6.5.

  • Как только у вас будет установлена подходящая версия Arduino IDE, запустите программу, перейдите в меню File (Файл) → Preferences (Настройки) и найдите в диалоговом окне поле ввода Additional Board Manager URLs (Дополнительные ссылки для Менеджера плат). Введите следующий URL точно, как он написан, и нажмите OK:
    • http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Затем нажмите Tools (Инструменты) → Board Manager (Менеджер плат) и прокрутите список вниз, чтобы найти “esp8266 by ESP8266 Community“. Выберите эту запись и нажмите кнопку Install (Установка); загрузка и установка начнутся и будут продолжаться несколько минут. Пока дополнение устанавливается, взгляните на поддерживаемые платформы. В дополнение к базовому модулю ESP826 обеспечивается поддержка NodeMCU, Huzzah и SweetPea. К тому моменту, когда вы будете читать данную статью, этот список возможно расширится.
  • Когда установка закончится, нажмите кнопку Close (Закрыть).
  • Теперь нажмите Tools (Инструменты), перейдите в список плат и выберите “Generic ESP8266 Module“.
  • Снова нажмите Tools (Инструменты) и убедитесь, что выбран Generic ESP8266 Module.
  • Нажмите File (Файл), Examples (Примеры) и прокрутите список вниз, пока не дойдете до ESP8266WiFi, а затем выберите WiFiScan. После этого должно будет открыться новое окно IDE со кодом примера WiFiScan.

Снова подключите схему к компьютеру и убедитесь, что на ESP-01 горит красный светодиод. Нажмите Tools (Инструменты), Port (Порт) и выберите порт, к которому подключен ESP-01. Наконец, вы готовы запрограммировать ESP-01.

Нажмите и удерживайте кнопку Reset, а затем нажмите и удерживайте кнопку Flash. Отпустите кнопку Reset и, удерживая нажатой кнопку Flash, нажмите кнопку со стрелкой Загрузка в Arduino IDE.

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

Скомпилированный код будет отправлен в ESP-01; когда отправка будет завершена, на ESP-01 замигает синий светодиод.

Чтобы посмотреть результаты всех этих нажатий и выбираний, нажмите Tools (Инструменты), Serial Monitor (Монитор порта) и установите скорость передачи в правом нижнем углу окна монитора порта на 115200. Если у вас более ранняя версия ESP-01 (возможно на синей печатной плате), скорость передачи данных, скорее всего, равна 9600.

ESP-01 должен сканировать Wi-Fi сети и сообщать о результатах в окне монитора порта, как показано на примере ниже.

Результаты сканирования Wi-Fi сетей модулем ESP-01

Среди сообщений вы должны увидеть свою собственную сеть и все остальные сети, которые сумел поймать ESP-01. Числа в скобках показывают уровень сигнала сети (обратите внимание, что эти числа отрицательные; следовательно, уровень сигнала -41 выше, чем -92).

Двери открыты

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

Оригинал статьи:

ESP-12E WiFi модуль (ESP8266)

WiFi модуль ESP-12E разработан компанией Ai-thinker и построен на базе процессора с ядром ESP8266, отличительной особенностью которого является наличие радиоинтерфейса WiFi. Ядро ESP8266 интегрировано в Tensilica L106 – 32-битный микроконтроллер с ультранизким энергопотреблением. Поддержка тактовых частот 80 и 160 МГц, поддержка RTOS, встроенные Wi-Fi MAC/BB/RF/PA/LNA, микрополосковая…

USB-UART конвертер USB-TTL 3.3/5В (FT232RL FTDI)

USB-UART конвертер USB-TTL на FTDI FT232RL.

USB-UART конвертер на чипе FTDI FT232RL – адаптер для для программирования отладочных плат, в том числе модулей ESP на микросхеме ESP8266, а также подключения устройств, имеющих интерфейс UART к компьютеру. Помимо стандартных линий – RX, TX, DTR, на плате в виде разъемов под пайку выведено множество дополнительных, позволяющих использовать дополнительные…

ESP-01 Wi-Fi модуль (ESP8266)

Wi-Fi модуль на базе однокристальной системы (SoC) ESP8266. По сравнению с другими модулями имеет небольшие размеры и ULP технологию. Модуль специально сконструирован для создания мобильных устройств и интернета вещей (IoT).

Источник: https://radioprog.ru/post/213

ESP8266: микросхема Wi-Fi | hardware | adminstuff

ESP8266: микросхема Wi-Fi
Добавил(а) microsin   

ESP8266 это высокоинтегрированный чип (так называемая “система на кристалле”, System-on-Chip, сокращенно SoC) разработанная с учетом возросших потребностей в сетевых коммуникациях. Чип предоставляет полное, универсальное и недорогое решение для организации сетевого узла Wi-Fi, которое может взять на себя обработку всех сетевых функций по обмену данными во встраиваемых приложениях. У ESP8266 есть мощные встроенные возможности для обработки и хранения данных и порты ввода-вывода (GPIO), которые позволяют объединить его с различными датчиками и другими специальными устройствами, нуждающимися в сетевом обмене данными. Для ESP8266 требуется немного внешних компонентов для подключения, в результате блок Wi-Fi может занимать совсем мало места на печатной плате.

Основные параметры ESP8266:

Параметр Значение
Нормальное напряжение питания 3V
Потребляемый ток 10mkA .. 170mA
Макс. размер внешней памяти FLASH 16 мегабайт
Марка ядра процессора Tensilica L106 32 bit
Количество портов с функцией GPIO (они мультиплексированы с другими функциями микросхемы) 17
АЦП, разрешение 10 бит 1 канал
Поддержка Wi-Fi стандартов 802.11 b/g/n/d/e/i/k/r
Макс. количество одновременных соединений TCP 5

В ESP8266 встроены следующие узлы и возможности:

• 802.11 b/g/n, выходная мощность +19.5dBm, в идеальных условиях дальность связи до 100 метров• WIFI 2.4 GHz, с поддержкой протоколов безопасности WPA / WPA2, WiFi Direct (P2P), soft-AP• STBC, 1×1 MIMO, 2×1 MIMO• Экономичный 32-разрядный CPU (архитектура RISC), который может использоваться под прикладные приложения (т. е.

для него можно писать программы), RISC-процессор, встроенная память и интерфейсы подключения внешней памяти• SDIO 1.1/2.0, SPI, UART• STBC, 1×1 MIMO, 2×1 MIMO• Агрегация фреймов A-MPDU и A-MSDU с защитным интервалом 0.

4 мс• Время пробуждения, соединения и готовности к передаче пакета < 2 мс• Потребление энергии в режиме приостановки (standby) < 1.0 mW (DTIM3)

• Рабочий диапазон температур -40 .. +125 oC.

• 32-выводный корпус QFN• Интегрированный радиочастотный свич, симметрирующее устройство, малошумящий усилитель, усилитель мощности 24dBm, DCXO (digitally controlled crystal oscillator, цифровой управляемый кварцевый генератор), блок управления энергопотреблением (power management unit, PMU), полная поддержка антенны• Поддержка службы управления полосой пропускания разных видов трафика (Quality of Service, QoS)• Интерфейс I2S для приложений высококачественной передачи звука• Встроенные линейные регуляторы с малым падением напряжения на регулирующем элементе для всех потребителей энергии• Встроенная система PLL (генерация частоты с использованием фазовой автоподстройки, ФАПЧ), проприетарная архитектура высококачественной генерации тактового сигнала (патентованный алгоритм подавления шума для применения в приложениях SoC)• Встроенные подсистемы WEP (Wired Equivalent Privacy, протокол шифрования данных в беспроводных сетях), TKIP (Temporal Key Integrity Protocol, протокол поддержки системы безопасности беспроводных сетей, который должен был заменить WEP), AES (Advanced Encryption Standard, протокол шифрования данных), и WAPI (WLAN Authentication and Privacy Infrastructure, еще один протокол для безопасной передачи данных поверх WiFi), поддержка стека TCP/IP• Поддержка APSD (Automatic Power Save Delivery, или Asynchronous Power Save Delivery, автоматическая система экономии энергопотребления), оптимизированная для приложений передачи голоса через сетевое соединение (VoIP)• Поддержка интерфейса с Bluetooth• Самокалибрующаяся радиосистема, гарантирующая оптимальную производительность для всех рабочих условий эксплуатации• Отсутствие настроек на заводе

• Отсутствие внешних радиочастотных компонентов

Номинальное напряжение питания 3V, допустимые диапазоны питания 1.7V..3.6V, минимальный ток потребления (в состоянии выключено) < 10 μA, максимальный ток потребления 215 mA, пиковый 240 mA (источник напряжения питания должен обеспечивать ток до 300 mA).

Жирным шрифтом обозначены сигналы, выведенные на 8-контактный разъем китайского модуля на ESP8266EX.

Имя

Тип

GPIO

Функция

Интерфейсы

1 VDDA P Аналоговое питание 3.0V..3.6V
2 LNA IO Подключение антенны, выходное волновое сопротивление 50Ω.
3 VDD3P3 P Питание усилителя 3.0V..3.6V
4 VDD3P3 P
5 VDD_RTC P Питание для часов? NC (1.1V)
6 TOUT I Вывод АЦП
7 CHIP_EN I Разрешение работы кристалла. 1: включение, нормальная работа чипа. 0: отключение от источника питания, минимальное энергопотребление.
8 XPD_DCDC IO GPIO16 Пробуждение из глубокого сна, внешний сброс. 0: сброс, 1: нормальный рабочий режим.
9 MTMS IO GPIO14 HSPICLK, приемник IR I2C SCL
10 MTDI IO GPIO12 HSPIQ, светодиод отображения состояния обмена. (Light)PWM red LED control. JTAG
11 VDDPST P Цифровое питание/питание портов ввода-вывода (1.8V..3.3V).
12 MTCK IO GPIO13 HSPID, кнопка RST. (Light)PWM blue LED control. JTAG
13 MTDO IO GPIO15 HSPICS, (Light)PWM green LED control; (Plug) relay control, H/L TTL JTAG, 3-битный SDIO
14 GPIO2 IO GPIO2 UART Tx при программировании flash (?); должна быть в лог. 1 при загрузке, по умолчанию устанавливается в лог. 1. 3-битный SDIO, UART1 для вывода системной информации (TX), I2C SDA
15 GPIO0 IO GPIO0 SPICS2, светодиод состояния (WiFi) 3-битный SDIO
16 GPIO4 IO GPIO4
17 VDDPST P Цифровое питание/питание портов ввода-вывода (1.8V..3.3V).
18 SDIO_DATA2 IO SD_D2 (последовательно с резистором 200Ω); SPIHD; HSPIHD
19 SDIO_DATA3 IO SD_D3 (последовательно с резистором 200Ω); SPIWP; HSPIWP
20 SDIO_CMD IO SD_CMD (последовательно с резистором 200Ω); SPICS0
21 SDIO_CLK IO SD_CLK (последовательно с резистором 200Ω); SPICLK
22 SDIO_DATA0 IO SD_D0 (последовательно с резистором 200Ω); SPIQ
23 SDIO_DATA1 IO SD_D1 (последовательно с резистором 200Ω); SPID
24 GPIO5 P GPIO5
25 U0RXD IO GPIO3 UART Rx во время программирования flash (?) UART0 для пользователя
26 U0TXD IO GPIO1 SPICS1 (?) UART0 для пользователя, не позволять подавать 0 при загрузке
27 XTAL_OUT IO Выход встроенного генератора, подключение к кварцевому резонатору, может использоваться для предоставления входа тактовой частоты BT
28 XTAL_IN IO Вход встроенного генератора, подключение к кварцевому резонатору
29 VDDD P Аналоговое питание 3.0V..3.6V
30 VDDA P Аналоговое питание 3.0V..3.6V
31 RES12K I Подключение на GND внешнего резистора 12кΩ.
32 EXT_RSTB I Внешний сигнал сброса (активный уровень лог. 0)

Вывод 33 GND подключен к массивной контактной площадке на донышке корпуса QFN32.

Покупать можно в интернет-магазинах Aliexpress, Ebay и Dealextreme. ИМХО, лучше всего покупать модули на Aliexpress: самые низкие цены, больше всего предложений и самая удобная система поиска и выбора. Запустите браузер chrome, и в адресной строке введите “магическую” строку:

ESP8266 site:aliexpress.com

Источник: http://microsin.net/adminstuff/hardware/esp8266-wifi-ic.html

Ссылка на основную публикацию
Adblock
detector