русский
Germany.ruForen → Архив Досок→ Programmierung

Задачи для начинающих

28.01.21 23:07
Re: Задачи для начинающих
 
uscheswoi_82 свой человек
in Antwort AlexNek 28.01.21 21:24
Ну и дополнительно: откуда взялась максимальная, минимальная температура и какие то команды?

Допустим минимальная температура 20, максимальная 35. Датчик в реальном времени измеряет температуру, а дальше программа обращается к шине данных, там из аналога переводится в цифровое значение, и программа получает значение ввиде каких-то чисел. Если температура 18, то включается подогрев, как достигает в террариуме значение 35, подогрев отключается. А cmd = 0 включает подогрев и мериет температуру, cmd = 1 отключает подогрев, но продолжает дальше мерить температуру, и снижает температуру. Покуда это симулятор, мы симулируем датчик температуры, и подогрев. Если бы это был бы не симулятор, то вместо cmd мы бы назвали бы heater, и он принимал бы булевое значение, если бы температура была бы ниже минимума, то программа бы устанавлива heater = true, и дальше мерила бы температуру. Всё просто:


 //Константы
МАКСИМЛЬНАЯ_ТЕМПЕРАТУРА = 35
МИНИМАЛЬНАЯ_ТЕМПЕРАТУРА = 18

//Инициализация
текущая_температура = 0
обогреватель = выкл

// Цикл
циклить пока True:
  текущая_температура = получить_текущую_температуру()
  запуск_обогревателя(обогреватель)
  если текущая_температура > МАКСИМЛЬНАЯ_ТЕМПЕРАТУРА то:
    обогреватель = выкл.
  если текущая_температура < МИНИМАЛЬНАЯ_ТЕМПЕРАТУРА то:
    обогреватель = вкл.

А если несколько датчиков температуры и несколько подогревов, то можно вынести это в функцию... или можно даже использовать мистер Фред. В данном алгоритме попахивает многозадачностью, я бы в данном проекте попытался бы использовать бы FreeRTOS это легковесная многозадачная ОС реального времени для IoT.


P.S.:С кодом на Python-е получилась каша, потому-что мне в лом было заниматься заниматься с мистерм Фредом и с таймерами, по мне так изврат когда в консольном приложение используют потоки или таймеры.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
 

Sprung zu