Wokwi: как добавить библиотеку — менеджер, зависимости и обходы
Скетч с #include <FastLED.h> открыт в Wokwi, а компилятор отвечает, что файла нет: в Arduino IDE библиотека лежала в sketchbook, а в облаке её никто не ставил. Переезд проекта целиком — скетч, схема, zip и gist — ведёт отдельный лендинг; здесь же только библиотеки: куда ставить, где хранится список и что делать с экзотикой вне каталога.
Обзор сервиса — у нас, здесь практика: менеджер библиотек в редакторе, список зависимостей в файле проекта, минутный тест и обходы, когда библиотеки в реестре нет. Оговорка на весь текст: интерфейс и формат файлов меняются, материал сверен с сервисом на момент проверки, первоисточник один — официальная документация Wokwi.
Путь первый: менеджер библиотек
В редакторе Wokwi есть вкладка менеджера библиотек: открываете, набираете имя из #include, видите совпадения из реестра и ставите библиотеку кликом. Список зависимостей сохраняется вместе с проектом, и компиляция в облаке находит исходники сама. Механика та же, что в Arduino IDE — урок про менеджер библиотек показывает её на локальной среде — разница одна: в Wokwi ставится только то, что есть в его реестре.
- Откройте панель менеджера: она доступна из проекта, рядом с вкладками sketch.ino и diagram.json (на момент проверки; названия пунктов сервис двигает).
- Наберите имя из #include: поиск идёт по реестру, ходовые Servo, LiquidCrystal, FastLED, DHT находятся с первой буквы.
- Сверьте совпадения: реестр ищет по названию библиотеки, а не по имени .h-файла — выбирайте нужного автора из списка.
- Поставьте кликом: библиотека закрепляется за проектом, includes перестают сыпаться при компиляции.
- Запустите: кнопка Play компилирует в облаке; сборка прошла — зависимость на месте.
Путь второй: список библиотек в проекте
// sketch.ino — includes как в обычном скетче#include <Servo.h>#include <IRremote.h> // список библиотек проекта — по одной на строкуServoIRremoteВторой путь — держать список прямо в файлах проекта: текстовый файл, по одной библиотеке на строку, редактор подхватывает его при компиляции. В старых проектах Wokwi встречались и поля зависимостей внутри diagram.json — если редактор ругается на такое поле, уберите его и перенесите библиотеки в менеджер: формат менялся, и на момент проверки список в файле проекта надёжнее. Что ещё лежит в diagram.json, разобрано в лендинге из блока ссылок.
Если библиотеки нет в каталоге
- Перепроверьте имя: один лишний дефис или пробел — и поиск мимо; точное название смотрите в примерах библиотеки или на её странице.
- Спрячьте простые вызовы в свой .h: маленький заголовочный файл рядом со скетчем закрывает простые сценарии — шаги описаны в уроке про свою библиотеку.
- Перепишите на голый API: один-два вызова библиотеки иногда заменяются digitalWrite и delay без потери смысла.
- Переезжайте на локальную IDE: zip с GitHub ставится всегда, версии замораживаются, исходники правятся — там соберётся и то, чего в реестре Wokwi нет.
- Ищите замену: под ходовые задачи в реестре живут несколько библиотек-конкурентов, и часто соседняя ставится без приключений.
Облако против локальной IDE
| Wokwi (облако) | Arduino IDE (локально) | |
|---|---|---|
| Установка | клик в менеджере или строка в списке проекта | менеджер, zip с GitHub, папка libraries |
| Версии | выбор в менеджере | папки-дубли и суффиксы версий |
| Правка исходников библиотеки | нет: исходник живёт в облаке | да: файлы правятся как свои |
| Библиотека вне реестра | не соберётся | соберётся: zip решает |
| Что видит компилятор | файлы проекта плюс реестр | весь sketchbook целиком |
Строка #include при этом одна и та же — разница в том, где лежит исходник. Отсюда рабочий приём: сборка, которая падает в Wokwi, локально часто встаёт — значит, дело в отсутствии библиотеки, а не в коде. Обратный ход тоже полезен: проект, собранный локально с zip-библиотекой, перед переездом в Wokwi сверяют со списком реестра. Как ставить zip и держать версии под контролем — урок про zip-библиотеку.
8 заданий в симуляции строки меню: от библиотек из реестра до Плоттера порта.
Подгружаем интерактив…
Лаборатория выше гоняет восемь заданий по меню Arduino IDE — от установки библиотек из менеджера до плоттера. Навык переносится на Wokwi напрямую: менеджер библиотек в редакторе — тот же жанр, поиск по имени и установка кликом, только реестр другой.
Минутный тест библиотеки
#include <Servo.h> // проверяемая библиотека Servo sv; void setup() { sv.attach(9); Serial.begin(9600); Serial.println("biblioteka na meste");} void loop() { sv.write(90); // один вызов из проверяемой библиотеки delay(500);}Собрался и запустился — библиотека на месте, дальше можно тащить весь проект. Упёрлось на include — библиотеки нет, и это честный ответ за минуту, а не вечер блужданий по форумам. Логику поверх готового стенда удобнее гонять в нашем симуляторе: он исполняет Servo.h, дисплеи и датчики без реестра и облака — файлы проекта при этом живут привычными вкладками, как разобрано в уроке про вкладки и файлы скетча.
Грабли библиотек в Wokwi
- #include есть — библиотеки нет: локальная IDE подхватывает её из sketchbook молча, облачный компилятор нет; ставьте по списку выше.
- Имя из #include не совпадает с именем в реестре: ищите по названию библиотеки, а не по файлу заголовка.
- Старые поля зависимостей в diagram.json: редактор ругается — уберите поле и ставьте библиотеку через менеджер (формат менялся).
- API от версии к версии: скетч из интернета написан под старую библиотеку — выбирайте версию в менеджере или правьте вызовы.
- Экзотика с регистрами: библиотеки, лезущие напрямую в железо платы, в облаке не соберутся — их место в локальной IDE.