2014-12-29 6 views
6

Ich möchte MQtt-Protokoll als Messing-Protokoll verwenden. Ich möchte die Mqtt Library auf dem Microcontroller TMS470 (Texas Instrument) mit CCS Compiler portieren. Da ich neu bei diesem Protokoll bin, kann mir jeder Körper vorschlagen, wie dieses Protokoll mit dem GPRS-Modul funktioniert. Ich habe eine Studie über MQtt gemacht. Aber ich weiß nicht, wie ich anfangen soll. Nach dem Öffnen des TCP/IP, wie Sie die Daten veröffentlichen oder abonnieren. In der Regel, wie die Bibliothek portiert wird. Und wo ich eine Bibliothek bekommen werdeMQTT-Bibliothek auf Mikrocontroller

Antwort

8

Sie können die Paho Embedded-Client-Bibliothek verwenden: https://eclipse.org/paho/clients/c/embedded.

Mit dieser Bibliothek müssen Sie nur die Logik zum Schreiben und Lesen von Ihrem GPRS-Modul (Netzwerk) und Zeitmanagement (Timer) implementieren.

Als Beispiel können Sie meine MQTT-Bibliothek für Arduino ansehen: https://github.com/256dpi/arduino-mqtt. Es gibt auch weitere Beispiele im eingebetteten Paho-Client-Repository.

+0

Danke, also MQTT ist nur messing Format, die mit GPRS senden müssen ?. Wenn nicht, können Sie mir sagen, was die Schnittstelle zwischen MQTT und GPRS ist. –

+0

MQTT ist ein Protokoll, das über einen TCP-Stream ausgeführt wird. Sie müssen Ihr Modem vorher mit AT-Befehlen konfigurieren. Die eingebettete Bibliothek wird eine nette Schnittstelle in Form einer Client-Klasse bereitstellen. Aber Sie müssen die Netzwerkschicht implementieren (wie Sie die Bytes selbst senden und empfangen), die Netzwerkklasse selbst. – 256dpi

6

Ich habe ähnliches Problem, ich verwende STM32F405 und GPRS-Modul (Quectell M95). Ich kann das MQTT-Paket nicht korrekt empfangen. Als meine Erfahrung, mit PAHO Embedded C-Bibliothek, kann ich eine Testnachricht zu iot.eclipse.org veröffentlichen.

Benjamin MQTT mit CC3200 Beispiel ist sehr gut, Konzept zu verstehen. Sehen Sie sich das Video-Tutorial an.

http://blog.benjamin-cabe.com/2014/08/26/mqtt-on-the-ti-cc3200-launchpad-thanks-to-paho-embedded-client

Wie ich verstehe, PAHO Embedded-C-Bibliothek serilaze MQTT Paket und Sie müssen Transportmethode zur Bibliothek implantieren. (Senden/Empfangen/Verbinden/Trennen)

Dies ist meine Funktion transport_sendPacketBuffer(), es legt nur Puffer zu GPRS-Modul. Verwenden Sie nicht printf. Ursache, MQTT-Paket kann 0x00 oder jede Art von Daten enthalten. "buflen" wird von der Bibliothek berechnet.

int transport_sendPacketBuffer(int out, char* buf, int buflen) 
{ 
    int i=0; 
    for(i=0;i<=buflen;i++){ 
      put(buf[i]); // Put One char to GPRS modem . 
    } 
} 

Bevor Sie Sie transport_data Buchse mit AT-Befehls anschließen müssen, gibt es mehrere Methoden zu verbinden. Es hängt von Ihrem GSM-Modul ab. AT + Command/TCP Dokumentation (Transparent/Multiple Connect) Wenn Sie eine Bibliothek für Ihr GSM-Modul haben, wird es auch sehr hilfreich sein.

Das ist einfach Quectel M95 TCP-Socket-Verbindung Befehl AT + QIOPEN

int CONNECT_SERVER_SOC (char *ip,int soc){ 

    char bf[128]; 
    sprintf(bf,"AT+QIOPEN=\"TCP\",\"%s\",%d\r\n",ip,soc); // ip= "198.41.30.241", port:1883 
                  // iot.eclipse.org 
    printf("%s",bf); 
} 

Wenn Sie recive Nachricht verarbeiten kann ich froh, das zu hören.

+0

Was ist IP, ist es die IP des Brokers? oder GPRS-Modul (es ist eigene iP) und was ist soc –

+1

Es ist IP-Adresse und Port des Brokers. Einfach pingen iot.eclipse.org. soc bedeutet port, 1883. iot.eclipse.org hat einen offenen Broker für Testprobleme. Sie können "MQTTLens" Plug-in für Chrome herunterladen. So können Sie mit dem iot.eclipse.org-Broker pub/sub-Nachrichten senden. –

Verwandte Themen