Новые возможности FLProg – ESP8266 как контроллер, а не модем



    Источник

    Добрый день.

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

    Если Вы не знакомы с проектом, можно посмотреть его историю в блоге.

    Сейчас на сайте программы ведётся тестирование предрелизовой версии с номером 3.1.4. Начиная с версии 3.1, в программе появилась поддержка контроллеров ESP8266 как полноценного контроллера.

    Для тех, кто не знаком с этими контроллерами небольшое описание
    ESP8266 создан для использования в умных розетках, mesh-сетях, IP-камерах, беспроводных сенсорах, носимой электронике и так далее. Одним словом, ESP8266 появился на свет, чтобы стать мозгом грядущего «Интернета вещей».

    Предусмотрено два варианта использования чипа:

    1) в виде моста UART-WIFI, когда модуль на базе ESP8266 подключается к существующему решению на базе любого другого микроконтроллера и управляется AT-командами, обеспечивая связь решения с инфраструктурой Wi-Fi;

    2) реализуя новое решение, использующее сам чип ESP8266 в качестве управляющего микроконтроллера.

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

    Второй вариант сценария предусматривает написание индивидуальной прошивки для управления чипом «изнутри». (До выхода FLProg 3.1 прошивка должна быть написана для фирменного компилятора. Начиная с этой версии, появилась возможность писать прошивки на языках FBD и LAD в среде FLProg).

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

    Ключевые характеристики

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



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

    Управляет всем этим интегрированным хозяйством расширенная версия 32-битного процессора Tensilica’s L106 Diamond series. Что же интересного внутри?

    • 802.11 b/g/n protocol
    • Wi-Fi Direct (P2P), soft-AP
    • Integrated TCP/IP protocol stack
    • Integrated TR switch, balun, LNA, power amplifier and matching network
    • Integrated PLL, regulators, and power management units
    • +20.5dBm output power in 802.11b mode
    • Supports antenna diversity
    • Power down leakage current of < 10uA
    • SDIO 2.0, SPI, UART
    • STBC, 1x1 MIMO, 2x1 MIMO
    • A-MPDU & A-MSDU aggregation & 0.4μs guard interval
    • Wake up and transmit packets in < 22ms
    • Standby power consumption of < 1.0mW (DTIM3)

    Ultra Low Power Technology

    Энергопотребление — одна из самых важных характеристик решения, претендующего стать мозгом миллиардов устройств Интернета вещей. С чем связана популярность BLE и различных собственных реализаций радио интерфейсов? Ведь, в конечном счете, все устройства на базе этих реализаций все равно стремятся попасть в обычный Wi-Fi с помощью специальных устройств-мостов.

    Секрет прост — сложно создать устройство, подключенное к WiFi, достаточное время, работающее на автономном питании. Потребители не готовы менять батареи в датчиках каждые два-три месяца. Поэтому «выход в сеть» приходилось обеспечивать мостами, подключенным к постоянному электричеству. ESP8266 должен решить эту проблему. Теперь Wi-Fi можно использовать даже в автономных датчиках, работающих на небольших батареях. Благодаря использованию продвинутых механизмов управления энергопотреблением решения.

    Если бегло посмотреть на характеристики потребления чипа, можно остаться в неведении. 215mA в режиме передачи — ничего особенного? Да, но стоит вчитаться в даташит и начинаешь понимать перспективы решения. ESP8266 потребляет около 60uA в режиме глубокого сна (с работающими часами реального времени) и меньше 1.0mA (DTIM=3) или меньше 0.5mA (DTIM=10) в режиме поддержания

    Источник


    В программе реализована поддержка большинства из существующих плат на основе контроллера ESP8266.



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


















    Кроме того при выборе контроллера ESP8266 появляются новые блоки специфичные именно для него.



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



    Далее идут уже более специфические настройки.

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



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



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



    Ну и конечно, как и для ардуино реализована поддержка протоколов обмена Modbus RTU, Modbus TCP и Modbus RTU over TCP.



    Так же реализован режим моста между Modbus RTU и Modbus TCP



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

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

    Проект FLProg является некоммерческим проектом, и скачать программу Вы можете с сайта проекта как говорится «бесплатно и без СМС». Никаких ограничений в программе нет. Версии представлены для ОС Windows и OC Linux.

    P.S.

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

    Но на помощь мне пришёл один из пользователей программы.

    Хочу представить Вам канал “Arduino Prom” и сайт “Arduino Prom”. Они полностью посвящены проекту FLProg, и на сегодняшний день там около сотни видео уроков по программе.

    Вот последнее видео, как раз о создании часов с синхронизацией через интернет.

    FLProg
    34.97
    Визуальная среда Arduino и ESP8266
    Share post

    Comments 12

      0
      Давно хотел попробовать ESP8266 именно в качестве контроллера, но пока не нашёл ему достойной задачи. Понял, что не то купил, когда начал сравнивать характеристики купленного мной ESP8266 версия ESP-01 с остальными из серии. Ну поигрался, конечно.
      Всеми своими достижениями в покорении Arduino и контроллеров обязан именно FLProg. Спасибо!
        0

        MQTT не планируете прикрутить? Без него в домашней автоматизации грустно...

          0
          Да планирую. Потихоньку изучаю, но вообще ребята на форуме уже давно написали пользовательские блоки, и прекрасно работают с MQTT из среды FLProg
            0
            Не знаю на чем Вы строите домашнюю автоматизацию, но MQTT я прикрутил к ESP который работает совместно с программируемым реле ПР200, логика для него пишется на похожих блоках как и у FLProg, а во внешний мир выходит как раз через ESP8266, возможно использовать разные протоколы Modbus TCP, MQTT, HTTP. Примеры работы на канале www.youtube.com/channel/UCj4HeZMvSH5H3d_t6iDlQOQ
            0
            Да, но стоит вчитаться в даташит и начинаешь понимать перспективы решения. ESP8266 потребляет около 60uA в режиме глубокого сна (с работающими часами реального времени)…

            у 8266 есть часы реального времени? по даташиту в режиме глубокого сна 10мкА кушает сама есп, откуда 60мкА вобще взялось?

              0
              у 8266 есть часы реального времени?

              Из datasheet на ESP8266EX:
              3.4. Radio
              ESP8266EX radio consists of the following blocks.
              • 2.4 GHz receiver
              • 2.4 GHz transmitter
              • High speed clock generators and crystal oscillator
              • Real time clock
              • Bias and regulators
              • Power management

              Н оя не берусь утверждать, чт оименно этот чип стоит во всех модификациях.
              по даташиту в режиме глубокого сна 10мкА кушает сама есп, откуда 60мкА вобще взялось?

              Возможно, (и скорее всего) это затраты на обработку прерываний от часов.
                +1
                • Real time clock

                это не часы, а отдельный тактовый генератор + счетчик (для побудки проца).

                0
                Мне было интересно использование данной железки в качестве ppp-wifi-модема. Т.е. ты делаешь соединение, как модем, а в выхлопе получаешь нормальный интернет. Есть такое?
                  0
                  Мне было интересно использование данной железки в качестве ppp-wifi-модема. Т.е. ты делаешь соединение, как модем, а в выхлопе получаешь нормальный интернет. Есть такое?


                  Не совсем понял идею. С чем соединяешь как модем? И какой интернет на выходе?
                  В принципе есть режим моста между Modbus RTU и Modbus TCP. Или можно подключить ESP в сеть, тем или иным способом управлять ею, ну а через UART лить данные например на ардуинку. Такое то же есть. Ну а если нужен чистый мост «UART — Ethernet» то есть прошивка ESP-Link которая прекрасно это реализует
                    0
                    Смысл достаточно прост. Существуют железки, которые не имеют никакого интерфейса, кроме UART. И на них живёт линукс, ну и хочется иметь обычное PPP соединение под линукс. В своё время пытался эту ESP заставить работать таким образом, но потом понял, что она не умеет. Например, для чего было нужно:

                    image

                    У данной железяки только СОМ-порт.

                    Я писал пост у себя в ЖЖ по данной теме dlinyj.livejournal.com/762530.html. Пока внятно не понял, возможно ли это.
                      0
                      Ну судя по всему Вам все таки поможет ESP-Link. Идея такая, к своей железяке подключаете через UART (через переходник можно RS232). В одной сети с ESP находится Большой Брат, на котором подымается виртуальный компорт (то что Вы делали через ИК), ну и организуется необходимый обмен.
                        0
                        Ну ИК тут не принципиально важен, т.к. ИК и СОМ в данной желеке по сути одно устройство, просто на разные пины выведен.

                        Как по мне, вариант с «большим» братом — это шлак. Так как я могу в качестве «большого» брата использовать сразу роутер или комп, как я и делал. Интересно было бы обойтись без таких решений, сразу с ESP. Через АТ-команды настраиваешь себе точку, а потом поднимаешь PPP-соединение.

                Only users with full accounts can post comments. Log in, please.