Forum: Mikrocontroller und Digitale Elektronik Raspberry GPIO's über Webseite steuern.


von piUser (Gast)


Lesenswert?

Hallo ich möchte meinen Raspberry bzw. die GPIO's über eine Webseite 
steuern. Die Werte der Ein/Ausgänge werden in einer Datenbank 
gespeichert und sollen ein oder ausgelesen werden.

Meine frage ist nun mit welchem System erstelle ich eine SCHÖNE 
grafische Website mit schicken Steuerelementen? PHP, JavaScript, 
Wordpress, Joomla, aspx...???

Ich weiß die Frage ist etwas ungenau aber wie wird üblicherweise oder 
oft ein Prozessleitsystem mit Webinterface erstellt ???

Mir geht es eigentlicht nur um die Erstellung des Designs. Welche 
Software, welches System?
Beispiele?

von Stefan F. (Gast)


Lesenswert?

Oh, da hast du aber einfach alles Möglich in einen Topf geworfen ...

Mein Vorschlag:

- Ein Apache Webserver liefert statische Webseiten an den Web-Browser
- PHP Scripte (als Apache-Modul) führen die Kommandos (=Formulare) aus, 
die der Browser an den Server sendet.
- Javascript kannst du optional hinzunehmen, um die Webseiten schön zu 
machen. Aber schau Dir erstmal die Möglichkeiten von HTML und CSS an.

Wenn du diese Komponenten verwendest, wirst du problemlos alle nötigen 
Anleitungen finden. Denn das sind alte Standards, die auch vom Raspberry 
Pi einwandfrei unterstützt werden.

Schau Dir das mal an, so als Einsteigshilfe: 
http://kampis-elektroecke.de/?page_id=1659

von ♪Geist (Gast)


Lesenswert?

Ich habe sowas änliches jedoch ohne die Datenbank gemacht. Auf dem Raspi 
läuft eine App, diese enthält die IO Ansteuerung und ebenfalls eine 
Socketverbindung. Über diese Sockenverbindung kommuniziert die Webseite 
via AJAX http GET mit der o.g. App. Damit steuere ich meine 433MHz 
Funksteckdosen via Internet. Die Webseite kannst du, wenn du HTML/CSS 
und noch besser dazu auch noch PHP kannst, alles in Notepadd++ umsetzen. 
Wordpress, Joomla & Co. brauchst du nur, wenn du wirlich was komplexeres 
hast.

von Jo T. (Gast)


Lesenswert?

Hi, ich häng mich mal mit rein, denn Webseiten mit PHP und
Javascript ja, aber Zugriff auf Hardware?
>Geist schrieb:
> Auf dem Raspi läuft eine App,
Diese möchte ich auch, wie nennt sich die App,
läuft das unter Rapsbian?
>diese enthält die IO Ansteuerung und ebenfalls eine
> Socketverbindung. Über diese Sockenverbindung kommuniziert die Webseite
> via AJAX http GET mit der o.g. App.
Lg Jott

von ♪Geist (Gast)


Lesenswert?

JO T. schrieb:
> Hi, ich häng mich mal mit rein, denn Webseiten mit PHP und
> Javascript ja, aber Zugriff auf Hardware?
>>Geist schrieb:
>> Auf dem Raspi läuft eine App,
> Diese möchte ich auch, wie nennt sich die App,
> läuft das unter Rapsbian?
>>diese enthält die IO Ansteuerung und ebenfalls eine
>> Socketverbindung. Über diese Sockenverbindung kommuniziert die Webseite
>> via AJAX http GET mit der o.g. App.
> Lg Jott

Ich habe es für mich umgesetzt und nicht für die breite Masse 
geschrieben. Es ist keine App in dem Sinne. Sondern eine Application die 
ich mit Geany IDE und gcc compliler erstellt habe. Meine Idee war 
damals, dass man evtl. an diese executable via http GET 
unterschiedlichsten Datenvolgen übergeben kann und somit all möglichen 
Funksteckdosen abdecken kann. Theoretisch ist es mit ein Paar kleinen 
Änderungen möglich.

von Reiner O. (elux)


Lesenswert?

Ich habe an dieser Stelle zwar keinen Raspi im Einsatz, aber das geht 
schon mit PHP! Ich würde es vielleicht nicht grade in das Internet 
"entlassen"; intern jedoch...
Ich "steuere" meinen Garten damit: 
http://r-ost.de/atmel/briefkasten/sg_2.png
Die grünen Punkte sind betriebsbereite Lampen, die schwarzen Punkte 
betriebsbereite Versenk-Regner. Die Punkte kann man einzeln "antouchen", 
um das jeweilige Gerät zu aktiviweren. Wenn Punkt rot: Fehler 
aufgetreten...
Wenn Lampe gelb oder Sprenger blau, dann aktiv...
Dazu verwende ich die PHP GD-Bibliothek. Geschrieben habe ich alles mit 
dem Editor Kate.

MfG
Elux

von Daniel A. (daniel-a)


Lesenswert?

OK, wir haben wieder einen anfänger. Ersteinmal: Wieviel willst du 
selbst machen und hast du schon irgendwelche Vorkenntnisse im 
Programmieren? Mit Apache und CGI kannst du jede Ausfürbare datei 
benutzen, um serverseitig ein par Pins zu schalten. PHP ist/war beliebt 
um serverseitig Webseiten/HTML Code zu generieren, um GPIOs zu steuern 
sind aber c python oder gar bash besser geeignet. Du musst dich hier 
auch nicht gross einschränken. PHP und JavaScript sind 
Programiersprachen. Javascript kann vom Browser cliebtseitig azsgefürt 
werden, kann aber mit nodejs auch serverseitig genutzt werden. Wordpress 
und Joomla sind CMS, Content Management System. CMS mag ich nicht 
besonders, ich denke CMS und DB (datenbank) sind hier etwas übertrieben.

C ist nicht gerade die Anfängerfreundlichste sprache, ich empfehle 
ersteinmal ein Python- oder Bashscript zum Schalten und Abfragen der 
GPIOs zu erstellen.

Um HTML kommt man nicht herum, ust aber auch einfach. Bei html hast du 
erst den Doctype und dann das "html" Element. Dieses enthält ein "head" 
und ein "body" Element. Ins head kommen title, meta, link und script 
tags für den Titel, Seitenmetadaten wie den Author, CSS dateien und 
JavaScripts.
In den "body" kommt der ganze inhalt. Das A und O bei HTML ist, das man 
eine Baumstruktur hat. Elemente können weitere Elemente enthalten, aber 
jedes Element kann nur ein Eltern element haben. Einige Elemente wie img 
oder input können keine unterelemente haben. Diese elemente haben ei 
Self-closeing tag. Alle andern haben einen öffnenden und einen 
Schliessenden Tag. Beim Öffnenden/Selfclosing Tag kann man noch 
Attribute hinzufügen. Wichtig ist, dass alle Zags in der selben 
reigenfolge Geöffnet und Grschlossen werden.
1
Öffnender div tag mit attribut class, welches den wert abc hat:
2
<div class="abc">
3
Schliessender div tag:
4
</div>
5
Selfcloseing img tag mit attribut src:
6
<img src="path/to/image.png" />

CSS ist fürs aussehen. Heutzutage nehmen aber viele einfach das 
bootstrap framework.

von piUser (Gast)


Lesenswert?

Vielen Dank erstmal !!!

Also als Anfänger würde ich mich nicht bezeichen. Es ist ja auch alles 
schon soweit fertig programmiert. Ich muss quasi nur noch die HMI 
Schnittstelle realisieren und da es plattformunabhängig sein soll 
(PC,MAC,iPhone,Android) dachte ich ein Web-Interface ist vielleicht am 
besten geeignet. Ich wollte nur wissen wie man das grafisch am besten 
anstellt.

@Reiner O.: Das Bild gefällt mir schon ganz gut!!!

@Daniel Abrecht: Ich werde mir mal das bootstrap framework anschauen

Vielen Dank erstmal!

von Daniel A. (daniel-a)


Lesenswert?

piUser schrieb:
> PC,MAC,iPhone,Android

Ich empfehle auch einen blick auf Phonegap und Apache Cordova zu werfen. 
Damit kann man eine lokale Webseite als 
iOS/Android/Windowsphone/Ubuntuphone App verpacken. Zum schalten der 
GPIOs würde ich dann eine Rest-Schnittstelle empfehlen.

piUser schrieb:
> Es ist ja auch alles schon soweit fertig programmiert. Ich muss quasi
> nur noch die HMI Schnittstelle realisieren

Ich habe gerade mühe mir vorzustellen, was ohne HMI hier noch gross 
übrigbleibt.

von piUser (Gast)


Lesenswert?

Vielen Dank! Ich habe ja auch nicht erwähnt dass auf dem Raspberry noch 
andere Dienste laufen die mit mehreren Arduino's kommunizieren ;)

von piUser (Gast)


Lesenswert?

Gibt es irgendwo ein gutes Tutorial für REST?

von hannes (Gast)


Lesenswert?

Ich lese Zustände per Ajax/json aus. Steuerbefehle schreibe ich 
ebenfalls per Ajax/json in den Raspi. Anfangs hatte ich für beides PHP 
benutzt, aber der Nachteil war, dass man mit PHP Zustandsänderungen der 
Raspi-GPIO-Eingänge nicht so gut darstellen kann, weil man zyklisch die 
Seite neu laden muss.

Ajax ist (soweit ich informiert bin) state of the art, wie man so schön 
sagt.

von Stefan F. (Gast)


Lesenswert?

PHP kann man auch mit AJAX kombinieren. Der limitierende Faktor 
dazwischen ist eher das HTTP Protokoll - die Programmiersprache spielt 
dabei nur eine untergeordnete Rolle.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.