Forum: Mikrocontroller und Digitale Elektronik Python Skript geschickt programmieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von sunshineh (Gast)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht lesenswert
Ist die Kommunikation TCP oder UDP-basiert?

von Chris (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.