Esp8266 библиотека для arduino: скачать и установить библиотеку для проектов

Содержание

Arduino библиотека ESP8266 — CodeRoad



Я новичок в arduino и только что взял себе UNO и модуль ESP8266. Мне удалось правильно подключить их все и подключиться к моей домашней сети с помощью команд AT.

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

#include <ESP8266WiFi.h>

например, в этом примере учебника https://learn.sparkfun.com/учебники/с ESP8266-вещь-приставка-guide/example-sketch-АП-веб-сервер

Поэтому я попробовал поискать его в гугле, но ничего не нашел. Я предполагаю, что это потому, что это действительно просто, и я упускаю что-то совершенно очевидное.

помочь?

arduino esp8266
Поделиться Источник SimpleJack     27 февраля 2016 в 07:15

2 ответа


  • ESP8266 Arduino 2.
    2 TFT ILI9341

    Недавно я получил один TFT LCD от aliexpress, который поддерживает SPI и использует ILI9341. Это тот самый. ТТТ ILI9341 У меня есть плата ESP8266 EspressoLite 1, и я использую ESP8266 Arduino. ( https://github.com/esp8266/Arduino ) Я сделал следующее соединение : Я установил следующую связь : SCK…

  • Сопряжение ESP8266 и Arduino

    Я соединил Arduino с ESP8266 с Arduino контакт 2 подключен к ESP Tx Arduino контакт 3 подключен к ESP Rx через делитель напряжения Arduino GND подключен к GND ESP Arduino 3v3 подключен к CH_PD ESP Я включил ESP8266 с помощью регулятора напряжения 1117 Когда я изначально купил ESp8266, он работал,…



5

Если вы хотите использовать Arduino в качестве основной части вашего проекта ESP8266,есть несколько способов.

  • Используйте Arduino для выдачи команд AT на ESP8266.
  • Создайте свой собственный протокол или систему обмена сообщениями, запрограммировав ESP8266 с помощью (например) nodemcu или проекта Arduino/ESP8266 или Espressif или других, а затем запрограммируйте свой Arduino с помощью того же протокола или системы обмена сообщениями, чтобы они могли разговаривать.

Кроме того, просто запрограммируйте свой ESP8266 напрямую. Не требуется Arduino. Сделав это, вы можете перевернуть столы и заставить ESP8266 выдавать сообщения на Arduino, если, например, вы хотите, чтобы многие GPIO и sense контакты Arduino что-то делали. Если вам нужна только пара дополнительных GPIO контактов, посмотрите на диапазон ESP8266, чтобы получить больше GPIO контактов, таких как ESP8266-12

Что выбрать?

  • nodemcu даст вам хорошее представление о возможностях ESP8266 и может быть хорошим стартером, простым в использовании, простым в программировании, но это плохой финишер, за исключением самых простых программ.
  • espressif имеет большую цепочку инструментов, не приятную для flash, вы будете на переднем крае, однако поддержка сообщества минимальна
  • Проект Arduino/ESP8266-это потрясающе, легко flash, очень быстро, очень стабильно, и в отличие от nodemcu вы можете создать большой проект. Как вы заметили, любой проект arduino, начинающийся с #include <ESP8266WiFi. h> , предназначен не для arduino, а для ESP8266, использующего arduino IDE https://github.com/esp8266/Arduino

Поделиться ChrisAdmin     07 мая 2016 в 04:59



2

Пример Sparkfun, он предназначен для ESP8266, и он использует ядро Arduino ESP8266, чтобы flash модуль.

Это не код Arduino, который взаимодействует с модулем по последовательному каналу. Вам нужно загрузить этот код в модуль ESP, а с ядром Arduino ESP8266 можно запрограммировать ESP непосредственно из модуля Arduino IDE.

Поделиться Philip     27 февраля 2016 в 09:58


Похожие вопросы:


Как включить regex и другие стандартные библиотеки в esp8266 Arduino

Как я должен включить библиотеку regex в свой код? Я заметил, что старый fork этого репозитория esp8266 Arduino имеет regex. h, который, как мне кажется, можно было бы использовать, но он имеет…


ESP8266 серийный возврат ‘garbage’ в Arduino

Я купил модуль ESP8266 и подключился к плате Arduino UNO через SoftwareSerial (PIN 10 — RX, PIN 11 — TX), У меня также есть expternal power suply для ESP8266 5V (450mA), он уменьшен до 3.3V с…


ESP8266 + Arduino Uno + ESP8266WIFI lib

У меня возникли проблемы с ESP8266 в части программирования. Я использую Arduino Uno и тысячу раз запускаю программы. Это был мой второй день в завершении моей простой полнофункциональной схемы…


ESP8266 Arduino 2.2 TFT ILI9341

Недавно я получил один TFT LCD от aliexpress, который поддерживает SPI и использует ILI9341. Это тот самый. ТТТ ILI9341 У меня есть плата ESP8266 EspressoLite 1, и я использую ESP8266 Arduino. (…


Сопряжение ESP8266 и Arduino

Я соединил Arduino с ESP8266 с Arduino контакт 2 подключен к ESP Tx Arduino контакт 3 подключен к ESP Rx через делитель напряжения Arduino GND подключен к GND ESP Arduino 3v3 подключен к CH_PD ESP Я. ..


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

Я подключил свой ESP8266 к своему arduino, как показано в следующем видео: https://www.youtube.com/смотреть?в=N8pHpQSB1y4 В платах arduino я выбрал универсальный модуль ESP8266 со скоростью передачи…


Arduino + ESP8266 WebClient

Мне нужно подключить Мой ESP8266 с Arduino Mega, но у меня нет никакой библиотеки, чтобы подключить его как ESP8266 WebClient, в Serial1. Я стараюсь использовать WifiLibrary из Arduino . Я пытаюсь…


Какую библиотеку MQTT использовать для подключения ESP8266 Wifi-Mdodule на Arduino DUE

Я успешно установил Wifi-соединение с моим Arduino DUE и подключенным к нему модулем ESP8266-01. Теперь я хочу установить соединение с платформой IoT (например, io.adafruit.com) с помощью протокола…


Arduino ESP8266 Socket.io выпуск

Я хочу сделать WebSocket внутренний ESP8266, но не могу этого сделать. Я использовал эту ссылку для made it.

https://github.com/billroy/socket.io-arduino-client я получаю внутреннюю ошибку…


Arduino Wifi ESP8266

Во-первых, нужно ли мне 2 Arduino Unos с установленным модулем ESP8266 для связи друг с другом? Я хочу передать ультразвуковое значение от 1 Arduino Uno к другому. Спасибо, что ответили на мой…

Настройка Arduino IDE для программирования WiFi модуля ESP8266

ESP8266 это дешевые широко распространенные модули Wi-Fi. Они состоят из самодостаточного микроконтроллера с GPIO (дискретными входами-выходами), аналоговым входом, портами параллельной связи, I2C, SPI, и самое главное с блоком Wi-Fi связи. Изначально продвигаемые как дешовые модули Wi-Fi для плат Arduino и Raspberry Pi, они так же могут быть запрограммированы как отдельные платы разработчика при помощи Arduino IDE. Для этого необходимо сначала установить библиотеки и инструментарий  ESP8266 в Arduino IDE.

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

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

https://github.com/esp8266/Arduino

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

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


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

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

http://arduino.esp8266.com/stable/package_esp8266com_index.json

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. Нажимаем кнопку Загрузить, чтобы скомпилировать и загрузить наш скетч

Если все прошло удачно, теперь ваша среда Arduino IDE готова для работы с модулями ESP8266.

Установка и подключение библиотек Arduino

Стандартные библиотеки Arduino хранятся в папке:

«C:\Program Files (x86)\Arduino\libraries\»

Дополнительные библиотеки устанавливаются в папку:

«C:\Users\*Имя Пользователя*\Documents\Arduino\libraries»

В вашем случае эти пути могут быть другими из-за другой буквы основного жесткого диска и другого имени пользователя. Если у вас установлена 32х битная операционная система то папка «Program Files (x86)» будет называться «Program Files».

Установка библиотек Arduino

Установить библиотеки в Arduino IDE очень просто. Можно сделать это двумя способами. Через интерфейс программы или копированием скачанной библиотеки в папку «libraries». Рассмотрим подробнее оба варианта:

Установка библиотек через Arduino IDE

Первый вариант — это установка библиотек Ардуино из официального репозитория. Для этого необходимо запустить Arduino IDE, в верхнем меню выбрать «Скетч -> Подключить библиотеку -> Управлять библиотеками».

Установка библиотек ардуино

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

Установить библиотеки Arduino

Второй вариант — это установка библиотеки из скачанной . zip папки. Через интерфейс Arduino IDE это можно сделать всего за пару кликов. В верхнем меню программ выбираем «Скетч -> Подключить библиотеку -> Добавить .ZIP библиотеку». Откроется окно файлового менеджера, где необходимо выбрать папку или .zip архив с вашей библиотекой.

Еще один способ установки библиотек Ардуино

Вы можете просто перенести папки библиотек по пути:

«C:\Program Files (x86)\Arduino\libraries\»

После того как вы добавили свои библиотеки необходимо перезапустить Arduino IDE. Теперь вы можете использовать сторонние библиотеки в своих проектах.

Подключение библиотеки Arduino

Мало установить библиотеку. Для использования ее необходимо подключить в скетч. Сделать это очень просто. Можно в начале скетча вручную написать подобную строчку:

#include <ESP8266WiFi.h>

Обратите внимание, что после этой инструкции не ставится точка с запятой. Так же можно подключить библиотеку ардуино через меню программы Arduino IDE. «Скетч -> Подключить библиотеку -> Название необходимой библиотеки». После этого в начало вашего скетча автоматически добавится нужная строчка. Теперь вы можете использовать библиотеки Arduino в своих проектах.

Nodemcu Lua Wi-Fi на Esp8266: описание, подключение, схема, характеристики

NodeMCU Lua – плата на основе популярного модуля ESP8266 (рисунок 1) предназначена для создания IoT устройств (устройств Интернета вещей), которым необходима передача или получение данных в интернет с помощью технологии Wi-Fi.

Содержание


NodeMCU Lua – плата на основе популярного модуля ESP8266 (рисунок 1) предназначена для создания IoT устройств (устройств Интернета вещей), которым необходима передача или получение данных в интернет с помощью технологии Wi-Fi.

Технические характеристики модуля
  • Процессор 32-битный
  • WiFi – 802. 11 b/g/n
  • Напряжение питания 3,3 В
  • Внешнее питание 3.6–20 В
  • Ток потребления: режим передачи данных– 200 мА, режим приёма данных – 60 мА
  • Подсоединение к компьютер – вход microUSB
  • Имеет встроенную flash память 4 Mб
  • Поддержка в базовой прошивке интерпретатора Lua
  • Возможность обновления прошивки по Wi-Fi
  • Наличие встроенного датчика температуры
В чем же преимущества данной платы на основе модуля ESP8266? Во-первых, на плате присутствует интерфейс UART-USB с разъемом micro USB, что позволяет подключать его к компьютеру без переходников. Во вторых, она имеет выводы для всех доступных контактов ESP8266. А это 11 портов ввода-вывода общего назначения, некоторые из которых имеют дополнительные функции (см. рисунок 1).

Рисунок 1. Назначение выводов NodeMcu

В-третьих, на данной плате установлена прошивка, которая может интерпретировать команды скриптового языка Lua. Lua — это встраиваемый язык сценариев, который является маленьким, быстрым и очень мощным. С помощью команд Lua для NodeMCU можно выполнять следующие действия:
  • использование платы в качестве WiFi точки доступа
  • подключаться (в том числе и автоматическое) к точке доступа WiFi
  • режим пониженного энергопотребления (уход в сон)
  • перенаправлять вывод
  • выполнять операции со списком файлов в flash-памяти
  • управление пользовательским таймером и таймером WatchDog
  • управление GPIO1 выводами
  • создание веб-сервера
  • обмениваться даннымиI2C — устройствами
  • считывать данные на выводе АЦП
Можно не только выполнять команды Lua в терминале, но и cоздавать файлы в flash-памяти ESP8266 и вызывать их на иcполнение. Рассмотрим примеры напиcания программ для модуля на языке Lua, а также в среде программирования Arduino IDE.

Примеры использования (скриптовый язык Lua)

Рассмотрим пример написания скрипта на языке Lua для платы NodeMCU. Будем использовать программу ESPlorer (рисунок 2), которую вместе с можно скачать со страницы тут.

Рисунок 2. Окно программы ESPlorer.

Напишем скрипт создания простейшего веб-сервера, чтобы при обращении к модулю по HTTP с него выдавалась информация. Создадим для этого файл server1.lua и запишем в него код, представленный в листинге 1. Листинг 1
serverport = 80 server=net.createServer(net.TCP) server:listen(serverport, function(connection) connection:send("HTTP/1.1 200 OK\nContent-Type: text/html\nRefresh: 10\n\n" .. "<!DOCTYPE HTML>" .. "<html><body>" .. "<b>Server </b></br>" .. " ChipID : " .. node.chipid() .. "<br>" .. " MAC : " .. wifi.sta.getmac() .. "<br>" .. " Heap : " .. node.heap() .. "<br>" .. " Timer Ticks : " .. tmr. now() .. "<br>" .. "</html></body>") connection:on("sent",function(connection) connection:close() end) end )
Сохраним файл server1.lua в модуле и запустим.  Для проверки работы севера подключимся к точке доступа модуля и наберем в браузере ее адрес: http://192.168.4.1 (рисунок 3). Для запуска сервера при загрузке модуля необходимо в конце нашего autorun-файла init.lua добавить строку: dofile(server1.lua)

Рисунок 3. Обращение к серверу на NodeMCU


Примеры использования (скетч в среде программирования Arduino IDE)

Рассмотрим создание программ дя платы NodeMCU в среде программирования Arduino IDE. Для этого необходимо установить Arduino IDE для ESP8266. На компьютере уже должно быть установлено программное обеспеченние Arduino IDE версии не ниже 1.6.5. На рисунках 4-8 представлены скриншоты процесса установки Arduino IDE для ESP8266.

Рисунок 4.  

Рисунок 5.

 

Рисунок 6.

 

Рисунок 7.

Рассмотрим пример подключения аналогового датчика освещенности (фоторезистора) к плате NodeMCU ESP8266 и отправку данных по протоколу MQTT в интернет на сервер http://www.mqtt-dashboard.com/.

Схема соединений представлена на рис. 8.

Рисунок 8. Схема подключения.

Для написания скетча необходима библиотека pubsubclient  для общения с брокером MQTT . Разархивируйте скачанный файл в папку библиотеки IDE Arduino. Откройте в Arduino IDE скетч _2.ino. Вам необходимо внести в скетч изменения параметров SSID и пароля для точки подключения платы NodeMCU к вашей WiFi сети.

const char* ssid = «your_wifi_hotspot»;

const char* password = «your_wifi_password»;

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

Рисунок 9. Соединение с брокером по сети.

После того, как NodeMCU подключился к wifi и брокеру MQTT, он публикует данные о освещенности для брокера MQTT по теме OsoyooData (рисунок 10).

Рисунок 10. Отправка данных датчика освещенности.

Мы будем использовать на любом устройстве (например планшете или компьютере) MQTT-клиент, чтобы подписаться на тему OsoyooData от того же брокера MQTT и получать значения освещенности в реальном времени.

Настройка Arduino IDE и подключение ESP8266 (без кнопок RESET и PROG) — Espressif Systems

Всем привет, в этой статье поговорим об уже надоевшей всем теме — «Метеостанция». Каждый пытается сделать что-то свое, вот и я не стал исключением и попытался материализовать свои эротические фантазии на контроллере ESP8266. Тема задумывалась уже давно как некое обновление для предыдущего проекта этой тематики, но из-за своей неспешности переросла в нечто самостоятельное.

При всей привлекательности микроконтроллера ESP8266 с его большим объемом памяти, железной поддержкой Wi-Fi и массой разных плюшек, он не лишен недостатков. Самый основной — ограниченное количество поддерживаемых одновременных TCP соединений равное 5. Если превысить этот лимит, то контроллер потеряет связь с окружающим миром, при этом watchdog будет думать, что все в порядке, а следовательно, даже не попытается нам помочь. Будем стараться это помнить!
Стоит начать с концепции
Доступ к данным метеостанции нужно получать без установки внешних приложений и под любой операционной системой. Для этих целей подойдет практически любой современный браузер. Меня всем устраивает Chrome. Раз уж за основу взят HTTP протокол, стоит озаботиться экономией трафика и ограничением числа TCP соединений. Хорошим тоном будет передача всего необходимого для формирования страницы контента только при первом обращении, а все последующие операции, такие как отображение показаний с датчиков или настройку контроллера, производить через API. В этом нам поможет JQuery. А вот, чтобы ослабить болевые ощущения от передачи файлов с SPI Flash в браузер, стоит предусмотреть систему кэширования, например, Etag. Это позволит отдавать тяжелый контент единожды, а при последующих загрузках страницы просто подтверждать его актуальность на уровне Web сервера микроконтроллера и кэш браузера вступит в игру, неимоверно уменьшив время загрузки страницы! «Вы были правы в одном, Мастер: переговоры были недолгими.» © Звездные войны. Эпизод 1 Из-за того, что метеостанция с датчиками и контроллером должна располагаться на улице, жизненно необходимо предусмотреть возможность обновлять прошивку ESP через Web интерфейс. Аналогичным образом должны обновляться файлы Web сервера расположенные на SPI Flash. Этот и предыдущий пункт вкупе позволят обновлять функционал микроконтроллера из домашней сети или из интернета, если конечно в этом возникнет острая необходимость. Чтобы никто посторонний не могу вмешаться в работу устройства или изменить файлы Web сервера, последний должен хотя бы как-то себя защищать. Пускать в панель управления только после авторизации, блокировать доступ при попытках брутфорса пароля. В конце концов, контроллер обязан самостоятельно генерировать ключи (salt) для авторизации, дабы сделать алгоритм непредсказуемым и исключить потенциальный взлом, в случае если злодей завладеет исходниками проекта. Понятно, что кому она там нужна, эта метеостанция, если её не завязывать с умным домом, если только из-за спортивного интереса, но как говориться “Береженого Бог бережет”. Датчики стоит расположить по уму — в метеобудке, а вот контроллер в сухом и закрытом боксе. Объединить их между собой, как мне кажется, удобнее по I2C шине — минимум проводов, максимум удобства. Практически на всех вариантах плат ESP-xx имеется штатный светодиод, можно воспользоваться им как для индикации режимов и состояния микроконтроллера, так и для вывода какой-либо промежуточной информации. Что касаемо режимов работы ESP8266, как ни странно, но он должен находить домашнюю Wi-Fi сеть и подключаться к ней. Если вдруг звезды не были к нам благосклонны, и домашняя беспроводная сеть приказала долго жить, контроллер обязан перейти в режим точки доступа (AP) дабы к нему можно было подключиться с какого-либо устройства и перенастроить его на другую сеть. А вот пока последнее не произошло, ESP должен периодически сканировать эфир в поисках долгожданной домашней точки доступа и, если боги были к нам милосердны, и домашняя сеть появилась в эфире, незамедлительно переключиться в режим клиента (STA) и в пылу страсти воссоединиться с ней. Ну и естественно, как же без отправки данных на внешние ресурсы, сейчас без этого не обходится ни одна уважающая себя кофеварка, не говоря уже о метеостанции. Думаю, что основным блюдом станет протокол MQTT, это уже облегчает возможность интеграции с умным домом, стулом или той же кофеваркой. Ну а на закуску добавим поддержку «ThingSpeak» и «Народного мониторинга». При желании можно нарастить функционал, благо памяти у микроконтроллера еще много. Как я себе это представляю
Учтите, что на видео, данные с датчиков, эмитируются самим микроконтроллером, это нужно для наглядности. В жизни метеорологическая обстановка намного спокойнее слава Богу.
Перейдем к физической сборки устройства
Как по мне, так самый оптимальный вариант, это воспользоваться отладочной платой NodeMCU V3 и базой для неё. Таким образом, мы получим отличный комплект с разведенной на его борту всей необходимой обвязкой и возможностью питать устройство от 5 до 24 Вольт.

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

Заливаем прошивку, образ SPI Flash и подключаем четырьмя проводами датчики. Справится даже ребенок.
Ссылки:
Базовая плата для NodeMCU V3 с преобразователем питания 5-24V в 5V Отладочная плата ESP8266 от NodeMCU Естественно никто не запрещает Вам развести свою плату. Если Вы это сделаете, скиньте нам свое творение, возможно мы перейдем на него. В идеале, все должно размещаться в метеобудке.
Датчики взятые за основу
Теперь настал момент озаботиться, где описанные выше ребята будут жить. В прошлый раз мы использовали для этих целей, найденную в подножном корме, электрическую распределительную коробку. Кроме дешевизны в этом решении нет ничего положительного.
В этот раз мы воспользуемся более серьезным вариантом – «Метеорологическая будка Стивенсона». Она способна защитить датчики от прямых воздействий окружающей среды, но при этом имеет открытую структуру со стенками в виде жалюзи. Удобно, красиво и самое главное – правильно!
Будка печатается на 3D принтере по эскизам опубликованным на Thingiverse неким kowomike, спасибо добрый человек! Архив с эскизами можно будет скачать в конце поста.

Фото готовой будки

Шпилька М8 крепится через зажимной хомут к мачте уличной антенны.
Примерка. Шпилька практически не укорачивалась, чтобы не закрывать будку параболической Wi-Fi антенной.
Хотя в моем случае все это сделано не правильно т.к это солнечная сторона дома. Доступа на теневую сторону дома у меня нет, поэтому приходиться довольствоваться тем, что имеем. По прошлой метеостанции мне говорили «на солнечной стороне все эти измерения — сферический конь в вакууме, слепи %описание-многА-букАв% и закрепи на теневой стороне дома».
Я пока живу в панельном многоквартирном доме, как и не малая часть нашей страны. Доступ к теневой стороне дома (а для меня, по факту, это окна в подъезде) — прямой вызов всем гопникам района трущимся рядом, любопытным соседям с бегающими глазками и всей элите человечества скрашивающей фоном мою унылую и слишком простую, по их мнению, жизнь. Думаю, что мысль я донес.

Датчики располагаются на разных уровнях. В основании находится датчик освещенности Bh2750 и смотрит ровно вниз. Мне кажется, так он будет меньше пачкаться и покрываться пылью и при этом смотреть наружу сквозь минимальное количество препятствий для солнечного света. Вообще размещение этого датчика, это целая головная боль. Как не крути, все будет не то. Оставил так, ведь по сути важны не сами показания, а тенденция изменения. Хотя кого я пытаюсь обмануть, точность важна всегда! Предлагайте свои варианты.
Намного проще обстоят дела с датчиком атмосферного давления BMP180 и влажности SI7021, кстати, с последнего мы также будем забирать данные о температуре. Их размещаем в оставшемся свободном пространстве будки, благо его там с избытком, но не в конусе т.к пространство в нем менее проветриваемое.

Все хозяйство подключается между собой следующим образом
NodeMCU | ESP 07/12 | Датчики —————————— D2 | GPIO 4 | SDA D1 | GPIO 5 | SCL 3.3V | 3.3V | 3.3V GND | GND | GND ВАЖНО: при финальном монтаже устройства на его место службы, обязательно установите перемычку между пинами GPIO 0 (D3) и питанием 3.3 Вольта. Причины её установки описаны в закрепленном сообщении с описание обновления от 12.08.2017.
Сам микроконтроллер будет спрятан в уже знаменитую распределительную коробку, закрепленную на шпильке, чуть ниже будки Стивенсона. У меня все находится на стадии неторопливой сборки с попутным поиском более удачных идей.
Плата расширения, на которой будет установлена плата NodeMCU, закреплена через ножки для крепления компьютерных материнских плат в корпусах.

Разъемы для подключения внешних датчиков и питающей линии установил на местах где была пара штатных заглушек. Закрепил все через переходную пластину, выпиленную из куска фольгированного текстолита. Естественно, предварительно пластина была протравлена, а вся медь искоренена, ибо в этом случае она нам не друг.
Также была предусмотрена проставка из полиэтиленового поролона (используется в качестве упаковочного материала при транспортировке грузов) между текстолитом и корпусом, общей толщиной 5мм, а после затяжки крепежных винтов, его толщина не превышает 1мм. Это было сделано из-за опыта эксплуатации предыдущего (временного) бокса для этой метеостанции. Без проставки влага быстро найдет путь вовнутрь, и срок службы устройства снизится.
Производим примерку.
При окончательном монтаже обязательно необходимо удалить все не плотно прилегающие части полиэтиленового поролона, то есть те части, которые располагаются снаружи и не сдавлены крепежной текстолитовой пластиной. Это необходимо сделать для препятствования накоплению влаги в доступных для неё полостях. Также пришлось увеличить число крепежных болтов для более надежного прилегания текстолита, в противном случае он может выгибаться.
Все самое сложное позади, остается только вывести на один разъем шину i2c с питание 3.3 Вольта, а на другой подвести пины питания платы расширения. Но т.к у меня валялся «хвост» отрезанный когда-то от не рабочего блока питания маршрутизатора, и я не побрезговал им воспользоваться по прямому назначению.

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

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

Требования (!!!Читать обязательно!!!)
Arduino IDE с поддержкой контроллера ESP8266, версия 2.6.2 (на версиях выше работоспособность не проверялась) Установленный модуль в Arduino IDE для загрузки файлов во Flash память микроконтроллера. Как установить описано тут. Для работы модуля загрузки файлов во Flash может понадобится последняя версия Python https://www.python.org/downloads/ Любой модуль на базе ESP8266 c Flash 4MB (3MB выделяем под SPIFFS) В параметрах выставляем lwIP версии 2 и максимальную производительность (lwIP v2 Higher Bandwidth) Сам архив с последней версией проекта. Скачать можно в конце статьи или по этой ссылке.   
Обязательные библиотеки (!!!Читать обязательно!!!)
ArduinoJson (v5.13.5) PubSubClient Ссылки на библиотеки сенсоров указаны в комментариях к коду. Сами библиотеки, как и обслуживаемые ими сенсоры, не являются обязательными. Вы вольны использовать любые датчики, как физические, так и программные.
Порядок установки (!!!Читать обязательно!!!)
Изучите файлы проекта с примерами использования тех или иных сенсоров. Все файлы с примерами начинаются с префикса users_, это users_auto.h, users_bme280_x2.h и т.д. Загрузите необходимые Вам библиотеки или используйте эти файлы как пример для добавления иных датчиков. Выставите необходимые настройки для контроллера в среде разработки Arduino IDE. Пример настроек указан на скриншоте выше. Обязательно убедитесь, что выбрано правильное распределение места для внутренней файловой системы, это значит, что 3MB должно быть выделено под файловую систему. Также проверяем, чтобы использовался lwIP v2 в режиме максимальной производительности (lwIP v2 Higher Bandwidth). Произведите загрузку программы с помощью среды разработки (Ctrl + U). Произведите загрузку содержимого каталога data в файловую систему. Меню/Инструменты/ESP8266 Sketch Data Upload Перед тем как устанавливать метеостанцию на постоянное место жительства, подтянуть GPIO-0 (пин D3 на плате NodeMCU) к питанию 3.3V. Во время данной процедуры, питание на контроллере должно отсутствовать. Первый запуск (!!!Читать обязательно!!!)
Помните, что вся конфигурация микроконтроллера производится исключительно через web интерфейс. Никаких изменений значений тех или иных параметров в коде не требуется, а подобную практику будем считать плохим тоном.
И так, после запуска микроконтроллера он сразу перейдет в аварийный режим и поднимет собственную точку доступа с именем WeatherStation. Это нормальное поведение т.к подразумевается использование метеостанции в домашней беспроводной сети, ну а раз о ней пока ничего не известно, то и подключаться не к чему.
Подключитесь к данной сети с любого удобного устройства и перейдите в панель управления (для этого имеется соответствующая иконка, запутаться невозможно), контроллер будет доступен по адресу http://espws.local или http://192.168.4.1 При попытке входа в панель управления будет запрошено имя пользователя и пароль, по умолчанию admin/admin. После входа в панель управления перейдите в раздел «Основные настройки WiFi» и укажите имя и пароль Вашей домашней сети, а также, при необходимости, укажите пароль для подключения к точке доступа поднимаемой контроллером в аварийном режиме. Если все сделано правильно, то контроллер подключится к домашней сети в течении 5-и минут.
Если Ваша домашняя сеть скрыта, то после первоначальной настройки необходимо перезагрузить контроллер. Это необходимо из-за частичной поддержки работы со скрытыми сетями. После перезагрузки контроллер увидит Вашу сеть и запомнит её MAC адрес. Помните об этом если захотите сменить домашний маршрутизатор.
Хотите помочь проекту или спонсировать новый?
Yandex.Money PayPal.me Файлы
 

Увеличение количества входов/выходов микроконтроллеров ESP8266/ESP32/Arduino

У Arduino количество входов в старших версиях (Arduino Mega) значительное, однако само устройство все-же больше заточено под прототипирование и выпуск IoT устройств в небольших количествах. Быстро и недорого заткнуть брешь. Этот вариант пригоден далеко не для всех задач, особенно когда нужно развертывать сотни IoT устройств.

На Arduino довольно удобно разрабатывать. Есть Aruino IDE, несложный вариант C++, поддержка в среде Visual Studio Code/Visual Studio 2017. Накоплена огромная экспертиза, множество штатных библиотек, закрывающих многие задачи, масса форумов, статей и т.п. Однако, к сожалению, если нужно сделать удаленное обновление прошивки, нормального штатного решения для Arduino мне найти не удалось. Нестандартные bootloader разрабатывались давно, обновлений кода нет и насколько стабильно работают, непонятно.

Микроконтроллеры ESP8266 и старший собрат ESP32 — это промышленные микроконтроллеры, отлично документированные с штатной поддержкой обновления программного обеспечения по TCP/IP.

Если разрабатывается решение для промышленной автоматизации, то рекомендую использовать чипы ESP. Будет хороший задел на будущее в части дальнейшего развития. Учитывая то, что код под ESP можно создавать на С++ в среде Arduino IDE/Visual Studio Code/2017, а многие библиотеки совместимы между Arduino и ESP, в случае необходимости можно перейти с ESP на Arduino. Естественно, с потерей функционала Wi-Fi, который встроен в ESP, а в Arduino требуется дополнительный shield. Например, тот-же самый ESP8266. 🙂

В чипах ESP уже встроена поддержка Wi-Fi и Bluetooth (ESP32), есть режимы пониженного энергопотребления, что упрощает разработку устройств работающих от аккумулятора.

Электропитание ESP8266/ESP32

Для автономного электропитания рекомендую используется емкий Li-Ion аккумулятор 18650. На Aliexpress можно найти варианты аккумулятора на 9900 mAh. Скорее всего китайцы лукавят, ставя эту цифру, но батарея действительно емкая.

К ней несложно найти недорогой battery shield для питания устройств на этих микроконтроллерах. Есть и недорогие пассивные battery case для случая, когда управление Li-Ion аккумулятором реализованно на отдельном shield. Например, для платы Wemos D1 mini есть такой вариант shield.

ESP8266 vs ESP32

Вкратце сравню ESP8266 с ESP32.

 

ESP8266

ESP32

MCU

Xtensa Single-core 32-bit L106

Xtensa Dual-Core 32-bit LX6 with 600 DMIPS

802.11 b/g/n Wi-Fi

HT20

HT40

Bluetooth

X

Bluetooth 4.2 and BLE

Typical Frequency

80 MHz

160 MHz

SRAM

X

Flash

X

GPIO

17

36

Hardware /Software PWM

None / 8 channels

None / 16 channels

SPI/I2C/I2S/UART

2/1/2/2

4/2/2/2

ADC

10-bit

12-bit

CAN

X

Ethernet MAC Interface

X

Touch Sensor

X

Temperature Sensor

X

Hall effect sensor

X

Working Temperature

-40ºC to 125ºC

-40ºC to 125ºC

Price

$ (3$ — $6)

$$ ($6 — $12)

Where to buy

Использовать GPIO входы/выходы на этих чипах можно по-разному.

Функциональное назначение выводов чипа ESP8266.

При приобретении ESP32 devkit на Aliexpress нужно обращать внимание на количество PIN-ов. Наиболее распространенный вариант — 30 PIN-овый, такой-же как ESP8266. Он стоит в районе 5 USD. Есть вариант на 36 PIN и 38 PIN. На 38 PIN стоит в районе 8 USD. Отличить легко, PIN-ы опускаюся до нижнего края кнопок.

Здесь уже нужно смотреть, что нужно от платы, поскольку може оказаться выгоднее приобрести расширение на 16 GPIO за 1,5 USD, чем переплачивать за PIN-ы на devkit.

Функциональное назначение выводов чипа ESP32 с 36 PIN-ами

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

У ESP32 можно использовать 10 входов в качестве емкостных (TOUCH). Присоединенный к ним провод будет изменять емкость при поднесении руки. Например, можно реализовать вечные емкостные кнопки, которые могут быть реализованы на печатной плате, без использования механических компонент.

Увеличение количества аналоговых входов/выходов

Аналого-цифровой преобразователь АЦП (ADC)

В ESP8266 только один АЦП (ADC), в то время как в ESP32 доступно 18!!! АЦП, причем 12 битных, в отличие от 10-ти битного АЦП ESP8266. Напряжение срабатывания АЦП в ESP32 можно менять от 0 до 4 V.

I2C адресация модуля ADS1115

16-ти битные внешние модули АЦП с чипом ADS1115 4-х канальные и стоят с доставкой в Россию в районе 1,5 USD. Примерно столько же стоит 12-ти разрядный ADS1015. Datasheet здесь.

Чтобы в ESP8266 получить такое-же количество каналов АЦП, как у ESP32 потребуется 4 шт. внешних АЦП и цена только этих модулей получится в районе 6 USD. Сам чип ESP32 распаянный на плате можно приобрести примерно за 7 USD с доставкой в Россию. Схема подключения здесь.

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

Помимо АЦП в ESP32 есть два 8-ми битных ЦАП (DAC).

Мультиплексор/демультиплексор аналоговых входов

Помимо увеличения аналоговых входов с помощью АЦП есть вариант расширения мультиплексором. Хорошая статья на эту тему в которой подробно рассмотрен аналоговый мультиплексор/демультиплексор CD4051/74HC4051. Много вариантов от других производителей.

CD4051 — это 8 канальный аналоговый CMOS мультиплексор/демультиплексор. ДЛя увеличения количества аналоговых входов на 7 потребуется 1 аналоговый и 3 цифровых входа.

Функциональная схема работы мультиплексора/демультиплексора CD4051

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

Если приобретать модуль на Aliexpress, то цена будет в районе 0,8 USD за 8 каналов, 16-ти разрядное АЦП ADS1115 — 1,5 USD за 4 канала. Если же приобретать только микросхему CD4051, то цена будет гораздо ниже микросхемы АЦП.

Увеличение количества цифровых GPIO входов/выходов

Плата увеличения количества GPIO портов.

Для увеличения количества цифровых входов можно воспользоваться добротной платой расширителя GPIO на 8 Входов/Выходов. Она хорошо документирована, исполнена на высоком техническом уровне. Хотя, ценник не Aliexpress-а. 🙂 При изготовлении нескольких сотен устройств, себестоимость конечного устройства существенно вырастет.

Посмотрим, что есть на сей счет есть у китайских собратьев. А у них конечно-же что-то есть и недорого. 🙂


8-канальный расширитель GPIO на чипе PCF8574 с DIP переключателями для назначения I2C адреса 8-канальный расширитель GPIO на чипе PCF8574 с джамперами для назначения I2C адреса. Эту плату можно каскадировать.

Сразу отмечу качественное исполнение модулей по цене в районе 1 USD. Чип от TI PCF8574 обеспечивает 8 каналов ввода-вывода (GPIO) управляемых по шине I2C. Есть выход INT соединяемый с входом микроконтроллера поддерживающим обработку прерываний. При возникновении прерывания на одном из входов платы расширения, прерывание транслируется микроконтроллеру для дальнейшей приоритетной обработки поступившего сигнала.

Конструктивно синие модули удобно каскадировать, втыкая один в другой. Адрес устройств удобно задается либо DIP переключателями, либо джамперами. Возможно подключение внутренних pullup резисторов на +5V.


16-ти канальный расширитель GPIO на чипе PCF8575

Старший брат TI PCF8575 позволяет получить 16 GPIO портов за цену в два раза выше. Но реализация платы попроще. никаких DIP переключателей для выбора адреса I2C. Зато 16 каналов в компактном исполнении.

Аналогичный чип от компании Microchip на 16 входов для расширения количества GPIO портов, MCP23017. Есть вариант для шины I2C и более шустрый для SPI (MCP23S17). Китайские продавцы нередко указывают в описании товара чип MCP23S17, однако по фото платы видно, что чип MCP23017. Обращайте на это внимание! Аналогичный чип на 8 портов — MCP23008.

MCP23017 плата увеличения GPIO для микроконтроллеров

Цена этого варианта модуля в районе 1,5 USD. Исполнение платы попроще обойдется почти в два раза дешевле. Чип позволяет обеспечить увеличение GPIO на 8+8=16. Как и чип от Texas Instruments помимо входов для подключения устройств есть два выхода прерываний на каждый блок из 8 устройств. Этот чип позволяет работать на частоте до 1,7 МГц и 10 MHz для версии под шину SPI, в отличие от чипа PCF8574 для которого верхний предел 400 кГц. Также возможно подключение внутренних pullup резисторов на +5V. Схема подключения платы к ESP8266 разобрано здесь.

SX1509 модуль для увеличения количества GPIO.

Ещё один 8+8=16-ти канальный расширитель количества GPIO с Aliexpress на чипе SX1509. Библиотека и описание от Sparkfun. Чип дороже, чем ранее представленные. По ТТХ чип очень похож на ранее рассмотренные варианты. Работает на частоте 400 кГц. Есть встроенная поддержка ШИМ (PWM) на выходах.

Чип «заточен» для работы с LED и клавиатурой. В части LED из-за наличия ШИМ позволяет управлять яркостью светодидов, выполнять затухание, моргание и пр. Есть в наличии выход INT для трансляции прерываний микроконтроллеру. Поддерживаются встроенные pull-up, pull-down резисторы на входах.

GPIO expander от Fairchild (ON Semiconductor) FXL6408UMX. Аналогично 8 портов управляемых по шине I2C. Datasheet.

Выходы управления реле

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

MAX4820/4821 — транзисторые сборки управляемые по SPI/параллельному интерфейсу 8 выходов. Коммутируют максимум 5 V нагрузку.

TPIC2603 — управляемая по последовательному интерфейсу SDI сборка на 6 каналов.

TPIC2802 — управление по последовательному интерфейсу 8 каналами с током по 1А на канал.

MC33996 — управляемый по шине SPI коммутатор 16 выходов.

RTC

Подключение внешнего кварцевого резонатора к ESP32

По одним статьям RTC в ESP32 — это не Real Time Clock, а ядро низкого энергопотребления. Однако, по другим все-же Real Time Clock, но плохого качества (+-5%), который не стоит использовать в бизнес-приложениях.

Возможно, проблема неточности встроенного RTC может быть решена добавлением внешнего кварцевого резонатора. Я нашел упоминание о схеме подключения карцевого резонатора к контактам RTC_GPIO8/RTC_GPIO9. Но непонятно как запитывать встроенный RTC от батарейки. Отдельного входа RTC VBAT нет.

В общем, не факт, что удастся сэкономить на входе. 🙁 Особенно, если нужен data logger, а не только RTC. В data logger RTC уже встроен и SPI выводы на чтение/запись придется отдать :-(. Хотя в data logger RTC нередко подключается на шину I2C.

Подключение датчиков 4..20 мА

рассмотрено в статье.

Подключение I2C датчиков

В теории к одной шине I2C можно подключить до 127 устройств. У каждого из устройств должен быть свой уникальный адрес. Нередко адрес устройства один и жестко «прошит», поэтому нельзя подключить на одну шину несколько таких модулей. Входов I2C в ESP всего 1 (2 у ESP32) шт.

Для подключения I2C устройств с совпадающими адресами используются I2C мультиплексоры. На Aliexpress из недорогих доступен I2C extender на чипе TCA9548A. Цена в районе 1 USD с доставкой в Россию.

8-канальный I2C мультиплексор на чипе TCA9548A

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

Фактически, мультиплексор обеспечивает временную прямую коммутацию GPIO микроконтроллера с выбранным устройством по его номеру. Это некоторый недорогой workaround для решения проблем с конфликтом адресов I2C.

Интерфейс RS485

Модуль интерфейса RS485 для Arduino/ESP8266/ESP32

Подробный обзор досупных модулей реализующих RS485 интерфейс сделал в статье.

Подключение K-Type термопар

Модуль MAX6675 для подключения термопары K-Type к
микроконтроллеру по шине SPI

Подключение термопар к ESP32/ESP8266/Arduino с помощью модулей MAX6675 и MAX31855.

Увеличение количества UART (RX/TX) портов

Для некоторых задач есть необходимость увеличения количества последовательных портов. Для старших моделей Arduino, например, Mega, острой необходимости в увеличении последовательных портов нет, там их достаточно. Однако для ESP8266 задача вполне актуальна, учитывая что там только один hardware serial port, да и тот нередко занят под распаянный на плате USB ковертер. Можно эмулировать работу последовательного порта на GPIO с помощью SoftSerial, но не для всех задач это приемлемо.

Расширение одного последовательного порта UART (RX/TX) на
8-мь дополнительных последовательных портов

Решение от компании AtlasScientific — 8:1 Serial Port Expander самое дорогое. Цена в районе 15$ без доставки довольно высока, хотя если сравнивать с одно и двух портовыми модулями, то цена за порт меньше 2 $, что выгоднее чем у 1-2-х портовых собратьев.


SC16IS760 модуль для конвертации I2C / SPI на один UART порт

Есть конвертеры I2C в один порт UART и 8 GPIO портов на чипе SC16IS750. Стоят порядка 4 $ с оставкой в Россию. SPI вариант на чипе
SC16IS760. Учитывая, что на одну шину можно вешать несколько модулей — можно набрать нужное количество. SPI порт достаточно шустрый, чтобы обеспечить подключение достаточно большого количества таких модулей.

SC16IS762 модуль для конвертации I2C / SPI на два UART порта

Есть старший собрат ковертера I2C в два порта UART и 8 GPIO портов на чипе SC16IS752. Стоят порядка 5 $. SPI вариант на чипе SC16IS762.

Плат на чипах MAX14830, MAX3107, MAX3108, MAX3109 я на Aliexpress не нашел.

Схемное решение для получения 4-х портов UART.

Заключение

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

Arduino / install.rst at master · esp8266 / Arduino · GitHub

Менеджер плат

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

Предварительные требования

  • Arduino 1.6.8, получить от Arduino Веб-сайт.
  • Подключение к Интернету
  • Интерпретатор Python 3 (только для Mac / Linux, при установке Windows предоставляется собственный)

Инструкции

  • Запустите Arduino и откройте окно настроек.
  • Введите https: // arduino.esp8266.com/stable/package_esp8266com_index.json в Дополнительные URL-адреса менеджера платы в поле . Вы можете добавить несколько URL-адреса, разделяя их запятыми.
  • Откройте диспетчер плат из меню Инструменты> Плата и найдите esp8266 Платформа.
  • Выберите нужную версию из раскрывающегося списка.
  • Нажмите кнопку установить .
  • Не забудьте выбрать свою плату ESP8266 в меню «Инструменты»> «Плата». после установки.

Дополнительные сведения о диспетчере плат Arduino см .:

Использование git версии

Это рекомендуемый метод установки для участников и библиотеки. Разработчики.

Предварительные требования

  • Arduino 1.6.8 (или новее, текущая рабочая версия — 1.8.5)
  • гит
  • Python 3.x (https://python.org)
  • терминал, консоль или командная строка (в зависимости от вашей ОС)
  • Подключение к Интернету
  • Удаление любой версии ядра, установленной через Board Manager

Инструкции — Windows 10

  • Во-первых, убедитесь, что у вас еще не установлена ​​версия ядра ESP8266. с помощью Board Manager (см. выше).Если вы это сделаете, удалите его из Совет директоров перед продолжением. Также желательно стереть Arduino15 содержание.

  • Установите git для Windows (если еще не; см. Https://git-scm.com/download/win)

  • Откройте командную строку (cmd) и перейдите в каталог Arduino по умолчанию. Обычно это sketchbook каталог (обычно C: \ users \ {username} \ Documents \ Arduino , где переменная среды % USERPROFILE% обычно содержит C: \ users \ {username} )

  • Клонируйте этот репозиторий в каталог hardware / esp8266com / esp8266.

     cd% ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ% \ Documents \ Arduino \
    если не существует оборудования mkdir hardware
    cd оборудование
    если не существует esp8266com mkdir esp8266com
    cd esp8266com
    git clone https://github.com/esp8266/Arduino.git esp8266 

    У вас должна получиться следующая структура каталогов в

    C: \ Users \ {ваше имя пользователя} \ Documents \

     Ардуино
    |
    --- библиотеки
    --- аппаратное обеспечение
        |
        --- esp8266com
            |
            --- esp8266
                |
                --- загрузчики
                --- ядра
                --- док
                --- библиотеки
                --- упаковка
                --- тесты
                --- инструменты
                --- варианты
                --- Платформа.текст
                --- programmers.txt
                --- README.md
                --- доски.txt
                --- ЛИЦЕНЗИЯ 
  • Инициализировать подмодули

     cd% ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ% \ Documents \ Arduino \ hardware \ esp8266com \ esp8266
    git обновление подмодуля --init 
Если в процессе сборки возникают сообщения об отсутствующих файлах, относящихся к SoftwareSerial , это должно быть связано с тем, что этот шаг был пропущен и является обязательным.
  • Скачать бинарные инструменты

     cd esp8266 / инструменты
    python3 получить.py 
  • Перезапустить Arduino

  • При использовании Arduino IDE для Visual Studio (https://www.visualmicro.com/) обязательно щелкните Инструменты — Visual Micro — Повторное сканирование цепочек инструментов и библиотек

  • При последующем обновлении локальной библиотеки перейдите в каталог esp8266 и выполните команду git pull

     cd% ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ% \ Documents \ Arduino \ hardware \ esp8266com \ esp8266
    git статус
    мерзавец тянуть 

Обратите внимание, что теоретически вы можете установить в C: \ Program Files (x86) \ Arduino \ hardware , однако это имеет последствия для безопасности, не говоря уже о том, что каталог часто удаляется при повторной установке Arduino IDE.У него есть преимущество (или недостаток, в зависимости от вашей точки зрения) — то, что он доступен всем пользователям вашего ПК, которые используют Arduino.

Инструкции — Другая ОС

  • Во-первых, убедитесь, что у вас еще не установлена ​​версия ядра ESP8266. с помощью Board Manager (см. выше). Если вы это сделаете, удалите его из Совет директоров перед продолжением. Также желательно стереть .arduino15 (Linux) или содержимое Arduino15 (MacOS).

  • Откройте консоль и перейдите в каталог Arduino.Это может быть ваш sketchbook каталог (обычно / Arduino ) или каталог самого приложения Arduino, выбор за вами.

  • Клонируйте этот репозиторий в каталог hardware / esp8266com / esp8266. В качестве альтернативы, клонируйте его в другом месте и создайте символическую ссылку, если ваша ОС поддерживает их.

     cd оборудование
    mkdir esp8266com
    cd esp8266com
    git clone https://github.com/esp8266/Arduino.git esp8266 

    У вас должна получиться следующая структура каталогов:

     Ардуино
    |
    --- аппаратное обеспечение
        |
        --- esp8266com
            |
            --- esp8266
                |
                --- загрузчики
                --- ядра
                --- док
                --- библиотеки
                --- упаковка
                --- тесты
                --- инструменты
                --- варианты
                --- Платформа.текст
                --- programmers.txt
                --- README.md
                --- доски.txt
                --- ЛИЦЕНЗИЯ 
  • Инициализировать подмодули

     cd esp8266
    git обновление подмодуля --init 
Если в процессе сборки возникают сообщения об отсутствующих файлах, относящихся к SoftwareSerial , это должно быть связано с тем, что этот шаг был пропущен и является обязательным.
  • Скачать бинарные инструменты

     cd esp8266 / инструменты
    python3 получить.py 

    Если вы получаете сообщение об ошибке, в котором говорится, что python3 не найден, вам необходимо установить его (большинство современных UNIX-подобных ОС предоставляют Python 3 как часть установки по умолчанию). Для установки вам нужно будет использовать sudo yum install python3 , sudo apt install python3 или brew install python3 по мере необходимости. На Mac вы можете получить сообщение об ошибке, например:

     python3 get.py
       Платформа: x86_64-apple-darwin
       Скачивание python3-macosx-placeholder.tar.gz
       Отслеживание (последний вызов последний):
         Файл "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", строка 1317, в do_open
           encode_chunked = req.has_header ('Передача-кодировка'))
         ...
         Файл "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py", строка 1117, в do_handshake
           self._sslobj.do_handshake ()
       ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалась: невозможно получить сертификат местного эмитента (_ssl.с: 1056)
    
    Это связано с тем, что Homebrew на Mac по умолчанию не всегда устанавливает необходимые сертификаты SSL. Установите их вручную (при необходимости настройте Python 3.7) с помощью:
    
    .. code :: bash
    
        cd "/ Applications / Python 3.7 /" && sudo "./Install Certificates.command" 
  • Перезапустить Arduino

  • При последующем обновлении локальной библиотеки перейдите в каталог esp8266 и выполните команду git pull

     cd оборудование \ esp8266com \ esp8266
    git статус
    мерзавец тянуть 

Использование PlatformIO

PlatformIO это экосистема с открытым исходным кодом для разработки IoT с кросс-платформенной система сборки, менеджер библиотек и полная поддержка Espressif (ESP8266) разработка.Он работает на следующем популярном хосте, работающем системы: macOS, Windows, Linux 32/64 и Linux ARM (например, Raspberry Pi, BeagleBone, CubieBoard).

  • Что такое PlatformIO?
  • ПлатформаIO IDE
  • PlatformIO Core (инструмент командной строки)
  • Расширенное использование — пользовательские настройки, загрузка в LittleFS, по беспроводной сети (OTA), промежуточная версия
  • Интеграция с облачными и автономными IDE — Cloud9, Codeanywhere, Eclipse Che (Codenvy), Atom, CLion, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, VIM, Visual Studio и VSCode
  • Примеры проектов
Выпуски

· esp8266 / Arduino · GitHub

версии · esp8266 / Arduino · GitHub

Исправлений:

  • Backport # 7478: исправьте необязательные переменные класса из # 7464
  • Backport # 7491: исправлено выравнивание буфера записи флеш-памяти PUYA

Исправление против «OTA больших файлов приводит к зависанию устройства» (# 7458)

Также включает бэкпорты из 3.0,0-отклонение:

  • плат: обновления 4dsystems (gen4iod) (# 7433)
  • Свободное место для перезаписанных файлов в LittleFS (# 7434)
  • Сохранять сертификаты клиентов при установке аутентификации сервера (# 7464)
  • CVE-2020-12638 способ обхода атаки перехода на более раннюю версию WPA (# 7486)
  • Инициализировать _ledPin (# 7487)
  • Правильная длина буфера строки стека (# 7488)

загрузка

Ядро

  • Добавить пространство имен к ссылкам на FS в CertStore (# 7413)
  • Для фиксированного инициализатора time_stats UMM_CRITICAL_METRICS.(# 7390)
  • Добавить маркер «- CUT HERE -» в вывод исключения (# 7369)
  • CallbackList API: улучшено, чтобы исполнитель узнал количество активных обратных вызовов (# 7361)
  • umm_malloc ручное слияние с восходящим потоком (# 7337)
  • Исправить вход в configTime (tz, dst,) (# 7320)
  • Обновите SPIFFS до последней версии (# 7276)
  • Разрешить невыровненный PSTR () (# 7275)
  • Crypto: Добавьте требуемый BearSSL в заголовок (# 7310)

Система сборки

  • Используйте предварительно собранный переносимый Python3 для OSX (# 7348)
  • Распознать MSYS (MINGW) как Windows для набора инструментов get (# 7358)
  • elf2bin.py очистка objcopy (# 7351)

Библиотеки

  • WiFiMulti: Возможность установить тайм-аут подключения в WifiMulti-> запустить (# 7420)
  • BearSSL: добавить пространство имен к ссылкам на FS в CertStore (# 7413)
  • httpclient: исправить значение ошибки (# 7401)
  • EspSoftwareSerial 6.8.5: исправляет четность для TX с режимами нечетного размера слова (# 7399, # 7367, # 7354)
  • Добавить ESP8266WebServerTemplate :: enableCORS (bool _ec) (# 7388)
  • SPI: abs -> std :: abs и исправления приведения (# 7362)
  • Исправить недосмотр для ap gw (# 7366)
  • ESP8266WiFiAP: исправить IP-адрес в некоторых случаях (# 7363)
  • LittleFS: вернуть FALSE при поиске мимо EOF (# 7324)
  • Веб-сервер: уменьшение размера флэш-памяти для mime-типа (# 7312)
  • BearSSL: выделить стек для SigningVerifier (# 7291)
  • ESP8266HTTPClient fixes (# 6476)

Примеры

  • Обновление отпечатка сертификата GitHub в примере (№ 7397)
  • Мультиклиентское событие, отправленное сервером (также известное как EventSource), демонстрация (# 7012)
  • Веб-сервер: пример графика (# 7299)

Документация

  • Добавить ожидающие методы в документы универсального класса (# 7427)
  • исправления документации для LittleFS (# 7385)
  • Исправить опечатку в ридми.первый (# 7379)
  • Добавить документацию по выходу из глубокого сна с помощью WAKE_RF_DISABLED (# 7338)
  • Добавить ссылку на библиотеку FTP-клиента / сервера (# 7336)
  • Документ ESP.getMaxFreeBlockSize ()! = Максимальный размер malloc (# 7328)

Платы

  • modwifi: исправление назначения контактов I2C (# 7416)

Здание на хосте

    Эмуляция
  • на хосте: опция для сохранения местоположения FS (# 7424)
  • Эмуляция
  • на хосте: FS: незначительное исправление сброса (# 7417)
  • Эмуляция
  • на хосте: отсутствуют фиктивные функции, улучшена обработка интерфейса хоста (# 7404)
  • Эмуляция
  • на хосте: lwIP всегда получает многоадресные пакеты, включает и исправляет многоадресный сервер udp (# 7386)
  • Эмуляция
  • на хосте: исправить привязку с определенного интерфейса (# 7372)
  • Эмуляция
  • на хосте: различные исправления (# 7355)

Исправления

  • Отменить изменения XMC в eboot, которые вызвали сбой OTA (# 7277)
  • Восстановить MDNS прослушать текущий iface, вызывающий смерть MDNS (# 7266)

Ядро (ФС)

  • Устарела SPIFFS, перенесите примеры в LittleFS (# 7263)

Документация

  • Документ USTX в USS / UxS не работает должным образом (# 7265)

Критические изменения

Нет

Отличные дополнения

  • Разрешить обновления сжатой флэш-памяти GZIP (# 6820)
  • Добавить библиотеку CryptoInterface (# 6961, # 7252)

Ядро

  • Добавлен пропущенный «if (umm_heap == NULL) {… «в umm_free_heap_size_lw (# 6929)
  • Оптимизация размера кода для ESP.getFullVersion () (# 6936)
  • I2C: разрешить частоту ниже 100 кГц (# 6934)
  • Уменьшить размер памяти ESP.getResetInfo () (# 7030)
  • Оптимизация размера кода ESP.getResetReason () (# 7029)
  • Демо-версия с низким энергопотреблением (# 6989)
  • Исправить реализацию WMath map () для обратного / двустороннего сопоставления (# 7027)
  • Исправить optimistic_yield, чтобы не возвращать результат при каждом вызове после x мкс (# 6804)
  • Обновлены смещения стека для посмертного дампа стека (# 7066)
  • Исправлено начало и конец стека в stack_thunk_dump_stack () (# 7085)
  • configTime (tzsec, dstsec,): исправить UTC / локальное управление (# 6993)
  • dtostrf: круглое исправление (# 7068, # 7093)
  • простой API TZ: обойти sprintf / sscanf (= не использовать флэш-память 7 КБ) (# 7109)
  • Вытяните инициализацию GPIO в свою собственную «слабую» функцию.(# 7044)
  • Атрибут __real_system_restart_local () как (noreturn) (# 7167)
  • Перемещение с плавающей запятой из libgcc из IRAM (# 7180, # 7188)
  • Тон: расширить до 20 кГц (# 7179)
  • Добавить библиотеку CryptoInterface (# 6961, # 7252)
  • Исправление ошибки утечки MD5 (# 7197, # 7208)
  • Использовать F_CPU, если (?) Переключатель частоты процессора работает только во время компиляции (# 6833)
  • выставить setTZ () (# 7234)
  • Поддержка флэш-памяти XMC — WIP (# 6725)
  • Разрешить указание форм сигнала в тактах (# 7211)
  • Waveforms: выберите приятные изменения по сравнению с текущими # 7122 (# 7218)
  • Разрешить stopWaveform для остановки сигналов с истекшим временем ожидания (# 7236)
  • Удерживать датчик в сбросе во время изменения скорости (# 7248)
  • Исправление незначительных предупреждений статического анализатора GCC10 (# 7255)

Ядро (ФС)

  • Пропустить.и .. на LittleFS :: dir :: rewind () (# 6959)
  • Обновлять метку времени LittleFS только при открытии записи (# 6956)
  • Обновление LittleFS до последней исходной головки (# 6986)
  • Добавить обратный вызов SDFS :: Dir :: fileTime (# 6985)
  • Добавить поддержку LittleFS в ESP8266WebServer.serveStatic () (# 6987)
  • Исправление логического / логического и смешивания в LittleFS open (# 6996)
  • Добавить аксессоры времени создания fileCreation / getCreation (# 7000)
  • Улучшение поддержки LittleFS (# 7071)
  • Обновление до LittleFS v2.2.0 (# 7240)

Сеть (ядро, библиотека / ESP8266WiFi)

  • lwip2: больше нет зависимостей подмодуля git, более быстрая контрольная сумма, ограничение невыполненных работ и другие исправления (# 6887)
  • Исправить / включить повторную сборку пакетов UDP (# 7036, # 7132)
  • SNTP: backport espressif sntp api для lwip2 (# 7097)
  • TCP: исправляет обработку лимита невыполненных работ и разрешает эфемерные TCP-соединения (# 7096)
  • обновление lwip2: остановка DHCP при выходе из строя интерфейса (# 7114)
  • Исправить отправку UDP на локальные адреса ссылки IPv6 (# 6541)
  • Исправить отправку TCP на локальные адреса ссылки IPv6 (# 7207)
  • Обновление _port до реально используемого порта и доступ к _port (# 7003)
  • Сделать порядок разрешения DNS выбираемым во время выполнения или во время компиляции (# 6865)
  • WiFi: бесплатный ARP API для режима Wi-Fi станции (# 6889, # 7203)
  • исправить вызов нулевого указателя из WiFiClient :: localIP () в IPAddress (# 7221)

Библиотека — ESP8266WiFi (SSL / TLS)

  • Обновление BearSSL, увеличение стека SSL (# 6980)
  • Устранение утечки памяти при множественных вызовах initCertStore (# 7021)
  • Обновление до последней версии BearSSL (# 7098)
  • Прервать при сбое выделения стека BearSSL (# 7152)

Прошивка — OTA — Updater

  • Разрешить обновления сжатой флэш-памяти GZIP (# 6820)
  • Добавить документацию для сжатого OTA, исправить ошибку (# 6924)
  • Добавьте CRC32 через программу и ESP.checkFlashCRC (# 6566)
  • Исправить возможное переполнение модуля обновления, добавить тесты хоста (# 6954)
  • разрешить фильтр «.bin.gz» в селекторе файлов средства обновления HTTP (# 7026)
  • Updater: предотвратить закрытие веб-сервера (опция) (# 6969)
  • Использовать второй стек для проверки подписи обновления (# 7149)
  • Исправить проверку успешности / сбоя завершения espota (# 7204)

Библиотека — SoftwareSerial

Библиотека

— ESP8266WebServer

  • Очистка посадочного места PROGMEM для responseCodeToString (# 6950)
  • Исправить порядок поиска для индекса.Файлы htm (l) (. gz) (# 7069)
  • Добавить Uri с поддержкой regexUri и globUri (# 6696)
  • Добавить конструктор флэш-помощника в Uri (# 7105)
  • Открыть API фрагментов веб-сервера (# 7134)
  • Сделать getContentType доступным для стороннего использования (# 7254)

Библиотека — ESP8266HTTPClient

  • Уменьшить создание временной строки в HTTPClient :: sendHeader (# 6937)
  • Переместите пару больших струн с родаты на флеш (# 6976)
  • очистить _canReuse в setUrl, если это не локальное перенаправление (# 7039)
  • Устраняет большие проблемы с полезной нагрузкой для sendRequest (# 7051)
  • Лучше следовать перенаправлению для HTTPClient (# 7157)

Библиотека — mDNS

  • Обновите LEAmDNS.cpp (проблема с исправлением № 6982) (№ 7025)
  • использовать STA в качестве интерфейса по умолчанию в mDNS (# 7042)
  • Добавления в UdpContext, необходимые для LEAmDNS2 (# 7048)
  • mDNS: защита MDNSResponder :: queryService от неправомерного использования (# 7216)
  • Добавить isRunning getter для проверки того, что :: begin уже вызвано (# 7219)
  • Изменение прослушивания для прослушивания только текущего iface вместо 0 (# 7217)

Библиотека — сервопривод

  • Определите MAX_SERVOS как 12, как в оригинальном Servo.h (# 6999)

Библиотеки

  • Различные очистки обработки строк (библиотеки и ядро) (# 6945)
  • Установите значение для интервала уведомления SSDP (# 7110)

Документация

  • Руководство по установке PlatformIO (# 7142)
  • Исправить ссылки RST для PlatformIO (# 7143)
  • (STA) Исправлено смещение обратных кавычек (# 7247)

CI

  • Исправить сборку Windows CI (# 6927)
  • исправить CI: перейти на python3 для pio (# 7035)
  • обновление до новой предварительно созданной версии win sed (# 7062)
  • Переключить платформу espressif8266 на ветвь разработки в сборке PlatformIO (# 7170)
  • исправить проверку стиля: (# 7222)

Примеры

  • CaptivePortal: улучшить качество HTML (# 7227)
  • ESP8266WebServer: доработка примеров FSBrowser и SDWebServer (# 7182)

Платы

  • Внесены изменения, чтобы включить «ESP8266_» в имена плат ITEAD, {build.board} , (# 7024)
  • Добавить поддержку eduino wifi (# 6554)
  • Добавить 2 МБ для стандартной платы 8285 (# 7163)
  • esp8285: правильно инициализировать свободный gpio как вход (# 7165)

Система сборки

  • Добавить обратно mklittlefs для цели linux32 (# 7011)
  • Используйте скрипт python3 для вызова python3 (# 6960)
  • boards.txt.py: используйте правильное имя файла при записи (# 7018)
  • PIO: разрешить использование пользовательских сценариев компоновщика (# 7078)
  • Конструктор пакетов
  • : обновления для альфа-выпусков (# 7088)
  • Переключить платформу espressif8266 на ветвь разработки в сборке PlatformIO (# 7170)
  • Использовать F_CPU, если (?) Переключатель частоты процессора работает только во время компиляции (# 6833)

Тесты прибора

  • тестов устройства: некоторые из них можно запустить на хосте (# 6912)
  • Добавить тест для FS :: open («w +») (# 7241)

Загрузочный

  • eboot: исправить связывание и заполнение (# 7047)
  • Разрешить обновления сжатой флэш-памяти GZIP (# 6820)

Здание на хосте

    Сборка узла
  • : optimistic_yield () ошибочно задерживает () вместо того, чтобы избегать чрезмерной доходности (# 6802)

Исправления

  • Отменить изменения XMC в eboot, которые вызвали сбой OTA (# 7277)
  • Восстановить MDNS прослушать текущий iface, вызывающий смерть MDNS (# 7266)

Ядро (ФС)

  • Устарела SPIFFS, перенесите примеры в LittleFS (# 7263)

Документация

  • Документ USTX в USS / UxS не работает должным образом (# 7265)

Критические изменения

Нет

Отличные дополнения

  • Разрешить обновления сжатой флэш-памяти GZIP (# 6820)
  • Добавить библиотеку CryptoInterface (# 6961, # 7252)

Ядро

  • Добавлен пропущенный «if (umm_heap == NULL) {… «в umm_free_heap_size_lw (# 6929)
  • Оптимизация размера кода для ESP.getFullVersion () (# 6936)
  • I2C: разрешить частоту ниже 100 кГц (# 6934)
  • Уменьшить размер памяти ESP.getResetInfo () (# 7030)
  • Оптимизация размера кода ESP.getResetReason () (# 7029)
  • Демо-версия с низким энергопотреблением (# 6989)
  • Исправить реализацию WMath map () для обратного / двустороннего сопоставления (# 7027)
  • Исправить optimistic_yield, чтобы не возвращать результат при каждом вызове после x мкс (# 6804)
  • Обновлены смещения стека для посмертного дампа стека (# 7066)
  • Исправлено начало и конец стека в stack_thunk_dump_stack () (# 7085)
  • configTime (tzsec, dstsec,): исправить UTC / локальное управление (# 6993)
  • dtostrf: круглое исправление (# 7068, # 7093)
  • простой API TZ: обойти sprintf / sscanf (= не использовать флэш-память 7 КБ) (# 7109)
  • Вытяните инициализацию GPIO в свою собственную «слабую» функцию.(# 7044)
  • Атрибут __real_system_restart_local () как (noreturn) (# 7167)
  • Перемещение с плавающей запятой из libgcc из IRAM (# 7180, # 7188)
  • Тон: расширить до 20 кГц (# 7179)
  • Добавить библиотеку CryptoInterface (# 6961, # 7252)
  • Исправление ошибки утечки MD5 (# 7197, # 7208)
  • Использовать F_CPU, если (?) Переключатель частоты процессора работает только во время компиляции (# 6833)
  • выставить setTZ () (# 7234)
  • Поддержка флэш-памяти XMC — WIP (# 6725)
  • Разрешить указание форм сигнала в тактах (# 7211)
  • Waveforms: выберите приятные изменения по сравнению с текущими # 7122 (# 7218)
  • Разрешить stopWaveform для остановки сигналов с истекшим временем ожидания (# 7236)
  • Удерживать датчик в сбросе во время изменения скорости (# 7248)
  • Исправление незначительных предупреждений статического анализатора GCC10 (# 7255)

Ядро (ФС)

  • Пропустить.и .. на LittleFS :: dir :: rewind () (# 6959)
  • Обновлять метку времени LittleFS только при открытии записи (# 6956)
  • Обновление LittleFS до последней исходной головки (# 6986)
  • Добавить обратный вызов SDFS :: Dir :: fileTime (# 6985)
  • Добавить поддержку LittleFS в ESP8266WebServer.serveStatic () (# 6987)
  • Исправление логического / логического и смешивания в LittleFS open (# 6996)
  • Добавить аксессоры времени создания fileCreation / getCreation (# 7000)
  • Улучшение поддержки LittleFS (# 7071)
  • Обновление до LittleFS v2.2.0 (# 7240)

Сеть (ядро, библиотека / ESP8266WiFi)

  • lwip2: больше нет зависимостей подмодуля git, более быстрая контрольная сумма, ограничение невыполненных работ и другие исправления (# 6887)
  • Исправить / включить повторную сборку пакетов UDP (# 7036, # 7132)
  • SNTP: backport espressif sntp api для lwip2 (# 7097)
  • TCP: исправляет обработку лимита невыполненных работ и разрешает эфемерные TCP-соединения (# 7096)
  • обновление lwip2: остановка DHCP при выходе из строя интерфейса (# 7114)
  • Исправить отправку UDP на локальные адреса ссылки IPv6 (# 6541)
  • Исправить отправку TCP на локальные адреса ссылки IPv6 (# 7207)
  • Обновление _port до реально используемого порта и доступ к _port (# 7003)
  • Сделать порядок разрешения DNS выбираемым во время выполнения или во время компиляции (# 6865)
  • WiFi: бесплатный ARP API для режима Wi-Fi станции (# 6889, # 7203)
  • исправить вызов нулевого указателя из WiFiClient :: localIP () в IPAddress (# 7221)

Библиотека — ESP8266WiFi (SSL / TLS)

  • Обновление BearSSL, увеличение стека SSL (# 6980)
  • Устранение утечки памяти при множественных вызовах initCertStore (# 7021)
  • Обновление до последней версии BearSSL (# 7098)
  • Прервать при сбое выделения стека BearSSL (# 7152)

Прошивка — OTA — Updater

  • Разрешить обновления сжатой флэш-памяти GZIP (# 6820)
  • Добавить документацию для сжатого OTA, исправить ошибку (# 6924)
  • Добавьте CRC32 через программу и ESP.checkFlashCRC (# 6566)
  • Исправить возможное переполнение модуля обновления, добавить тесты хоста (# 6954)
  • разрешить фильтр «.bin.gz» в селекторе файлов средства обновления HTTP (# 7026)
  • Updater: предотвратить закрытие веб-сервера (опция) (# 6969)
  • Использовать второй стек для проверки подписи обновления (# 7149)
  • Исправить проверку успешности / сбоя завершения espota (# 7204)

Библиотека — SoftwareSerial

Библиотека

— ESP8266WebServer

  • Очистка посадочного места PROGMEM для responseCodeToString (# 6950)
  • Исправить порядок поиска для индекса.Файлы htm (l) (. gz) (# 7069)
  • Добавить Uri с поддержкой regexUri и globUri (# 6696)
  • Добавить конструктор флэш-помощника в Uri (# 7105)
  • Открыть API фрагментов веб-сервера (# 7134)
  • Сделать getContentType доступным для стороннего использования (# 7254)

Библиотека — ESP8266HTTPClient

  • Уменьшить создание временной строки в HTTPClient :: sendHeader (# 6937)
  • Переместите пару больших струн с родаты на флеш (# 6976)
  • очистить _canReuse в setUrl, если это не локальное перенаправление (# 7039)
  • Устраняет большие проблемы с полезной нагрузкой для sendRequest (# 7051)
  • Лучше следовать перенаправлению для HTTPClient (# 7157)

Библиотека — mDNS

  • Обновите LEAmDNS.cpp (проблема с исправлением № 6982) (№ 7025)
  • использовать STA в качестве интерфейса по умолчанию в mDNS (# 7042)
  • Добавления в UdpContext, необходимые для LEAmDNS2 (# 7048)
  • mDNS: защита MDNSResponder :: queryService от неправомерного использования (# 7216)
  • Добавить isRunning getter для проверки того, что :: begin уже вызвано (# 7219)
  • Изменение прослушивания для прослушивания только текущего iface вместо 0 (# 7217)

Библиотека — сервопривод

  • Определите MAX_SERVOS как 12, как в оригинальном Servo.h (# 6999)

Библиотеки

  • Различные очистки обработки строк (библиотеки и ядро) (# 6945)
  • Установите значение для интервала уведомления SSDP (# 7110)

Документация

  • Руководство по установке PlatformIO (# 7142)
  • Исправить ссылки RST для PlatformIO (# 7143)
  • (STA) Исправлено смещение обратных кавычек (# 7247)

CI

  • Исправить сборку Windows CI (# 6927)
  • исправить CI: перейти на python3 для pio (# 7035)
  • обновление до новой предварительно созданной версии win sed (# 7062)
  • Переключить платформу espressif8266 на ветвь разработки в сборке PlatformIO (# 7170)
  • исправить проверку стиля: (# 7222)

Примеры

  • CaptivePortal: улучшить качество HTML (# 7227)
  • ESP8266WebServer: доработка примеров FSBrowser и SDWebServer (# 7182)

Платы

  • Внесены изменения, чтобы включить «ESP8266_» в имена плат ITEAD, {build.board} , (# 7024)
  • Добавить поддержку eduino wifi (# 6554)
  • Добавить 2 МБ для стандартной платы 8285 (# 7163)
  • esp8285: правильно инициализировать свободный gpio как вход (# 7165)

Система сборки

  • Добавить обратно mklittlefs для цели linux32 (# 7011)
  • Используйте скрипт python3 для вызова python3 (# 6960)
  • boards.txt.py: используйте правильное имя файла при записи (# 7018)
  • PIO: разрешить использование пользовательских сценариев компоновщика (# 7078)
  • Конструктор пакетов
  • : обновления для альфа-выпусков (# 7088)
  • Переключить платформу espressif8266 на ветвь разработки в сборке PlatformIO (# 7170)
  • Использовать F_CPU, если (?) Переключатель частоты процессора работает только во время компиляции (# 6833)

Тесты прибора

  • тестов устройства: некоторые из них можно запустить на хосте (# 6912)
  • Добавить тест для FS :: open («w +») (# 7241)

Загрузочный

  • eboot: исправить связывание и заполнение (# 7047)
  • Разрешить обновления сжатой флэш-памяти GZIP (# 6820)

Здание на хосте

    Сборка узла
  • : optimistic_yield () ошибочно задерживает () вместо того, чтобы избегать чрезмерной доходности (# 6802)

Изменений по сравнению с 2.6,3 (до 2,7,0)

Критические изменения

Нет

Отличные дополнения

  • Разрешить обновления сжатой флэш-памяти GZIP (# 6820)
  • Добавить библиотеку CryptoInterface (# 6961, # 7252)

Ядро

  • Добавлен отсутствующий «if (umm_heap == NULL) {…» в umm_free_heap_size_lw (# 6929)
  • Оптимизация размера кода для ESP.getFullVersion () (# 6936)
  • I2C: разрешить частоту ниже 100 кГц (# 6934)
  • Уменьшить занимаемую памятью ESP.getResetInfo () (# 7030)
  • Оптимизация размера кода ESP.getResetReason () (# 7029)
  • Демо-версия с низким энергопотреблением (# 6989)
  • Исправить реализацию WMath map () для обратного / двустороннего сопоставления (# 7027)
  • Исправить optimistic_yield, чтобы не возвращать результат при каждом вызове после x мкс (# 6804)
  • Обновлены смещения стека для посмертного дампа стека (# 7066)
  • Исправлено начало и конец стека в stack_thunk_dump_stack () (# 7085)
  • configTime (tzsec, dstsec,): исправить UTC / локальное управление (# 6993)
  • dtostrf: круглое исправление (# 7068, # 7093)
  • простой API TZ: обойти sprintf / sscanf (= не использовать флэш-память 7 КБ) (# 7109)
  • Вытяните инициализацию GPIO в свою собственную «слабую» функцию.(# 7044)
  • Атрибут __real_system_restart_local () как (noreturn) (# 7167)
  • Перемещение с плавающей запятой из libgcc из IRAM (# 7180, # 7188)
  • Тон: расширить до 20 кГц (# 7179)
  • Добавить библиотеку CryptoInterface (# 6961, # 7252)
  • Исправление ошибки утечки MD5 (# 7197, # 7208)
  • Использовать F_CPU, если (?) Переключатель частоты процессора работает только во время компиляции (# 6833)
  • выставить setTZ () (# 7234)
  • Поддержка флэш-памяти XMC — WIP (# 6725)
  • Разрешить указание форм сигнала в тактах (# 7211)
  • Waveforms: выберите приятные изменения по сравнению с текущими # 7122 (# 7218)
  • Разрешить stopWaveform для остановки сигналов с истекшим временем ожидания (# 7236)
  • Удерживать датчик в сбросе во время изменения скорости (# 7248)
  • Исправление незначительных предупреждений статического анализатора GCC10 (# 7255)

Ядро (ФС)

  • Пропустить.и .. на LittleFS :: dir :: rewind () (# 6959)
  • Обновлять метку времени LittleFS только при открытии записи (# 6956)
  • Обновление LittleFS до последней исходной головки (# 6986)
  • Добавить обратный вызов SDFS :: Dir :: fileTime (# 6985)
  • Добавить поддержку LittleFS в ESP8266WebServer.serveStatic () (# 6987)
  • Исправление логического / логического и смешивания в LittleFS open (# 6996)
  • Добавить аксессоры времени создания fileCreation / getCreation (# 7000)
  • Улучшение поддержки LittleFS (# 7071)
  • Обновление до LittleFS v2.2.0 (# 7240)

Сеть (ядро, библиотека / ESP8266WiFi)

  • lwip2: больше нет зависимостей подмодуля git, более быстрая контрольная сумма, ограничение невыполненных работ и другие исправления (# 6887)
  • Исправить / включить повторную сборку пакетов UDP (# 7036, # 7132)
  • SNTP: backport espressif sntp api для lwip2 (# 7097)
  • TCP: исправляет обработку лимита невыполненных работ и разрешает эфемерные TCP-соединения (# 7096)
  • обновление lwip2: остановка DHCP при выходе из строя интерфейса (# 7114)
  • Исправить отправку UDP на локальные адреса ссылки IPv6 (# 6541)
  • Исправить отправку TCP на локальные адреса ссылки IPv6 (# 7207)
  • Обновление _port до реально используемого порта и доступ к _port (# 7003)
  • Сделать порядок разрешения DNS выбираемым во время выполнения или во время компиляции (# 6865)
  • WiFi: бесплатный ARP API для режима Wi-Fi станции (# 6889, # 7203)
  • исправить вызов нулевого указателя из WiFiClient :: localIP () в IPAddress (# 7221)

Библиотека — ESP8266WiFi (SSL / TLS)

  • Обновление BearSSL, увеличение стека SSL (# 6980)
  • Устранение утечки памяти при множественных вызовах initCertStore (# 7021)
  • Обновление до последней версии BearSSL (# 7098)
  • Прервать при сбое выделения стека BearSSL (# 7152)

Прошивка — OTA — Updater

  • Разрешить обновления сжатой флэш-памяти GZIP (# 6820)
  • Добавить документацию для сжатого OTA, исправить ошибку (# 6924)
  • Добавьте CRC32 через программу и ESP.checkFlashCRC (# 6566)
  • Исправить возможное переполнение модуля обновления, добавить тесты хоста (# 6954)
  • разрешить фильтр «.bin.gz» в селекторе файлов средства обновления HTTP (# 7026)
  • Updater: предотвратить закрытие веб-сервера (опция) (# 6969)
  • Использовать второй стек для проверки подписи обновления (# 7149)
  • Исправить проверку успешности / сбоя завершения espota (# 7204)

Библиотека — SoftwareSerial

Библиотека

— ESP8266WebServer

  • Очистка посадочного места PROGMEM для responseCodeToString (# 6950)
  • Исправить порядок поиска для индекса.Файлы htm (l) (. gz) (# 7069)
  • Добавить Uri с поддержкой regexUri и globUri (# 6696)
  • Добавить конструктор флэш-помощника в Uri (# 7105)
  • Открыть API фрагментов веб-сервера (# 7134)
  • Сделать getContentType доступным для стороннего использования (# 7254)

Библиотека — ESP8266HTTPClient

  • Уменьшить создание временной строки в HTTPClient :: sendHeader (# 6937)
  • Переместите пару больших струн с родаты на флеш (# 6976)
  • очистить _canReuse в setUrl, если это не локальное перенаправление (# 7039)
  • Устраняет большие проблемы с полезной нагрузкой для sendRequest (# 7051)
  • Лучше следовать перенаправлению для HTTPClient (# 7157)

Библиотека — mDNS

  • Обновите LEAmDNS.cpp (проблема с исправлением № 6982) (№ 7025)
  • использовать STA в качестве интерфейса по умолчанию в mDNS (# 7042)
  • Добавления в UdpContext, необходимые для LEAmDNS2 (# 7048)
  • mDNS: защита MDNSResponder :: queryService от неправомерного использования (# 7216)
  • Добавить isRunning getter для проверки того, что :: begin уже вызвано (# 7219)
  • Изменение прослушивания для прослушивания только текущего iface вместо 0 (# 7217)

Библиотека — сервопривод

  • Определите MAX_SERVOS как 12, как в оригинальном Servo.h (# 6999)

Библиотеки

  • Различные очистки обработки строк (библиотеки и ядро) (# 6945)
  • Установите значение для интервала уведомления SSDP (# 7110)

Документация

  • Руководство по установке PlatformIO (# 7142)
  • Исправить ссылки RST для PlatformIO (# 7143)
  • (STA) Исправлено смещение обратных кавычек (# 7247)

CI

  • Исправить сборку Windows CI (# 6927)
  • исправить CI: перейти на python3 для pio (# 7035)
  • обновление до новой предварительно созданной версии win sed (# 7062)
  • Переключить платформу espressif8266 на ветвь разработки в сборке PlatformIO (# 7170)
  • исправить проверку стиля: (# 7222)

Примеры

  • CaptivePortal: улучшить качество HTML (# 7227)
  • ESP8266WebServer: доработка примеров FSBrowser и SDWebServer (# 7182)

Платы

  • Внесены изменения, чтобы включить «ESP8266_» в имена плат ITEAD, {build.board} , (# 7024)
  • Добавить поддержку eduino wifi (# 6554)
  • Добавить 2 МБ для стандартной платы 8285 (# 7163)
  • esp8285: правильно инициализировать свободный gpio как вход (# 7165)

Система сборки

  • Добавить обратно mklittlefs для цели linux32 (# 7011)
  • Используйте скрипт python3 для вызова python3 (# 6960)
  • boards.txt.py: используйте правильное имя файла при записи (# 7018)
  • PIO: разрешить использование пользовательских сценариев компоновщика (# 7078)
  • Конструктор пакетов
  • : обновления для альфа-выпусков (# 7088)
  • Переключить платформу espressif8266 на ветвь разработки в сборке PlatformIO (# 7170)
  • Использовать F_CPU, если (?) Переключатель частоты процессора работает только во время компиляции (# 6833)

Тесты прибора

  • тестов устройства: некоторые из них можно запустить на хосте (# 6912)
  • Добавить тест для FS :: open («w +») (# 7241)

Загрузочный

  • eboot: исправить связывание и заполнение (# 7047)
  • Разрешить обновления сжатой флэш-памяти GZIP (# 6820)

Здание на хосте

    Сборка узла
  • : optimistic_yield () ошибочно задерживает () вместо того, чтобы избегать чрезмерной доходности (# 6802)

Изменений по сравнению с 2.6,2 (до 2,6,3)

Критическое изменение

нет

электронная загрузка

  • Перестройте eboot.elf, чтобы включить изменения # 6823 (# 6890)

Ядро

  • I2C: поместите встроенные помощники в IRAM для подчиненных ISR (# 6898)
  • Добавить формат hh (байта) для printf и scanf (# 6896)
  • обратный вызов sntp: используйте функцию повторяющегося расписания (# 6888)
  • Используйте блоки 128 Байт вместо записи 1 Б в Print :: print (FlashStringHelper) (# 6893)
  • Updater: устанавливать только байт flashmode при загрузке исполняемого файла (# 6891)
  • sdk: 22x-1
  • (необязательно, не по умолчанию) (# 6879)
  • удален TWI_CLOCK_STRETCH_MULTIPLIER (# 6867)
  • добавлен выход растяжения часов, [issue 2162] исправлено twi :: status (# 6860)
  • sntp: исправлен конфликт с предварительно включенной Arduino.ч (# 6853)

Библиотеки

  • udp: ограничение глубины буфера (# 6895)
  • Исправить отправку заголовков в #send_P (int, PGM_P, PGM_P, size_t) (# 6881)
  • EspSoftwareSerial 6.4.0: в режимах без контроля четности сохраняется 56 байт оперативной памяти (# 6882)
  • Веб-сервер: правильно обрабатывать запросы HEAD для статических файлов (# 6837)
  • Веб-сервер: исправлена ​​отправка символа * (# 6878)
  • Удалите user_interface.h из gdbstub includes (# 6862)

Документация

  • Обновить PROGMEM.первый (# 6872)

Примеры

  • Пример HTTP-клиента POST (# 2704)

Платы

  • исправить вариант платы NodeMCU v1.0 «Builtin Led» (# 6905)

Система сборки

Изменения по сравнению с 2.6.1 (на 2.6.2)

Критическое изменение

Плагин Arduino IDE FS необходимо обновить (# 6807)

Система сборки

  • перейти на прошивку 2.2.x-1

    по умолчанию (# 6826)

электронная загрузка

  • Переместить eboot_command_clear в после копирования прошивки (# 6823)

Ядро

  • HWSerial: неинициализированный объект стека может иметь непреднамеренные неверные значения (# 6846)
  • [BREAKING] Обновить информацию о подключаемом модуле FS для совместимости с python3 (# 6807)
  • Загрузка файловой системы: сделайте файл upload.py совместимым с существующей загрузкой файловой системы FS (# 6788).
  • configTime: сбросить искусственный часовой пояс при использовании newlib (# 6828)
  • Инвертировать агрегат для HardwareSerial (# 6816)
  • Отметьте esp_schedule IRAM_ATTR, чтобы сделать его безопасным для ISR (# 6809)
  • Слабая привязка снижает зависимость версий между ESP8266 и библиотекой MT CoopTask.(# 6790)
  • Добавить stdint, переместить заголовки вверх в core_features.h (# 6793)

Библиотеки

  • HTTPClient: разрешить POST-запросы размером более нескольких 100 байт (# 6800, # 6830)
  • HTTPClient: исправлено в beginInternal () (# 6786)
  • WiFi: используйте wificlient.available () в соответствующих случаях (# 6827)
  • EspSoftwareSerial: ctor / begin () совместимость с AVR / ESP8266 / ESP32 (# 6814)
  • BearSSL: развернуть стек BSSL (# 6819)
  • Добавить обратные вызовы для ESP8266HTTPUpdate (# 6796)
  • Добавить содержимое const char * в ESP8266WebServer :: send () (# 6797)
  • WebServer: добавляйте только «l» к XX.htm URL, если существует XX.html (# 6794)
  • SSDP: добавить схему (Print &) const (# 6798)
  • WiFiClient: Исправить опечатку в цикле тайм-аута режима (# 6801)
  • Обновление SdFat, чтобы не отменять определение макроса F () (# 6787)

Документация

  • Добавление / унификация комментариев для целевого и исходного сайтов асинхронного планирования с помощью delay () / esp_yield () / esp_schedule () (# 6780)
  • Изменить версию Sphinx на последнюю (# 6817)

Эмуляция на хосте

  • Сбой при использовании clockCyclesPerMicrosecond () в сборке хоста (# 6844)
  • F_CPU доступен и равен 80000000 (# 6841)

Примеры

  • Завершить (исправить) разделенный на части printDirectory (# 6808)
  • Корневая страница должна иметь тип text / html (# 6776)
  • Добавить недостающий файл LittleFS.begin () «в примере LittleFS_Timestamp. (# 6762)

Изменения по сравнению с 2.6.0 (на 2.6.1)

Критические изменения

нет

Система сборки

  • esptool.py: одна команда для стирания и прошивки (# 6765)
  • Скрипт выпуска
  • : удалить вызов makecorever.py в выпущенной версии (# 6747)

Ядро

  • Устранение проблемы с функциями, запланированными из запланированных функций (# 6770)
  • Обновить String :: concat (char *, len), чтобы разрешить строки, не содержащие NULL (# 6754)
  • Обновление до LittleFS 2.1.3 (# 6757)
  • Явные преобразователи WString для уменьшения размера Flash (# 6759)
  • Добавить ipv4_addr_t для espconn / LwIP1.4 compat (# 6740)

Библиотеки

  • Минимизируйте использование заголовков, переместите определения функций тикера в файл cpp (# 6496)
  • EspSoftwareSerial release 6.1.1, поддержка «9bit» (# 6761)
  • Обновленный EspSoftwareSerial обеспечивает обратную совместимость для пары ctor / begin () (только для общих случаев с полным использованием аргументов по умолчанию) (# 6746)

Платы

  • меню платы NodeMCUv1: выбор светодиода (2, 16) (# 6743, # 6748)

Документация

  • Добавить полезные ссылки (# 6744)
  • Упоминание об удалении содержимого arduino15 перед установкой git (# 6741)
  • документ, как получить тело POST в ESP8266WebSever (# 6736)

Изменений по сравнению с 2.5.2 (до 2.6.0)

Критические изменения

  • Конструктор SoftwareSerial — будет исправлен в 2.6.1

Отличные дополнения

  • Ets intr lock nest (# 6484)
    Этот замечательный PR исправления, среди прочего, закрыл старый печально известный # 2330
  • Добавить LittleFS в качестве дополнительной файловой системы с подкаталогами, совместимой с API с SPIFFS и SDFS
    (но не совместимой с форматом на флэш-памяти) (# 5511)

Система сборки

  • Обновление метода сброса esptool (# 6429)
  • Исправить ошибки Python3 для тестов устройств (# 6670)
  • Динамически найти каталог Python3 в Windows (# 6646)
  • esptool-2.7 (# 6634)
  • CI: надежный (u14.04) -> бионический (u18.04) (# 6627)
  • удалить esptool.py —trace option (# 6606)
  • подготовить сборщик релизов альфа-канала (# 6512)
  • Переместить все PSTR в собственный раздел, разрешить вывод строк (# 6565)
  • использовать стабильную IDE Arduino в CI (# 6572)
  • Добавьте частоты флеш-памяти 20/26 МГц для медленных / дешевых флеш-чипов на общей плате ESP (# 6552)
  • Добавить распечатку размера сегмента в стандартный процесс сборки (# 6525)
  • Исправить имя инструмента, чтобы оно указывало на правильную запись JSON (# 6513)
  • Запустите makecorever.py перед определенными prebuild-хуками. (# 6504)
  • Добавить сборку Win32 в систему CI (# 6493)
  • Добавить сборку OSX в CI, исправить сборки OSX (# 6492)
  • Исправьте каталог python3, чтобы скрипты работали в Win32 (# 6472)
  • Переместите все скрипты и документацию на Python3 (# 6378)
  • исправить командную строку сборщика arduino (# 6461)
  • Запретить перезапись core_version.h, если содержимое не изменилось (# 6414)
  • esptool: скорость последовательной загрузки 3 Мбод (# 6399)
  • Перейти к -std = g ++ 11 из -std = c ++ 11 (# 6339)
  • Перейти на 2.Набор инструментов 5.0-4 с улучшенным pgm_read_x, исключениями C ++ (# 6273)
  • Ключ чистых инструментов устаревшей версии в следующем выпуске (# 6258)
  • esptool.py: отключить 9600 бод в меню для последовательной скорости загрузки флэш-памяти (# 6292)
  • Подготовка подписи перед составлением эскиза (# 6287)
  • Отредактирован, чтобы избежать предупреждения компилятора (# 6278)
  • Сделать SPIFFS целым числом блоков (# 5989, # 6537)
  • Проверка подписи модуля обновления — формат несовместим с RFC8017 (# 6250)
  • Исправить переменные среды тестирования устройства (# 6229)
  • Разверните gitignore, чтобы охватить файлы, созданные Visual Micro (# 6231)
  • Обновите mklittlefs для соответствия библиотеке (# 6230)
  • фильтрует странные символы из вывода esp в python (# 6226)
  • Добавьте еще несколько тестов CI для String :: replace (# 6193)
  • Информация меню IDE: измените SPIFFS -> FS и покажите максимальный размер OTA (# 6159)
  • Эмуляция
  • при обновлении хоста (# 6210, # 6211, # 6248, # 6327, # 6342, # 6507)

Ядро

  • Добавьте недостающее время.h include, используйте относительный путь включения на time.h includes (# 6730)
  • Сохраните 16 байт ОЗУ, поместив массив esp8266_gpioToFn (core_esp8266_wiring_digital.cpp) в PROGMEM (# 6703)
  • precache () — предварительная загрузка кода во флеш-кеш (# 6628, # 6674)
  • Двойное чтение I2C за одну транзакцию пропускает тактовый импульс (# 5528) (# 6654)
  • Переместить cont_run / cont_yield из IRAM (# 6617)
  • Пример NTP-TZ-DST: список серверов SNTP (# 6611)
  • Убрать дублирование и несовместимые объявления в sntp.ч (# 6610)
  • очисток в ESPClass (# 6608)
  • Очистка base64 :: функции кодирования (# 6607)
  • использовать запланированную функцию для settimeofday_cb (# 6600)
  • Исправить макрос pgm_read_float_unaligned (# 6593)
  • Base64 :: encode: const correness / String путем передачи ссылки (# 6581)
  • Заменить блок ASM с макросом на PSTR (# 6577)
  • Немного ускорить создание пустой строки (# 6573)
  • const correness / String по ссылке, проходящей очистку (# 6571)
  • Удаление дублированной реализации sha1 (Исправления # 6568) (# 6569)
  • Добавить typedef для putc1, fn_putc1_t.(# 6550)
  • Добавить время в API файловой системы (# 6544)
  • Добавьте memmove_P, используйте его в String для обеспечения безопасности F () (# 6514)
  • Поддержка обновления файловой системы в два этапа (# 6505)
  • Add :: updateBaudRate (беззнаковая длинная скорость) для изменения скорости передачи после вызова begin (# 6494)
  • Обновить выбор UART для загрузочного ПЗУ ets_putc, когда выбран порт отладки. (# 6489)
  • Планирование отложенного пробуждения (# 6485)
  • Встроенный ESP :: getCycleCount () для безопасного вызова из ISR (# 6477)
  • переместить функции таймера в ирам (# 6466)
  • Разрешить Print :: println () работать со строками PROGMEM (# 6450)
  • Обновление ядра с помощью восходящего потока umm_malloc (# 6438)
  • Удалить подпрограммы ROM из libc.a, сохраните progmem (# 6432)
  • Исправить обратную зависимость ядра Updater -> библиотека ESP8266WiFi (# 6398)
  • обеспечивает согласованность подписей обработчиков GDB (# 6391)
  • Отключить uart от библиотеки GDBStub (# 6390)
  • исправить макросы _min и _max (# 6374)
  • время: импортировать определения часовых поясов IANA, предоставить SNTP API (# 6373)
  • Рефакторинг HardwareSerial.cpp для последовательного использования PolledTimeout (# 6371)
  • wstring: исправить конкатенацию из флэш-памяти (# 6368)
  • включить поддержку puya по умолчанию (можно отключить с помощью -DPUYA_SUPPORT = 0) (# 6362, # 6619)
  • Сохранить предыдущий битрейт для начала I2S (# 6349)
  • Добавить дополнительный метод FS :: check () (# 6340)
  • Инструменты
  • : исправлена ​​ошибка выбора корзины со знаком (# 6334)
  • исключения: необязательно применять стандарты c ++ (# 6333)
  • Уменьшить использование IRAM кода I2C на 600-1500 байт (# 6326)
  • Очистить состояние средства обновления при любой ошибке (# 6325)
  • Добавьте с помощью fs :: SPIFFSConfig в FS.ч (# 6324)
  • Не генерировать исключения из оператора new по умолчанию (# 6312)
  • Сделать слабые функции delay () и loop_end () (# 6306)
  • Добавлен забор памяти в xt_rsil () (# 6301)
  • Исправление для будущих предупреждений GCC 9.1 (кроме Ticker.h, gdbstub) (# 6298)
  • Создать (установить / есть) пустые методы для класса String (# 6293)
  • Исправить raise_exception () (# 6288)
  • предлагаемых улучшений umm_malloc (# 6274)
  • Очистите код для сборки под GCC7, исправьте pgm_read_unaligned (# 6270)
  • Очистить тривиальные предупреждения gcc -wextra (# 6254)
  • с использованием std :: nothrow вместо malloc (# 6251)
  • Не вызывайте yield () из timedRead () или timedPeek (), если для _timeout установлено значение 0.(# 6242)
  • Поместите InterruptLock (из interrupts.h) в пространство имен esp8266, чтобы исправить сейчас и в будущем (# 6225)
  • Переместить umm_malloc обратно в IRAM (# 6161)
  • Сделайте поддержку SSO \ 0s, используйте memmove, добавьте тест (# 6155)
  • Добавить вызов FS :: info64 для файловых систем> 4 ГБ (# 6154)
  • Исправление: подключение прерывания (# 6049) (# 6048)
  • добавить обычные запланированные функции (# 6039, # 6137, # 6147, # 6158, # 6214, # 6228, # 6233)
  • Реализация универсального списка обратных вызовов (# 5710)
  • Серийный.модификация заподлицо (# 5293)

Стиль

SDK

Платы

    Поддержка фильтра платы
  • (+ iTead sonoff, платы ESP-Mx) (# 6643)
  • Добавлена ​​плата SparkFun Blynk (# 6713)
  • Исправить подробную загрузку espduino (# 6426)
  • Разрешить использование LED16 для стандартных плат (# 6343)

Библиотека — ESP8266WiFi

  • Добавить цикл ожидания в конце WiFi :: mode (+ рефакторинг can_yield) (# 6721)
  • ClientContext: восстановить использование двух разных ожидающих логических значений для подключения и записать # 6483
  • стандартизирует обработку _delaying в обратных вызовах lwIP (удалить утверждение) (# 6460)
  • lwIP-1.4: используйте фиксированные функции блокировки (# 6455)
  • ClientContext: таймаут прерывания также задерживается при ошибке при записи или подключении (# 6454)
  • новая сетевая функция: NAPT (широко известный как NAT) (# 6360)
  • Экспериментально: добавить новые (псевдо) режимы WiFi: WIFI_SHUTDOWN & WIFI_RESUME (# 6356)
  • udp удаленный помощник pbuf: соблюдение фрагментированных пакетов (# 6222, # 6263)
  • Исправление задержки подключения и отправки TCP (# 6213)
  • lwip2: исправить установку статического IP-адреса (# 6194)
  • Добавить тайм-аут в STA :: waitForConnectResult (# 5371)
  • добавлена ​​публичная функция cleanAPlist () (# 4107)

Библиотека — ESP8266WiFi (SSL / TLS)

  • Исправить блокировку WiFiClientSecure :: available () при разорванных соединениях (# 6449)
  • Установить метод _connectSSL как защищенный (# 6424)
  • SSL: исправить сбой с помощью базовых шифров (# 6402)
  • Обновление до последней версии BearSSL (# 6337)
  • SSL: добавить дамп полученных FP и CERT в режиме отладки (# 6300)
  • Обновление библиотек axtls с исправлением для # 6260 (# 6262)
  • Исправить смешение с логическим / побитовым или для проверки BSSL (# 6252)
  • Добавьте сертификат EC с ключом в пример сервера BearSSL (№ 6202)
  • Подчиняться запросу BASIC_SSL для серверов TLS (# 6187)
  • Добавлен флаг BR_OPT_NO_RENEGOTIATION для запрета повторного согласования TLS (# 6165)
  • На 64 байта больше свободного места за счет перемещения констант инициализации DES во флэш-память (# 6160)
  • Сохранить 484 байта кучи для приложений BSSL (# 6157)
  • Добавить базовую канареечную проверку в преобразователь стека BSSL (# 6156)
  • Расширение стека BSSL до 5750 байт (# 6153)
  • Сделать CertStore исходным для использования файлового интерфейса (# 6131)

Библиотека — ESP8266WebServer

  • Исправить тривиальный лишний «\ n» при успешном веб-обновлении (# 6350)
  • Добавьте HTTP_HEAD в HTTPMethod и проанализируйте его (# 6413)
  • Добавить простые char * подписи WebServer :: sendContent (# 6341)
  • веб-сервер: восстановление устаревшего обработчика запросов (# 6321)
  • разрешить аутентификацию с помощью H (A1) на примере (# 6020)
  • Преобразование ESP8266WebServer * в шаблонную модель (# 5982)
  • откат на index.html в случае сбоя index.htm (# 2614)
  • Пример веб-сервера POST (# 2705)

Библиотека — ESP8266HTTPClient

  • Исправить сборку с -DHTTPCLIENT_1_1_COMPATIBLE = 0 (# 6597)
  • Исправить setURL (), обрабатывающую только параметры пути (# 6570)
  • BasicHttpsClient: обновлен отпечаток демо-сертификата (# 6462)
  • Исправление ошибок / http-клиент esp8266 (# 6176)
  • Бесконечный цикл при передаче файла (FS.h) разрешен (# 5038)
  • Добавлена ​​возможность отправки POST с пустой полезной нагрузкой (# 4275)

Библиотека — mDNS

  • исправить устаревшие одноадресные ответы (# 6613)
  • Удалите оставшиеся отличия, не относящиеся к LeaMDNS, из gcc4.8 к gcc7.2 (# 6279)
  • исправить случайный сбой при запуске (# 6261)
  • ограничение на единый интерфейс (# 6224)

Библиотека — SPI

  • Установить SPI_HAS_TRANSACTION на 1 (# 6591)
  • Улучшения ведомого устройства Spi (# 6580)
  • SPI: неверное значение для setFrequency () (# 6409)

Библиотека — Тикер

  • Тикер: исправьте приведение обратного вызова. (# 6282)
  • Тикер: используйте новое размещение для ETSTimer — без фрагментации кучи (# 6164)
  • Использование привязки в тикере.h склонен к сбою вывода типа (# 6129)

Библиотеки

  • EspSoftwareSerial версии 5.4.0 с улучшением производительности / количества ошибок в TX (# 6722)
  • Обновление EEPROM.cpp (# 6556, # 6599)
  • Добавить строковые литералы в PROGMEM (# 6588)
  • добавить или улучшить некоторые отладочные сообщения (# 6508)
  • OTA: исправлено отсутствие подтверждения «OK» для подписанного обновления (# 6351)
  • FS: Обновление LittleFS / SdFat до заголовка текущего проекта (# 6345)
  • ConfigFile: обновленный пример для использования ArduinoJson6 (# 6203)
  • DNSServer: добавлена ​​поддержка новых изменений мобильной ОС.(# 5529)
  • ESP8266HTTPUpdate: добавлен идентификатор чипа в заголовок HTTP в библиотеке (# 3877)
  • ESP8266HTTPUpdate: Разрешить обновление файловой системы (# 3732)

Документация

  • Новая редакция документации ATOMIC_FS_UPDATE (№6693)
  • Обновление install.rst (# 6625)
  • Установка (# 6624)
  • Незначительное изменение документации по ФП с № 2904 (№ 6563)
  • Добавить раздел прерывания в документы (# 6560)
  • Добавить информацию об установке python3 на Mac, Linux (# 6558)
  • Обновление документации библиотеки EEPROM (# 6548)
  • Отредактировано OTA readme, добавлен фрагмент Stream Interface (# 6487)
  • Исправить количество примеров (# 6407)
  • Грамматические правки в документации (# 6401)
  • исправить документированный параметр (# 6392)
  • Обновление документации WiFiServer для :: write (все клиенты) (# 6338)
  • Исправить опечатку в документе (# 6313)
  • Незначительное обновление документации, ссылка «Как сделать PR» (# 6297)
  • добавить документацию к запланированным функциям (# 6234)
  • Исправить редактирование, опечатки и грамматические ошибки (# 6207)
  • ISR документов требует перед ними ICACHE_RAM_ATTR (# 6141)

Изменений по сравнению с 2.5.1 (до 2.5.2)

Ядро

  • Добавить явное значение Print :: write (char) (# 6101)

Система сборки

  • Исправить опечатку в elf2bin для генерации двоичного кода QOUT (# 6116)
  • Поддержка правильного связывания PIO Wl-T и Arduino -T (# 6095)
  • Разрешить линковку файлов * .cc во флеш-память по умолчанию (# 6100)
  • Использовать собственный конструктор «ElfToBin» для PIO (# 6091)
  • Ошибка, если сгенерированный файл JSON не может быть прочитан (# 6076)
  • «Отбрасывание» печати перенесено из stdout в stderr в drop_versions.ру (# 6071)
  • Исправить проблему PIO, когда среда сборки содержит пробелы (# 6119)

Библиотеки

  • Устранение тупика, когда сервер не принимает наши данные (# 6107)
  • Исправление зависания метода записи WiFiClient и WiFiClientSecure, пока удаленный узел не закрыл соединение (# 6104)
  • Повторно добавить оригинальные методы доступа к информации SD FAT (# 6092)
  • Сделать добавление FILE_WRITE в оболочку SD.h (# 6106)
  • Отбросьте X509 после подключения, избегайте зависания при нарушении TLS (# 6065)
Вы не можете выполнить это действие в настоящее время.Вы вошли в систему с другой вкладкой или окном. Перезагрузите, чтобы обновить сеанс. Вы вышли из системы на другой вкладке или в другом окне. Перезагрузите, чтобы обновить сеанс. Класс клиента

— ESP8266 Arduino Core 2.7.1-106-g1a381477 документация

Методы, задокументированные для клиента в Arduino

  1. WiFiClient ()

  2. подключено ()

  3. подключение ()

  4. написать ()

  5. печать ()

  6. println ()

  7. в наличии ()

  8. читать ()

  9. промывка ()

  10. стоп ()

Методы и свойства, описанные ниже, относятся к ESP8266.Они не рассматриваются в документации библиотеки Arduino WiFi. Прежде чем они будут полностью задокументированы, обратитесь к информации ниже.

промывка и остановка

flush (timeoutMs) и stop (timeoutMs) теперь имеют необязательный аргумент: timeout в миллисекундах, и оба возвращают логическое значение.

Входное значение по умолчанию 0 означает, что действующее значение оставлено на усмотрение разработчика.

flush () возвращает true указывает, что выходные данные фактически отправлены, а false указывает на то, что истекло время ожидания.

stop () возвращает false в случае проблемы при закрытии клиента (например, тайм-аут flush ). В зависимости от реализации его параметр может быть передан в flush () .

setNoDelay

Если для nodelay установлено значение true , эта функция отключит алгоритм Нэгла.

Этот алгоритм предназначен для уменьшения TCP / IP-трафика небольших пакетов, отправляемых по сети, путем объединения нескольких небольших исходящих сообщений и их одновременной отправки.Обратной стороной такого подхода является эффективная задержка отдельных сообщений до тех пор, пока не будет собран достаточно большой пакет.

Пример:

getNoDelay

Возвращает, включен ли NoDelay для текущего соединения.

setSync

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

Если установлено значение true в реализации WiFiClient ,

  • Он замедляет передачу и неявно отключает алгоритм Нэгла.

  • Это также позволяет избежать временной копии данных, которые в противном случае потребляют не более TCP_SND_BUF = (2 * MSS ) байтов на соединение,

getSync

Возвращает, включена ли синхронизация для текущего соединения.

setDefaultNoDelay и setDefaultSync

Они устанавливают значение по умолчанию для setSync и setNoDelay для каждый будущий экземпляр WiFiClient (в том числе из WiFiServer.доступно () по умолчанию).

Значения по умолчанию ложны как для NoDelay , так и для Sync .

Это означает, что Nagle включен по умолчанию для всех новых подключений .

getDefaultNoDelay и getDefaultSync

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

Вызов других функций

 uint8_t статус ()
виртуальная запись size_t (const uint8_t * buf, size_t size)
size_t write_P (PGM_P buf, size_t размер)
size_t write (поток и поток)
size_t write (Stream & stream, size_t unitSize) __attribute __ ((устарело))
чтение виртуального int (uint8_t * buf, size_t size)
виртуальный int peek ()
виртуальный size_t peekBytes (uint8_t * буфер, размер size_t)
size_t peekBytes (символ * буфер, длина size_t)
виртуальный оператор bool ()
IP-адрес remoteIP ()
uint16_t удаленный порт ()
IP-адрес localIP ()
uint16_t localPort ()
 

Документация по вышеуказанным функциям пока недоступна.

ESP8266 Thing Hookup Guide — learn.sparkfun.com

Добавлено в избранное Любимый 32

Установка ESP8266 Arduino Addon

Существует множество сред разработки, в которых можно программировать ESP8266. Вы можете использовать простую настройку Notepad / gcc или точно настроить среду Eclipse, использовать виртуальную машину, предоставленную Espressif, или придумать что-то свое.

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

Этот аддон ESP8266 для Arduino основан на замечательной работе Ивана Грохоткова и остальных участников сообщества ESP8266. Посетите репозиторий ESP8266 Arduino GitHub для получения дополнительной информации.

GitHub ESP8266 Core для Arduino

Установка дополнения с помощью менеджера плат Arduino

С выпуском Arduino 1.6.4, добавление сторонних плат в Arduino IDE легко достигается с помощью нового менеджера плат. Если вы используете более старую версию Arduino (1.6.3 или более раннюю), мы рекомендуем выполнить обновление сейчас. Как всегда, вы можете скачать последнюю версию Arduino с Arduino.cc.

Для начала нам нужно обновить диспетчер досок с помощью настраиваемого URL-адреса. Откройте Arduino, затем перейдите в Настройки ( Файл > Настройки ). Затем в нижней части окна скопируйте этот URL-адрес в текстовое поле «Дополнительные URL-адреса Board Manager»:

  http: // arduino.esp8266.com/stable/package_esp8266com_index.json
  

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

Хит ОК . Затем перейдите к Board Manager, выбрав Tools > Boards > Boards Manager . В дополнение к стандартным платам Arduino должно быть несколько новых записей.Ищите esp8266 . Щелкните эту запись, затем выберите Установить .

Определения платы и инструменты для ESP8266 Thing включают в себя совершенно новый набор gcc, g ++ и других достаточно больших скомпилированных двоичных файлов, поэтому загрузка и установка может занять несколько минут (размер заархивированного файла составляет ~ 110 МБ). После завершения установки рядом с записью появится синяя надпись «УСТАНОВЛЕНА» для Arduino.

Выбор платы Thing ESP8266

После установки надстройки Board все, что осталось сделать, это выбрать «ESP8266 Thing» в меню Tools > Boards .

Затем выберите номер порта FTDI в меню Tools > Port .


← Предыдущая страница
Комплектующие

Установка библиотеки асинхронного веб-сервера

1. Асинхронный веб-сервер ESP8266

Для создания веб-сервера мы будем использовать библиотеку ESPAsyncWebServer, которая обеспечивает простой способ создания асинхронного веб-сервера. Создание асинхронного веб-сервера имеет несколько преимуществ.Мы рекомендуем бегло ознакомиться с документацией библиотеки на ее странице GitHub.

Установка библиотеки ESPAsyncWebServer

Библиотека ESPAsyncWebServer недоступна для установки в диспетчере библиотек Arduino IDE Library. Значит, вам нужно установить его вручную.

Выполните следующие шаги, чтобы установить библиотеку ESPAsyncWebServer:

  1. Разархивируйте папку .zip, и вы должны получить ESPAsyncWebServer-master folder

  2. Переименуйте вашу папку с ESPAsverc22 masterWeb

  3. Переместите папку ESPAsyncWebServer в папку с установочными библиотеками Arduino IDE

Установка библиотеки TCP ESPAsync

Для работы библиотеки ESPAsyncWebServer требуется библиотека ESPAsyncTCP.Выполните следующие шаги, чтобы установить эту библиотеку:

  1. Распакуйте папку .zip, и вы должны получить ESPAsyncTCP-master folder

  2. Переименуйте свою папку с ESPAsyncTCP-master на ESPAsyncT7810 ESPAsyncT7810 ESPAsyncT7810 Переместите папку ESPAsyncTCP в папку установочных библиотек Arduino IDE

  3. Программирование ESP8266 с помощью Arduino IDE за 3 простых шага

    esp8266 — это недорогой модуль Wi-Fi, созданный эспрессо-системы .его популярность среди аппаратного сообщества растет благодаря его приятным функциям и стабильности, до такой степени, что его можно легко запрограммировать, используя ваш arduino ide .

    в этом посте мы узнаем, как запрограммировать ваш esp8266 с помощью uartbee или arduino uno, а также arduino ide.

    требования

    1. модуль esp8266.

    2. ан arduino uno , uartbee или любой другой UART к USB-устройству.

    3. перемычки.

    4. arduino ide версии 1.6.6 или выше.

    1. Подключите!

    Во-первых, нам нужно определить распиновку esp8266.

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

    esp8266 uartbee arduino uno
    rxd txd rx
    gpio0 земля земля
    gpio2 ——- ———-
    земля земля земля
    vcc 3.3в 3,3 В
    первый ——— ————
    ch_pd 3,3 В 3,3 В
    txd rxd tx

    Примечание: если вы используете arduino uno, вам необходимо установить arduino rst на gnd. будьте осторожны с vcc esp8266, он работает только с 3.Питание 3В.

    2. настроить arduino ide

    1. скачать arduino ide.

    2. откройте идеал и нажмите на «файл -> настройки».

    3. в «URL-адресах менеджеров дополнительных досок» добавьте эту строку и нажмите «ОК»:

    4. » http://arduino.esp8266.com/stable/package_esp8266com_index.json »

    5. перейти к «инструменты -> доска -> менеджер досок» введите «esp8266» и установите его.

    6. иди снова в «инструменты -> доска» и выберите «универсальный модуль esp8266».

    3. Прошить свой код!

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

    Установите Arduino IDE (с поддержкой ESP8266) на Raspberry Pi

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

    Именно тогда я задумал поставить компьютер на мою новую скамейку. У меня лежал Raspberry Pi 2 и старый ЖК-экран, который можно было легко разместить в углу скамейки. Это заставило меня задуматься, могу ли я запустить IDE Arduino на RasPi.

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

    Оборудование

    • Малина Пи. IDE Arduino довольно требовательна, поэтому я бы рекомендовал RasPi 2 или 3.
    • Распиан. Я предлагаю Pixel, но уверен, что он будет работать и с более ранними версиями.
    • Экран, подключенный к RasPi. Я не понимаю, как это можно сделать без головы через SSH. Если это возможно, то это выходит за рамки этой публикации.
    • Клавиатура и мышь.
    • Интернет-соединение — хотя бы для настройки всего.После установки IDE вам больше не нужен Интернет.
    • USB — кабель Arduino. Строго говоря, вам это не нужно для настройки, только для прошивки, когда IDE установлена.

    Прежде, чем мы продолжим

    Мы работаем с Raspberry Pi. Как вы знаете, это фантастический маленький компьютер, но не ожидайте, что он скомпилирует ваш код Arduino с той же скоростью, что и ваш основной компьютер. Если вы не против проявить терпение, RasPi будет работать нормально. Если вам не нравится сидеть без дела минуту или две, возможно, это не для вас.

    Шаг 1

    После того, как Pixel будет запущен, выполните обычные обновления, используя Терминал:

    .

    sudo apt-get update sudo apt-get обновление

    Шаг 2

    Откройте браузер на своем Pi и перейдите по этому адресу: https://www.arduino.cc/en/Main/Software

    В списке вы заметите Linux ARM (экспериментальный). Это тот, который вы хотите скачать.

    Шаг 3

    После загрузки кода в графическом интерфейсе пользователя Pixel щелкните следующее:

    • Файловый менеджер
    • загрузок (здесь вы увидите пакет Arduino) Щелкните пакет правой кнопкой мыши и выберите…
    • Архиватор (Откроется новое окно. Заполнение займет несколько секунд. Во время работы в углу будет мигать зеленый / красный свет.)
    • Появится пакет Arduino. Щелкните по нему, затем выберите значок «Извлечь файлы».
    • Откроется другое окно. Выберите «Все файлы» и «Извлечь файлы с полным путем».
    • Нажмите «Извлечь» и подождите несколько секунд, пока все заработает. Когда он будет готов, он сообщит вам об этом в нижней части окна. Теперь вы можете закрыть окно.
    • В диспетчере файлов теперь вы увидите извлеченную папку Arduino в папке «Загрузки». (Вы можете щелкнуть по нему, чтобы просмотреть файлы.)
    • Теперь откройте окно терминала и введите: cd Downloads , чтобы перейти в папку Downloads.
    • Введите ls , чтобы увидеть загруженные файлы
    • Введите cd "точное имя-папки-arduino" (убедитесь, что вы правильно указали имя папки, включая верхний и нижний регистры).
    • Введите ls , чтобы увидеть файлы внутри папки.
    • Теперь введите sudo ./install.sh , чтобы установить пакет. Подождите примерно минуту, пока произойдет волшебство.

    Вот и все! Теперь, если вы нажмете на меню рабочего стола Raspian, в разделе Programming у вас должно быть Arduino .

    У меня не было проблем с идентификацией моего USB / последовательного порта. RasPi, кажется, сразу это улавливает.

    Добавление поддержки ESP8266

    • Откройте Arduino IDE на своем Pi.
    • Скопируйте это: http://arduino.esp8266.com/stable/package_esp8266com_index.json
    • Зайдите в «Настройки».
    • Вставьте то, что вы только что скопировали, в поле «Дополнительные URL-адреса Board Manager».
    • Закройте и перезапустите Arduino IDE.

    Щелкните Эскиз
    Щелкните Включить библиотеку
    Щелкните Управление библиотеками
    Установите необходимые библиотеки ESP8266.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *