Forum: Mikrocontroller und Digitale Elektronik Python Skript geschickt programmieren


von sunshineh (Gast)


Lesenswert?

Hallo,
ich habe mehrere Android Nano Boards, die über das Netzwerk 
MQTT-Nachrichten versenden. Als Empfänger gibt es ein Raspberry Pi, der 
mit folgendem python-Code alle Nachrichten empfangen soll:
1
import paho.mqtt.client as mqtt
2
def on_connect(client, userdata, flags, rc):
3
   client.subscribe("#")
4
5
def on_message(client, userdata, msg):
6
   print(msg.topic + " " + str(msg.payload))
7
8
client = mqtt.Client()
9
client.on_connect = on_connect
10
client.on_message = on_message
11
12
client.connect("localhost",1883,60)
13
14
client.loop_forever()

Dies funktioniert leider sehr, sehr unzuverlässig. Ich erhalte teilweise 
die Nachrichten, aber nicht von allen Boards. Von manchen gar nicht 
mehr, obwohl sie laufen und senden.

1.Was kann ich verbessern?
2.Wie ist der Code, überfordert der meinen Raspberry? Ich habe mehrere 
Python Skripte die parallel was auf meinem Raspberry überwachen sollen.

von Alex G. (dragongamer)


Lesenswert?

Ist die Kommunikation TCP oder UDP-basiert?

von Chris (Gast)


Lesenswert?

Ist die Architektur, dass der Raspi als Broker agiert und die ardu's 
sind Clients? Oder hab ich das falsch verstanden?

Was heißt Netzwerk?
Ethernet? W-LAN?

Habe mit meinem Raspi und MQTT 0 Probleme.

von Michael U. (amiga)


Lesenswert?

Hallo,

Chris schrieb:
> Habe mit meinem Raspi und MQTT 0 Probleme.

Hier läuft Mosquitto als Broker auf dem RasPi-3, dazu FHEM und MPD 
sendet lokal einen ICECast-Stream, das lastet den RasPi im Durchschnitt 
mit 50% aus.
MQTT-Clients sind u.a. ca. 12 ESP8266, auch da geht nichts verloren 
solange das WLAN da ist. WLAN macht allerdings mein Kabel-Router, nicht 
der RasPi.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Sascha W. (sascha-w)


Lesenswert?

sunshineh schrieb:
> Hallo,
> ich habe mehrere Android Nano Boards,
kenn ich nicht - Link?
> die über das Netzwerk
> MQTT-Nachrichten versenden. Als Empfänger gibt es ein Raspberry Pi, der
> mit folgendem python-Code alle Nachrichten empfangen soll:
>
>
1
> ... snip
2
>
>
> Dies funktioniert leider sehr, sehr unzuverlässig. Ich erhalte teilweise
> die Nachrichten, aber nicht von allen Boards. Von manchen gar nicht
> mehr, obwohl sie laufen und senden.
Woher weißt du das die senden?
>
> 1.Was kann ich verbessern?
An dem was ich oben sehe nichts
> 2.Wie ist der Code, überfordert der meinen Raspberry?
was sagt denn die Prozessorauslastung? Bei sowas wie oben dreht der nur 
Däumchen.
> Ich habe mehrere
> Python Skripte die parallel was auf meinem Raspberry überwachen sollen.

Hast du mal mit einem Client auf dem PC geschaut ob die Nachrichten 
ankommen?

Sascha

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.