Метка: GPIO

Метеостанция на Banana Pi M64 (Linux, C#, Docker, RabbitMQ, AvaloniaUI)

Статей о создании метеостанции на базе Arduino не счесть. Можно сказать, если статья про метеостанцию, то это про микроконтроллеры Arduino, ESP32 или STM32. Но только не в этот раз. Будем запускать метеостанцию на Banana Pi BPI-M64 под Linux, без использования Arduino-подобных оберток в виде WiringPi, на C# .NET5. Пример метеостанции является демонстрацией встраиваемого решения работы с GPIO, датчиками и вывода пользовательского интерфейса напрямую на LCD. В решении используется: Linux (Armbian) — основная ОС, .NET и C# — платформа для создания прикладного ПО, AvaloniaUI — графической интерфейс с интерактивными графиками и анимацией, Docker — инструмент для развертывания, управления, доставки приложений, RabbitMQ — брокер сообщений для передачи сообщений между контейнерами. Благодаря использованию универсального подхода и технологии Docker, приложение можно запустить не только на Banana Pi BPI-M64, но и на других Banana/Orange/Rock/Nano Pi одноплатных компьютерах, включая Raspberry Pi.

Читать далее »

.NET IoT. Часть 5. Обработка прерываний (interrupt) на примере событий кнопки

Работа с кнопкой уже была продемонстрирована в публикации Управляем контактами GPIO из C# .NET 5 в Linux, но без детального рассмотрения прерываний (interrupt). Поэтому на этом моменте остановимся подробнее. Рассмотрим как работает прерывание, какие бывают триггеры срабатывания, и сделаем пример на C# используя библиотеку Libgpiod. Для примера будем использовать туже самую кнопку.

Читать далее »

Программируем микроконтроллеры ESP32 и STM32 на C# (nanoFramework)

.NET nanoFramework — это бесплатная платформа с открытым исходным кодом, основанная на .NET и предназначена для малых встраиваемых устройств, микроконтроллеров. С её помощью можно разрабатывать различные устройства для Интернета вещей, носимые устройства, научные приборы, робототехнические устройства, можно создавать прототипы и даже использовать на промышленном оборудовании. В первой части мы познакомились с платформой .NET nanoFramework, её архитектурой, основными возможностями, посмотрели примеры программного кода. Теперь перейдем к практике, установим nanoFramework на микроконтроллеры серии ESP32 и STM32, напишем первый «Hello World!», поработаем с аппаратными интерфейсами, и оценим переносимость кода с «большого» .NET на платформу nanoFramework.

Читать далее »

Отладочная плата STM32 Nucleo F411RE

Nucleo – это высокопроизводительная платформа на ARM-процессоре, поддерживающая популярную онлайн среду разработки mbed. При помощи Nucleo можно разрабатывать устройства, для которых требуется высокая производительность или сложные математические вычисления. Эта платформа основана на 32-разрядном ARM-процессоре STM32F411RET6 с ядром Cortex-M4, работающим на частоте 100 МГц. В SoC входит 512 кБ Flash и 128 кБ SRAM-памяти.

Читать далее »

.NET IoT. Часть 2. Мигаем светодиодом (LED) используя библиотеку Libgpiod

Управление контактами GPIO в Linux на C# .NET IoT, уже было рассмотрено в публикации Управляем контактами GPIO из C# .NET 5 в Linux. Дабы не повторятся желательно ознакомится с выше указанной публикацией. Но для работы с GPIO в .NET IoT необходимо разобраться с нумерацией ножек процессора и иметь в наличие как минимум светодиод. Но что делать если на руках только одноплатный компьютер? В большинстве случаев на плате компьютера распаяны светодиоды, которые подключены к контроллеру GPIO (gpiochip). Таким образом, данные светодиоды доступны для управления из C# .NET IoT. В зависимости от дистрибутива, светодиоды могут быть задействованы в ОС как устройства, которые необходимо выключить в конфигурации дерева устройств Linux. На плате Banana Pi BPI-M64 размещено три светодиода красного, зеленого и синего цвета. Красный светодиод занят под функцию индикации подачи электропитания. Два остальных светодиода доступны для любых задач. Будем управлять встроенным синим светодиодом из .NET кода.

Читать далее »

IoT-платформа ESP32 DevKit v1 на базе микроконтроллера ESP-WROOM-32 [обновлено 01.12.2021]

На базе IoT-платформы ESP32 DevKit v1 можно разрабатывать проекты, где требуется беспроводная передача данных по Wi-Fi и/или Bluetooth. Микроконтроллеры серии ESP32 от компании Espressif достаточно быстро завоевали популярность из-за отличных характеристик и более низкой ценой по сравнению с существующими решениями, отличная замена устаревшей платформы Arduino Uno. На базе модуля ESP32 реализуются проекты: Web-сервер и Web-клиент для обработки управляющих запросов; Беспроводной музыкальный проигрыватель интернет-радио и музыкального стриминга; Беспроводная метеостанция с различными датчиками и сенсорным управлением; Робот с дистанционным управлением по Wi-Fi или Bluetooth BLE; И многие другие.

Читать далее »

Управляем контактами GPIO в Linux из Docker-контейнера библиотекой Libgpiod

В публикации Работа с GPIO в Linux. Часть 6. Библиотека Libgpiod познакомились с библиотекой Libgpiod,  разработанной Bartosz Golaszewski. Библиотека позволяет управлять контактами GPIO одноплатного компьютера, подавать 1/0, подписываться на события (необходимо для обработки прерывания кнопки), и т.д. В отличие от множества библиотек для Raspberry Pi, Libgpiod не заточена под конкретные процессоры и работает на различных архитектурных платформах: ARMv7, ARM64, AMD64. Но компиляция библиотеки из исходного кода, в зависимости от дистрибутива может приводить к тем или иным сложностям. Поэтому в дополнение и для создание Docker-контейнеров c .NET приложениями, были собраны контейнеры на базе ОС Alpine и Ubuntu 20.04 LTS (Focal Fossa) содержащие библиотеку Libgpiod вместе с утилитами для управления GPIO.

Читать далее »