IBMIoTClientEthernetExample for WIZwiki-W7500 platform

Dependencies:   MQTT WIZnetInterface mbed-src

Files at this revision

API Documentation at this revision

Comitter:
hkjung
Date:
Tue Sep 15 00:43:05 2015 +0000
Parent:
1:ca58ca10625e
Child:
3:ddb8c56df587
Commit message:
.

Changed in this revision

MQTT.lib Show annotated file Show diff for this revision Revisions of this file
WIZnetInterface.lib Show annotated file Show diff for this revision Revisions of this file
WIZwiki-W7500.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-src.lib Show annotated file Show diff for this revision Revisions of this file
--- a/MQTT.lib	Sun Sep 06 23:54:30 2015 +0000
+++ b/MQTT.lib	Tue Sep 15 00:43:05 2015 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/users/hkjung/code/MQTT/#72659bc4048b
+http://developer.mbed.org/users/hkjung/code/MQTT/#1de971b62543
--- a/WIZnetInterface.lib	Sun Sep 06 23:54:30 2015 +0000
+++ b/WIZnetInterface.lib	Tue Sep 15 00:43:05 2015 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/teams/WIZnet/code/WIZnetInterface/#bda61525ac71
+http://developer.mbed.org/teams/WIZnet/code/WIZnetInterface/#0c6cbce7c860
--- a/WIZwiki-W7500.h	Sun Sep 06 23:54:30 2015 +0000
+++ b/WIZwiki-W7500.h	Tue Sep 15 00:43:05 2015 +0000
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2015 WIZnet co., ltd.
+ * Copyright (c) 2015 WIZnet Co., Ltd.
  * 
  * Contributors:
  *    Eric Jung
@@ -8,14 +8,15 @@
 #ifndef WIZWIKI_W7500_H
 #define WIZWIKI_W7500_H
 
-PwmOut r(LED_RED);
-PwmOut g(LED_GREEN);
-PwmOut b(LED_BLUE);
-//DigitalOut  r(LED_RED);
-//DigitalOut  g(LED_GREEN);
-//DigitalOut  b(LED_BLUE);
+DigitalOut  r(LED_RED);
+DigitalOut  g(LED_GREEN);
+DigitalOut  b(LED_BLUE);
 AnalogIn    ain0(A0);
-AnalogIn    ain1(A1);
+//AnalogIn    ain1(A1);
+
+//PwmOut r(LED_RED);
+//PwmOut g(LED_GREEN);
+//PwmOut b(LED_BLUE);
 
 #define OFF 0
 #define ON  1
--- a/main.cpp	Sun Sep 06 23:54:30 2015 +0000
+++ b/main.cpp	Tue Sep 15 00:43:05 2015 +0000
@@ -3,14 +3,30 @@
 #include "MQTTClient.h"
 #include "MQTTEthernet.h"
 
+Serial pc(USBTX, USBRX);
+
 // Update this to the next number *before* a commit
 #define __APP_SW_REVISION__ "1"
 
 // Configuration values needed to connect to IBM IoT Cloud
-#define ORG         "pya466"                // For a registered connection, replace with your org
-#define ID          "0008DC1D69F3"          // For a registered connection, replace with your id
-#define AUTH_TOKEN  "RS-NqB7J72H8rwIA7Q"    // For a registered connection, replace with your auth-token
-#define TYPE        "WIZwiki-W7500_Eric"    // For a registered connection, replace with your type
+#define QUICKSTARTMODE      1
+#if (QUICKSTARTMODE)
+    #define ORG "quickstart"             // For a registered connection, replace with your org
+    #define ID ""                        // For a registered connection, replace with your id
+    #define AUTH_TOKEN ""                // For a registered connection, replace with your auth-token
+    #define TYPE DEFAULT_TYPE_NAME       // For a registered connection, replace with your type
+#else
+    #define ORG         "l24fbu"                // For a registered connection, replace with your org
+    #define ID          "0008DC1D69F3"          // For a registered connection, replace with your id
+    #define AUTH_TOKEN  "4uvlg2&uQRO-WVf_14"    // For a registered connection, replace with your auth-token
+    #define TYPE        "WIZwiki-W7500"    // For a registered connection, replace with your type
+#endif
+
+
+#if defined(TARGET_WIZwiki_W7500)
+//#warning "Compiling for mbed WIZwiki-W7500"
+#include "WIZwiki-W7500.h"
+#endif
 
 #define MQTT_PORT 1883
 #define MQTT_TLS_PORT 8883
@@ -19,11 +35,15 @@
 #define MQTT_MAX_PACKET_SIZE 250
 
 #if defined(TARGET_WIZwiki_W7500)
-#warning "Compiling for mbed WIZwiki-W7500"
-#include "WIZwiki-W7500.h"
+// PWM: RGB LED control
+void off();
+void red();
+void green();
+void blue();
+//void yellow();
 #endif
 
-bool quickstartMode = true;
+bool quickstartMode = QUICKSTARTMODE;
 char org[11] = ORG;
 char type[30] = TYPE;
 char id[30] = ID;                 // mac without colons
@@ -32,39 +52,6 @@
 bool connected = false;
 int blink_interval = 0;
 
-void baud(int baudrate)
-{
-    Serial s(USBTX, USBRX);
-    s.baud(baudrate);
-}
-
-// PWM: RGB LED control
-void off()
-{
-    r = g = b = 1.0;    // 1 is off, 0 is full brightness
-}
-
-void red()
-{
-    r = 0.7;
-    g = 1.0;
-    b = 1.0;    // 1 is off, 0 is full brightness
-}
-
-void yellow()
-{
-    r = 0.7;
-    g = 0.7;
-    b = 1.0;    // 1 is off, 0 is full brightness
-}
-
-void green()
-{
-    r = 1.0;
-    g = 0.7;
-    b = 1.0;    // 1 is off, 0 is full brightness
-}
-
 int connect(MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTEthernet* ipstack)
 {
     const char* iot_ibm = ".messaging.internetofthings.ibmcloud.com";
@@ -74,8 +61,7 @@
     //const char* iot_ibm = "23.246.232.210";
     //char hostname[strlen(iot_ibm) + 1];
     //sprintf(hostname, "%s", iot_ibm);
-    
-    //DEBUG("hostname is %s\n", hostname);
+        
     DEBUG("hostname is %s\r\n", hostname);
     int rc = ipstack->connect(hostname, IBM_IOT_PORT);
     if (rc != 0)
@@ -83,8 +69,7 @@
 
     // Construct clientId - d:org:type:id
     char clientId[strlen(org) + strlen(type) + strlen(id) + 5];
-    sprintf(clientId, "d:%s:%s:%s", org, type, id);
-    //DEBUG("clientid is %s\n", clientId);
+    sprintf(clientId, "d:%s:%s:%s", org, type, id);    
     DEBUG("clientid is %s\r\n", clientId);
 
     // MQTT Connect
@@ -99,8 +84,9 @@
 
     if ((rc = client->connect(data)) == 0) {
         connected = true;
+#if defined(TARGET_WIZwiki_W7500)       
         green();
-        //displayMessage("Connected");
+#endif  
         printf("Connected\r\n");
         wait(2);
     }
@@ -133,8 +119,7 @@
         red();
 #endif
         int timeout = getConnTimeout(++retryAttempt);
-        WARN("Retry attempt number %d waiting %d\r\n", retryAttempt, timeout);
-        //WARN("Retry attempt number %d waiting %d\n", retryAttempt, timeout);
+        WARN("Retry attempt number %d waiting %d\r\n", retryAttempt, timeout);        
 
         // if ipstack and client were on the heap we could deconstruct and goto a label where they are constructed
         //  or maybe just add the proper members to do this disconnect and call attemptConnect(...)
@@ -153,20 +138,8 @@
     char* pubTopic = "iot-2/evt/status/fmt/json";
 
     char buf[250];    
-    /*
-    sprintf(buf,
-     "{\"d\":{\"myName\":\"IoT mbed\",\"accelX\":%0.4f,\"accelY\":%0.4f,\"accelZ\":%0.4f,\"temp\":%0.4f,\"joystick\":\"%s\",\"potentiometer1\":%0.4f,\"potentiometer2\":%0.4f}}",
-            MMA.x(), MMA.y(), MMA.z(), sensor.temp(), joystickPos, ain1.read(), ain2.read());
-    */
-    /*
-    sprintf(buf,
-            "{\"d\":{\"myName\":\"IoT mbed\",\"temp\":%0.4f,\"light\":%0.4f}}",
-            ain0.read(), ain1.read());
-    */
-        
-    sprintf(buf,
-            "{\"d\":{\"myName\":\"IoT mbed\",\"temp\":%0.4f,\"light\":%0.4f}}",
-            ain0.read(), ain1.read());
+    
+    sprintf(buf, "{\"d\":{\"myName\":\"IoT mbed\",\"potentiometer\":%0.4f}}", ain0.read());
             
     message.qos = MQTT::QOS0;
     message.retained = false;
@@ -214,31 +187,31 @@
             }
         }
     } else
-        WARN("Unsupported command: %.*s\r\n", len, start);
-        //WARN("Unsupported command: %.*s\n", len, start);
+        WARN("Unsupported command: %.*s\r\n", len, start);        
 }
 
 int main (void)
 {
-    baud(115200);
-
-    // Board init indicator : Init success
+    pc.baud(115200);   
+    
+#if defined(TARGET_WIZwiki_W7500)
+    // Board init indicator : Init success    
     red();
     wait(0.2);
-    yellow();
+    blue();
     wait(0.2);
     green();
     wait(0.2);
     off();
     wait(0.2);
     // end of board init indicator
+#endif
 
-    quickstartMode = (strcmp(org, "quickstart") == 0);
-    //displayMessage("Connecting");
+    quickstartMode = (strcmp(org, "quickstart") == 0);    
     printf("Connecting...\r\n");
 
 #if defined(TARGET_WIZwiki_W7500)
-    yellow();
+    blue();
 #endif
 
     MQTTEthernet ipstack;
@@ -246,7 +219,7 @@
 
     if (quickstartMode) {
         getMac(ipstack.getEth(), id, sizeof(id));        
-        //printf("%s\r\n", id); //??        
+        //printf("getMac: %s\r\n", id);        
     }
     
     attemptConnect(&client, &ipstack);
@@ -255,8 +228,7 @@
     {
         int rc = 0;
         if ((rc = client.subscribe("iot-2/cmd/+/fmt/json", MQTT::QOS1, messageArrived)) != 0)
-            WARN("rc from MQTT subscribe is %d\r\n", rc); 
-            //WARN("rc from MQTT subscribe is %d\n", rc); 
+            WARN("rc from MQTT subscribe is %d\r\n", rc);             
     }
     
     blink_interval = 0;
@@ -264,18 +236,58 @@
     
     while(true) 
     {
-        //if (++count == 100)
-        if (++count == 500)
-        {               // Publish a message every second
-        
-            //printf("A0: %0.4f, A1: %0.4f\r\n", ain0.read(), ain1.read());
+        if (++count == 100)        
+        {               // Publish a message every second        
+            
+            //printf("A0: %0.4f\r\n", ain0.read());
         
             if (publish(&client, &ipstack) != 0) 
                 attemptConnect(&client, &ipstack);   // if we have lost the connection
             count = 0;
         }
         
+        
+        // LED Blink: By Bluemix
+        
+        if (blink_interval == 0)            
+            off();
+        else if (count % blink_interval == 0)            
+            b = !b;
+        
         client.yield(10);  // allow the MQTT client to receive messages    
     }   
 }
 
+#if defined(TARGET_WIZwiki_W7500)
+// PWM: RGB LED control -> DigitalOut
+void off()
+{
+    //r = g = b = 1.0;    // 1 is off, 0 is full brightness
+    r = g = b = 1;
+}
+
+void red()
+{
+    //r = 0.7; g = 1.0; b = 1.0;    // 1 is off, 0 is full brightness
+    r = 0; g = 1; b = 1;
+}
+
+void green()
+{
+    //r = 1.0; g = 0.7; b = 1.0;    // 1 is off, 0 is full brightness
+    r = 1; g = 0; b = 1;
+}
+
+void blue()
+{
+    //r = 1.0; g = 1.0; b = 0.7;    // 1 is off, 0 is full brightness
+    r = 1; g = 1; b = 0;
+}
+
+
+//void yellow()
+//{
+    //r = 0.7; g = 0.7; b = 1.0;    // 1 is off, 0 is full brightness
+//}
+#endif
+
--- a/mbed-src.lib	Sun Sep 06 23:54:30 2015 +0000
+++ b/mbed-src.lib	Tue Sep 15 00:43:05 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed-src/#30f9462b5296
+http://mbed.org/users/mbed_official/code/mbed-src/#9c82b0f79f3d