Программа Raspberry Pi Thermostat с обновлением температуры внутри GUIZERO - PullRequest
0 голосов
/ 03 февраля 2020

Noob ie до Python, всегда хочу учиться и приступил к сложному проекту

Я создал очень простое приложение, которое отображает текущую температуру и влажность при загрузке приложения. Затем он показывает текущую температуру между стрелками вверх и вниз, так что есть отправная точка. Стрелки изменяют отображение температуры вверх и вниз, это будет запрограммировано для запуска модуля A C или нагревателя в зависимости от того, где он падает.

Кажется, все это работает, хотя я буду распят для код. Пожалуйста, будь мил, я PHP парень, а не Python.

Необходима моя ПРОБЛЕМА и направление. Как мне обновить текущую температуру внутри al oop с моим текущим кодированием или мне нужно переделать все, чтобы она работала лучше. Я открыт для изучения и начала заново, этот хобби-проект, который будет запущен в моем кемпинге с кучей временных датчиков для наблюдения за разными вещами, и буду добавлять в окончательный список ниже.

from guizero import App, Text, PushButton
import time
import Adafruit_DHT


class Temperature:
    def __init__(self):
        # create the GUI and its widgets
        app = App(title='Thermostat', width=300, height=200, layout='grid')
        self.currenttemperature = Text(app, text='75', grid=[0,0])
        self.currenttemperature.text_color = 'blue'
        self.currenthumidity = Text(app, text='50%', grid=[4,0])
        self.currenthumidity.text_color = 'blue'
        self.current_temperature = Text(app, text='67\xb0F', grid=[2, 5])
        PushButton(app, command=self.raise_temp, text='+', grid=[2, 4])
        PushButton(app, command=self.lower_temp, text='-', grid=[2, 6])

        # initialize the temperature
        self.getTemperature()

        # start the GUI
        app.display()

    def raise_temp(self):
        # raise_temp button handler
        self.temperature += 1
        self.update_temperature_display()

    def lower_temp(self):
        # lower_temp button handler
        self.temperature -= 1
        self.update_temperature_display()

    def update_temperature_display(self):
        # update the temperature and set its color
        self.current_temperature.value = (str(self.temperature))
        if self.temperature >= 65:
            self.current_temperature.text_color = 'red'
            self.current_temperature.value = "{:.0f}\xb0F".format(self.temperature)
        elif self.temperature <= 64:
            self.current_temperature.text_color = 'blue'
            self.current_temperature.value = "{:.0f}\xb0F".format(self.temperature)

    def getTemperature(self):

      pin = 4
      sensor = Adafruit_DHT.DHT22  
      inhumidity, intemperature = Adafruit_DHT.read_retry(sensor, pin)
      self.tempconvertable = intemperature
      self.tempF = self.tempconvertable * 9/5.0 + 32
      self.temperature = self.tempF
      self.tempdisplay = "{:.0f}\xb0F".format(self.tempF)
      self.humidityconvertable = inhumidity
      self.humiditypercent = "{:.0f}".format(self.humidityconvertable)
      self.currenttemperature.value = (str(self.tempdisplay))
      self.current_temperature.value = (str(self.tempdisplay))
      if int(self.humiditypercent) >= 55:
       self.currenthumidity.text_color = 'red'
       self.currenthumidity.value = "{:.0f}%".format(self.humidityconvertable)
      elif int(self.humiditypercent) <= 54 :
       self.currenthumidity.text_color = 'green'
       self.currenthumidity.value = "{:.0f}%".format(self.humidityconvertable)


# Instantiate the Temperature class

Temperature()

Конечная цель в конце.

контролировать кучу временных параметров и отображать их на экране, обновляя их по мере изменения с помощью таймера. GPS-слежение за кемпером, встроенным в плату, поэтому он «дискретный», если он движется, я хочу знать, Измерение напряжения и тока аккумуляторных батарей и состояния заряда. Отслеживание ветра и отображение его на экране, если он действительно плохо работает, автоматически переверните тент Точка доступа Wi-Fi в автофургоне, который ищет определенные точки доступа и подключается, если в радиусе действия, возможность выбрать новую и подключиться. Предоставьте DHCP-сервер оборудованию, которое использует соединение, принтеры, телевизор, планшет и т. Д. c. Перед включением будет контролироваться питание 110 В. Настройка автофургона с помощью кнопок и индикаторов уровня pu sh, чтобы опустить ноги и выровнять автофургон Контролировать уровни бака и отображать их на экране вместе со всей другой информацией. Записывайте все это на встроенный веб-сервер для записей и потому, что это можно сделать.
...