Вывод данных в СОМ порт

Материал из ЭНЭ
Перейти к: навигация, поиск

Вывод данных в СОМ порт

Для вывода данных в командную строку, в ОС Линукс выполняем настройку COM порта, в нашем случае это /dev/ttyUSB0, задаем ему скорость обмена 115200 бод и запускаем сам вывод данных

/bin/stty -F /dev/ttyUSB0 raw -echo 115200
/usr/bin/cat < /dev/ttyUSB0

В том случае, если же мы хотим, чтобы результат вывод данных складывался бы в файл лога в папку /config, для дальнейшей обработки и загрузки данных в HomeAssistant , то мы можем объединить эти команды в один скрипт и запускать его при старте системы, как сервис

#!/bin/bash
/bin/stty -F /dev/ttyUSB0 raw -echo 9600
/usr/bin/cat < /dev/ttyUSB0 >  /config/catusb.log &

После того как скрипт начнет работать можно будет посмотреть постоянно обновляющееся содержимое лог файла - следующей командой:

tail -f /config/catusb.log

Вывод будет примерно в таком виде:

ec_raw1= 964.781 ec_1= 1.225 T1= 24.0 H1= 39.0 Wlevel= 289.00 t_raw= 286.00
ec_raw1= 964.653 ec_1= 1.220 T1= 24.0 H1= 40.0 Wlevel= 292.00 t_raw= 278.00
ec_raw1= 964.651 ec_1= 1.220 T1= 24.0 H1= 40.0 Wlevel= 290.00 t_raw= 276.00

Чтобы получить конкретное - последнее значение ЕС можно выполнить следующую команду:

cat /config/catusb.log |tail -n 2|head -n 1|awk '{print $4}'
1.220