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:
1:a1d5c7a6acbc
Parent:
0:0cae29831d01
Child:
2:638c854c0695
--- a/main.cpp	Tue Feb 04 22:38:15 2014 +0000
+++ b/main.cpp	Wed Feb 05 10:50:15 2014 +0000
@@ -1,10 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corp.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v1.0 which accompany this distribution.
+ *
+ * The Eclipse Public License is available at
+ *    http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ *   http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *    Ian Craggs - initial API and implementation and/or initial documentation
+ *******************************************************************************/
+
 #include "mbed.h"
 #include "EthernetInterface.h"
 #include "C12832_lcd.h"
 
 #include "MQTTPacket.h"
 
-
 DigitalOut myled(LED2);
 C12832_LCD lcd;
 
@@ -53,13 +68,15 @@
     return 0;
 }
 
-int main() {
+int main()
+{
     EthernetInterface eth;
     eth.init(); //Use DHCP
     eth.connect();
     lcd.printf("IP Address is %s\n", eth.getIPAddress());
     
-    while(1) {
+    while(1) 
+    {
         myled = 1;
         publish();
         wait(0.2);