Если вы нашли интересный проект в сети на Arduino подобной платформе или ESP32 (ESP8266) с открытым исходным ходом, и хотели бы его повторить - Вам необходимо научиться устанавливать библиотеки. Разберем это на примере сборки моих Интернет часов которые получают из сети время и погоду за окном.
Данный проект собран не на Ардуино, а на базе платформы ESP32 - поэтому для начала необходимо установить поддержку плат ESP32 для работы с ними из среды Arduino IDE. (как это сделать читайте в этой статье)
Для начала разберем структуру проекта:
Дисплей LCD2004 который у меня был в наличии к сожалению был без Кириллицы внутри, а поскольку готовый библиотеки я не нашел - я запилил русские шрифты и процедуру их вывода на дисплей в отдельном файле который называется iRusFont.h Для корректной работы этот файл должен находится в той же папке, что скетч проекта. Подключается этот файл точно также, как и сторонние библиотеки директивой include. Если умеете писать код сами - это очень удобный прием в программировании, так как для любого другого нового проекта всегда можно закинуть свой файл в папку с новым проектом и получить доступ к готовому набору функций. С этим делать ничего не нужно.
Если у Вас чужой скетч, то перед прошивкой платы необходимо проверить - а "соберется" ли данный код вообще. (для этого необязательно даже иметь данную платформу в наличии и подключать её к компьютеру)
Выбираем платформу на которой был создан проект и нажимаем кнопку проверки:
Если в процессе сборки компилятор начал материться и выдавать сообщения в виде:
значит в вашей среде Arduino IDE отсутствуют необходимые для работы библиотеки. Если автор скетча не указал где их взять - смело пользуемся поисковой системой Google.
Далее устанавливаем библиотеку:
Снова нажимаем кнопку проверить и получаем сообщение в другой строке
Гуглим и ищем ссылку ведущую на GitHub
Снова нажимаем кнопку проверить
гуглим, скачиваем, устанавливаем
И вот тут уже получаем ошибку поинтереснее:
Несколько библиотек найдено для "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
Гуглим, скачиваем, ставим
Нажимаем "проверить"
Теперь мы провалились вовнутрь скетча и видим, что у той библиотеки для дисплея которую мы скачали нет метода init();
Означить это может только одно - автор использовал другую библиотеку для дисплея (не ту которую мы на гуглили).
Заходим в папку документы - Arduino - libraris, грохаем там папку с библиотекой для дисплея и пытаемся найти нужную библиотеку в менеджере библиотек
(библиотеки от Adafruit тоже лучше искать и устанавливать через менеджер - так при этом будет предложена установка всех недостающих примочек необходимых для работы с каким-нибудь дисплеем или датчиком)
Попробуем - жмем установка.
Нажимаем кнопку проверить.
Только после достижения этого результата можно идти на сайты магазинов, заказывать железо, брать в руки паяльник и начинать собирать чужой проект - так как после получения сообщения об успешной компиляции есть 100% гарантия, что вы сможете залить чужой код в свою самоделку.
Не умея разбираться в диагностических сообщениях компилятора, сборка чужого проекта для начинающего "Ардуинщика" может превратится в неразрешимый квест.
p.s: если собрать часы хочется, а разбираться нет ни времени ни желания - можете просто добавить файлы из ЭТОГО АРХИВА в корень папки libraries
.....\Documents\Arduino\libraries
Сам скетч Интернет - часов, и инструкции по сборке можно найти тут
В статье была просто показана возможность компиляции того - не пойми чего методом "научного втыка" )))