Ich versuche, Socket-Programmierung in Python zu schreiben. Immer wenn der Client eine Nachricht an den Server sendet, sollte die LED anfangen zu blinken. Ich laufe Server-Programm auf Raspberry Pi und Client auf dem PC.Python Socket Programmierung und LED-Schnittstelle
Hier ist der Code des Servers, der auf meinem Pi läuft.
#!/usr/bin/python # This is server.py file
import socket # Import socket module
import time
import RPi.GPIO as GPIO # Import GPIO library
GPIO.setmode(GPIO.BOARD) # Use board pin numbering
GPIO.setup(11, GPIO.OUT) # Setup GPIO Pin 11 to OUT
GPIO.output(11,False) # Init Led off
def led_blink():
while 1:
print "got msg" # Debug msg
GPIO.output(11,True) # Turn on Led
time.sleep(1) # Wait for one second
GPIO.output(11,False) # Turn off Led
time.sleep(1) # Wait for one second
GPIO.cleanup()
s = socket.socket() # Create a socket object
host = "192.168.0.106" # Get local machine name
port = 12345 # Port
s.bind((host, port)) # Bind to the port
s.listen(5) # Now wait for client connection.
while True:
c, addr = s.accept() # Establish connection with client.
print 'Got connection from', addr
msg = c.recv(1024)
msg1 = 10
if msg == msg1:
led_blink()
print msg
c.close()
Hier ist der Code des Clients, der auf meinem PC läuft.
#!/usr/bin/python # This is client.py file
import socket # Import socket module
s = socket.socket() # Create a socket object
host = "192.168.0.106" # Get local machine name
port = 12345 # port
s.connect((host, port))
s.send('10')
s.close
Ich kann die Nachricht vom Client empfangen, aber nicht in der Lage, die LED zu blinken. Entschuldigung, ich bin neu in der Codierung. Ich habe ziemlich gute Kenntnisse in Hardware, aber nicht in Software. Bitte helfen Sie mir.
Sie vergleichen eine Zeichenfolge mit einer Zahl. Ersetzen Sie Ihren Servercode durch 'msg1 =" 10 "'. Wenn das nicht funktioniert, siehst du die "msg" in deiner Konsole? – Goufalite
Innerhalb Ihrer 'led_blink()' Funktion ist eine 'while 1' Schleife. Ist das deine Absicht? – rocksteady
Yeah !! Nach dem Ersetzen durch eine Schnur kann ich die LED blinken lassen. Danke – Arunkrishna