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, чтобы опустить ноги и выровнять автофургон Контролировать уровни бака и отображать их на экране вместе со всей другой информацией. Записывайте все это на встроенный веб-сервер для записей и потому, что это можно сделать.