Visualisierung von Python auf dem Raspberry Pi

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
JOnybery
User
Beiträge: 8
Registriert: Dienstag 31. Juli 2018, 12:31

Hallo,

ich bin neu hier und suche nach einer Lösung meines Problemes und hoffe das mir hier geholfen werden kann.
Also mein vorhaben im allgemeinen ist es mit dem Raspberry Pi eine Bewässerungsanlage für den Garten meiner Eltern zu bauen. Die zeitliche Steuerung ist erstmal kein Problem. Nun ist nur die Sache das mein Vater die einzelnen bereiche zum Bewässern auch zwischendurch ansteuern will. Ich wollte nun ein Bildschirm an den Pi anschließen damit er dort auf einer Benutzeroberfläche die einzelnen Bereiche per Mausklick öffnen kann. Gibt es dafür eine Möglichkeit?

ich hoffe es ist verständlich und ihr könnt mir dabei weiterhelfen.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@JOnybery: Ja, sogar mehrere. Wobei ich wahrscheinlich etwas allgemeiner denken würde und eine Webanwendung in Betracht ziehen würde. Die kann man dann von überall her bedienen wo man einen Browser hat (Desktop-Rechner, Smatphone, Tablet, …) und lokal auf einem Display kann man ja auch einen Browser anzeigen lassen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Da heutzutage jeder ein Smartphone hat, würde ich die Steuerung als Webservice implementieren, der über das lokale WLAN erreichbar ist. Das spart die Hardware am PI und man kann auch vom Sofa aus den Garten bewässern.
JOnybery
User
Beiträge: 8
Registriert: Dienstag 31. Juli 2018, 12:31

Das Problem ist, das wir an dem Ort weder Wlan noch Ethernet haben
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@JOnybery: Du könntest aus dem Raspi selbst einen WiFi access point machen. Aber wie gesagt, kann man auf dem lokal dann ja auch einen Browser laufen lassen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Schlange
User
Beiträge: 15
Registriert: Freitag 24. August 2018, 12:03

Die Antwort kommt zwar spät, aber wie ich hoffe nicht zu spät.

Ich würde es mit pygame machen:

Code: Alles auswählen

import sys, pygame, time
from pygame.locals import *

b = Fensterbreite
h = Fensterhöhe
Font = pygame.font.SysFont('Arial', Schriftgröße)
Wasser = False

pygame.init()

GUI = pygame.display.set_mode((b, h), RESIZABLE, 32)
pygame.display.set_caption('Fenstertitel')

GUI.fill(R, G, B)#Rot-, Grün-, Blauanteil

pygame.draw.rect(GUI, ((R, G, B)), (x, y, breite, höhe))
text = Font.render('Wasser an', 1, ((R, G, B)))
GUI.blit(text, (x, y))

pygame.display.update()

while True:
	event = pygame.event.wait()
	if event.type == QUIT:
		pygame.quit()
		sys.exit()
	if event.type == MOUSEBUTTONDOWN:
		cursor = pygame.mouse.get_pos()
		px = int(cursor[0])
		py = int(cursor[1])
		if px > x and px < (x + breite) and py > y and py < (y + höhe) and Wasser == False:
			#Die Aktion zum Einschalten 
			pygame.draw.rect(GUI, ((R, G, B)), (x, y, breite, höhe))
			text = Font.render('Wasser aus', 1, ((R, G, B)))
			GUI.blit(text, (x, y))
			Wasser == True
			pygame.display.update()
		if px > x and px < (x + breite) and py > y and py < (y + höhe) and Wasser == True:
			#Die Aktion zum Abschalten
			pygame.draw.rect(GUI, ((R, G, B)), (x, y, breite, höhe))
			text = Font.render('Wasser an', 1, ((R, G, B)))
			GUI.blit(text, (x, y))
			Wasser == True
			pygame.display.update()
PS: Ich hoffe es funktioniert
PPS: Am besten du liest dir zusätzlich die Dokumentation von pygame https://www.pygame.org/docs/ durch.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Schlange: Der Code ist nicht lauffähig, den hast Du also nicht getestet, und sich mit Pygame eine GUI zu basteln ist relativ aufwändig. Schalter gibt es in den üblichen GUI-Rahmenwerken bereits fertig.

`time` wird importiert, aber nirgends verwendet. Es ist auch üblich nur ein Modul pro `import` anzugeben.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten