Что такое Arduino?
Ардуино (Arduino) — специальный инструмент, позволяющий проектировать электронные устройства, имеющие более тесное взаимодействие с физической средой в сравнении с теми же ПК, фактически не выходящими за пределы виртуальной реальности.
В основе платформы лежит открытый код, а само устройство построено на печатной плате с «вшитым» в ней программным обеспечением.
Другими словами, Ардуино — небольшое устройство, обеспечивающее управление различными датчиками, системами освещения, принятия и передачи данных.
В состав Arduino входит микроконтроллер, представляющий собой собранный на одной схеме микропроцессор. Его особенность — способность выполнять простые задачи. В зависимости от модели устройство Ардуино может комплектоваться микроконтроллерами различных типов.
Существует несколько моделей плат, самые распространённые из них – UNO, Mega 2560 R3.
Не менее важная особенность печатной платы заключается в наличии 22 выводов, которые расположены по периметру изделия. Они бывают аналоговыми и цифровыми.
Особенность последних заключается в управлении с помощью только двух параметров — логической единицы или нуля. Что касается аналогового вывода, между 1 и 0 имеется много мелких участков.
Сегодня Arduino используется при создании электронных систем, способных принимать информацию с различных датчиков (цифровых и аналоговых).
Устройства на Ардуино могут работать в комплексе с ПО на компьютере или самостоятельно.
Что касается плат, их можно собрать своими руками или же приобрести готовое изделие. Программирование Arduino производится на языке Wiring.
ЧИТАЙТЕ ПО ТЕМЕ: Умный дом Xiaomi Smart Home, обзор, комплектация, подключение и настройка своими руками, сценарии.
Системные штуки
Работа с памятью
- EEPROM – стандартная библиотека для работы с EEPROM. Рекомендую использовать более удобную EEPROMex
- EEPROMex – более удобная библиотека для работы с EEPROM памятью. Описание
- EEPROMWearLevel – “менеджер” EEPROM памяти, следит за количеством перезаписи ячеек
- MemoryFree – библиотека для изучения текущей занятости SRAM памяти. Описание
- EEWrap – библиотека позволяет использовать EEPROM как оперативную память (SRAM), т.е. для хранения переменных
- Flash – библиотека позволяет удобно хранить/читать любые данные во Flash памяти микроконтроллера (массивы, строки с текстом…)
- PGMWrap – ещё одна мощная библиотека для записи/чтения данных во Flash память
- optiboot_flash – модифицированный загрузчик OptiBoot, в который добавлена возможность работать с Flash памятью во время выполнения кода (считай расширение SRAM за счёт Flash!)
Работа с пинами
- DirectIO – более быстрая альтернатива стандартных функций чтения/записи состояния пина
- AnalogReadFast – быстрый вариант чтения аналогового пина (21 мкс)
- CyberLib – крутой сборник быстрых аналогов функциям Ардуино, читайте описание. Примечание: автор этой открытой библиотеки не любит, когда ей пользуются в своих проектах, так что аккуратнее.
- GyverHacks – сборник быстрых аналогов функций Ардуино, не таких быстрых, как у CyberLib, но более привычный в использовании. Изменение частоты/разрядности ШИМ
- SoftPWM – делаем софтверный ШИМ на разных пинах
- PWM – библиотека, позволяющая задавать частоту ШИМ
- GyverPWM – мощная библиотека для расширенной генерации ШИМ (только для ATmega328)
- PinChangeInt – делаем прерывания на любом пине. Как так? Есть описание
- PinChangeInterrupt – ещё одна библиотека (лучше), позволяющая ловить прерывания на любом пине
- analogComp – работа с аналоговым компаратором микроконтроллера
Глубинные настройки
- GyverHacks – помимо описанного выше, тут есть некоторые глубинные настройки, измерение опорного напряжения и температуры ядра (для ATmega328)
- GyverTimer012 – лёгкая библиотека для управления прерываниями на всех трёх таймерах ATmega328
- directTimers – библиотека для расширенного ручного управления таймерами на ATmega328, раскрывает все возможности и настройки таймеров
- directADC – библиотека для расширенного ручного управления АЦП и компаратором на ATmega328, раскрывает все возможности и настройки АЦП
- GyverPower – самая лёгкая и универсальная библиотека для управления сном, периферией и системным клоком
- Low-Power – мощная библиотека для управления энергосбережением и спящим режимом
- narcoleptic – ещё одна очень простая в использовании библиотека спящего режима
- SoftwareReset – доступ к перезагрузке Ардуино “из скетча”
- WatchDog – библиотека для работы со “сторожевым псом”, перезагружающим МК в случае зависания. Ещё вариант
- Adafruit-Trinket-USB – библиотека эмуляции USB для ATtiny85 (плата Digispark). Имитирует клавиатуру/мышь
- TrinketHidCombo_MEGA328 – библиотека эмуляции USB для ATmega328 (платы UNO/Nano/Pro Mini). Имитирует клавиатуру/мышь. Пример есть на форуме. Оригинальный пост на форуме. Скачать с FTP сайта. Скачать с облака Mail. Скачать с Яндекс Диска.
- DMBS AVR lib – набор лёгких и быстрых базовых функций для работы с МК без ядра (аналог avr libs)
- LUFA – лёгкий USB фреймворк для AVR
Ядра и загрузчики
- megaTinyCore – мой вариант ядра для плат с ATmega168/328 на борту (UNO, Nano, Mini), основан на оригинальном ядре Arduino, стандартные функции многократно ускорены и облегчены. Рекомендуется для тяжёлых и требовательных к скорости проектов.
- optiBoot – крутой загрузчик для Ардуино, более быстрый, лёгкий и функциональный
- HoodLoader – загрузчик для МК 16u2 с поддержкой HID (читай: превращает оригинальную UNO в аналог Leonardo с поддержкой HID)
- ArduinoXInput_AVR – ядро для плат на базе ATmega32U4 (Leonardo, Micro), превращающее плату в контроллер с поддержкой XInput (геймпад от Xbox). Для создания игрового контроллера также понадобится библиотека ArduinoXInput. Есть гайд на английском
- GyverCore – лёгкое и быстрое ядро для ATmega328 (Arduino NANO), которое разработали мы с коллегой. Лёгкое и быстрое, возможность работы без загрузчика и широкий выбор вариантов тактирования и вообще системных настроек.
- MiniCore – ядро для поддержки микроконтроллеров ATmega328, ATmega168, ATmega88, ATmega48 и ATmega8, основано на optiBoot. Одна из основных фишек – поддержка внутреннего тактового генератора!
- MicroCore – ядро для поддержки микроконтроллеров ATtiny13, ATtiny13A and ATtiny13V с выбором частоты внутреннего тактового генератора
- ATTinyCore – ядро для поддержки микроконтроллеров ATtiny 441/841, 44/84, 45/85, 461/861, 48/88, 828, 1634, 87, 167, опять же на базе крутого OptiBoot.
- megaTinyCore – ядро для поддержки микроконтроллеров ATtiny 3217, 1617, 817, 417, 3216, 1616, 816, 416, 1614, 814, 414, 214, 412, 212, 1607, 807, 1606, 806, 406, 1604, 804, 404, 204, 402, 202. Новые модели шьются по UPDI, по этой теме читайте отличную статью на русском языке.
- nanoBoot – лёгкий (512 байт) загрузчик для ATmega32xx4 с поддержкой HID
Менеджеры задач и потоков
- ArduinoThread – библиотека для создания “потоков” – отдельно выполняемых задач по таймеру или как-то ещё
- EventManager – библиотека для работы с событиями (опять-же таймер-вашего-кода)
- Arduino-fsm – ещё один менеджер задач, позволяющий писать чёткий понятный код с кучей задач, выполняющихся по таймеру
- Automaton – ещё один фреймворк для написания скетчей с задачами и таймерами. Есть вики
- FreeRTOS – операционная система реального времени для Ардуино. Задачи, потоки…
- Arduino_FreeRTOS – ещё одна версия RTOS
- GyverRTOS – моя простенькая RTOS с режимом сна (на основе библиотеки Low-Power)
- DeepSleepScheduler – менеджер задач со встроенным режимом сна
Чем управляет Arduino?
Благодаря большому количеству выводов на печатной плате, к Ардуино удается подключить множество различных устройств, а именно:
Кроме того, к Ардуино подключается набор датчиков в зависимости от задач, поставленных перед системой. Как правило, устанавливаются датчики освещенности, дыма и состава воздуха, магнитного поля, влажности, температуры и прочие.
Благодаря этой особенности, Arduino становится универсальным устройством — «мозговым с возможностью конфигурации с учетом поставленных задач.
Принцип работы системы
Устройство Arduino работает следующим образом. Информация, собранная с различных датчиков в доме, направляется по беспроводной сети на планшет или ПК. Далее с помощью специального софта производится обработка данных и выполнение определенной команды.
Главную функцию выполняет центральный датчик, который можно приобрести или собрать самостоятельно. Разъемы на платах являются стандартными, что значительно упрощает выбор комплектующих.
Питание
Питание Arduino производится через USB разъем или от внешнего питающего устройства. Источник напряжения определяется в автоматическом режиме.
Если выбран вариант с внешним питанием не через USB, можно подключать АКБ или блок питания (преобразователь напряжения). В последнем случае подключение производится с помощью 2,1-миллиметровго разъема с «+» на главном контакте.
Провода от АКБ подключаются к различным выводам питающего разъема — Vin и Gnd.
Для нормальной работы платформа нуждается в напряжении от 6 до 20 Вольт. Если параметр падает ниже 7 вольт, на выводе 5V может оказаться меньшее напряжение и появляется риск сбоя.
Если подавать 12 В, возможен перегрев регулятора напряжения и повреждения платы. По этой причине оптимальным уровнем является питание с помощью 7 — 12 В.
В отличие от прошлых типов плат, Arduino Mega 2560 работает без применения USB-микроконтроллера типа FTDI. Для обеспечения обмена информацией по USB применяется запрограммированный под конвертер USB-to-serial конвертер.
ПОПУЛЯРНО У ЧИТАТЕЛЕЙ: Что такое умный дом CLAP.
На Ардуино предусмотрены следующие питающие выводы:
- 5V — используется для подачи напряжения на микроконтроллер, а также другие элементы печатной платы. Источник питания является регулируемым. Напряжение подается через USB-разъем или от вывода VIN, а также от иного источника питания 5 Вольт с возможностью регулирования.
- VIN — применяется для подачи напряжения с внешнего источника. Вывод необходим, когда нет возможности подать напряжение через USB-разъем или другой внешний источник. При подаче напряжения на 2,1-миллиметровй разъем применяется этот вход.
- 3V3 — вывод, напряжение на котором является следствием работы самой микросхемы FTDI. Предельный уровень потребляемого тока для этого элемента составляет 50 мА.
- GND — заземляющие выводы.
Принципиальную схему платы в pdf формате можно посмотреть ЗДЕСЬ.
Связь
Возможности Arduino позволяют подключить группу устройств, обеспечивающих стабильную связь с ПК, а также другими элементами системы — микроконтроллерами или такими же платами Ардуино.
Модель ATmega 2560 отличается наличием 4 портов, через которые можно передавать данные для TTL и UART. Специальная микросхема ATmega 8U2 на плате передает интерфейс (один из них) через USB-разъем. В свою очередь, программы на ПК получают виртуальный COM.
Здесь имеются нюансы, которые зависят от типа операционной системы:
- Если на ПК установлен Linux, распознавание происходит в автоматическом режиме.
- Если стоит Windows, потребуется дополнительный файл .inf.
С помощью утилиты мониторинга обеспечивается отправление и получение информации в текстовом формате после подключения к системе.
Мигание светодиодов TX и RX свидетельствует о передаче данных. Для последовательной отправки информации применяется специальная библиотека Software Serial.
К особенностям ATmega 2560 стоит отнести наличие интерфейсов SPI и I2C. Кроме того, в состав Ардуино входит библиотека Wire.
Примеры скетчей
Можно рассмотреть некоторые примеры скетчей, которые станут ориентиром при последующей работе оборудования. Каждый из примеров я постараюсь реализовать в следующих материалах. Сегодня же мы просто поговорим о возможностях.
Пример 1
Одним из интересных скетчей можно отображать само время работы контроллера, в дальнейшем принятие команды «blink», она предусмотрена для инициализации процедуры мигания светодиодных элементов.
Фактически, ничего особенно полезного в скетче нет, но в нем организована и возможность случайного вывода некоторой фразы «Data Received», она может использоваться в дальнейшем непосредственно для тестирования и анализа установленных правил работы модульного элемента.
Пример 2
Подключение специального датчика текущего уровня воды, датчика дождя. Для реализации конкретного проекта необходимо наличие:
- самого датчика воды,
- контроллера Arduino,
- комплекта соединительных проводов,
- компьютера с кабелями и программой IDE, соответствующей макетной платы.
В результате, благодаря сравнительно простой настройке микроконтроллера, обеспечивается создание оптимальных условий для работы датчика — см. проект в наших уроках.
Пример 3
Отдельного внимания заслуживает возможность осуществления вывода символов, последующая установка шрифтов на LCD5110, что позволит обеспечить максимально легкий и надежный контроль над состоянием самого оборудования.
Вывод и изменение шрифтов осуществляется посредством использования возможностей Arduino. Потребуется в этом случае использовать готовую библиотеку данных, а также исходный код.
Разработка проекта
На современном рынке представлено множество устройств Arduino, имеющих различную комплектацию. Но универсального решения «на все случаи жизни» не существует. В зависимости от поставленной задачи каждый комплект подбирается в индивидуальном порядке. Чтобы избежать ошибок, требуется разработка проекта.
Какие проекты можно создавать на Arduino?
Ардуино позволяет создавать множество уникальных проектов. Вот лишь некоторые из них:
- Сборка кубика Рубика (система справляется за 0,887 с);
- Контроль влажности в подвальном помещении;
- Создание уникальных картин;
- Отправка сообщений;
- Балансирующий робот на двух колесах;
- Анализатор спектра звука;
- Лампа оригами с емкостным сенсором;
- Рука-робот, управляемая с помощью Ардуино;
- Написание букв в воздухе;
- Управление фотовспышкой и многое другое.
Подбираем комплектацию под проект на примере Arduino Mega 2560 R3
Для создания полноценной системы «Умный дом» и выполнения ею возложенных функций важно правильно подойти к комплектации и выбору оборудования.
Что входит в комплект поставки?
Если ваша цель — «Умный дом» на базе Arduino, требуется подготовить следующее оборудование — саму плату Mega 2560 R3, модуль Ethernet (ENC28J60), датчик движения, а также другие датчики и контроллеры.
Кроме того, стоит подготовить кабель вида «витая пара», резистор, реле, переключатель и кабель для модуля Ethernet.
Необходимы и дополнительные инструменты — отвертки, паяльники и прочее.
Учтите, что покупать наборы для монтажа системы стоит в сертифицированных пунктах. Это объясняется тем, что при реализации проекта применяется электричество, а использование подделки может привести к снижению уровня безопасности.
Все программы для адаптации можно найти в сети на официальном сайте Arduino https://arduino.ru. При выборе датчиков стоит ориентироваться на задачи, которая должен решать «Умный дом».
Как правило, требуются датчики движения, температуры, открытия дверей и освещенности. Роль датчика открытия дверей может выполнять обычный геркон.
Прошивается плата с помощью специального софта, предназначенного для различных операционных систем, в том числе и кабеля USB. При этом в программаторах нет необходимости.
Что касается ПО, которое применяется в Ардуино, оно написано на языке Си. На число байт имеются определенные ограничения, но текущей памяти достаточно для реализации поставленной задачи.
Невероятные проекты с Ардуино
Конечной целью данных манипуляций является обеспечение легкого управления многочисленными внешними устройствами. С внешним миром, данная плата взаимодействует посредством множества дополнений:
- датчики,
- светодиоды,
- двигатели,
- и т.п.
Это позволит сделать ее достаточно универсальной платформой для множества проектов само разного уровня — см. раздел на нашем сайте Уроки Ардуино. В настоящее время довольно много самых разных микроконтроллеров, среди которых Arduino пользуется особенной популярностью, что связано с активным размещением в сети самых невероятных проектов и разработок.
Для того, чтобы запросто реализовать одну из миллионов идей легко можно использовать самую актуальную информацию, которая доступна самостоятельно на многих сайтах. Ниже пример реализации одной из таких идей — рождественский колокольчик, которым можно управлять:
Как его сделать мы разберем на одном из следующих уроков.
В том случае, если нет даже незначительного опыта работы с микроконтроллерами (программирования и настройки), благодаря особенностям Ардуино можно запросто научиться самостоятельно, проведя сравнительно непродолжительные эксперименты. Ниже как раз предлагаю проанализировать некоторые возможности Ардуино, примеры того, где лучше всего использовать это уникальный конструктор.
Начало работы
Как только необходимое оборудование подготовлено, а проект разработан, можно приступать к выполнению поставленной задачи.
Этапы
При организации системы «Умный дом» на базе Ардуино, стоит действовать по следующему алгоритму:
- Инсталляция программного кода;
- Конфигурация приложения под применяемое устройство;
- Переадресация портов (для роутера);
- Проведение тестов;
- Внесение правок и так далее.
В Сети имеется весь необходимый софт на применяемое оборудование — его достаточно скачать с официального сайта и установить (ссылку смотрите выше).
Приложение позволяет увидеть информацию о датчиках. Если это требуется, настройки IP-адрес могут быть изменены.
Последовательность действий при подключении к компьютеру
Чтобы начать работать с Ардуино в Windows, сделайте следующие шаги:
- Подготовьте необходимое оборудование — USB-кабель и Arduino.
- Скачайте программу на странице arduino.cc/en/Main/Software.
- Подсоедините плату с помощью USB-кабеля. Проследите, чтобы загорелся светодиод PWR.
- Поставьте необходимый набор драйверов для работы с Ардуино. На этом этапе стоит запустить установку драйвера и дождаться завершения процесса.
После жмите на кнопку «Пуск» и перейдите в панель управления. Там откройте вкладку «Система и безопасность» и выберите раздел «Система». После открытия окна выберите «Диспетчер устройств», жмите на название Ардуино и с помощью правой кнопки мышки задайте команду обновления драйвера. Найдите строчку «Browse my computer for Driver software!», кликните по ней и выберите соответствующий драйвер для вашего типа платы — ArduinoUNO.inf (находится в папке с драйверами). Это может быть UNO, Mega 2560 или другая. - Запустите среду разработки Ардуино, для чего дважды кликните на значок с приложением.
- Откройте готовый пример (File — Examples — 1.Basics — Blink).
- Выберите плату. Для этого перейдите в секцию Tools, а дальше в Board Menu.
- Установите последовательный порт (его можно найти путем отключения и подключения кабеля).
- Скачайте скетч в Ардуино. Кликните на «Upload» и дождитесь мигания светодиодов TX и RX на плате. В завершение система показывает, что загрузка прошла успешно. Через несколько секунд после завершения работы должен загореться светодиод 13 L (он будет мигать оранжевым). Если это так, система готова к выполнению задач.
Работа с роутером
Для полноценной работы «Умного дома» важно правильно обращаться с роутером. Здесь требуется выполнить следующие действия — открыть конфигурацию, указать адрес Arduino IP, к примеру, 192.168.10.101 и открыть 80-й порт.
После требуется присвоить адресу доменное имя и перейти к процессу тестирования проекта. Учтите, что для такой системы запрещено применение открытого IP-адреса, ведь в этом случае высок риск взлома через Сеть.
Подключение и прошивка Ардуино Leonardo
Для подключения устройства требуется кабель USB, подключенный к ПК, или подача питания от внешнего источника.
Для подключения устройства требуется кабель USB, подключенный к ПК, или подача питания от внешнего источника. Это может быть выносная батарея или адаптер типа AC/DC. Такое решение сделало контроллер более дешевым в производстве, повысилась гибкость применения в работе с компьютером.
При установке драйвера Arduino Leonardo нужно действовать таким образом:
- подключение устройства к ПК;
- ожидание запуска мастера установки ПО (при отсутствии запуска ручной переход в раздел оборудования, выбор строчки Arduino Leonardo и нажатие обновления);
- поиск драйверов на ПК и нажатие «Далее»;
- в папке с ПО выбор нужного драйвера;
- согласие с установкой.
Для прошивки устройства достаточно нажатия кнопки Upload, чтобы автоматически загрузить софт в память устройства. Далее инициируется сброс контроллера, что приводит к пуску загрузчика (отвечает за получение, сохранение и старт нового ПО). В отличие от других моделей здесь после автоматического сброса платформа ожидает нового последовательного порта. Далее скетч направляется на вновь созданный COM-порт. Если автоматический сброс по какой-либо причине не активировался, нужно сделать следующее:
- нажатие кнопки сброса и удерживание ее до момента появления слова Uploading;
- контроль запуска загрузчика (система должна увидеть новый порт).
Указанные действия необходимы, если стандартная система прошивки не сработала.
Расширение возможности на Ардуино
Одной из возможностей умного дома является визуализация состояния автоматики и проходящих в системе процессов. Для этого рекомендуется применять отдельный сервер, обеспечивающий обработку состояний (может применяться программа Node.js).
Упомянутая программная технология применяется для решения интернет-задач, поэтому для визуализации «Умного дома» используется язык Java Script (именно с его помощью создается обработчик и сервер). Результаты можно увидеть на экране компьютера или ПК.
Для реализации задуманного подойдет ноутбук, обычный ПК или Raspberry Pi. Применение такой системы позволяет увеличить ее возможности. Так, если на плате Ардуино имеется небольшой объем памяти, на сервере такие ограничения отсутствуют. Программа пишется таким образом, чтобы обеспечить полное управление платформой.
При желании можно задать алгоритм, который будет фиксировать факт нахождения человека в доме, и собирать эту информацию. Если владелец ежедневно возвращается где-то к 17.30, за час может быть включен бойлер или отопительные устройства. По приходу домой человек попадает в теплое здание с горячей водой.
Программа может запомнить время, когда владелец ложится отдыхать и отключать нагрев воды. Таких нюансов, которые при необходимости вносятся в программу, множество. Именно наличие внешнего ПК дает большие возможности контроллеру на Ардуино.
Общение с Arduino
Чтобы узнать, какие действия осуществлять, процессор должен получить соответствующую команду. Общение производится с помощью специального языка, который адаптирован под работу с Ардуино и достаточно прост. При желании в нем легко работаться даже при отсутствии навыков программирования.
Оформление и отправка сообщения контроллеру называется программированием. Чтобы упростить процесс, разработана среда Arduino IDE, в состав которой входит множество программ. Их изучение позволяет получить массу полезной информации о работе с Ардуино.
Некоторое железо
- GyverStepper – высокопроизводительная библиотека для управления шаговым мотором
- AccelStepper – более интересная и качественная замена стандартной библиотеке Stepper для контроля шаговых моторчиков. Скачать можно со страницы разработчика, или вот прямая ссылка на архив.
- AccelMotor – моя библиотека для управления мотором с энкодером (превращает обычный мотор в “шаговый” или сервомотор)
- ServoSmooth – моё дополнение к стандартной библиотеке Servo, позволяющее управлять сервоприводом с настройкой максимальной скорости движения и разгона/торможения (как в AccelStepper, только для серво). Must have любого любителя серво манипуляторов!
- CapacitiveSensor – библиотека для создания сенсорных кнопок (из пары компонентов рассыпухи). Описание
- ADCTouchSensor – ещё одна версия библиотеки для создания сенсорных кнопок. Есть ещё одна, так, на всякий случай
- TouchWheel – библиотека для создания сенсорных слайдеров и колец
- Buzz – детектор присутствия на основе всего лишь одного провода! (измеряет ЭМ волны)
- Bounce – библиотека антидребезга для кнопок и всего такого. Сомнительная полезность, но почитайте описание
- oneButton – библиотека для расширенной работы с кнопкой. На мой взгляд неудобная
- GyverButton – моя библиотека для расширенной работы с кнопкой. Очень много возможностей!
- AdaEncoder – библиотека для работы с энкодерами
- GyverEncoder – моя библиотека для энкодеров с кучей возможностей, поддерживает разные типы энкодеров
- RTCLib – лёгкая библиотека, поддерживающая большинство RTC модулей
- OV7670 – библиотека для работы с камерой на OV7670
- IRremote – базовая библиотека для работы с ИК пультами и излучателями
- IRLib – более расширенная версия для работы с ИК устройствами
- IRLremote – самая чёткая библиотека для ИК пультов, работает через прерывания. 100% отработка пульта
- keySweeper – почти готовый проект для перехвата нажатий с беспроводных клавиатур
- USB_Host_Shield – позволяет Ардуине работать с геймпадами (PS, XBOX) и другими USB устройствами
- Brain – библиотека для работы с NeuroSky ЭЭГ модулями
- TinyGPS – шустрая библиотека для работы с GPS модулями
- GyverRGB – моя библиотека для работы с RGB светодиодами и лентами
- FadeLED – библиотека для плавного (ШИМ) мигания светодиодами с разными периодами
- CurrentTransformer – измерение силы тока при помощи трансформатора (катушки) на проводе. Читай: токовые клещи
- LiquidCrystal-I2C – библиотека для LCD дисплеев с I2C контроллером. Разработчик – fdebrabander
- LiquidCrystal-I2C – библиотека для LCD дисплеев с I2C контроллером. Разработчик – johnrickman. Предыдущая вроде бы лучше
- LiquidTWI2 – быстрая библиотека для LCD дисплеев на контроллерах MCP23008 или MCP23017
- LCD_1602_RUS – библиотека русского шрифта для LCD дисплеев
- LCD_1602_RUS_ALL – новая версия предыдущей библиотеки с поддержкой украинского языка
- u8glib – библиотека для работы с монохромными LCD и OLED дисплеями
- ucglib – библиотека для работы с цветными LCD и OLED дисплеями
- Adafruit_SSD1306 – ещё одна библиотека для OLED дисплеев
- Adafruit-GFX-Library – дополнение для adafruit библиотек дисплеев, позволяет выводить графику
- SSD1306Ascii – самодостаточная и очень лёгкая библиотека для вывода текста на OLEDы
- NeoPixelBus – библиотека для работы с адресной светодиодной лентой, адаптированная под esp8266 (NodeMCU, Wemos и др.).
- microLED – лёгкая и простая библиотека для работы с адресной лентой
- Gyver433 – лёгкая библиотека для отправки любых данных через радио модули 433 МГц
- rc-switch – библиотека для работы с радио модулями 433 МГц и разными протоколами связи
Как можно управлять?
Как отмечалось, сервер Node.js позволяет связать между собой оборудование в доме. Одним из способов управления процессами являются облачные сервисы в Сети. При этом включить отопление или бойлер можно за один-два часа до приезда.
Еще один способ — управление с помощью сообщений (MMS или SMS). Этот вариант актуален в случае, когда нет связи с Интернетом. Одним из преимуществ системы является возможность получения информации о форс-мажорной ситуации (например, протечке). Здесь помогает плата Edison от компании Intel.