# некоммерческий проект датчика температуры Делается в свободное время для тестирования идей и изучения новых подходов. Идеология проекта заключается в самостоятельной разработке всего с нуля, без использования готовых модулей с приминением системного подхода к разработке: unit тестирование, статический анализ, CI/CD, потенциально функциональное тестирование. Устройство предстовляет из себя датчик температуры и влажности, работающий по протоколу modbus rtu с фунций выдачи управляющего сигнала через open-drain выход.

## [ссылка на прошивку](http://boriskovkb.ru/admin_dev/temp_contoller_firmware) ## [ссылка на железо](http://boriskovkb.ru/admin_dev/temp_contoller_hardware)

***Уже сделанно:*** ### Прошивка: - Написана полностью с нуля "на регистрах" - modbus драйвер с поддержкой чтения и записи всех типов регистров - хранение настроек в eeprom памяти - измерение температуры и влажности i2c mems сенсором - управление open-drain выходом - структура прошивки с простым временным параллелизмом с возможностью наращивания логики ### "Программная инфраструктура": - С нуля составлена система сборки (make) c функциями: - сборка прошивки под МК - сборка unit тестов - проверка кода статическим анализатором по стандарту misraC - Развёрнут личный сервер содержащий: - GIT сервер - Jenkins с возможностью автоматически запускать все этапы сборки в изолированном контейнере - [Создан стенд на базе однолатника с возможностью удалённой отладки устройства](http://boriskovkb.ru/admin_dev/pet_project/src/branch/main/images/%D1%83%D0%B4%D0%B0%D0%BB%D1%91%D0%BD%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B5_%D0%BC%D0%B5%D1%81%D0%B0%D1%82%D0%BE.jpg) ### Печатная плата: - [Составленна схема](http://boriskovkb.ru/admin_dev/temp_contoller_hardware/src/branch/public/Temperature_contoller.pdf) - [Произведенна трассировка платы](http://boriskovkb.ru/admin_dev/pet_project/src/branch/main/images/%D0%BF%D0%BB%D0%B0%D1%82%D0%B0_kicad.png) - [Монтаж и наладка](http://boriskovkb.ru/admin_dev/pet_project/src/branch/main/images/%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20%D0%B2%20%D0%BA%D0%BE%D1%80%D0%BF%D1%83%D1%81%D0%B5.jpg) ### "Аппаратная инфраструктура": - [Разработанна печатная плата "стенда" с pogo контактами](http://boriskovkb.ru/admin_dev/pet_project/src/branch/main/images/%D1%81%D1%82%D1%8D%D0%BD%D0%B4_kicad.png) - [Смоделированно и напечатано тело стенда](http://boriskovkb.ru/admin_dev/pet_project/src/branch/main/images/%D1%81%D1%82%D1%8D%D0%BD%D0%B4.jpg) ***В планах:*** Дописать прошивку. Реализовать поддержку 3х типов сенсоров (аппаратная уже есть). Реализваить различные фичи, например автоматическая выдача сигнала при достижении определённой температуры. Реализовать [fastmodbus](https://wirenboard.com/wiki/Fast_Modbus). Написать загрузчик. Реализвать функцианальное тестирование. Подробней разобраться в unit тестировании и CI-CD.