Задачи для начинающих
Ну и дополнительно: откуда взялась максимальная, минимальная температура и какие то команды?
Допустим минимальная температура 20, максимальная 35. Датчик в реальном времени измеряет температуру, а дальше программа обращается к шине данных, там из аналога переводится в цифровое значение, и программа получает значение ввиде каких-то чисел. Если температура 18, то включается подогрев, как достигает в террариуме значение 35, подогрев отключается. А cmd = 0 включает подогрев и мериет температуру, cmd = 1 отключает подогрев, но продолжает дальше мерить температуру, и снижает температуру. Покуда это симулятор, мы симулируем датчик температуры, и подогрев. Если бы это был бы не симулятор, то вместо cmd мы бы назвали бы heater, и он принимал бы булевое значение, если бы температура была бы ниже минимума, то программа бы устанавлива heater = true, и дальше мерила бы температуру. Всё просто:
//Константы МАКСИМЛЬНАЯ_ТЕМПЕРАТУРА = 35 МИНИМАЛЬНАЯ_ТЕМПЕРАТУРА = 18 //Инициализация текущая_температура = 0 обогреватель = выкл // Цикл циклить пока True: текущая_температура = получить_текущую_температуру() запуск_обогревателя(обогреватель) если текущая_температура > МАКСИМЛЬНАЯ_ТЕМПЕРАТУРА то: обогреватель = выкл. если текущая_температура < МИНИМАЛЬНАЯ_ТЕМПЕРАТУРА то: обогреватель = вкл.
А если несколько датчиков температуры и несколько подогревов, то можно вынести это в функцию... или можно даже использовать мистер Фред. В данном алгоритме попахивает многозадачностью, я бы в данном проекте попытался бы использовать бы FreeRTOS это легковесная многозадачная ОС реального времени для IoT.
P.S.:С кодом на Python-е получилась каша, потому-что мне в лом было заниматься заниматься с мистерм Фредом и с таймерами, по мне так изврат когда в консольном приложение используют потоки или таймеры.