Найти в Дзене
Электроника, ESP32, Arduino

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

Если вы нашли интересный проект в сети на Arduino подобной платформе или ESP32 (ESP8266) с открытым исходным ходом, и хотели бы его повторить - Вам необходимо научиться устанавливать библиотеки. Разберем это на примере сборки моих Интернет часов которые получают из сети время и погоду за окном.

Время, дата, температура и влажность в комнате, температура, влажность сила и направление ветра, давление, время восхода и заката солнца на улице
Время, дата, температура и влажность в комнате, температура, влажность сила и направление ветра, давление, время восхода и заката солнца на улице

Данный проект собран не на Ардуино, а на базе платформы ESP32 - поэтому для начала необходимо установить поддержку плат ESP32 для работы с ними из среды Arduino IDE. (как это сделать читайте в этой статье)

Для начала разберем структуру проекта:

Проект состоит из двух файлов
Проект состоит из двух файлов

Дисплей LCD2004 который у меня был в наличии к сожалению был без Кириллицы внутри, а поскольку готовый библиотеки я не нашел - я запилил русские шрифты и процедуру их вывода на дисплей в отдельном файле который называется iRusFont.h Для корректной работы этот файл должен находится в той же папке, что скетч проекта. Подключается этот файл точно также, как и сторонние библиотеки директивой include. Если умеете писать код сами - это очень удобный прием в программировании, так как для любого другого нового проекта всегда можно закинуть свой файл в папку с новым проектом и получить доступ к готовому набору функций. С этим делать ничего не нужно.

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

Выбираем платформу на которой был создан проект и нажимаем кнопку проверки:

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

Если в процессе сборки компилятор начал материться и выдавать сообщения в виде:

Ошибки об отсутствии необходимых файлов библиотек для корректной сборки программы
Ошибки об отсутствии необходимых файлов библиотек для корректной сборки программы

значит в вашей среде Arduino IDE отсутствуют необходимые для работы библиотеки. Если автор скетча не указал где их взять - смело пользуемся поисковой системой Google.

Копируем  из строки include <ArduinoJson.h> то что находится между символами <> и вставляем в поисковую систему
Копируем из строки include <ArduinoJson.h> то что находится между символами <> и вставляем в поисковую систему
Идем по найденной ссылке на GitHub и скачиваем библиотеку
Идем по найденной ссылке на GitHub и скачиваем библиотеку

Далее устанавливаем библиотеку:

Добавление библиотеки
Добавление библиотеки
Выбираем скачанный архив
Выбираем скачанный архив
Сообщение об успешно установленной библиотеке
Сообщение об успешно установленной библиотеке

Снова нажимаем кнопку проверить и получаем сообщение в другой строке

Не хватает библиотеки для работы с дисплеем
Не хватает библиотеки для работы с дисплеем

Гуглим и ищем ссылку ведущую на GitHub

Переходим, скачиваем, устанавливаем
Переходим, скачиваем, устанавливаем

Снова нажимаем кнопку проверить

Нет библиотеки для работы с датчиком температуры
Нет библиотеки для работы с датчиком температуры

гуглим, скачиваем, устанавливаем

И вот тут уже получаем ошибку поинтереснее:

-13

Несколько библиотек найдено для "WiFi.h"
Используется: C:\Users\i\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi
In file included from C:\Users\i\Desktop\ESP32_Project\ESP32_WiFiClock\Дзен\ESP32_WiFiClockV5\ESP32_WiFiClockV5.ino:9:0:
Не используется: C:\Program Files (x86)\Arduino\libraries\WiFi
C:\Users\i\Documents\Arduino\libraries\Adafruit_SHT31-master/Adafruit_SHT31.h:24:32: fatal error: Adafruit_I2CDevice.h: No such file or directory
compilation terminated.
exit status 1
Ошибка компиляции для платы DOIT ESP32 DEVKIT V1.

Расшифровывается это примерно как: Adafruit_SHT31 использует файл Adafruit_I2CDevice.h

Гуглим, скачиваем, ставим

-14

Нажимаем "проверить"

Теперь мы провалились вовнутрь скетча и видим, что у той библиотеки для дисплея которую мы скачали нет метода init();

-15

Означить это может только одно - автор использовал другую библиотеку для дисплея (не ту которую мы на гуглили).

Заходим в папку документы - Arduino - libraris, грохаем там папку с библиотекой для дисплея и пытаемся найти нужную библиотеку в менеджере библиотек

Открываем менеджер библиотек
Открываем менеджер библиотек

(библиотеки от Adafruit тоже лучше искать и устанавливать через менеджер - так при этом будет предложена установка всех недостающих примочек необходимых для работы с каким-нибудь дисплеем или датчиком)

Очень похоже на вот это!
Очень похоже на вот это!

Попробуем - жмем установка.
Нажимаем кнопку проверить.

Не смотря на предупреждение программа скомпилировалась корректно
Не смотря на предупреждение программа скомпилировалась корректно

Только после достижения этого результата можно идти на сайты магазинов, заказывать железо, брать в руки паяльник и начинать собирать чужой проект - так как после получения сообщения об успешной компиляции есть 100% гарантия, что вы сможете залить чужой код в свою самоделку.

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

p.s: если собрать часы хочется, а разбираться нет ни времени ни желания - можете просто добавить файлы из ЭТОГО АРХИВА в корень папки libraries

.....\Documents\Arduino\libraries

Набор папок с файлами необходимый для сборки проекта часов
Набор папок с файлами необходимый для сборки проекта часов

Сам скетч Интернет - часов, и инструкции по сборке можно найти тут

В статье была просто показана возможность компиляции того - не пойми чего методом "научного втыка" )))