Esp8266 программное обеспечение: настройка arduino ide

Esp8266 программное обеспечение: настройка arduino ide

В этой статье будет описана процедура установки библиотек и инструментария для ESP8266, и начала программирования модуля ESP8266 в среде Arduino IDE.

Библиотеки и инструментарий доступны на гитхабе здесь:

Шаг 1: Добавление менеджера платы ESP8266 в Настройки Arduino IDE

1. В меню программы выберите закладку Файл -> Настройки

2. Во вкладке “Настройки”, в пункте “Дополнительные ссылки для менеджера плат”, нажав на кнопку выбора, во всплывающем диалоговом окне выбираем:

для использования стабильной версии библиотек ESP8266:

3. для использования последней версии библиотек ESP8266:http://arduino.esp8266.com/staging/package_esp8266com_index.json

4. Клацаем кнопку OK.

Шаг 2: Установка библиотек и инструментария ESP8266

1. В меню Arduino IDE выбираем Инструменты -> Платы: -> Менеджер плат.

2. В текстовом поле поиска Менеджера плат наберите ESP, затем виберите esp8266 by ESP8266 Community и нажмите кнопку Установка

3. Когда установка завершится, кликните по кнопке “Закрыть”

Шаг 3: Пробуем загрузить проект из Arduino IDE в плату ESP8266

1. Соединяем модуль ESP8266 с компьютером при помощи кабеля USB.

2. Можем произвести проверку связи, загрузив пустой скетч или простейший демо-проект Blink.

3. В среде Arduino IDE из меню выбираем тип платы, которую будем тестировать. В данном случае это “NodeMCU 0.9 (ESP-12 Module)”

4. Так же в меню Arduino IDE выбираем COM-порт, к которому подключен модуль Wi-Fi

5. Нажимаем кнопку Загрузить, чтобы скомпилировать и загрузить наш скетч

Прошивка esp8266 через Arduino >

ESP8266 – это популярный китайский микроконтроллер от компании Espressif, основным достоинством которого является встроенный интерфейс WiFi и совместимость с ардуино. Совместимость означает возможность писать программы и загружать их через Arduino IDE,ведь большинство скетчей могут с минимальными доработками использоваться в ESP8266. В этой статье мы узнаем, что из себя представляет стандартная прошивка ESP 8266, как можно программировать эти модули в привычной для многих ардуинщиков Arduino IDE. Мы узнаем, как подготовить среду программирования, как с ее помощью написать скетч и как затем подключить и прошить WiFi-модуль.

Начальная прошивка ESP8266 с WiFi

Сегодня на базе чипа ESP8266 выпускается большое количество модулей, о них мы писали в отдельной статье, посвященной этому микроконтроллеру. Заводские ESP8266 идут со стандартной прошивкой от компании Espressif. Этот софт позволяет работать с модулем вай-фай как с обычным модемом, то есть посредством AT команд, которые подаются на последовательный порт. Таким образом, вы можете использовать модули «из коробки» как внешнее WiFi устройство (в зависимости от режима работы это может быть и точка доступа, и ретранслятор).

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

Как прошить ESP8266

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

  • Использование “родного” SDK. Компания Espressif выпустила набор программных средств для разработки собственных прошивок. SDK предоставляет широкий спектр возможностей, тем не менее, пользоваться им довольно-таки трудно в виду не совсем очевидного и приятного интерфейса.
  • Загрузка готовых решений. На просторах Всемирной паутины есть множество уже готовых со встроенным интерпретатором. Среди множества решений наверняка найдутся и тем, которые подойдут вашему проекту. Тем не менее, у готовых прошивок есть недостатки. Они могут быть ненадежными, решать не совсем те задачи и быть избыточно большими. Из-за встроенного интерпретатора софт сильно загружает ОЗУ, что приводит к медленной работе.
  • Настройка работы через WEB-интерфейс. Существует ряд прошивок, которые позволяют изменить конфигурации ESP8266 через интернет-интерфейс. В качестве примера можно привести коммерческий софт HOME-SMART. Недостатком подобных прошивок является довольно-таки узкий спектр возможностей.
  • Использование Arduino >Прошивка ESP 8266 в Arduino IDE

Почему для прошивки ESP 8266 многие предпочитают использовать Arduino IDE? Есть целый ряд причин, которые оправдывают использование именно данной среды разработки. Во-первых, она очень проста. Скетчи в Arduino IDE пишутся на языке, который в плане синтаксиса напоминает С/С++. Большинство функций, которые используются для программирования платы Ардуино, можно применять для написания прошивки к ESP8826 (к примеру, pinMode(), digitalRead() и пр.). Поэтому если вы писали скетчи для платы Arduino, то проблем с написание прошивки возникнуть не должно.

Во-вторых, Arduino IDE поддерживает множество различных библиотек, которые значительно облегчают процесс программирования. Некоторые из них можно использовать для того, чтобы писать прошивку для ESP8266. К примеру, при создании софта наверняка пригодятся такие модули, как:

  • WiFi ESP8266. Объемная библиотека для работы с беспроводной сетью. Позволяет получать IP и MAC адрес в различных режимах (клиент, точка доступа), выводить диагностическую информацию, создавать открытую точку доступа и пр.
  • Программный модуль, с помощью которого можно выполнять различные операции через заданное количество времени.
  • Библиотека используется для работы с ПЗУ.
  • Программный модуль, которые обеспечивает поддержку нескольких, специфических для ESP 8266 функций. К примеру, библиотека позволяет активировать режим глубокого сна и управлять сторожевым таймером. Кроме этого, в состав программного модуля входят функции для перезагрузки девайса, определения размера свободной памяти и т.д.

И это лишь верхушка айсберга. У Arduino IDE есть еще несколько менее значимых преимуществ.

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

Подготовка Arduino IDE

Для начала необходимо установить на свой ПК крайнюю версию среды Arduino IDE. Сделать это можно на официальном интернет-сайте. На момент написания статьи крайняя версия IDE – это 1.8.5. После загрузки и инсталляции среды разработки, необходимо запустить ее и перейди в раздел Файл > Настройки. Там есть поле для дополнительных ссылок менеджера плат. В него необходимо вписать http://arduino.esp8266.com/stable/package_esp8266com_index.json и клацнуть на кнопочку ОК.

Затем нужно перейти в Инструменты > Плата. Там будем представлен список доступных плат. Но на интересует пункт Менеджер плат. Это приведет к запуску нового диалога. В нем необходимо найти пункт под названием esp8266 by ESP8266 Community и кликнуть по нему. Вышеописанные манипуляции приведут к появлению кнопочки Установка. Нужно выбрать подходящую версию (лучше всего крайнюю). Далее надо нажать на кнопку, отвечающую за установку. После этого среда разработки начнет скачивать необходимые файлы. Это не займет много времени, так как нужный пакет весит всего 150 МБ.

Возвращаемся к списку плат. После инсталляции программного модуля там появилось несколько новых пунктов, которые соответствуют рассматриваемому микроконтроллеру. Надо выбрать вариант Generic ESP8266 Module. Затем следует определить входящий пункт, через уже знакомый раздел Инструменты. Там же следует задать параметры модуля (частота, объем flash-паммяти). На этом настройка программной среды завершена.

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

Для подключения ESP8266 не потребуется много коннекторов, так как рассматриваемый аппаратный модуль использует всего несколько пинов. Выходы TX/RX и землю нужно подключить к конвертору TTL-USB (его, в свою очередь, надо подключить к USB). Далее следует подсоединить питание в 3.3В к пину VCC.

Чтобы иметь возможность загружать на микроконтроллер прошивку, необходимо подсоединить GPIO0 к земле. При таком подключении аппаратный модуль загружает прошивку во flash-память. Запуск программы происходит сразу же, без отсоединения от GPIO.

Последовательность действий при загрузке скетча

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

Далее следует перейти в Инструменты > Монитор последовательного порта. Надо выбрать скорость 115200. После этого стоит обратить внимание на терминал. Если модуль подключен к сети, то в таком случае на мониторе должны появится соответствующие надписи. Внизу будет расположен IP адрес аппаратного модуля.

Настройка программного обеспечения ESP8266 в Arduino IDE

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

Для начала работы понадобятся:

    Компьютер с программным обеспечением Arduino >

Добавление поддержки платы ESP8266 в программное обеспечение Arduino

Скачайте и установите последнюю версию программного обеспечения Arduino IDE (скачать) на свой компьютер, если вы этого еще не сделали. Откройте приложение Arduino и перейдите к пункту меню:

Arduino -> Настройки (Arduino -> Preferences)

По умолчанию приложение Arduino поддерживает чипы, используемые на официальных платах Arduino, но не ESP8266.

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

Первым шагом этого процесса является предоставление URL-адреса менеджеру дополнительных плат. В текстовое поле в нижней части окна настроек (см. фото выше) вставьте именно этот текст:

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

Нажмите кнопку ОК, чтобы закрыть окно настроек. Теперь наше приложение Arduino знает, где найти информацию о платах ESP8266 в целом.

Чтобы получить конкретную информацию, перейдите в пункт меню:

Инструменты -> Плата: (название платы) -> Диспетчер плат (Tools -> Board:(board name) -> Boards Manager)

Подождите некоторое время, пока менеджер плат загрузит содержимое, а затем начните вводить «ESP8266» в строку поиска.

Когда вы увидите «esp8266 от сообщества ESP8266» (англ. – esp8266 by ESP8266 Community), вы можете перестать вводить в поиске и нажать «Установить» (Install), чтобы получить последний пакет для платы, установленный внутри вашего приложения Arduino.

В Feather Huzzah имеется удобный USB-коммуникационный чип, но для его нормальной работы требуется бесплатный драйвер. Без него ваша плата не будет отображаться в списке доступных последовательных устройств. Перейдите на страницу SiLabs (Silicon Lab: CP210x USB to UART Bridge VCP Drivers) и скачайте/установите драйвер, соответствующий вашей операционной системе (доступны Mac/Windows/Linux).

Всё получилось? Отлично, давайте протестируем всё на следующем шаге.

Подключение к Wi-Fi

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

Файл -> Создать (File -> New)

Удалите его содержимое по умолчанию. Скопируйте блок кода и вставьте его в пустой эскиз:

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

Многие использовали этот блок кода в самый первый день знакомства с Arduino. Скажем так, на самом деле мы говорим “Привет, мир!” еще раз, но на этот раз, мигая встроенным светодиодом платы Adafruit Feather Huzzah (подключенного к контакту 0).

Этот код устанавливает переменную для вывода, подключенного к светодиоду, устанавливает этот вывод в качестве выхода, а затем в цикле повторяет схему включения/выключения.

Подключите плату к компьютеру с помощью USB-кабеля и проверьте свои настройки в меню “Сервис” (Tools).

  • Плата: (Adafruit Huzzah ESP8266) (или название вашей платы, выберите из списка)
  • Размер памяти: “4M (3M SPIFFS)”
  • Частота процессора: “80 МГц”
  • Скорость загрузки: “115200”
  • Порт должен соответствовать вашему последовательному устройству (COMx в Windows, /dev/cu.SLAB_USBtoUART в Mac / Linux), которое будет отображаться только после подключения
  • Программер: USBtinyISP

В английской версии программы выглядеть всё будет так:

  • Board: Adafruit Huzzah ESP8266
  • Flash Size: “4M (3M SPIFFS)”
  • CPU Frequency: “80 MHz”
  • Upload Speed: “115200”
  • Port: COMx
  • Programmer: USBtinyISP

Чтобы запрограммировать вашу плату с помощью эскиза мигающего светодиода, нажмите кнопку «Загрузить» (Upload, круглая кнопка в левом верхнем углу со значком стрелки).

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

Этот процесс будет казаться медленнее, чем вы привыкли, по сравнению с другими Arduino-совместимыми платами. Следите за баром (точки) состояния и терпеливо подтверждайте, что в строке состояния отображается текст «Готово к загрузке» (Done Uploading).

Если вместо этого получите сообщение об ошибке, прочитайте его и попытайтесь выяснить, в чем проблема (выбран неверный порт, плата не подключена, опечатка в коде). Если ваша плата или порт не отображаются в меню, попробуйте эти советы по устранению неполадок и не продолжайте, пока не будут выполнены все шаги настройки программного обеспечения:

  • В меню Arduino -> Настройки (Arduino -> Preferences), есть ли какие-либо случайные символы или ошибки в URL внешних плат?
  • Вы видите пакет платы ESP8266 в менеджере плат?
  • Если вы используете Feather Huzzah, успешно ли вы закончили установку драйвера SiLabs?
  • Если вы используете другую плату, например, с кабелем программирования FTDI, изучали ли вы необходимые шаги установки/настройки? (Некоторые платы требуют комбинации нажатий кнопок для входа в режим загрузчика)
  • Ваш кабель USB data + power или только питание?

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

Следующий пример кода поставляется с пакетом плат ESP8266 и уже доступен в вашем программном обеспечении Arduino. Получите доступ к нему, перейдя в:

Файл -> Примеры -> ESP8266WiFi -> WifiClientBasic
File -> Examples -> ESP8266WiFi -> WifiClientBasic

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

Отредактируйте переменные, описывающие имя (имена) и пароль (пароли) беспроводной сети («SSID» и «passpasspass»). Если в вашей сети нет пароля, оставьте аргумент пароля пустым (“”), но не опускайте его. Сохраните эскиз и загрузите его на свою плату.

Нажмите кнопку в правом верхнем углу окна Arduino, чтобы запустить Serial Monitor, и выберите 115200 в качестве скорости передачи. Нажмите кнопку сброса на плате Feather Huzzah, чтобы запустить программу с самого начала, и посмотрите, как информация о беспроводном соединении появляется на последовательном мониторе.

Вы должны увидеть сообщение об успешном подключении, а затем IP-адрес, назначенный вашему устройству. Если у вас не получается, дважды проверьте свои учетные данные Wi-Fi на опечатки и попробуйте снова. После подключения вы увидите сообщение: «Попытка подключения к 192.168.1.1» (Trying to connect to 192.168.1.1).

Поскольку 192.168.1.1 является локальной сетью, которая может существовать или не существовать, соединение, скорее всего, не будет установлено.

Обновите переменную хоста для любого понравившегося вам сайта, например “google.com”, просто чтобы проверить ваше соединение. Загрузите новый эскиз на свою плату и откройте Serial Monitor, чтобы увидеть другой результат. Поздравляю, ваша плата только что пообщалась с интернетом.

Установка дополнительных библиотек

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

Sketch-> Включить библиотеку -> Управление библиотеками
Sketch-> Include Library -> Manage Libraries

Затем найдите и установите последние версии следующих библиотек:

Вы также можете установить библиотеки вручную, скачав их и поместив в папку с библиотеками Arduino. Узнайте больше о библиотеках Arduino в нашем разделе Библиотеки и в статье Установка и подключение библиотек в Arduino IDE.

Подписка на (бесплатные) облачные сервисы

В конце нам необходимо создать бесплатные учетные записи на двух веб-сайтах облачных сервисов: Adafruit IO и IFTTT.

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

IFTTT – это сайт, который объединяет и предоставляет интерфейс для множества приложений и поэтому называется шлюзом API.

Перейдите на io.adafruit.com и нажмите «Войти» (Sign In), затем «Зарегистрироваться» (Sign Up), чтобы создать учетную запись. Вы должны использовать надежные, уникальные пароли. Вас могут попросить подтвердить ваш адрес электронной почты.

На IFTTT.com нажмите кнопку «Зарегистрироваться» (Sign up), чтобы создать учетную запись.

Я настоятельно рекомендую включить двухфакторную аутентификацию в вашей учетной записи IFTTT, так как вы, скорее всего, захотите связать ее с другими вашими личными учетными записями, такими как Twitter, Instagram, Fitbit и т.д.

Защитите свои учетные записи от хакеров и спам-ботов! Вам также нужно будет связать свои аккаунты Adafruit и IFTTT, что вы можете сделать через любой сайт. Пока вы на нем, установите приложение IFTTT, если у вас есть устройство iOS или Android.

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

esp8266 – Быстрый старт в Arduino > Do It Yourself

Когда я попытался поработать с данной платой, первым делом мне захотелось сделать небольшой сервер, который отображает html файл. Я отправился на официальный сайт и нашёл много информации, захотелось разобрать более детально вопрос подключения к wi-fi, режимы работы клиента и точки доступа.

Можно работать в разных средах разработки, но самое простое – добавить плату в Arduino IDE. Сделать это очень просто. Сначала идём в настройки

Потом нужно добавить следующую ссылку на дополнительный репозиторий:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

После добавления этой ссылки, можно будет скачать набор плат esp8266 – перейдём в “менеджер плат”

Достаточно, ввести в поиск “esp”, как вы увидите нужную библиотеки, которую нужно скачать (esp8266 by ESP8266 Community)

Код я компилировал со следующими параметрами. 80Мгц после 16Мгц AtMega, звучит весомо.

Я почистил код от включения светодиода и оставил только составляющую для подключения к сети wi-fi в режиме клиента. Обычно это необходимый минимум для IoT устройства.

Единственное – мне не понравилось получение адреса по DHCP. Очень быстро обнаружилась команда

Где эти все параметры можно задать, например после объявления переменных

Теперь запускаем терминал и проверяем

Проверяем пинг – всё отлично.

Немного про режимы работы esp8266 – можно работать только как клиент, что мне и нужно

Можно только как точка доступа (AP) или комбинированный режим

Оба режима включать конечно есть смысл. Приведу пример из мира домашних камер видеонаблюдения – сначала устройство работает в режиме AP и вы можете к нему легко подключиться. Потом заходите на главную страницу, находите свою wi-fi сеть, подключаетесь – всё! Устройство в вашей сети, и режим точки доступа больше не нужен, до следующего сброса. Для старта esp8266 в режиме точки доступа (AP), можно использовать команду

Теперь, если поменять строчку

То мы сможем найти с любого устройства нашу сеть

Если удалить password, то сеть, которую создаёт модуль будет открытая, без пароля.

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

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

А потом создать функцию handleRoot, там можно описать ответы сервера

200 код – это код успешного ответа на запрос пользователя. В данном случае мы отправляем обычный текст hello World. Также помимо этого мы можем выполнить другие действия в данной функции, если требуется. Проверяем:

Давайте заставим наш сервер отображать, что нибудь интересное – например html файл. Создадим рядом с файлом проекта файл index.h со следующим содержимым. Этот пример я взял на этом сайте

Теперь подключим этот файл в наш основной проект (не забывайте, что оба файла должны лежать в одной папке)

Теперь нам нужно немного изменить функцию handleRoot, чтобы отобразить изменения на главной странице. Легко заметить, что мы поменяли формат отображения текста с “text/plain” на “text/html”,а вместо текста подкинули переменную строкового типа “s”, которая ссылается на область памяти программы PROGMEM. PROGMEM разрешает нам помещать код в flash-память, а не в оперативную, тем самым экономим ресурсы микроконтроллера.

Этот пример конечно заработал

Но мне было интересно проверить работу css. Закинул несколько стилей в теги и сделал 3 кнопки. Весь код получился вот такой

Отлично – esp8266 легко отдаёт web-страницы с css, так что можно делать красивые админки, для управления чем-либо

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

Источники:

http://arduinomaster.ru/platy-arduino/proshivka-esp8266-cherez-arduino-ide/

http://arduinoplus.ru/programmnoe-obespechenie-esp8266-na-arduino-ide/

http://wreckage.ru/esp8266-quick-start-in-arduino-ide-up-the-server-with-html/

http://arduinoplus.ru/podkluchenie-sim800l-k-esp8266/

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