Dryundel писал(а): ↑12.11.2020{, 10:09}
ShishkaRoman писал(а): ↑12.11.2020{, 00:19}
Хочу сделать прибор для контроля СО2, О2, температуры (окр среды улица комната и батарей) и влажности в квартире с регистрацией на карту памяти.
Проект задумывался как обучающий.
Хо-хо! Для обучающего квартирного проекта двухканальный датчик СО2 за 7 тыров не крутовато ли?
У богатых свои причуды.
Ну да ладно, не будем судить строго.
Судя по даташиту Telaire T6615 уже имеет встроенный UART с на пинах 10(RX) , 11(TX). Скорость подключения 19200.
А вот в каком формате идут данные я так и не нашел. (может плохо искал)
В любом случае можно подключить и посмотреть через адаптер USB например.
ShishkaRoman писал(а): ↑12.11.2020{, 00:19}
Я только начинающий FLprog-щик по этому не судите строго.
Не забудьте что RХ подключается на TX, a TX на RX. Ну и питание тоже подать не забудьте. Далее открываем монитор порта, выставляем скорость 19200 и смотрим что шлет датчик. Это в идеале конечно. ))) Возможно датчику нужна команда для того что бы он выслал данные.
Отправлено спустя 58 минут 24 секунды:
Уууу....
Не так все просто. Серьезный датчик. Обеспечивает высокую точность, учитывает давление и температуру.
Вся документация на него
ЗДЕСЬ
В том числе и по протоколу общения с датчиком.
В оригинале с датчиком поставляется софт для тестирования.
ShishkaRoman, у Вас есть что то подобное?
Отправлено спустя 14 минут 4 секунды:
Возможно кто то и возмется сделать блок общения с данным девайсом.
Обратитесь к
Sancho, он у нас по протоколам общения спец. А за вискарь и подавно.
Штука специфическая, широко не используется.
Спасибо за ответ.
Датчик дорогой купил, по тому что думал дешевый не даст точных результатов, но потом начитавшись, понял что того результата было бы предостаточно.
Тестовый скетч загружаю и получаю ответ. Но хочется работать не со стандартным скетчем, а с блоком, чтобы управлять вытяжкой на основании показаний СО2.
В файле образец скетча. Использовал его для того чтобы подключится к прибору.
Sancho - к сожалению не стал мне отвечать.
Но расписал он всё очень круто, но мне "неучу" не понятно (((
Может мне кто то сможет помочь, и эта информация будет полезной
Каждая команда для датчика состоит из байта длины, командного байта
и любых дополнительных данных, требуемых командой. Каждый ответ от
датчика состоит из байта длины и данных ответа, если таковые имеются. Как
команды к датчику, так и ответы от датчика
завернуты в уровень протокола связи Tsunami-Lite.
Команда: <длина><команда><additional_data>
Ответ: <длина><response_data>
Протокол связи состоит из байта флага (0xFF) и байта
адреса в качестве заголовка. У протокола нет трейлера.
Заголовок Сообщения
<флаг><адрес> <команда/ответ>
Команды UART от ПК к датчику
Команды, отправляемые с главного компьютера или ПК на датчик, имеют следующий формат:
<флаг> <адрес> <длина> <команда> <additional_data>
где:
<флаг> шестнадцатеричное значение 0xFF
<адрес> однобайтовое шестнадцатеричное значение. Байт 0xFE-это адрес, на который реагируют все датчики.
<Длина> общая длина в байтах команды и дополнительных данных
<команда> однобайтовая шестнадцатеричная команда, значения, описанные ниже
<additional_data>, могут быть применимы или не применимы, в зависимости от команды
Например, для запроса идентификации датчика используется следующая команда:
0x FF 0xFE 0x02 0x02 0x01
<флаг> <адрес> | | |
<длина> | <дополнительные данные> = SERIAL_NUMBER
<команда> = CMD_READ
Длина команды равна 0x02, так как команда CMD_READ, SERIAL_NUMBER состоит из двух байтов “0x02 0x01”.
Отклик UART от датчика к ПК
Ответы, возвращаемые датчиком на главный компьютер или ПК, имеют
следующий формат:
<флаг> <адрес> <длина> <response_data>
где:
<флаг> шестнадцатеричное значение 0xFF.
<адрес> однобайтовое шестнадцатеричное значение. Байт 0xFA означает “ведущему” в связи ведущий/ведомый.
<Длина> общая длина в байтах данных ответа
<response_data> может быть или не быть применим, в зависимости от команды
В ответ на приведенную выше команду идентификации CMD_READ SERIAL_NUMBER один датчик ответил следующим потоком байтов:
Длина response_data составляет пятнадцать байт (0x0F). Первые восемь байтов response_data, “4E 4F 42 30 30 31 32 34”, - это строка ASCII “NOB00124”, серийный номер датчика. Остальные байты пятнадцатибайтового ответа заполняются нулями.
0xFF 0xFA 0x0F 0x4E 0x4F 0x42 0x30 0x30 0x31 0x32 0x34 0x00 0x00 0x00 0x00
<флаг> <адрес> <длина <response_data> --------------------------------------------------------
Подтверждение UART или ответ <ACK>
Некоторые команды требуют, чтобы датчик только подтвердил, что команда была получена и было предпринято соответствующее действие. В этом случае, когда датчику не нужно возвращать данные в ответ на команду, он вместо этого ответит ответом подтверждения, называемым <ACK>. Это пакет ответов, отформатированный, как показано выше, но с <длиной>, равной 0x00, и без данных ответа:
0xFF 0xFA 0x00
<флаг> <адрес> <длина>
Примеры команд, которые ожидают подтверждение команды, обновления, откалибровать команды, и пропустить разминку команды.
Подробное описание этих команд приведено ниже.
Ссылка на команду для датчика CO2 каждый общий обмен данными между хост-процессором (или ПК) и датчиком начинается с пакета данных запроса, отправленного датчику, за которым следует пакет данных ответа, возвращенный от датчика. Пакет данных запроса содержит командный байт, указывающий, какие данные или действие датчика требуются. Командный байт также определяет, какие дополнительные данные включены в пакет запроса.
Примечание: каждый запрос и ответ должны быть завернуты в протокол связи Tsunami-Lite, как описано выше. Следующая ссылка на команду дает только синтаксис команды и ответ, а также опускает перенос протокола.
В следующих таблицах команд шестнадцатеричные байты представлены как “0x12” для ясности. Однако при отправке байтовой строки в сообщении нотация “0x” должна быть опущена. Команды, перечисленные в следующих разделах, являются общими для всех элементов датчиков CO2, если не указано иное
Вроде всё понятно.