Sample MQTT program - simple send and receive (MQ Telemetry Transport) for GainSpan Wi-Fi module

Dependencies:   C12832 GSwifiInterface MQTT mbed-rtos mbed

Fork of HelloMQTT by MQTT

mbedのMQTTグループで保守されているMQTTライブラリを GainSpan Wi-Fi モジュールへ対応させたサンプルです。

MQTT (MQ Telemetry Transport) とは、IoTやM2M向け デバイス間通信のためのプロトコルです。

MQTTサーバーには http://iot.eclipse.org/ のサンドボックスを使います。 送信したメッセージをエコーバックしてくるだけの動作をします。


mbed Application Board を使う場合は次の行のコメントアウトを外すとLCDへ表示するようになる。

#define MBED_APPLICATION_BOARD

GainSpanモジュールの接続ピンについては次の行で指定する。

    gs = new GSwifiInterface(p9, p10, NC, NC, p30, NC, 9600); //tx, rx, cts, rts, reset, alarm, baud

Wi-Fiアクセスポイントは次の行で指定する。

#define SEC  GSwifi::SEC_WPA_PSK
#define SSID "SSID"
#define PASS "PASSPHRASE"
Revision:
3:7a6a899de7cc
Parent:
2:638c854c0695
Child:
5:4a257f6ac09a
Child:
6:e4c690c45021
--- a/main.cpp	Wed Apr 30 13:16:09 2014 +0000
+++ b/main.cpp	Tue May 06 09:45:22 2014 +0000
@@ -153,13 +153,13 @@
     
     lcd.printf("Version is %f\n", version);
               
-    MQTT::Client<IPStack, Countdown>client = MQTT::Client<IPStack, Countdown>(&ipstack);
+    MQTT::Client<IPStack, Countdown> client = MQTT::Client<IPStack, Countdown>(ipstack);
+    
+    client.setConnectionLostHandler(connect);
 
     MQTT::Client<IPStack, Countdown>::connectionLostInfo info = {&client, &ipstack};
     int rc = connect(&info);
     
-    client.setConnectionLostHandler(connect);
-    
     rc = client.subscribe(topic, MQTT::QOS1, messageArrived);   
     if (rc != 0)
         lcd.printf("rc from MQTT subscribe is %d\n", rc);