Hallo, ich spiele ein bischen mit dem Raspberry. Ich habe den lighttpd Webserver installiert und auch meine eigene Seite erstellt. Nun meien Frage ich möchte gerne meine Lichter über die Webseite per USB schalten. Am USB Port ist ein USB zu Seriell adapter der ist am STM32F4 angeschlossen. 1. Es sollte dann über die Webseite ein String zum STM32F4 gesendet werden mit der information an oder aus. 2. Der Staus der einzelnen Lichter sollte dann auch auf der Webseite Angezeigt werden. Könnte mir einer weiterhelfen , im Web hab ich nichts gefunden oder vielleicht auch nicht die richtigen Suchbegriffe verwendet
Du musst dazu ein Script auf dem Webserver ausführen. Ein Formular auf der Webseite wird per POST an den Server gesendet. Der führt ein Script aus, welches die geposteten Parameter auswertet und dementsprechend seriell mit dem STM32 kommuniziert. Ich würde das mit PHP machen. https://opensource.com/article/17/3/operate-relays-control-gpio-pins-raspberry-pi http://www.ko4bb.com/getsimple/index.php?id=serial-port-access-from-php-with-raspberry-pi Oder mit einer Qt Anwendung, die selbst Webserver ist: http://stefanfrings.de/qtwebapp/index.html Auf jeden Fall solltest du zuerst die Webseite entwickeln, ohne Kommunikation zum STM32.Dann machst du den STM32 fertig, ohne Kommunikation zum Webserver. Kannst du ja mit einem seriellen Terminalprogramm (Cutecom, Hammer Terminal) testen. Wenn diese beiden Teile unabhängig laufen, erst dann bringst du sie zusammen.
Stefanus F. schrieb: > Du musst dazu ein Script auf dem Webserver ausführen. > Ich würde das mit PHP machen. > https://opensource.com/article/17/3/operate-relays-control-gpio-pins-raspberry-pi > http://www.ko4bb.com/getsimple/index.php?id=serial-port-access-from-php-with-raspberry-pi > Der STM32 funktioniert bereits tadellos. mein problem ist dahin gehend das PHP in der Webseite zu integrieren für die Kommunikation. ich habe für meine Anwendung auch keine Beispiele gefunden. ich habe den raspberry erst seit ein paar Tagen
ich habe für meine Anwendung auch keine Beispiele gefunden. Komm, das Netz ist voll davon. Suchbegriffe hast Du ja schon passend, raspberry kannst Du dabei weglassen.
andre schrieb: > mein problem ist dahin gehend das PHP in der Webseite zu integrieren für > die Kommunikation. > ich habe für meine Anwendung auch keine Beispiele gefunden. Hast du die beiden PHP Tutorials angesehen, die ich Dir empfohlen habe?
Stefanus F. schrieb: > Hast du die beiden PHP Tutorials angesehen, die ich Dir empfohlen habe? Ja das hab ich gemacht. > http://www.ko4bb.com/getsimple/index.php?id=serial-port-access-from-php-with-raspberry-pi > bei diesem weis ich auch nicht welchew nummer ich dort am USB eingebe $serial->deviceSet("/dev/ttyUSB0");
andre schrieb: > bei diesem weis ich auch nicht welchew nummer ich dort am USB eingebe > $serial->deviceSet("/dev/ttyUSB0"); Stecke deinen USB-UART Adapter an und gebe danach "sudo dmesg" ein. Dann müsste eine Meldung erscheinen, wie das Device heisst. Es müsste irgendwas mit /dev/tty... sein. Dann teste die Kommunikation mit deinem STM32, indem du ein Terminalprogramm (Cutecom) verwendest. Dort wirst du dieses Device auch einstellen müssen.
Stefanus F. schrieb: > Stecke deinen USB-UART Adapter an und gebe danach "sudo dmesg" ein. Dann > müsste eine Meldung erscheinen, wie das Device heisst. Es müsste > irgendwas mit /dev/tty... sein. > > Dann teste die Kommunikation mit deinem STM32, indem du ein > Terminalprogramm (Cutecom) verwendest. Dort wirst du dieses Device auch > einstellen müssen. Die Kommunikation funktionier tadellos.
Wo genau ist dann dein Problem? Du kannst dem stm Daten schicken. Bau das in ein Skript und führe das per php (Google: "php execute Script") aus. "kein Beispiel gefunden" zählt nicht. Konkrete Probleme bitte oder eben mit den Grundlagen - zum Beispiel auf Basis der genannten Tutorials - bekannt machen.
andre schrieb: > Die Kommunikation funktionier tadellos. Dann weißt du zwangsläufig auch, welches Device du angeben musst. Wo war nochmal das Problem?
Testfall schrieb: > Wo genau ist dann dein Problem? > > Du kannst dem stm Daten schicken. Bau das in ein Skript und führe das > per php (Google: "php execute Script") aus. > > "kein Beispiel gefunden" zählt nicht. Konkrete Probleme bitte oder eben > mit den Grundlagen - zum Beispiel auf Basis der genannten Tutorials - > bekannt machen. Mein Problem ist wie ich das in meine HTML Seite einbaue und speichere ich das script mit welche Rechte
andre schrieb: > Mein Problem ist wie ich das in meine HTML Seite einbaue und speichere > ich das script mit welche Rechte Das ist doch Haarklein in dem ersten Tutorial erklärt, das ich Dir empfohlen habe.
Was spielt eigentlich der Raspi für eine Rolle in dem ganzen Projekt. Wenn schon ein STM32F4 im Spiel ist, sieh dir einfach das Beispiel "Webserver mit SSI and CGI" an.
pegel schrieb: > Was spielt eigentlich der Raspi für eine Rolle in dem ganzen > Projekt. > > Wenn schon ein STM32F4 im Spiel ist, sieh dir einfach das Beispiel > "Webserver mit SSI and CGI" an. Dort nutze ich den LWIP WEB-Server leider wird der Speicher langsam knap. Deshalb der Raspi
Na dann. Eine Möglichkeit wäre allerdings noch, Web Seiten und andere Daten unkomprimiert auf eine SD Karte auslagern.
Ich würde den STM nicht direkt über die Webseite per UART ansteuern. Ähnliches hatte ich anfangs auch gemacht, war dann aber bei Erweiterungen und Änderungen sehr unflexibel und wurde geändert. Ich hätte folgenden Vorschlag (bei mir seit langem im Einsatz): --------------------------------------------------------------- a) UDP-Server in Python, der die UART bedient Der Server lauscht auf einem UDP-Port und verarbeitet UDP Datenpakete In den Datenpaketen stecken die Befehle, die dann per UART an das angeschlossene Gerät gesendet werden b) dann so wie oben beschrieben mit php arbeiten, aber das php schickt UDP-Befehle an den Server und nicht direkt Befehler per UART. Hier der sehr "übersichtliche" Server, der meine FS20 Aktoren im Netzwerk ansprechbar macht: #!/usr/bin/python #------------------------------------------------------------- # imports #------------------------------------------------------------- from socket import * import serial import time #------------------------------------------------------------- # UDP server configuration #------------------------------------------------------------- HOST = "0.0.0.0" PORT = 49454 #------------------------------------------------------------- # serial RS232 interface #------------------------------------------------------------- ser = serial.Serial('/dev/ttyS0', 9600) #------------------------------------------------------------- # main loop #------------------------------------------------------------- serversock = socket(AF_INET, SOCK_DGRAM) ADDR = (HOST, PORT) serversock.bind(ADDR) print('waiting for UDP connection on port', PORT) while 1: data, sender_addr = serversock.recvfrom(128) ser.write(data)
Heinz schrieb: > a) UDP-Server in Python, der die UART bedient > Der Server lauscht auf einem UDP-Port und verarbeitet UDP Datenpakete > In den Datenpaketen stecken die Befehle, die dann per UART > an das angeschlossene Gerät gesendet werden Das gibt es schon fertig und hört auf den Namen "socat". https://unix.stackexchange.com/questions/453974/create-a-udp-to-serial-bridge-with-socat
Mein Aspekt war eigentlich nur, dass ich anregen wollte, die serielle Schnittstelle nicht direkt an die http POST Requests anzuknoten. Aber viele Wege führen nach Rom insofern ist deine Anmerkung absolut berechtigt ;)
andre schrieb: > pegel schrieb: >> Was spielt eigentlich der Raspi für eine Rolle in dem ganzen >> Projekt. >> >> Wenn schon ein STM32F4 im Spiel ist, sieh dir einfach das Beispiel >> "Webserver mit SSI and CGI" an. > > Dort nutze ich den LWIP WEB-Server leider wird der Speicher langsam > knap. dann lass doch die Seite[n] die die Befehle entgegen nimmt oder aktuelle Zustände liefert (am besten per JSON) auf dem STM. Oder sende die Daten per UDP aus dem PHP-Script vom Raspi zum STM. Sascha
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.