Ich möchte meinen TXT 4.0 Controller(s) gerne mit dem Bluetooth-Set (569021) oder dem Set (563931) verbinden.
(TXT 4.0 => server, bluetooth module is client)
Ein weiterer Wunsch ist, meinen TXT 4.0 drahtlos zu betreiben, also zwei TXT 4.0 Controller per Bluetooth (Wifi?) miteinander zu koppeln.
Ich habe bereits recherchiert, aber leider kein Beispiel in Pro Coding oder in Python gefunden, mit dem das gelingt.
Hat das vielleicht schon jemand erfolgreich umgesetzt?
mit freundlichen grüß Richard
Code: Alles auswählen
# TXT 4.0 WiFi Communication Example - Pro Coding
# Knop op server zet motor op client aan/uit via TCP/IP
# === server.py ===
# Draait op de eerste TXT 4.0 (server)
# Leest knopinput (bijv. drukknop) en stuurt aan/uit-commando naar client
import socket
import ftrobopy
import time
# Initialiseer verbinding met TXT hardware
txt = ftrobopy.ftrobopy()
txt.updateWait()
def run_server():
host = '0.0.0.0'
port = 9999
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen(1)
print("[Server] Wacht op verbinding...")
conn, addr = server_socket.accept()
print(f"[Server] Verbonden met: {addr}")
button = txt.input(1) # Verbind hier een drukknop aan ingang 1
try:
while True:
txt.updateWait()
pressed = button.bool()
if pressed:
print("[Server] Knop ingedrukt - motor AAN")
conn.send(b"ON")
else:
print("[Server] Knop niet ingedrukt - motor UIT")
conn.send(b"OFF")
time.sleep(0.5)
finally:
conn.close()
server_socket.close()
if __name__ == "__main__":
run_server()
# === client.py ===
# Draait op de tweede TXT 4.0 (client)
# Ontvangt aan/uit-signaal en stuurt motor aan
import socket
import time
import ftrobopy
# Initialiseer verbinding met TXT hardware
txt = ftrobopy.ftrobopy()
txt.updateWait()
def run_client():
host = '192.168.0.101' # IP van server-TXT
port = 9999
motor = txt.motor(1)
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, port))
print("[Client] Verbonden met server")
try:
while True:
data = client_socket.recv(1024)
if not data:
break
command = data.decode().strip()
print(f"[Client] Commando ontvangen: {command}")
if command == "ON":
motor.setSpeed(512)
elif command == "OFF":
motor.stop()
finally:
client_socket.close()
if __name__ == "__main__":
run_client()