Hallo, ich habe mit micropython zwei raspberry pi picos programmiert. Der erste erzeugt einen Wlan Hotspot und started dann in diesem hotspot einen socket server:
import network
import socket
import json
from time import sleep
from machine import Pin
# WAP-Betrieb
wap = network.WLAN(network.AP_IF)
led = Pin("LED")
# WAP-Konfiguration
wap.config(
essid="PICO_TEST",
password="12345678",
channel=6,
)
# WLAN-Interface aktivieren
wap.active(True)
sleep(20)
print(wap.ifconfig())
try:
server = socket.socket()
server.bind(("192.168.4.1", 50000))
# Ausgabe der Netzwerk-Konfiguration
server.listen()
while True:
led.on()
conn, addr = server.accept()
data = conn.recv(10240)
led.off()
print(data.decode)
data = data.decode()
data_splitted = data.split("#")
with open(data_splitted[0], "w") as f:
f.write(data_splitted[1] + "\n")
print(data_splitted)
except:
led.off()
finally:
wap.disconnect()
led.off()
server.close()Und ich habe einen, der in das wlan einsteigt und sich mit dem socket server verbindet:
# Bibliotheken laden
import network
import time
import socket
from machine import Pin
# Ländereinstellung
network.country('DE')
# Client-Betrieb
wlan = network.WLAN(network.STA_IF)
# WLAN-Interface aktivieren
wlan.active(True)
time.sleep(3)
print(wlan.ifconfig())
# WLAN-Verbindung herstellen
wlan.connect('PICO_TEST', '12345678')
# WLAN-Verbindungsstatus prüfen
led = Pin("LED")
print('Warten auf WLAN-Verbindung')
while not wlan.isconnected():
led.on()
time.sleep(0.5)
led.off()
time.sleep(0.5)
print(wlan.isconnected())
print('WLAN-Verbindung hergestellt / Status:', wlan.status())
time.sleep(3)
print("warda1")
client = socket.socket()
client.connect(("192.168.4.1", 50000))
try:
give = input("Zur data station senden: ")
give_name = input("Name unterer dem es zur data station gesendet wird: ")
for_sending = give_name + "#" + give
client.send(for_sending.encode())
print(data.decode())
finally:
client.close()
print("warda")Das Problem dabei ist, dass beim Hotspot-pico keine fehler meldung kommt, aber der client-pico zeigt beim verbinden zum socket einen OSError: ECONNABORTED:
Traceback (most recent call last):
File "<stdin>", line 29, in <module>
OSError: [Errno 103] ECONNABORTED
Wo liegt das Problem? Ich komme einfach nicht dahinter!
Freundliche Grüße