Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Raspberry Pi 3

513 постов сначала свежее
antexdom
antexdom
10 месяцев назад
IT-юмор

Мусор в шине⁠⁠

Мусор в шине Linux, Raspberry pi, Юмор

Инженер нашей компании включил на прослушку шину rs485 и там валятся помехи😀. Шутка конечно для инженеров))

Показать полностью 1
Linux Raspberry pi Юмор
15
55
antexdom
antexdom
11 месяцев назад
Arduino & Pi

Первый в России, а может и в мире серийный преобразователь modbus в ws2812⁠⁠

Спасибо за просмотр. Кстати забыл сказать, можно как записать, так и прочитать значение цветов диода. Подробнее устройство можно обсудить в нашем сообществе в телеге https://t.me/Antexgate

Знаю, без цены будете пинать, примерно 4999 рублей. Посмотрим отклик, если девайс ходовой то станет дешевле.

Показать полностью
Stm32 Чип Raspberry pi Led Интернет вещей Умный дом Видео YouTube Telegram (ссылка)
38
278
monobogdan
monobogdan
Посты о ремонте и моддинге ретрогаджетов.
TECHNO BROTHER
11 месяцев назад

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One⁠⁠

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

В своей жизни я обожаю как минимум три вещи: это C# (как и .NET в целом), интересное железо и одноплатные компьютеры. В Embedded-системах на Linux обычно принято писать код на C/C++ для решения чувствительных к производительности задач и интерпретируемых Lua/Python для быстрого прототипирования, которые стали популярны в встраиваемых устройствах сравнительно недавно. Однако о нативной разработке под одноплатники на C# практически ничего не слышно и я решил исправить это недоразумение! В сегодняшнем материале: рассмотрим, какие платформы .NET нам доступны на одноплатниках, научимся работать с GPIO и SPI в юзерспейсе, а также напишем практическое приложение, которое реализовывает драйвер дисплея и выводит на экран определенное изображение.

❯ Предисловие


Одноплатники уже давно вошли в повседневную жизнь многих DIY-щиков, сисадминов и людей, которые интересуются мини-компьютерами. Казалось бы, одну и ту же задачу можно решить несколькими методами на самых разных языках: кто-то предпочитает писать нативный код на тех же плюсах, а особо прожженные — на Plain-C и ассемблере, стараясь получить максимальную производительность, а кто-то хочет сразу перейти к реализации своего устройства не заморачиваясь с подробным изучением того, как чип работает «под капотом» и какие шины существуют, ограничиваясь использованием готовых библиотек.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Но я лично очень люблю C# за его максимальную гибкость, позволяющую оптимизировать некоторые обращения к памяти путем получения прямых указателей на данные, умеет в удобные темплейты, а также имеет механизм для маршаллинга (прямой импорт функций из библиотек, возможность создать нативный трамплин на управляемый делегат, возможность быстрого копирования из unmanaged в managed окружение и т. п.). Потому всегда думал: почему бы его не использовать в своих embedded-проектах на базе одноплатников?

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Сейчас .NET можно накатить на большинство современных одноплатников, за исключением самых слабых с 64Мб ОЗУ «бутербродом» на чипе (AllWinner F1C100s, AllWinner V3s, некоторые MStar и т. п.). Доступно два рантайма, которые предлагают разные профили и соответственно, разный функционал.

  • dotnet — официальный рантайм, который реализует профиль .NET Core (ой, простите, так уже не модно, теперь это просто .NET). Предоставляет весь современный базовый функционал дотнета вкупе с современными версиями самого C#, но в нём нет, например, Windows Forms для UI (если вы используете полноценные «иксы» и GTK), и System.Drawing для обработки графики и отрисовки текста. Это эталонная реализация дотнета и его можно без проблем накатить на любой одноплатник, для которого есть достаточно свежий Linux.

  • Mono — альтернативная реализация .NET Framework для Linux, ранее активно использовалась в Unity. В отличии от .NET Core, может работать и на более старых одноплатниках на прошлых версиях дистрибутивов Linux, в том числе и самой первой Raspberry Pi. Считается более медленной, чем dotnet, зато имеет значительно большую функциональность, почти идентичную фреймворку на Windows.


В сегодняшней статье мы будем писать программу на C# для OrangePi One, которая должна инициализировать дисплей из юзерспейса и выводить на него определенные данные. В качестве профиля используем .NET Framework 4 (да, я порой старомоден), а одноплатником выступит OrangePi One в стоковой конфигурации ядра, без правок devicetree, где по умолчанию у нас доступен spidev без аппаратных чипселектов, доступ к GPIO из /sys/ и i2cdev.

❯ Настраиваем окружение


Для начала нам нужен образ системы для нашего одноплатника. Какой — выбирать вам. Для большинства устройств на чипсетах AllWinner доступны образы с ядром 3.x, которые более стабильны, но не используют devicetree и не входят в мейнлайн и 5.x, так называемый мейнлайн, но там всё ещё есть некоторые нюансы. Я выбрал Ubuntu Xenial с ядром 5.3.5.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Теперь самое время накатить рантайм, что мы и делаем командой:

apt-get install mono-all

Обратите внимание, Mono громоздкий и с учетом всех зависимостей может устанавливаться минут 30, если у вас достаточно медленная флэшка. Всё, теперь устройство готово к запуску программ на дотнете, нашу программу можно запустить следующей командой:

mono assembly.exe

Давайте же перейдём к фактической реализации нашей программы и узнаем как работать с периферией устройства!

❯ GPIO


Начинаем с GPIO или «ногодрыга». В Linux есть удобный интерфейс, позволяющий экспортировать пины общего назначения в юзерспейс и рулить ими прямо из sysfs, в том числе и из терминала! Для реализации софтварного SPI или быстрого опроса цифровых пинов такой способ не подойдет — слишком большой оверхед, но для моргания светодиодами, обработки кнопок или… программного ногодрыга чипселектом — вполне подойдет :)

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Как я и говорил выше, GPIO сначала нужно сделать видимым в sysfs — т. е. экспортировать, путём записи номера нужного пина в «файл» /sys/class/gpio/export. Посчитать ID нужного пина можно с помощью простой формулы: (позиция буквы в алфавите — 1) * 32 + номер пина. То есть, для PA10 ID будет 10. При ошибке, системный вызов close выбросит ошибку, а поток в C# — IOException.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

После этого, по пути /sys/class/gpio/gpio10/ появится директория с файлами direction, куда нужно записать направление нашего пина («in» — ввод, «out» — вывод) и value, куда мы будем записывать или читать значение пина. Реализовать управление пином можно так:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Да, всё так просто! Мигалка светодиодом в нашем случае будет выглядеть так:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Переходим к чему посложнее, а именно к SPI из всё того-же юзерспейса!

❯ SPI


Для управления SPI нам потребуется вызов ioctl, который позволяет отправлять устройству различные пакеты с описанием команд. Для этого нам пригодится PInvoke:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Для каждой аппаратной шины SPI создаётся одно устройство spidev. В случае OrangePi One, по умолчанию экспортирована только одна шина (поскольку и SPI-контроллер на гребенке лишь один) — spidev0.0. Для начала открываем наше устройство для записи:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Драйвер spidev работает по принципу транзакций — вы посылаете IOCTL с запросом SPI_IOC_MESSAGE (в оригинале это макрос с возможностью послать сразу несколько транзакций в драйвер) и указателем на структуру spi_ioc_transfer с описанием отправляемых или получаемых данных, а драйвер уже сам решает что и когда отправить, при этом вызов ioctl — блокирующий, то есть управление в поток вернется только когда драйвер завершит работу. Но есть нюанс — драйвер SPI у чипсетов AllWinner не может отправлять более 128-байт (на AllWinner A10/A13 — 64-байт) данных за транзакцию, поэтому большой массив данных придётся разбивать на несколько мелких:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Уже в шоке от обилия указателей в коде на шарпе? :) Надеюсь, комментарии помогут вам разобраться.

Тоже самое и для чтения данных с шины, только вместо txBufPointer — rxBufPointer.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Пример работы прост до безобразия:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Имея GPIO и SPI уже можно переходить к реализации чего-то более конкретного!

❯ Дисплей


В качестве дисплея я буду использовать стандартную дешёвую 2.4" матрицу с разрешением 240x320 и контроллером ST7789 с интерфейсом SPI. Для использования дисплея с питанием 3.3В нужно поставить перемычку на позиции J1, как показано на фото ниже.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Для подключения такого дисплея, достаточно всего лишь 4 (5, если нужен чипселект) сигнальные линии на 40-пиновой гребенке RPi One, плюс один для ШИМ (если нужно регулировать подсветку) и два на питание. Обратите внимание, что лучше сдуть гребенку и паяться к одноплатнику напрямую — у меня из-за китайских дюпонтов постоянно помехи на дисплее и мусор на шине.

Схема подключения:

VCC -> 3.3V

GND -> Масса

CS -> PA9

RESET - PA10

D/C - PA20

MOSI - PC0

SCK - PC2

LED -> 3.3V

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Начинаем с подготовки необходимых GPIO. Для управления дисплеем всегда нужен аппаратный RESET и D/C (бит команда/данные). Чипселект необязателен (его можно кинуть на массу), если это будет единственное устройство на шине, однако в случае ST7789 почему-то в таком случае нужно использовать SPI MODE 3.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Переходим к реализации коммуникации с дисплеем. Здесь всё просто — ставим CS в низкий уровень, начиная транзакцию, устанавливаем D/C в низкий уровень в случае команды, либо высокий в случае данных и отправляем байт контроллеру, после чего устанавливаем чипселект обратно в высокий уровень.

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Теперь дисплей нужно инициализировать. Здесь нужно сконфигурировать регистры контроллера дисплея для установки режима адресации, цветности и порядка байт в пикселях (BGR или RGB).

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Если всё сделано правильно — то после этого вы должны увидеть «мусор» на дисплее, поскольку состояние ОЗУ не определено после подачи питания на контроллер (но при сбросе содержимое DRAM останется на месте).

Теперь нам надо установить границы нашего изображения, в пределах которых работает автоинкермент контроллера дисплея. Нужно это для того, чтобы мы могли, например, пнуть уже готовую картинку в DMA-контроллер и уйти заниматься своими делами, а когда картинка отправилась — установить новые границы и нарисовать что-то ещё. В моём случае, всё рисование производится во второй буфер, который затем рисуется на дисплей — поэтому мне нужны размеры всего дисплея сразу:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

После этого, достаточно лишь непрерывно слать изображение на контроллер дисплея и всё будет работать!

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Поскольку ни один формат изображений не соответствовал моим требованиям (RGB565, без выравнивания), я быстренько накостылил конвертер в самопальный:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

Загрузчик такого формата выглядит так:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

А фактическое использование — так:

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One Своими руками, Гаджеты, Orange Pi, Raspberry Pi, Программирование, Net, Код, Embedded, Ништяки, Туториал, Умный дом, Дисплей, Длиннопост

❯ Заключение

Как мы видим, писать программы для одноплатников на C# отнюдь не сложно и можно пользоваться всеми приятными фишками языка. Часть кода из этой статьи выдрана из моего сайд-проекта, о котором хочу рассказать вам в ближайшее время — поэтому местами код совсем не причесан, но надеюсь — всё было понятно :)

Также у меня есть канал в Telegram, куда я выкладываю посты с тематикой DIY, ремонта и моддинга, а также программирования под гаджеты прошлых лет и вовремя ссылки на новые статьи.

Показать полностью 22
[моё] Своими руками Гаджеты Orange Pi Raspberry Pi Программирование Net Код Embedded Ништяки Туториал Умный дом Дисплей Длиннопост
29
31
antexdom
antexdom
11 месяцев назад
Arduino & Pi
Серия Контроллер интернет вещей AntexGate

HTTP <AntexGate> Modbus конвертор Linux⁠⁠

HTTP <AntexGate> Modbus конвертор Linux

HTTP <AntexGate> Modbus конвертор Linux Linux, Информационная безопасность, Программа, Raspberry pi, Nodejs, Http, Rest, Длиннопост

В мире промышленной автоматизации интерфейсы HMI устарели, выглядят пугающе и бытует мнение, что чем дороже программно-аппаратный комплекс, тем лучше он будет работать. Молодёжь, которая умеет рисовать красивые "WEB-морды" в этот бизнес не суется, всех пугает так называемые Machine to machine протоколы и интерфейсы, индустрия обросла опытными мужиками, которые понимают как выглядит два байта данных в одном регистре Modbus.

Итак статья для тех, кто столкнулся с задачей преобразовать Modbus RTU TCP в протокол HTTP, который уже можно вытянуть на любую красочную "web-морду", либо другой сервис.

Представим, что вы пришли на производство, в котором уже стоят промышленные приборы - датчики температуры, станки, принимающие\передающие данные по протоколу Modbus RTU TCP, а Вам нужно закинуть некоторые данные в систему мониторинга. Действительно подавляющее большинство систем мониторинга не смогут опросить устройства по Modbus без специального программно-аппаратного шлюза.

Предлагаем бесплатное программное обеспечение Node-Red и контроллер AntexGate и получаем мощный программно-аппаратный комплекс для преобразования различных протоколов. В предыдущей статье мы уже рассмотрели конвертацию ModbusTCP2ModbusRTU.

Первое, что необходимо – это установить программный продукт Node-Red, это делается одним скриптом:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/...)

Сделать Node-Red после установки сервисом:

sudo systemctl enable nodered.service

Перезагружаем "железяку":

sudo reboot

Теперь попадаем в среду нашего программного конвертора Node-Red через web браузер по ссылке ip шлюза:1880

В настройках справа устанавливаем плагин node-red-contrib-modbus.

HTTP <AntexGate> Modbus конвертор Linux Linux, Информационная безопасность, Программа, Raspberry pi, Nodejs, Http, Rest, Длиннопост

Установка node-red-contrib-modbus

HTTP <AntexGate> Modbus конвертор Linux Linux, Информационная безопасность, Программа, Raspberry pi, Nodejs, Http, Rest, Длиннопост

Установка node-red-contrib-modbus

После того, как плагин установлен приступаем к настройке, делается это так же просто из web интерфейса. Нажимаем кнопку меню, импорт, примеры, Modbus-HTTP, импорт.

HTTP <AntexGate> Modbus конвертор Linux Linux, Информационная безопасность, Программа, Raspberry pi, Nodejs, Http, Rest, Длиннопост

Импортируем пример Modbus-HTTP

HTTP <AntexGate> Modbus конвертор Linux Linux, Информационная безопасность, Программа, Raspberry pi, Nodejs, Http, Rest, Длиннопост

Импортируем пример Modbus-HTTP

Итак, настройка почти закончилась, нам остается настроить наши модули опроса и записи на нужные параметры Modbus соединения.

HTTP <AntexGate> Modbus конвертор Linux Linux, Информационная безопасность, Программа, Raspberry pi, Nodejs, Http, Rest, Длиннопост

Настройка Modbus RTU

HTTP <AntexGate> Modbus конвертор Linux Linux, Информационная безопасность, Программа, Raspberry pi, Nodejs, Http, Rest, Длиннопост

Настройка Modbus RTU узел чтения 4 регистров, начина с 512

Итак мы настраиваем все 4 узла. В моем случае это опрос Modbus RTU устройства с параметрами аппаратного порта /dev/ttyRS485-1 115200 - 8 - 1 - N. Еще 2 узла отвечают за автоматическое чтение из предустановленных регистров, поэтому я сразу настроил чтение массива 4х регистров начиная с 512, функцией (3) Read Holding Register. Кстати не забудьте собственно подключить конечное устройство к RS485 шине.

Теперь в блоке комментариев вы можете встретить rest API для взаимодействия, ниже с ними познакомимся.

## Read

### Flex Read

http://ip:1880/modbus/flex/read?value=0&unitid=1&fc=3&address=0&quantity=1 http://ip:1880/modbus/flex/read?value=0&unitid=1&fc=4&address=0&quantity=1 http://ip:1880/modbus/flex/read?value=0&unitid=1&fc=3&address=0&quantity=5 http://ip:1880/modbus/flex/read?value=0&unitid=1&fc=4&address=0&quantity=5 ### Read http://ip:1880/modbus/read ## Write ### Test HTTP without Modbus http://ip:1880/modbus/flex/write/test?value=[1,2,3,4,5]&unitid=1&fc=16&address=0&quantity=5 ### Flex Write

http://ip:1880/modbus/flex/write?value=10&unitid=1&fc=6&address=0&quantity=1 http://ip:1880/modbus/flex/write?value=[1,2,3,4,5]&unitid=1&fc=16&address=0&quantity=5 ###

Write

http://ip:1880/modbus/write

Мне были интересны пару запросов, которые прекрасно сработали.

Сначала тестируем функцию записи - пишем значение 123 в Modbus RTU устройство с адресом 16 функцией 6 в регистр 512 ну и длина записи 1 значение. Можно писать и сразу массивы функцией 16 например [1,2,3,4,5] тогда и длина записи соответственно 5.

HTTP <AntexGate> Modbus конвертор Linux Linux, Информационная безопасность, Программа, Raspberry pi, Nodejs, Http, Rest, Длиннопост

HTTP запрос записи

Теперь проверим, записалось ли наше значение в нужное адресное пространство и прочитаем состояние 5-ти регистров начиная с 512 функцией 3.

HTTP <AntexGate> Modbus конвертор Linux Linux, Информационная безопасность, Программа, Raspberry pi, Nodejs, Http, Rest, Длиннопост

HTTP запрос чтения

Как видим значение записалось. Теперь мы можем внедрить наши данные в любое web приложение.

ВНИМАНИЕ: в таким виде без авторизации ни в коем случае не пускаем в интернет и обязательно создаем как минимум связку логин + пароль.

Контроллер AntexGate в связке с Node-Red или другим софтом является отличным универсальным решением для обработки, пересылки и хранения данных. Прошу прощения за рекламу, однако выше представленный проект Вы можете реализовать на любом "железе" и любой ОС.

Присоединяйтесь к нашему сообществу в Telegram обсудим свободно программируемые продукты.

"Железо" можно получить на тесты, пишите на почту: info@antexcloud.ru (на три месяца для ЮР лиц и ИП)

Показать полностью 9
[моё] Linux Информационная безопасность Программа Raspberry pi Nodejs Http Rest Длиннопост
22
151
A.Kristina
A.Kristina
11 месяцев назад
Интересный AliExpress
Серия DIY Электроника

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi⁠⁠

1) Доплеровский датчик движения за 33 рубля.

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Доплеровский датчик движения RCWL-0516 — способен определять движение объектов (препятствий), которые полностью или частично отражают радиоволны (люди, животные, металлы и т.д.), даже если они находятся за деревом (дверью), стеной (гипс, бетон), пластиками, стеклами и т.д. Стоит такой 33 рубля. Ссылка на модуль

2) Wi-Fi модуль с антенной за 168 рублей

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Радиомодуль WiFi Serial ESP8266 необходим для того, чтобы управлять устройством дистанционно или чтобы снимать показания с сенсоров через интернет. Также он позволяет подключить гаджеты к социальным сетям или получать данные через API от веб-сервисов. Стоит набор на данный момент 168 руб. Ссылка

3) Переходник USB Type-C/DIP за 27 руб.

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Переходая плата для проектов Arduino (Ардуино) для соединения электронных устройств. Плата содержит разъем USB type C и выводы на контакты шагом 2.54 мм. Стоит такой модуль на данный момент 27 руб. Ссылка

4) Разъём для наушников за 26 руб.

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль для наушников 3,5 мм с контактами. Стоит 26 руб. Ссылка

5) Модуль защиты аккумуляторов за 26 руб.

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

BMS-платы — платы, предназначенные для защиты аккумуляторов. Такие платы могут защищать аккумулятор от переразряда, больших токов потребления, коротких замыканий и тд. Стоит модуль на данный момент 26 руб. Ссылка

6) Понижающий стабилизатор

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Плата AMS1117- 3.3 позволяет понизить напряжение  4,6-12 вольт  в стабилизированное 3.3 вольта.Стоит такой 35 руб. Ссылка

7) Отсек для батареек

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Батарейный блок на 4 AA. Стоит около 70 руб.. Ссылка

8) USB светильник

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль USB светильника с 3 светодиодами. Стоит 1 штука 37 руб. Ссылка

9) Датчик напряжения

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль Voltage Sensor – специальный модуль, созданный для удобного измерения напряжения без пайки. На модуле реализован резистивный делитель напряжения с коэффициентом 1:5, то есть на входе модуля напряжение может изменяться от 0 до 25 В, а на выходе оно будет пропорционально распределено по отрезку от 0 до 5 В. Стоит такой 38 руб. Ссылка

10) Повышающий преобразователь

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль повышающего DC-DC преобразователя из 3.7В в 5В/8В/9В/12В. Стоит такой 39 руб. Ссылка

11) ИК-модуль

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль ИК приёмника KY-022 на базе VS1838B представляет собой высокочувствительный приёмник инфракрасных сигналов. Совместим с широким спектром устройств, позволяя управлять различной техникой (робототехникой) с помощью ИК-пульта. Стоит 39 руб. ссылка

12) Пищалка

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Пьезоизлучатель – это компактный модуль на плате, который преобразует электрические колебания в звук. Его отличие от обычного электромагнитного динамика состоит в том, что он может подключаться к микроконтроллеру Ардуино напрямую без использования электронного усилителя. В сравнении с активным пьезоизлучателем данный тип требует дополнительной установки генератора колебаний с частотой, находящейся внутри диапазона 2 – 5 кГц.

Питание на пассивный пьезоизлучатель можно подавать в диапазоне от 3.3 до 5 В. Если вы часто будете использовать пьезоизлучатель на максимальном пределе питания, это приведёт к искажению звука и быстрому износу модуля. Стоит такой 39 руб. Ссылка

13) Датчик уровня воды (жидкости)

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Датчик предназначен для определения уровня воды в различных емкостях, с целью предупреждения перенаполнения емкости водой через критическую отметку. Имеет погружаемый тип установки. Cнятие показателей уровня воды производится при помощи аналогового анализа сопротивления.  Стоит 42 рубля. ссылка

14) Датчик вибрации

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль изготовлен на базе датчика вибрации SW-420, который представляет из себя два контакта, замыкающиеся металлическим шариком при встряске. Операционный усилитель LM393, установленный на плате и включенный по схеме компаратора, служит для устранения дребезга и реализации регулировки чувствительности датчика.Стоит такой 44 рубля. Ссылка

15) Индикатор ёмкости акб

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль с индикатором уровня зарядки АКБ 12.6V. Стоит 49 руб. Ссылка

16) Контроллер

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Эта плата построена на основе контроллера STM32F103C8T6, работающего на ядре ARM Cortex-M3, еще часто эту плату называют Maple Mini или Blue Pill. Мощное ядро способно работать на частоте до 72 МГц с производительностью до 1,25 DMips, то есть этот микроконтроллер мощнее типовой Arduino более чем в 5,5 раз. Всего у данного микроконтроллера 64 Кб памяти программ и 20 Кб ОЗУ - теперь можно не экономить на строках. Стоит такой 94 рубля. Ссылка

17) Модуль RTC часов

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

RTC DS3231 часы специально спроектированы для подключения к контроллеру Raspberry Pi, но они так же легко подключаются и работают с Ардуино. В RTC модуле можно настроить два будильника. Питание модуля DS3231, может находиться в пределах 2,5 - 5,5 В. Напряжение внешнего источника питания постоянно отслеживается микросхемой DS3231 и при падении ниже 2,5 В, часы переходят на питание от встроенной батареи. Стоит такой модуль около 160 руб. Ссылка

18) Вольтметр

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Модуль вольтметра для различной робототехники и других электронных самоделок с синими цифрами. Стоит 54 руб. Ссылка

19) Контроллер

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Контроллер для сборки питания на основе элементов 18650. 5V 2.4A. Стоит такой около 107 руб. Ссылка

20) RFID-модуль

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Радиочастотная идентификация (RFID) — это технология бесконтактной идентификации объектов при помощи радиочастотного канала связи. Идентификация объектов производится по уникальному идентификатору, который имеет каждая электронная метка. Стоит такой набор 89 руб. Ссылка

21) Bluetooth модуль

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

JDY-62 -Bluetooth 4.0 стерео аудио модуль с рабочим напряжением 5В. Стоит 75 руб. Ссылка

22) Ультразвуковой дальномер

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Ультразвуковой датчик расстояния (дальномер) HC-SR04 - может измерять расстояние при помощи ультразвука. TX сенсор излучает ультразвуковой импульс, который отражается от препятствия и принимается RX сенсором. Расстояние вычисляется по времени прохождения ультразвука от TX передатчика -> препятствие -> к RX приемнику. Скорость звука при температуре 20° C составляет 1235 км/ч или 343 м/с. При программировании датчика расстояния? нужно полученный результат поделить на 2. Так как ультразвук сначала движется до препятствия, а потом отразившись от него движется назад. То есть он преодолевает одно и тоже расстояние 2 раза. Еще стоит учитывать влажность воздуха и его температуру, скорость ультразвука изменяется в зависимости от этих параметров. Стоит такой 62 рубля. Ссылка

23) Модуль GSM, GPRS

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Миниатюрный модуль GSM/GPRS сотовой связи на основе компонента SIM800L. Стандартный интерфейс управления компонента SIM800L предоставляет доступ к сервисам сетей GSM/GPRS 850/900/1800/1900МГц для отправки звонков, СМС сообщений и обмена цифровыми данными GPRS. Поставляется с встроенной антенной, также можно подключить дополнительные антенны для улучшения качества сигнала.

Управлять модулем можно при помощи персонального компьютера через преобразователь интерфейса USB-UART или непосредственно через UART модулем микроконтроллера самостоятельной разработки или Arduino, Raspberry Pi и аналогичными. Стоит такой 177 руб. Ссылка

24) Модуль камеры

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

Камера для установки на различных роботов, машинок и тд. Стоит 102 рубля. Ссылка

25) Микрофон с усилителем MAX9814

Топ 25 дешёвых модулей и датчиков для проектов на Arduino и Raspberry Pi Электроника, AliExpress, Товары, Китайские товары, Arduino, Робототехника, Программирование, Сборка, Своими руками, Raspberry pi, Самоделки, Модуль, Датчик, Длиннопост

МАХ9814 - это устройство которое состоит из электретного микрофона и малошумящего микрофонного усилителя с автоматической регулировкой усиления (АРУ). Коэффициент усиления arduino микрофона можно настроить при помощи входа GAIN. Если оставить вход не подключенным, то активируется максимальное усиление 60 дБ. При подключении к входу сигнала GND, получим усиление 50 дБ. И минимальное усиление в 40 дБ можно получить подав на вход Gain напряжение питания. Также можно отрегулировать соотношение Attack/Release - время срабатывания/время восстановления АРУ. Подключив пин AR к VDD получим соотношение 1:2000ms. Оставив вывод открытым, получим 1:4000ms. Подключив вход на GND, получим минимальное время спада 1:500ms. Время запуска АРУ не изменяется и всегда в пределах 30 мс. Стоит 130 руб. ссылка на микрофон.

Показать полностью 24
Электроника AliExpress Товары Китайские товары Arduino Робототехника Программирование Сборка Своими руками Raspberry pi Самоделки Модуль Датчик Длиннопост
2
40
antexdom
antexdom
1 год назад
Arduino & Pi
Серия Контроллер интернет вещей AntexGate

Open source Modbus TCP — RTU конвертор⁠⁠

Open source Modbus TCP — RTU конвертор Linux, Электроника, Raspberry pi, Интернет вещей, Длиннопост

Добрый день коллеги, поговорим о прозрачном конверторе Modbus TCP в Modbus RTU.

Казалось бы, что выбор ограничен несколькими проприетарными продуктами которые не всегда удовлетворяют нашим потребностям.

Мы предложим свободно программируемый контроллер AntexGate с помощью которого можно получить конвертер Modbus tcp – Modbus rtu – can – profitnet – bacnet – mqtt – http – opc UA – другой протокол.

Итак, рассмотрим первую связку Modbus TCP – Modbus RTU, нам понадобится сам контроллер AntexGate либо другой компьютер с linux/windows на борту и периферией RS485.

Первое, что необходимо – это установить программный продукт Node-Red, это делается одним скриптом в командной строке:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/...)

Далее после установки делаем Node-red сервисом:

sudo systemctl enable nodered.service

Перезагружаем железяку:

sudo reboot

Теперь попадаем в среду нашего программного конвертора Node-red через web браузер по ссылке ip шлюза:1880

Далее настроим скрипт, который конвертирует посылку Modbus TCP в RTU, посылает в RS485/232 порт, ждет ответ и тут же преобразует ответ обратно в Modbus TCP.

Open source Modbus TCP — RTU конвертор Linux, Электроника, Raspberry pi, Интернет вещей, Длиннопост

Заходим в "меню" > "импорт"

Проект конвертора Modbus TCP <> RTU (прошу прощения в пикабу нет спойлера)

[ { "id": "22ff3060.54da6", "type": "function", "z": "de082ac2.4b8bf8", "name": "Convert TCP to RTU", "func": "var MBAPHeader = [5];\nvar crc = 0xFFFF;\n\nMBAPHeader[0]= msg.payload[0];\nMBAPHeader[1]= msg.payload[1];\nMBAPHeader[2]= msg.payload[2];\nMBAPHeader[3]= msg.payload[3];\nMBAPHeader[4]= msg.payload[4];\nflow.set('MBAP_HEADER', MBAPHeader);\n\nvar ReqLen = msg.payload[5];\nvar MBLen = (msg.payload.length)-ReqLen;\nvar MBReq = [MBLen];\n\nfor (let x=0; x < MBLen;x++){\n MBReq[x] = msg.payload[x+ReqLen];\n}\n\nfor (var req = 0; req < ReqLen; req++) {\n crc ^= MBReq[req]; // XOR byte into least sig. byte of crc\n \n for (var i = 8; i !== 0; i--) { // Loop over each bit\n if ((crc & 0x0001) !== 0) { // If the LSB is set\n crc >>= 1; // Shift right and XOR 0xA001\n crc ^= 0xA001;\n } else { // Else LSB is not set\n crc >>= 1; // Just shift right\n }\n }\n}\n\nvar MyCRC = crc.toString(16);\nMBReq[MBLen+1] = parseInt(MyCRC.substring(0,2),16);\nMBReq[MBLen] = parseInt(MyCRC.substring(2,4),16);\n\nvar buf = new Buffer(MBReq);\nmsg.payload = buf;\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 300, "y": 100, "wires": [ [ "7e62bbbc.bd8ea4" ] ], "outputLabels": [ "XO" ] }, { "id": "7e62bbbc.bd8ea4", "type": "serial request", "z": "de082ac2.4b8bf8", "name": "", "serial": "27dabad398437b7e", "x": 490, "y": 100, "wires": [ [ "db79ee80.1d792", "9e53f02d0a4e04fb" ] ] }, { "id": "db79ee80.1d792", "type": "function", "z": "de082ac2.4b8bf8", "name": "Convert RTU to TCP", "func": "if (msg.payload.length > 0) {\n var resLen = msg.payload.length - 2;\n var respond = [];\n respond[0] = flow.get('MBAP_HEADER')[0];\n respond[1] = flow.get('MBAP_HEADER')[1];\n respond[2] = flow.get('MBAP_HEADER')[2];\n respond[3] = flow.get('MBAP_HEADER')[3];\n respond[4] = flow.get('MBAP_HEADER')[4];\n respond[5] = resLen;\n\n for (let req = 6; req < resLen+6; req++) {\n respond[req]= msg.payload[req-6];\n }\n msg.payload = new Buffer(respond);\n return msg;\n} else {\n return null;\n}\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 640, "y": 60, "wires": [ [ "2622a1e893f52bed", "140a62f5366490d9" ] ] }, { "id": "55423964225fa869", "type": "comment", "z": "de082ac2.4b8bf8", "name": "Convert Modbus TCP to Modbus RTU", "info": "", "x": 170, "y": 40, "wires": [] }, { "id": "cbd6e86861af643d", "type": "tcp in", "z": "de082ac2.4b8bf8", "name": "Modbus TCP - IN", "server": "server", "host": "", "port": "5002", "datamode": "stream", "datatype": "buffer", "newline": "", "topic": "", "trim": false, "base64": false, "tls": "", "x": 100, "y": 100, "wires": [ [ "22ff3060.54da6", "48471bdeae3a1d30" ] ] }, { "id": "2622a1e893f52bed", "type": "tcp out", "z": "de082ac2.4b8bf8", "name": "Modbus TCP - OUT", "host": "127.0.0.1", "port": "502", "beserver": "reply", "base64": false, "end": false, "x": 850, "y": 100, "wires": [] }, { "id": "9e53f02d0a4e04fb", "type": "debug", "z": "de082ac2.4b8bf8", "name": "debug 17", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 640, "y": 220, "wires": [] }, { "id": "140a62f5366490d9", "type": "debug", "z": "de082ac2.4b8bf8", "name": "debug 18", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 820, "y": 200, "wires": [] }, { "id": "48471bdeae3a1d30", "type": "debug", "z": "de082ac2.4b8bf8", "name": "debug 19", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 260, "y": 200, "wires": [] }, { "id": "27dabad398437b7e", "type": "serial-port", "serialport": "/dev/ttyUSB0", "serialbaud": "115200", "databits": "8", "parity": "none", "stopbits": "1", "waitfor": "", "dtr": "none", "rts": "none", "cts": "none", "dsr": "none", "newline": "5", "bin": "bin", "out": "time", "addchar": "", "responsetimeout": "1000" } ]

Open source Modbus TCP — RTU конвертор Linux, Электроника, Raspberry pi, Интернет вещей, Длиннопост

Копируем скрипт, нажимаем "Импорт"

Open source Modbus TCP — RTU конвертор Linux, Электроника, Raspberry pi, Интернет вещей, Длиннопост

Настраиваем порт для просушки в узле Modbus TCP IN, рекомендуем не использовать стандартный 502, а использовать нестандартный порт более 1024, для них не нужны дополнительные разрешения в Linux.

Open source Modbus TCP — RTU конвертор Linux, Электроника, Raspberry pi, Интернет вещей, Длиннопост

Настраиваем последовательный порт RS485/232 на скорость конечного железа, поддерживающего протокол Modbus RTU.

Open source Modbus TCP — RTU конвертор Linux, Электроника, Raspberry pi, Интернет вещей, Длиннопост

Жмем "Развернуть" и наш конвертер готов!

Open source Modbus TCP — RTU конвертор Linux, Электроника, Raspberry pi, Интернет вещей, Длиннопост

Настраиваем Ваш инструмент верхнего уровня, например Modbus TCP OPC сервер стандартно: ip_адре_ шлюза:5002:id_RTU_устройства.

Все работает стабильно, чтение и запись! Посылки как видим между запросом и ответом 100-200мс, что равно пингу. Удаленный шлюз AntexGate работает на встроенном LTE модеме.

Бонусом, для тех, у кого софт верхнего уровня поддерживает функцию Modbus RTU поверх TCP включаем это правило.

Open source Modbus TCP — RTU конвертор Linux, Электроника, Raspberry pi, Интернет вещей, Длиннопост

В Node-Red упрощаем поток и исключаем функции RTU TCP обработки, и наш проект в Node-Red становится без единой строчки кода.

Open source Modbus TCP — RTU конвертор Linux, Электроника, Raspberry pi, Интернет вещей, Длиннопост

Контроллер AntexGate в связке с Node-red является отличным универсальным решением для обработки, пересылки и хранения данных. Прошу прощения за рекламу, однако выше представленный проект Вы можете реализовать на любом железе и любой ОС.

Присоединяйтесь к нашему сообществу в Telegram

Железо можно получить на тесты, пишите на почту: info@antexcloud.ru (на три месяца для ЮР лиц и ИП)

Показать полностью 8
[моё] Linux Электроника Raspberry pi Интернет вещей Длиннопост
19
43
aid2022
aid2022
1 год назад
Arduino & Pi

Raspberry pi 5, часть 1. Особенности, первый запуск, удалённое управление через rpi-connect⁠⁠

источник

Raspberry pi 5, часть 1

Raspberry pi 5, часть 1. Особенности, первый запуск, удалённое управление через rpi-connect Китайские товары, AliExpress, Linux, Raspberry pi, Raspbian, Длиннопост

rpi5

Протестируем работу Raspberry pi 5, посмотрим особенности, а также проверим возможность удалённого управления интерфейсом. Тема нам интересна, ранее у нас были эксперименты с ARM, в начале канала описаны первые шаги.

Raspberry pi 5, часть 1. Особенности, первый запуск, удалённое управление через rpi-connect Китайские товары, AliExpress, Linux, Raspberry pi, Raspbian, Длиннопост

rpi-connect

Сразу отметим, что для полноценной работы rpi5 требуется мощный блок питания на 5А. В нашем случае на блоке питания на 3А rpi5 работала, но на рабочем столе всё время "сигналила". В реальности потребление было меньше, естественно, без подключения других компонент, только вентилятор:

Raspberry pi 5, часть 1. Особенности, первый запуск, удалённое управление через rpi-connect Китайские товары, AliExpress, Linux, Raspberry pi, Raspbian, Длиннопост

psu

Raspberry pi 5, часть 1. Особенности, первый запуск, удалённое управление через rpi-connect Китайские товары, AliExpress, Linux, Raspberry pi, Raspbian, Длиннопост

warning

(!) Для информации: на Али китайские коллеги часто продают абсолютно не подходящие по параметрам блоки питания, перед покупкой читайте комментарии.

По параметрам rpi5 превосходит rpi4 раза в 2: новый процессор, память, видео, поддержка быстрых дисков etc. Также есть приятные мелочи - кнопка включения; она работает так - при подключении питания rpi5 включается сама, далее выключить/включить можно с кнопки.

Raspberry pi 5, часть 1. Особенности, первый запуск, удалённое управление через rpi-connect Китайские товары, AliExpress, Linux, Raspberry pi, Raspbian, Длиннопост

working

Нагревается rpi5 прилично, поэтому ставить радиатор+вентилятор обязательно, об этом мы говорили ранее:

Raspberry pi 5, часть 1. Особенности, первый запуск, удалённое управление через rpi-connect Китайские товары, AliExpress, Linux, Raspberry pi, Raspbian, Длиннопост

cooling

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

Для проверки rpi-connect нужна десктопная версия системы:

Raspberry pi 5, часть 1. Особенности, первый запуск, удалённое управление через rpi-connect Китайские товары, AliExpress, Linux, Raspberry pi, Raspbian, Длиннопост

Raspberry PI Imager

После установки плата автоматически перезагружается несколько раз. Честно сказать, десктопной версией мы пользовались всего несколько раз. Тут ничего особенного нет. Советуем при запуске Raspberry PI Imager настроить:

  • логин/пароль пользователя

  • подключение к своей точке доступа, если нет кабельного подключения

  • включить ssh-сервер

Для проверки rpi-connect нужно обновить пакеты, ОС и установить пакет с последующей перезагрузкой:

sudo apt install rpi-connect

Все действия по настройке rpi-connect сделать только через консоль не получится.

Регистрация на сайте нужна (им для учёта нас) для возможности удалённого входа по логину/паролю из любого браузера. Ресурс для входа будет вида:

https://connect.raspberrypi.com/devices/qwertyui-1234-5678-zxcv-1234567890qw

Raspberry pi 5, часть 1. Особенности, первый запуск, удалённое управление через rpi-connect Китайские товары, AliExpress, Linux, Raspberry pi, Raspbian, Длиннопост

rpi-connect

Производитель ПО утверждает, что соединение производится peer-to-peer. Мы при работе из браузера наблюдали торможение, "шлейф" при ресайзе окон, иногда при наборе текста.

Наши выводы:

  • rpi5 - достаточно мощная плата, позже мы еще ещё постестируем её возможности

  • охлаждение и блоки питания - важные составляющие, на этом экономить нельзя

  • функция rpi-connect (beta) интересна, но пока притормаживает. Если нужно просто удалённо управлять платой с графической оболочкой - используйте. Нам пока хватает ssh

Показать полностью 8
[моё] Китайские товары AliExpress Linux Raspberry pi Raspbian Длиннопост
14
31
jidckii
1 год назад
Лига слаботочников

[DIY] Почти идиальный видеорегистратор на дачу из Raspberry Pi 4 и платы расширения⁠⁠

[DIY] Почти идиальный видеорегистратор на дачу из Raspberry Pi 4 и платы расширения Опрос, Видеонаблюдение, IP-камера, Дача, Raspberry pi, AliExpress, Видео, Без звука, Длиннопост

geekworm X832 V1.2

Вступление

Наверняка у многих есть дача на которой у вас есть какие, то ценности, сарай с бензопилой или вроде того. А ещё там обязательно есть маргинальные соседи или незваные проходимцы которые так и видят как бы стырить с вашего участвка поддон с кирпичами. Предотвратить кражу не получится, но вот узнать кто это был, видеонаблюдение может помочь. Так однажды мой бывший коллега поставил камеры и у узнал, что доски для строительства ворует его сосед, а запись с камер и заявление в полицию стало хорошим аргументом, для возврата всего украденного за последниый год. Сосед был краснее всех наших помидоров из теплицы )) Установка камер окупилась буквально за 1 неделю наблюдений.

Но выбор и установка камер не такой большой вопрос, берёте почти любые не самые дешёвые с алиэкспресс, и с вероятностью 99% они будут работать отлично. А если вы гик, то можете узать какие лучше купить камеры у ребят из OpenIPC, тут их ТГ. А вот куда писать архив с камер и как его смотреть в условиях если интернет на даче только через 4G модем?

Для начала давайте я определю свои требования к видеорегистратору:

  • можно подключить несколько камер

  • всё должно работать через стандартный браузер, желательно должно быть мобильное приложение

  • должен быть удобный просмотр архива и его выгрузка

  • должна быть детекция движения, что бы не отсматривать дни видео

  • всё должно работать стабильно

Выбор платформы

Почти все железные видеорегистраторы с алиэкспресс до сих пор работают отвратительно и пользоваться этом сложно, хотя тенденция на улучшение есть, но всё же. По этому я сразу решил делать сам на каком нибудь одноплатнике или станом ноуте. Одноплтник лучше, так как электричества он всё таки жрёт меньше да новый доноплатик явно лучше старого ноута, который и сломаться может. Выбор пал на geekworm X832 V1.2 правда пока я писал эту статью конкретно эту модель сняли с продажи, но появился аналог на 2 диска Geekworm NASPi Gemini 3,5 Dual , да и в целом на сайте и в магазине aliexpress у них много решений, есть и на 2.5 диски и на m.2 ssd.

1/10

Компоненты

Диск под у меня WD Purple на 8 терабайт, но для видорегистратора подойдёт любой из серии WD Purple или Seagate SkyHawk.

Сразу замечу, что OS надо устанавливать на этот же диск, так как OS на флешке в Raspberry Pi мрут как мухи. Процесс установки я описывать не буду, инструкций по этому поводу в интернете масса.

Выбор ПО для видеонаблюдения

На рынке много решения но я остановился на Yucca, одной из главных причин наличие функции туннеля. Если коротко это именно то, что нужно для доступа к видеорегистратору на даче за 4G модемом без белго IP. При этом всё сделано так просто, что даже думать не надо. Просто нажимаешь кнопку, получаешь ссылку, копируешь её в прилдожение, и всё, можно забыть.

[DIY] Почти идиальный видеорегистратор на дачу из Raspberry Pi 4 и платы расширения Опрос, Видеонаблюдение, IP-камера, Дача, Raspberry pi, AliExpress, Видео, Без звука, Длиннопост

Картинка с сайта документации docs.yucca.app

Правда туннель это платная функция и стоит 300р. в месяц, есть и бесплатная версия, и если у вас есть белый IP, то её будет достаточно, но мне нужен был доступ за NAT через 4G модем, по этому я купил подписку Yucca Plus. Можно заморачиваться с арендой VPS построением VPN или SSH туннелей, вот только по цене это выйдет столько же или дороже, по этому купить эту фичу мне показалось выгоднее.

[DIY] Почти идиальный видеорегистратор на дачу из Raspberry Pi 4 и платы расширения Опрос, Видеонаблюдение, IP-камера, Дача, Raspberry pi, AliExpress, Видео, Без звука, Длиннопост

По сути Yucca закрывает все потербности, которые озвучены выше, а из бонусов вот эта функция с туннелем. Есть приятный интерфейс, есть мобильное приложение, всё стабильно работает.

Заключение

Я не стал вставлять скриншоты своей инталяции на даче, так как это немного приватная история.

Сколько всего потратил:

  • Raspberry Pi 4B (2GB) - 5 500 ₽

  • Плата Geekworm X832 с корпусом ~ 8 000 ₽

  • Диск WD Purple8tb ~ 20 000 ₽

Итого около ~ 35000 рублей, это без камер. Но диск конечно можно брать не такой большой, просто я планирую ещё каталог с фильмами и сериалами туда закинуть и смотреть летом всё это, правда придётся менять Raspberry Pi 4B(2GB) на версию с 8GB памяти, чтобы запустить там Kodi.

Как мне кажется в итоге такое решение получается очень гибким и достаточно бюджетным, по этому DYI решения всегда будут лучше готовой коробки вроде Synology, но это ИМХО.

Вы устанавливаете камеры на даче?
Всего голосов:
Показать полностью 13 3 1
[моё] Опрос Видеонаблюдение IP-камера Дача Raspberry pi AliExpress Видео Без звука Длиннопост
98
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии