PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zugriff auf Raspi-MQTT-Broker (Mosquitto) mit welcher Prog.Sprache am leichtesten??



stepbystep
05.11.2020, 07:35
Hallo,
möchte aus einem Programm heraus auf den MQTT-Server zugreifen und Kommandos wie lesen von Temperatursensordaten sowie schalten von GPIO Pins ausführen.
Gerne würde ich das in C++ machen, könnte per Programm dann einen Konsolenbefehl wie mosquitto_pub -d -t /home/data -m "on" absenden. Aber wie könnte ich Sensordaten empfangen?

Kann mich aber auch mit Python u.s.w. anfreunden. Für Python hätte ich schon die Software paho-MQTT in einem Buch ausgemacht. Ist das noch "der neueste Schrei"?

Welche Informationen oder welchen Rat könnt ihr mir geben? Bin auf alle Antworten gespannt.
Vielen Dank!

morob
05.11.2020, 08:32
:D du hast doch eine Antwort bekommen, ich finde das schon etwas ulkig es in zwei unterschiedlichen foren anzufragen.

Moppi
05.11.2020, 09:44
Wenn Python installiert ist, verwende es, wenn Du es verstehst.
So schwer wird es nicht sein, Programmierbeispiele dafür gibt es.

C/C++:
Ohne was davon zu verstehen, würde ich sagen, man ruft "mosquitto_pub" als "Programm" auf und übergibt diese Parameter: -d -t /home/data -m "on"
Dafür bräuchte ich jetzt sowas wie einen Shell-Aufruf (ähnlich Visual-Basic, wenn ich mich recht dran erinnere), dann übergebe ich dort das Kommando.

Dann google ich mal nach: "raspi shell c++" mal sehen, was das Unternehmen an Daten herausgibt.
Dann finde ich:

"Raspberry Pi programmieren mit C/C++ und BASH ... (https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiH9a3hjevsAhWHnaQKHQLDCTIQFjAAegQIBBAC&url=https%3A%2F%2Fdeveloper-blog.net%2Fraspberry-pi-programmieren-mit-c-c-und-bash%2F&usg=AOvVaw1u0Quv5-oW5ri1wQuvfkyM)"

Na ja, das ist es fast, aber nicht so ganz.

Nächster:

"Running shell command in C++ code - Raspberry Pi Forums (https://www.raspberrypi.org/forums/viewtopic.php?t=73630)"

Ahhhh, sieht schon besser aus!

Nächster:

"Shellvariable aus C++ heraus setzen und wieder einlesen ... (https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwiH9a3hjevsAhWHnaQKHQLDCTIQFjACegQICxAC&url=https%3A%2F%2Fforum-raspberrypi.de%2Fforum%2Fthread%2F46338-shellvariable-aus-c-heraus-setzen-und-wieder-einlesen%2F&usg=AOvVaw0CffHZmoPV4OTY5NeU6g2H)"


Auch nicht schlecht! Dort erfahre ich vielleicht etwas über die Handhabung der Shell-Umgebung.

Nächster:

"Ausführen von C++ - Datei mit Raspberry Pi - Stack Overrun (https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiH9a3hjevsAhWHnaQKHQLDCTIQFjADegQIARAC&url=https%3A%2F%2Fstackoverrun.com%2Fde%2Fq%2F1040 2410&usg=AOvVaw0FshwpMT24Su27Ygz-tsTw)"

Ok, das könnte es vielleicht sein?



MfG

stepbystep
05.11.2020, 11:33
Wenn Python installiert ist, verwende es, wenn Du es verstehst.
So schwer wird es nicht sein, Programmierbeispiele dafür gibt es.

C/C++:
Ohne was davon zu verstehen, würde ich sagen, man ruft "mosquitto_pub" als "Programm" auf und übergibt diese Parameter: -d -t /home/data -m "on"
Dafür bräuchte ich jetzt sowas wie einen Shell-Aufruf (ähnlich Visual-Basic, wenn ich mich recht dran erinnere), dann übergebe ich dort das Kommando.

Dann google ich mal nach: "raspi shell c++" mal sehen, was das Unternehmen an Daten herausgibt.
Dann finde ich:

"Raspberry Pi programmieren mit C/C++ und BASH ... (https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiH9a3hjevsAhWHnaQKHQLDCTIQFjAAegQIBBAC&url=https%3A%2F%2Fdeveloper-blog.net%2Fraspberry-pi-programmieren-mit-c-c-und-bash%2F&usg=AOvVaw1u0Quv5-oW5ri1wQuvfkyM)"

Na ja, das ist es fast, aber nicht so ganz.

Nächster:

"Running shell command in C++ code - Raspberry Pi Forums (https://www.raspberrypi.org/forums/viewtopic.php?t=73630)"

Ahhhh, sieht schon besser aus!

Nächster:

"Shellvariable aus C++ heraus setzen und wieder einlesen ... (https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwiH9a3hjevsAhWHnaQKHQLDCTIQFjACegQICxAC&url=https%3A%2F%2Fforum-raspberrypi.de%2Fforum%2Fthread%2F46338-shellvariable-aus-c-heraus-setzen-und-wieder-einlesen%2F&usg=AOvVaw0CffHZmoPV4OTY5NeU6g2H)"


Auch nicht schlecht! Dort erfahre ich vielleicht etwas über die Handhabung der Shell-Umgebung.

Nächster:

"Ausführen von C++ - Datei mit Raspberry Pi - Stack Overrun (https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiH9a3hjevsAhWHnaQKHQLDCTIQFjADegQIARAC&url=https%3A%2F%2Fstackoverrun.com%2Fde%2Fq%2F1040 2410&usg=AOvVaw0FshwpMT24Su27Ygz-tsTw)"

Ok, das könnte es vielleicht sein?



MfG



Danke!
Das ist aber doch nur zum publizieren und nicht zum anlegen von Subscriptions oder zum Empfangen von published messages!

Rabenauge
05.11.2020, 15:07
Du musst auf dem Pi beides laufen haben: den Broker (der kann auch wo anders laufen, aber wenn ich nen Pi im Spiel hab, nehm ich den auch dafür), aber du brauchst auch nen Subscriber zusätzlich.
Nur der kann nämlich die Daten vom Broker auch auslesen und verwursten.

Der Broker ist nur die Chat-Software. Der hostet die ganzen Channels und speichert die Nachrichten.
Schreiben und lesen müssen die Teilnehmer.

stepbystep
05.11.2020, 16:23
Hallo,
werde alles mit paho-MQTT mit Python machen. Ich glaube das ist am einfachsten. Bin am einlesen und habe schon Einführungscode gefunden.