# некоммерческий проект датчика температуры
Делается в свободное время для тестирования идей и изучения новых подходов.
Идеология проекта заключается в самостоятельной разработке всего с нуля, без использования готовых модулей с приминением системного подхода к разработке: 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.