Открытый проект мультизонного термосенсора с логированием и блютусом

Цель проекта — получить устройство с возможностью простого подключения множества термосенсоров. Термосенсоры должны однозначно идентифицироваться по месту. Все температуры должны отображаться на одном экране и логироваться в файл. За основу была взята шина 1-Wire и сенсоры DS18S20+.

Проект-концепция, такой можно сделать практически на любой отладочной плате с любым микроконтроллером. Но под рукой был именно модуль K66BLEZ1.

Перечень необходимых деталей

Модуль K66BLEZ1

Открытый проект модуля находится здесь. Модуль на борту имеет энергонезависимые часы реального времени, USB high speed с двумя виртуальными COM портами, микро SD карту с поддержкой FAT32, Blertooth LE 4.0 модуль, зарядник литиевых аккумуляторов 3.7 В. Питание от USB или источника питания 5 В или от аккумулятора 3.4…4.2 В.

Макетная плата

Схема макетной платы

Дисплей

Полная информация о дисплее собрана здесь. Дисплей управляется по шине SPI. Работает только на запись. Значит при работе с ним надо применять технологию фрагментированного фреймбуфера.

Сенсоры DS18S20+

Вся конструкция в сборе выглядит вот так:

За счёт того что сенсоры просто накалываются на плоский шлейф в произвольных местах сделать вариант под собственные нужды можно буквально за минуты. Длина шлейфа может достигать сотен метров и даже километра. Это обеспечивается сравнительно низкой скорость работы с сенсорами и подводкой отдельной линии питания. Питание 3.3 В подаётся в шлейф из модуля. Все сенсоры подключены на одну информационную линию DQ, по которой осуществляется двунаправленный обмен данными.

Пример схемы подключения трех сенсоров к микроконтроллеру
Пример схемы подключения трех сенсоров к микроконтроллеру

В данном проекте реализовано считывание данных максимум с 8-и сенсоров. Считывание каждого сенсора длиться около 0.6 сек. Проект легко переделать под большее количество сенсоров. На многие десятки.

Настраивается дивайс через USB и виртуальный COM порт. На стороне PC применяется программа терминал типа TeraTerm. Можно задать разворот экрана по всем 4 направлениям, задать максимальный размер лог файлов с записью температур, просмотреть и изменить идентификаторы сенсоров.

Способ привязки сенсоров DS18S20

Все сенсоры DS18S20 имеют глобально уникальные 8-байтные идентификаторы. Это позволяет к каждому из них обращаться по отдельности. Однако если изначально все сенсоры подключить одновременно, то останется неясным какой сенсор стоит на какой позиции. Поэтому была разработана процедура привязки сенсоров к месту. Процедура выполняется следующим образом:

  1. Питание выключено. Со шлейфа все сенсоры сняты. Распределяем по своему желанию номера позициям установки сенсоров.

  2. Устанавливается один сенсор на шлейф в позицию с номером 1.

  3. Включаем питание. Ожидаем появления данных с сенсора на экране. Выключаем питание.

  4. Устанавливаем следующий сенсор в следующую по порядку позицию и переходим к пункту 3. Если все сенсоры установлены, то процедура завершена.

После выполнения всей процедуры на экране напротив каждого номера позиции будут показания сенсора находящегося в именно в этой позиции.
Выполненные настройки сенсоров сохраняются в файле на SD карте и при переносе шлейфа на другое устройство нужно будет только перенести файл с настройками.

Каналы коммуникации с дивайсом

Устройство соединяется через USB интерфейс с компьютером. При этом на компьютере появляется два виртуальных COM порта. Порт с номером интерфейса 0 служит для управления через терминал, просмотра лога и управления настройками. Порт с интерфейсом 2 работает по протоколу FreeMaster и соответственно через него ведёт обмен данными среда FreeMaster на компьютере.

Лог-файл с результатами измерений

Лог файл с результатами измерений по всем зонам сохраняется в формате CSV и может быть импортировал в Excel или другую подходящую программу для анализа. Каждая запись сопровождается датой и временем. Периодичность записи около 5.5 сек.

Управление через терминал

Главное меню в терминале показано ниже. Кроме сохранения лога с результатами измерения температуры устройство ведёт также свой внутренний лог. Его можно просмотреть через терминал. Здесь также настраивается дата и время и все параметры.

Обмен через USB со средой FreeMaster

Работа с FreeMaster была описана в предыдущих статьях. Стоит только напомнить что компонент FreeMaster обеспечивает доступ и в MATLAB в реальном времени.

Проект для среды FreeMaster находится в файле MZTS.pmp.

Наблюдение за температурой по Bluetooth LE.

Для этого используется кастомный набор характеристик и была написана простая утилита на PC под управлением Windows 10..11 , Утилита умеет сканировать все BLE устройства в эфире и из списка выбирает только те которые поддерживают кастомную характеристику термосенора. Перед этим устройство должно быть спарено с PC. Пин код и имя устройства задаются через терминал.

Исходники проекта

Статьи с предыдущими концептами на модуле K66BLEZ1


ссылка на оригинал статьи https://habr.com/ru/post/690708/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *