directman

 
<<< Back

Конвертируем rs-485 в TCP-IP

Коротко о том, как подключить rs-485 в MajorDoMo.

Общие сведения
Для считывания показаний счетчиков электричества, управляения устройствами, поддерживающими протокол modbus, для подключения к MajorDoMo необходимо преобразовать RS-485 в последовательный порт, или сетевой стэк TCP-IP, эмулирующий данный протокол.

Для локального подключения можно использовать конвертер USB-RS485 https://connect.smartliving.ru/profile/1502/compon...

Также такой конвертер можно пробросить по сети с помощью роутера с USB портом и приложения ser2net.

Настройка конвертера USB-RS485 на роутере Asus RT-N66u
На роутере установлена прошивка asuswrt-merilin и пакет entware.
Установка entware на asuswrt-merilin выполяется комлектным скриптом https://github.com/RMerl/asuswrt-merlin/wiki/Entwa...
entware-setup.sh

Полагаю, подойдет любой роутер с портом USB, на который можно установить optware.

Нам требуется установить coreutils, ser2net:

opkg install coreutils
opkg install ser2net
opkg install coreutils-stty

По умолчанию конвертер на роутере определялся некорректно, и вместо полезной информации в появившийся com порт прилетал шум. Установка модуля ядра решила эту проблему

insmod /jffs/scripts/ch341.ko

Ссылка на архив драйвера https://yadi.sk/d/wwdJCkmA3PbRsc
Ссылка на модуль ядра для роутера https://yadi.sk/d/Hv4FDzD33PbRxu

Для работы с будущим сетевым портом несколькими приложениями одновременно, можно запустить ser2net несколько раз.

Готовый скрипт автозапуск ser2net с нужными параметрами:
cat /jffs/scripts/mydevice-start.sh

#!/bin/sh
DEVICE="/dev/ttyUSB0"
SPEED=9600
PRODUCT="1a86:7523"  # u-blox GPS receiver

# wait for device to become ready
modprobe cdc-acm
insmod /jffs/scripts/ch341.ko
ser2net -C "3000:raw:60:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS"
ser2net -C "3001:raw:60:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS"
ser2net -C "3002:raw:60:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS"
ser2net -C "3003:raw:60:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS"
ser2net -C "3004:raw:60:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS"
ser2net -C "3005:raw:60:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS"
ser2net -C "3006:raw:60:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS"
ser2net -C "3007:raw:60:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS"

while : ; do
  lsusb | grep -qi "$PRODUCT"
  if [ $? -eq 0 ]; then
    break
  else
    sleep 5
  fi
done

stty -F $DEVICE $SPEED raw -clocal -echo icrnl

для его запуска необходимо создать скрипт /jffs/scripts/init-start

#!/bin/sh
deny_access() {
  local FILEPATH="$1"
  local FILENAME="$(/usr/bin/basename $FILEPATH)"
  local FILEEXT="${FILENAME##*.}"
  if [ "$FILEEXT" == "ko" ]; then
    local MODULENAME="${FILENAME%.*}"
    local FILEPATH="/lib/modules/$(/bin/uname -r)/$(/sbin/modprobe -l $MODULENAME)"
    if [ -f "$FILEPATH" ] && [ ! -h "$FILEPATH" ]; then
      /sbin/lsmod | /bin/grep -qF $MODULENAME && /sbin/modprobe -r $MODULENAME && /bin/usleep 250000
      /bin/mount -o bind /dev/null "$FILEPATH"
    fi
  else
    if [ -f "$FILEPATH" ] && [ ! -h "$FILEPATH" ]; then
      [ -n "$(/bin/pidof $FILENAME)" ] && /usr/bin/killall $FILENAME && /bin/usleep 250000
      /bin/mount -o bind /dev/null "$FILEPATH"
    fi
  fi
}

# disable automatic loading of GSM modem drivers and programs
deny_access option.ko
deny_access usb_wwan.ko
deny_access drxvi314.ko
deny_access /usr/sbin/find_modem_node.sh
deny_access /usr/sbin/find_modem_type.sh
deny_access /usr/sbin/gobi_update.sh
deny_access /usr/sbin/modem_at.sh
deny_access /usr/sbin/modem_autoapn.sh
deny_access /usr/sbin/modem_enable.sh
deny_access /usr/sbin/modem_status.sh
deny_access /usr/sbin/modem_stop.sh
deny_access /usr/sbin/chat
sleep 20 && /bin/sh /jffs/scripts/mydevice-start.sh

Полезные ссылки, если не работает ch341:
https://www.snbforums.com/threads/problems-reading...

DIY конвертер RS-485 на базе ESP8266
Также устройство с поддержкой RS-485 можно подключить через всеми любимый модуль ESP8266 https://connect.smartliving.ru/profile/1502/compon...
Простейший пример реализации конвертера http://www.bizkit.ru/2019/02/12/12284/
Еще один пример реализации управления http://learniotwithzain.com/2018/11/read-data-from...
DIY конвертер от Jager https://modkam.ru/?p=884

Готовые преобразователи интерфейсов
Можно приобрести готовые преобразователи интерфейса rs-485 в TCP-IP:
https://connect.smartliving.ru/profile/1502/compon...
https://connect.smartliving.ru/profile/1502/compon...

Полезные ссылки
Считывание показаний счетчиков Милур: https://mjdm.ru/forum/viewtopic.php?f=5&t=5668&p=8...

Считывание показаний счетчиков Меркурий: https://mjdm.ru/forum/viewtopic.php?f=5&t=5708&p=9...

Считывание показаний счетчиков Энергомера: https://mjdm.ru/forum/viewtopic.php?f=5&t=3173&p=1...

Считывание регистров и управление устройствами по протоколу modbus: https://mjdm.ru/forum/viewtopic.php?f=5&t=1675&hil...

Полезные программы конвертеры портор https://usriot.ru/serial-to-ethernet/serial-device...

Discuss (0) (4)

See also:
2021-03-02 Добавляем новые или недостающие метрики управления устройств в модуле zigbee2mqtt
2021-02-16 Установка Majordomo на JetHUB D1
2021-02-02 Shelly 1
2020-09-30 Команды для назначения владельцев папок
2020-09-16 Собираем список ip вызывных панелей с поддержкой SIP
2020-07-03 Получаем безопасный доступ к Web странице MajorDoMo
2020-04-24 Установка MajorDoMo на synology в 3 клика
2020-02-13 Настройка модуля zigbee2mqtt для работы с zigbee2mqtt или шлюзом sls zigbee gateway
2020-02-13 Настройка модуля zigbee2mqtt для работы с zigbee2mqtt или шлюзом sls zigbee gateway
2020-01-25 Команды для настройки прав пользователей на папку с majordomo
2020-01-23 Отключаем строгий режим MYSQL штатными средствами
2019-10-12 Подключаем светодиодные ленты к контроллеру MegaD
2019-10-11 Варианты интеграции электроприводов
2019-09-30 Выбор источников сигнала телевизоров LG 2013
2019-09-29 Узнаем версию дистрибутива linux
2019-09-24 Установка необходимых пакетов в xpenology через docker
2019-09-16 Примеры разметки Markdown
2019-09-14 Краткий обзор выключателей, в том числе Sonoff T4EU1C
2019-09-13 Сценарий для канала @MajorDoMo_feed
2020-03-26 Опыт установки Synology DSM
2019-09-09 Делаем majordroid лаунчером андройд по-умолчанию.
2019-09-04 Реализация сценария "кто-то пришел"
2019-09-02 Отправляем график hightcharts свойства любого объекта в телеграмм
2019-09-17 Автономная сигнализация на базе контроллера megad-2561
2019-08-27 Управление громкостью терминалов через телеграмм
2019-08-26 Полноценная консоль в браузере (wetty)
2019-08-16 Точечное регулирование радиаторов отопления
2019-08-18 Собираем голосовой помощник на базе WM8960 Audio HAT и raspberry pi zero w
2019-08-13 Общедоступная ссылка с закатом, рассветом и текущей погодой
2019-07-24 Самый дешевый вариант видеонаблюдения
2019-07-22 Запуск MajorDroid на одноплатниках, старых планшетах, телефонах.
2019-07-22 Запуск Majordroid на старом железе
2019-07-15 Устанавливаем opencv и необходимые библиотеки на ubuntu 18.04 без использования python
2019-07-05 Решение проблемы Incorrect integer value: '' for column 'ID' at row 1
2019-07-04 О приборах учета и удаленном снятии показаний (вода и газ)
2019-07-04 О приборах учета и удаленном снятии показаний (электричество)
2019-06-24 Наблюдение за радиационной обстановкой в регионе
2019-06-06 Меню пылесоса Xiaomi в телеграмм
2019-06-06 Удобный просмотр данных сенсоров через телеграмм
2019-06-06 Просмотр камер через телеграмм
2019-06-06 Управление светом через телеграмм
2019-06-06 Колор-пикер для телеграм
2019-05-06 Список символов emoji
2019-04-17 Установка z-way на Ubuntu
2019-04-16 Решение проблемы ERROR 1040 (HY000): Too many connections
2018-09-09 Список домофонов с IP интерфейсом
2018-08-29 Список кондиционеров с wifi
2018-08-29 Список доступных к покупке IP колонок
2018-07-15 Интеграция датчика Mi flora plant к системе УД MAJORDOMO
2018-06-13 Полезные команды для работы с git
2018-05-27 преобразование html страниц в картинку и отправка в телеграмм
2018-05-24 Полезные sql запросы
2018-05-23 Создание образа nand памяти orange pi plus2
2018-05-16 Команды для работы с базой данных напрямую
2018-04-13 Индикаторы о заряде батареек без использования картинок
2018-04-06 Установка и настройка python на windows для работы систем распознавания
2018-04-05 Распознавание лиц подходящих к двери людей с помощью ip камеры и открытие двери, если нейросеть признала своего
2018-04-04 Управление таймерами выключения света
2018-04-04 Управление RGB контроллером на базе ESP8266
2018-04-03 Увеличение разрешения китайских камер на чипе hi3516c H264
2018-03-13 Использование колонки google home в качестве терминала Majordomo
2018-03-13 Установка и подключение rtl usb донгла для чтения датчиков температуры и кнопок 433 мгц
2018-03-13 Настройка брокера MQTT
2018-02-17 Проект "умная входная дверь"
2018-02-11 Отправка всех значений свойства объекта в телеграм
2017-12-21 получение адреса по GPS координатам
2017-12-21 получение / передача GPS координат сервису livegps.com
2017-12-21 чтение мгновенных данных U,P, I электросчетчика милур 104
2017-12-21 Получение координат с маяков и gsm сигнализаций starline-online.ru

Екатеринбург, Россия

На форуме: directman66