receive message via BLE and send data to treasure data via postback API using wifi

Dependencies:   BSP_B-L475E-IOT01

Files at this revision

API Documentation at this revision

Comitter:
JunkoNakajima
Date:
Tue Nov 27 06:35:39 2018 +0000
Parent:
38:4bdc241ba9a6
Commit message:
first version

Changed in this revision

BSP_B-L475E-IOT01.lib Show annotated file Show diff for this revision Revisions of this file
mbed-os-treasuredata-rest.lib Show annotated file Show diff for this revision Revisions of this file
mbed_app.json Show annotated file Show diff for this revision Revisions of this file
source/main.cpp Show annotated file Show diff for this revision Revisions of this file
wifi-ism43362.lib Show annotated file Show diff for this revision Revisions of this file
diff -r 4bdc241ba9a6 -r 8990b0ce7233 BSP_B-L475E-IOT01.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BSP_B-L475E-IOT01.lib	Tue Nov 27 06:35:39 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/ST/code/BSP_B-L475E-IOT01/#0c70bc6d2dc0
diff -r 4bdc241ba9a6 -r 8990b0ce7233 mbed-os-treasuredata-rest.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-os-treasuredata-rest.lib	Tue Nov 27 06:35:39 2018 +0000
@@ -0,0 +1,1 @@
+https://github.com/BlackstoneEngineering/mbed-os-treasuredata-rest/#e9899898b5e7f2bc58f123825e67425ac1430a0b
diff -r 4bdc241ba9a6 -r 8990b0ce7233 mbed_app.json
--- a/mbed_app.json	Wed Jul 26 14:47:11 2017 +0200
+++ b/mbed_app.json	Tue Nov 27 06:35:39 2018 +0000
@@ -1,16 +1,34 @@
 {
+    "macros": [ "MBED_ALL_STATS_ENABLED"],
+    "config": {
+        "wifi-shield": {
+            "help": "Options are internal, WIFI_ESP8266, WIFI_IDW0XX1",
+            "value": "WIFI_ISM43362"
+        },
+        "wifi-ssid": {
+            "help": "WiFi SSID",
+            "value": "\"SSID\""
+        },
+        "wifi-password": {
+            "help": "WiFi Password",
+            "value": "\"PASSWORD\""
+        },
+        "api-key":{
+            "help":  "REST API Key for Treasure Data",
+            "value": "\"WRITE API KEY\""
+        },
+        "thread-stack-size": {
+            "value": 2000
+        }
+    },
     "target_overrides": {
-        "K64F": {
-            "target.features_add": ["BLE"],
-            "target.extra_labels_add": ["ST_BLUENRG"]
-        },
-        "NUCLEO_F401RE": {
-            "target.features_add": ["BLE"],
-            "target.extra_labels_add": ["ST_BLUENRG"]
-        },
         "DISCO_L475VG_IOT01A": {
             "target.features_add": ["BLE"],
             "target.extra_labels_add": ["ST_BLUENRG"]
-        }
+            },
+        "*": {
+            "platform.stdio-convert-newlines": true
+            }
     }
 }
+
diff -r 4bdc241ba9a6 -r 8990b0ce7233 source/main.cpp
--- a/source/main.cpp	Wed Jul 26 14:47:11 2017 +0200
+++ b/source/main.cpp	Tue Nov 27 06:35:39 2018 +0000
@@ -16,18 +16,41 @@
 
 #include <events/mbed_events.h>
 #include <mbed.h>
+#include "mbed.h"
+#include "TCPSocket.h"
+#include "wifi-ism43362/ISM43362Interface.h"
+#include "treasure-data-rest.h"
 #include "ble/BLE.h"
 #include "LEDService.h"
+#define BUFF_SIZE   200
 
 DigitalOut alivenessLED(LED1, 0);
 DigitalOut actuatedLED(LED2, 0);
+ISM43362Interface net;
+LEDService *ledServicePtr;
 
 const static char     DEVICE_NAME[] = "LED";
 static const uint16_t uuid16_list[] = {LEDService::LED_SERVICE_UUID};
+static EventQueue eventQueue(/* event count */ 10 * EVENTS_EVENT_SIZE);
+char payload_buff  [BUFF_SIZE] = {0};
+int x = 0;
+TreasureData_RESTAPI* payload   = new TreasureData_RESTAPI(&net,"iot_test","payload",  MBED_CONF_APP_API_KEY);
 
-static EventQueue eventQueue(/* event count */ 10 * EVENTS_EVENT_SIZE);
+void ConnectToWifi(){
+    // Connect to Wifi
+    printf("\nConnecting to %s...\n", MBED_CONF_APP_WIFI_SSID);
+    int ret = net.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
+    if (ret != 0) {
+        printf("\nConnection error: %d\n", ret);
+    }
 
-LEDService *ledServicePtr;
+    printf("Success\n\n");
+    printf("MAC: %s\n", net.get_mac_address());
+    printf("IP: %s\n", net.get_ip_address());
+    printf("Netmask: %s\n", net.get_netmask());
+    printf("Gateway: %s\n", net.get_gateway());
+    printf("RSSI: %d\n\n", net.get_rssi());
+}
 
 void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params)
 {
@@ -49,6 +72,13 @@
 void onDataWrittenCallback(const GattWriteCallbackParams *params) {
     if ((params->handle == ledServicePtr->getValueHandle()) && (params->len == 1)) {
         actuatedLED = *(params->data);
+        // Construct strings to send
+        x = sprintf(payload_buff,"{\"payload\":\"%u\"}", *(params->data));
+        payload_buff[x]=0; // null terminate the string
+
+        // Send data to Treasure data
+        printf("\r\n Sending Payload: '%s'\r\n",payload_buff);
+        payload->sendData(payload_buff,strlen(payload_buff));
     }
 }
 
@@ -97,12 +127,15 @@
 void scheduleBleEventsProcessing(BLE::OnEventsToProcessCallbackContext* context) {
     BLE &ble = BLE::Instance();
     eventQueue.call(Callback<void()>(&ble, &BLE::processEvents));
+
 }
 
 int main()
 {
+    ConnectToWifi();
+    
     eventQueue.call_every(500, blinkCallback);
-
+    
     BLE &ble = BLE::Instance();
     ble.onEventsToProcess(scheduleBleEventsProcessing);
     ble.init(bleInitComplete);
diff -r 4bdc241ba9a6 -r 8990b0ce7233 wifi-ism43362.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wifi-ism43362.lib	Tue Nov 27 06:35:39 2018 +0000
@@ -0,0 +1,1 @@
+https://github.com/ARMmbed/wifi-ism43362/#9ee7fb19814e46b6e90b1eaec26ef36b523ec024