diff --git a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/META-INF/permissions.xml b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/META-INF/permissions.xml index c59a0b9798..4966eba2e2 100644 --- a/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/META-INF/permissions.xml +++ b/components/iot-plugins/arduino-plugin/org.wso2.carbon.device.mgt.iot.arduino.api/src/main/webapp/META-INF/permissions.xml @@ -31,16 +31,16 @@ control bulb - device-mgt/user/operations + /device-mgt/user/operations /device/*/bulb POST arduino_user get controls - device-mgt/user/operations + /device-mgt/user/operations /device/*/controls - POST + GET arduino_device diff --git a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/ArduinoBoardSketch.h b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/ArduinoBoardSketch.h index d52792dfca..62d01f1bcb 100644 --- a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/ArduinoBoardSketch.h +++ b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/ArduinoBoardSketch.h @@ -39,8 +39,14 @@ #define DEVICE_ID "${DEVICE_ID}" #define DEVICE_TOKEN "${DEVICE_TOKEN}" #define REFRESH_DEVICE_TOKEN "${DEVICE_REFRESH_TOKEN}" +#define DEVICE_TYPE "arduino" +#define TIME 0 +#define SUPER_TENANT "carbon.super" -#define SERVICE_EPOINT "/arduino/controller/" +#define DAS_SERVICE_EPOINT "/endpoints/temperature-http?deviceId=${DEVICE_ID}" +#define DAS_SERVICE_TEPOINT "/endpoints/t/${TENANT_DOMAIN}/temperature-http?deviceId=${DEVICE_ID}" + +#define IOT_SERVICE_EPOINT "/arduino/device/${DEVICE_ID}/controls" #define POLL_INTERVAL 1000 #define PUSH_INTERVAL 10000 @@ -49,19 +55,21 @@ #define SERVICE_PORT 9763 //http port of iot server -byte server[4] = {192,168,43,168}; //Ip address of iot server -byte deviceIP[4] = { 192, 168, 43,11 }; //Ststic ip address of arduino +byte server[4] = {192,168,1,10}; //Ip address of iot server +byte deviceIP[4] = { 192, 168, 1,110 }; //Ststic ip address of arduino byte dns2[] = { 8, 8, 8, 8 }; //Ststic dns of arduino byte subnet[] = { 255, 255, 255, 0 }; //Ststic subnet of arduino -byte gateway[] = { 192, 168, 43, 1 }; //Ststic gateway of arduino +byte gateway[] = { 192, 168, 1, 1 }; //Ststic gateway of arduino String host, jsonPayLoad, replyMsg; String responseMsg, subStrn; -double cpuTemperature =0; +double cpuTemperature = 0; static unsigned long pushTimestamp = 0; static unsigned long pollTimestamp = 0; +char charBuf[10]; +String payLoad; #endif diff --git a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/ArduinoBoardSketch.ino b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/ArduinoBoardSketch.ino index 50627d074d..7f0e6941ab 100644 --- a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/ArduinoBoardSketch.ino +++ b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/ArduinoBoardSketch.ino @@ -80,4 +80,4 @@ void loop() // //Serial.println("LOOPING"); wdt_reset(); -} \ No newline at end of file +} diff --git a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/Connect.ino b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/Connect.ino index dbc838a891..a97852a68c 100644 --- a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/Connect.ino +++ b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/Connect.ino @@ -97,11 +97,16 @@ void setupResource(){ host = "Host: " + hostIP + ":" + port; if(DEBUG) Serial.println(host); - jsonPayLoad = "{\"owner\":\""; + jsonPayLoad = "{\"event\":{\"metaData\":"; + jsonPayLoad += "{\"owner\":\""; jsonPayLoad += String(DEVICE_OWNER); + jsonPayLoad += "\",\"deviceType\":\""; + jsonPayLoad += String(DEVICE_TYPE); jsonPayLoad += "\",\"deviceId\":\""; jsonPayLoad += String(DEVICE_ID); - jsonPayLoad += "\",\"reply\":\""; + jsonPayLoad += "\",\"time\":"; + jsonPayLoad += String(TIME); + jsonPayLoad += "}, \"payloadData\":{"; if(DEBUG) { Serial.print("JSON Payload: "); @@ -155,4 +160,5 @@ void setupClient(){ } if(CON_DEBUG) Serial.println(F("client Connection failed")); } -} \ No newline at end of file +} + diff --git a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/PollServer.ino b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/PollServer.ino index 486fad7a17..040790f2df 100644 --- a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/PollServer.ino +++ b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/PollServer.ino @@ -23,37 +23,42 @@ void readControls() { Serial.println("Started.."); client.fastrprint(F("GET ")); - client.fastrprint(SERVICE_EPOINT); - client.fastrprint(F("readcontrols")); + client.fastrprint(IOT_SERVICE_EPOINT); client.fastrprint(F(" HTTP/1.1")); client.fastrprint(F("\n")); - client.fastrprint(host.c_str()); + client.fastrprint(host.c_str());client.fastrprint(F("\n")); + client.fastrprint(F("Authorization: Bearer ")); client.fastrprint(F(DEVICE_TOKEN)); client.fastrprint(F("\n")); client.fastrprint(F("\n")); - client.fastrprint(DEVICE_ID); - client.fastrprint(F("owner: ")); - client.fastrprint(DEVICE_OWNER); - client.fastrprint(F("\n")); - client.fastrprint(F("deviceId: ")); - client.fastrprint(F(DEVICE_ID)); - client.fastrprint(F("\n")); - client.fastrprint(F("deviceId: ")); client.fastrprint(F("protocol: HTTP\n")); + client.println(); + if(DEBUG) { + Serial.print("GET "); + Serial.print(IOT_SERVICE_EPOINT); + Serial.print(" HTTP/1.1"); Serial.println(); + Serial.print(host); Serial.println(); + Serial.print("Content-Type: application/json"); Serial.println(); + Serial.println(); + } delay(1000); - Serial.println("Ended.."); + while (client.available()) { char response = client.read(); + if(DEBUG) Serial.print(response); responseMsg += response; } + Serial.println(); + Serial.println("Ended.."); int index = responseMsg.lastIndexOf(":"); int newLine = responseMsg.lastIndexOf("\n"); subStrn = responseMsg.substring(index + 1); responseMsg = responseMsg.substring(newLine + 1, index); if(DEBUG) { + Serial.print("Polling Response: "); Serial.print(responseMsg); Serial.println(); Serial.println("-------------------------------"); @@ -70,6 +75,7 @@ void readControls() { digitalWrite(6, LOW); } + responseMsg = ""; } diff --git a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/PushData.ino b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/PushData.ino index 6b95b41558..6d4a529802 100644 --- a/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/PushData.ino +++ b/features/iot-plugins-feature/arduino-plugin-feature/org.wso2.carbon.device.mgt.iot.arduino.feature/src/main/resources/agent/PushData.ino @@ -25,20 +25,22 @@ ***********************************************************************************************/ void pushData(){ - String payLoad = "Temp"; - payLoad = payLoad + "\",\"value\":\""; - - - payLoad+=cpuTemperature; - - - payLoad += "\"}"; + + payLoad = "\"temperature\":"; + payLoad += dtostrf(cpuTemperature, 3, 2, charBuf); + payLoad += "}}}"; client.fastrprint(F("POST ")); - client.fastrprint(SERVICE_EPOINT); client.fastrprint(F("pushdata")); + if (strcmp(TENANT_DOMAIN, SUPER_TENANT) == 0) { + client.fastrprint(DAS_SERVICE_EPOINT); + } else { + client.fastrprint(DAS_SERVICE_TEPOINT); + } client.fastrprint(F(" HTTP/1.1")); client.fastrprint(F("\n")); client.fastrprint(host.c_str()); client.fastrprint(F("\n")); + client.fastrprint(F("Authorization: Bearer ")); client.fastrprint(F(DEVICE_TOKEN)); client.fastrprint(F("\n")); client.fastrprint(F("Content-Type: application/json")); client.fastrprint(F("\n")); + client.fastrprint(F("Accept: application/json")); client.fastrprint(F("\n")); client.fastrprint(F("Content-Length: ")); int payLength = jsonPayLoad.length() + payLoad.length(); @@ -48,8 +50,11 @@ void pushData(){ if(DEBUG) { Serial.print("POST "); - Serial.print(SERVICE_EPOINT); - Serial.print("pushdata"); + if (strcmp(TENANT_DOMAIN, SUPER_TENANT) == 0) { + Serial.print(DAS_SERVICE_EPOINT); + } else { + Serial.print(DAS_SERVICE_TEPOINT); + } Serial.print(" HTTP/1.1"); Serial.println(); Serial.print(host); Serial.println(); Serial.print("Content-Type: application/json"); Serial.println(); @@ -104,8 +109,6 @@ void pushData(){ } - - double getBoardTemp(void) { unsigned int wADC;