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

Содержание

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

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

например, в этом примере учебника 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…

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

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

    Используйте Arduino для выдачи команд AT на ESP8266.

Кроме того, просто запрограммируйте свой 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

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

Поделиться 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

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.

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

«C:\Program Files (x86)\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

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

Обратите внимание, что после этой инструкции не ставится точка с запятой. Так же можно подключить библиотеку ардуино через меню программы 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 
  • Наличие встроенного датчика температуры 


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

  • использование платы в качестве WiFi точки доступа 
  • подключаться (в том числе и автоматическое) к точке доступа WiFi 
  • режим пониженного энергопотребления (уход в сон) 
  • перенаправлять вывод 
  • выполнять операции со списком файлов в flash-памяти 
  • управление пользовательским таймером и таймером WatchDog 
  • управление GPIO1 выводами

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

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


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

Напишем скрипт создания простейшего веб-сервера, чтобы при обращении к модулю по HTTP с него выдавалась информация. Создадим для этого файл server1.lua и запишем в него код, представленный в листинге 1. Листинг 1 Сохраним файл server1.lua в модуле и запустим. Для проверки работы севера подключимся к точке доступа модуля и наберем в браузере ее адрес: http://192.168.4.1 (рисунок 3). Для запуска сервера при загрузке модуля необходимо в конце нашего autorun-файла init.lua добавить строку: dofile(server1.lua)


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

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


 Рисунок 4. 

Рассмотрим пример подключения аналогового датчика освещенности (фоторезистора) к плате 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

Bluetooth

X

Bluetooth 4.2 and BLE

Typical Frequency

SRAM

X

Flash

X

GPIO

Hardware /Software PWM

None / 8 channels

None / 16 channels

SPI/I2C/I2S/UART

ADC

CAN

X

Ethernet MAC Interface

X

Touch Sensor

X

Temperature Sensor

X

Hall effect sensor

X

Working Temperature

Price

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 на 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 — это не 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 интерфейс сделал в статье.

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

Подключение термопар к 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 \ \ Documents \ Arduino , где переменная среды % USERPROFILE% обычно содержит C: \ users \ )

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

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

Скачать бинарные инструменты

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

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

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

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

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

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

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

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

Скачать бинарные инструменты

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

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

Использование 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

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

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


Источник: m-gen.ru