Программа для температуры вариатора

Программа контроля температуры вариатора

Функционал:

* Мониторинг текущей температуры вариатора
* Запуск оповещения при превышении установленного порога
* Сохранение истории температур
* Настройка параметров работы

Интерфейс:

* Главное окно: отображает текущую температуру, пороговое значение и статус оповещения.
* Настройки: позволяет задать пороговое значение, интервал опроса датчика и время сохранения истории.
* История: отображает график температуры в течение заданного периода.

Структура кода:

main.py — основная программа

«`python
import os
import time
import threading
from datetime import datetime

# Импорт необходимых модулей
import RPi.GPIO as GPIO
import matplotlib.pyplot as plt

# Создание объекта датчика температуры
sensor = MCP9808()

# Установка вывода GPIO для светодиода оповещения
led_pin = 21
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin, GPIO.OUT)

# Установка порогового значения температуры
temperature_threshold = 90

# Установка интервала опроса датчика (в секундах)
poll_interval = 1

# Установка времени сохранения истории (в днях)
history_days = 7

# Флаг для запуска потока сбора данных
data_acquisition_running = False

# Список для хранения значений температуры
temperature_history = []

def main():
# Запуск потока сбора данных
start_data_acquisition()

# Основной цикл
while True:
# Получение текущей температуры
current_temperature = sensor.get_temperature()

# Обновление интерфейса
update_interface(current_temperature)

# Проверка превышения порогового значения
if current_temperature > temperature_threshold:
# Включение светодиода оповещения
GPIO.output(led_pin, GPIO.HIGH)
else:
# Выключение светодиода оповещения
GPIO.output(led_pin, GPIO.LOW)

# Добавление текущей температуры в список истории
temperature_history.append(current_temperature)

# Сохранение истории температур
save_history()

# Ожидание обновления данных
time.sleep(poll_interval)

def start_data_acquisition():
global data_acquisition_running

data_acquisition_running = True
threading.Thread(target=data_acquisition).start()

def data_acquisition():
while data_acquisition_running:
# Получение текущей температуры
current_temperature = sensor.get_temperature()

# Добавление текущей температуры в список истории
temperature_history.append(current_temperature)

# Ожидание обновления данных
time.sleep(poll_interval)

def update_interface(current_temperature):
# Обновление значения температуры
current_temperature_label.setText(f’Текущая температура: {current_temperature} °C’)

# Обновление статуса оповещения
if current_temperature > temperature_threshold:
alert_status_label.setText(‘Превышено пороговое значение’)
else:
alert_status_label.setText(‘Температура в норме’)

def save_history():
# Получение текущей даты и времени
now = datetime.now()

# Формирование имени файла истории
history_file = f’history_{now.strftime(«%Y-%m-%d_%H-%M-%S»)}.csv’

# Сохранение истории температур в файл CSV
with open(history_file, ‘w’) as f:
for temperature in temperature_history:
f.write(f'{temperature}n’)

if __name__ == ‘__main__’:
main()
«`

Требования к оборудованию:

* Датчик температуры MCP9808
* Светодиод
* Макетная плата
* Соединительные провода

Установка:

1. Подключите датчик MCP9808 к макетной плате.
2. Подключите светодиод к макетной плате.
3. Подключите Raspberry Pi к макетной плате и включите питание.
4. Загрузите код программы и запустите ее.

Использование:

* Запустите программу.
* Установите пороговое значение температуры в настройках.
* Программа будет постоянно отслеживать температуру и отображать ее на главном окне.
* Если температура превысит пороговое значение, загорится светодиод оповещения и программа сохранит историю температур в файл CSV.

Добавить комментарий