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

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

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

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

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

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

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

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

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

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

14:57:19.647 -> ec_raw1= 964.781 ec_raw2= 486.868 ec_1= 1.225 ec_2= -15.191 T1= 24.0 H1= 39.0 Wlevel= 289.00 t_raw= 286.00
14:58:19.661 -> ec_raw1= 964.653 ec_raw2= 486.867 ec_1= 1.220 ec_2= -15.191 T1= 24.0 H1= 40.0 Wlevel= 292.00 t_raw= 278.00
14:59:19.662 -> ec_raw1= 964.651 ec_raw2= 486.849 ec_1= 1.220 ec_2= -15.192 T1= 24.0 H1= 40.0 Wlevel= 290.00 t_raw= 276.00