#!/usr/bin/python # coding: utf-8 import socket import threading import RPi.GPIO as GPIO from time import sleep def clear(): print(' \n' * 80) class ClientThread(threading.Thread): def __init__(self, ip, port, clientsocket): threading.Thread.__init__(self) self.ip = ip self.port = port self.clientsocket = clientsocket print("[+] Nouveau thread pour %s %s" % (self.ip, self.port, )) def run(self): print("Connection de %s %s" % (self.ip, self.port, )) r = self.clientsocket.recv(2048) print("Instruction recue: " + r + "...") port, etat = r.split(",") print("GPIO:"+port + " / Etat:"+etat+" ") # Envoi du signal HIGH sur la pate #4 GPIO pour coller le relai # Le GPIO est sur ON if etat == 'HIGH': print "Off" GPIO.output(int(port), GPIO.HIGH) sleep(1) exit() if etat == "LOW": print "On" GPIO.output(int(port), GPIO.LOW) sleep(1) exit() print("Client déconnecté...") tcpsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcpsock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) tcpsock.bind(("", 1111)) clear() print "(c)2016 - Dr CADIC - Serveur de pilotage des GPIO sur Pi ou PiZero avec le robot Pepper" # Mise en mode adequat BCM et definition du numéro de port GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) # Définit la sortie GPIO à activer GPIO.setup(4, GPIO.OUT) GPIO.setup(25, GPIO.OUT) GPIO.setup(22, GPIO.OUT) GPIO.setup(23, GPIO.OUT) while True: tcpsock.listen(10) print("En ecoute...") (clientsocket, (ip, port)) = tcpsock.accept() newthread = ClientThread(ip, port, clientsocket) newthread.start()