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)