Аппаратная реализация.
На рисунке показана схема прибора контроля СО2 с сенсором SCD30.

В его состав прибора входят:
- Модуль с микроконтроллером STM32F103;
- Радиомодуль JDY-40;
- Сенсорный модуль SCD30 фирмы SENSIRION;
- OLED дисплей 128х64 пикселей;
- AC-DC преобразователь на 5 В (на схеме не показан).
Значение СО2 от сенсора SCD30 выводится на дисплей вместе с температурой и влажностью. Как показано на фото.

Сенсорный модуль SCD30 имеет параметры, изменения которых влияют на точность прибора. С работой сенсора можно познакомиться в datasheet. Также для удобства я собрал доступную информацию на диске. Параметры прибора контроля СО2, зашитые в памяти микроконтроллера, доступны для просмотра и редактирования в приложении MCT-конфигуратор для ПК через обмен данными по радиоканалу с использованием MCT-протокола. Работа прибора по MCT-протоколу, позволяет встраивать прибор в различные системы сбора данных, как это сделать описано здесь.
Для связи прибора с ПК используется модуль JDY-40 и USB-UART адаптер. Радиомодули JDY-40 в приборе и в адаптере настраиваются идентично, скорость передачи данных по UART 19200 бод. С тем, как настроить модули JDY-40, можно познакомиться здесь.
Программная реализация прибора.
Проект программы для реализации прибора контроля СО2, создан в среде STM32 Cube MX для IDE Kiel. Проект стандартизован под MCT-протокол, более подробно с документацией на протокол можно познакомиться здесь. В проект после создания его в среде Cube MX (после настройки периферии), добавлены файлы:
- Файлы поддержки SCD30 модуля: scd30_i2c.c, scd30_i2c.h.
- Файлы поддержки OLED дисплей: ssd1306.c, ssd1306.h.
- Для реализации MCT-протокола: conf_init.h, mk_conf_tree.h, mk_conf_tree.c;
- Основные рабочие файлы реализации алгоритма управления: system.c и control.c. В этих файлах добавлены функции поддержки MCT-протокола: System_prop, System_get, System_set в файл system.c и Control_prop, Control_get, Control_set в файл control.c. В файл uart.c добавлены функции поддержки обмена данными это MKBUS_rx и MKBUS_send .
- Также добавлены файлы setup.c и setup.h, в которых описаны функции чтения и записи flash-памяти микроконтроллера. В функции SETUP_Load файла setup.c задаются начальные значения основных параметров (таких как серийный номер устройства и т.д.). Значения параметров можно изменить через дерево конфигурации и пересохранить во flash-памяти микроконтроллера.
Подробнее файловая структура поддержки MCT-протокола описана в статье.
Управление прибором при помощи дерева конфигурации на ПК.
После того, как программа скомпилирована и зашита в память микроконтроллера, можно попробовать управлять устройством при помощи MCT-конфигуратора. Со стороны ПК должен быть подключен USB-UART адаптер с модулем JDY-40. На скриншоте показан вид дерева конфигурации (ДК), выгруженного из памяти микроконтроллера Прибора Контроля СО2. С описанием работы с деревом конфигурации на ПК можно познакомиться здесь. Как встроить устройства в систему сбора данных, можно познакомиться здесь. Проект прибора контроля СО2 и документацию я собрал на диске.

