Sending Temperature Readings to ARTIK Cloud
Paste your DEVICE ID, given below-
- String deviceId = "your deviceId";
paste you DEVICE Token, given below-
- String deviceToken = "your deviceToken";
Paste Your Wi-Fi name, given below-
- char ssid[] = "Your wifi name";
Paste Your Wi-Fi password, given below-
- char pass[] = "Your wifi Password";
When everything is set, upload your code-
- #include < WiFi101.h >
- #include < ArduinoJson.h >
- #include < ArduinoHttpClient.h >
- #include < SPI.h >
-
- char server[] = "api.artik.cloud";
- int port = 443;
-
- String deviceToken = "Your deviceToken";
- String deviceId = "Your deviceId";
-
- char ssid[] = "Your wifi name";
- char pass[] = "Your wifi Password";
- float temperature = 0.0;
- boolean onFire = false;
- char buf[200];
- const int LED = 6;
- int ledState = 0;
- WiFiSSLClient wifi;
- HttpClient client = HttpClient(wifi, server, port);
- int status = WL_IDLE_STATUS;
- void setup() {
- pinMode(LED, OUTPUT);
- Serial.begin(9600);
- while (status != WL_CONNECTED) {
- Serial.print("Attempting to connect to Network named: ");
- Serial.println(ssid);
-
- status = WiFi.begin(ssid, pass);
- }
- }
- void loop() {
- Serial.println("loop");
- ledToggle();
- Serial.println("making POST request");
- String contentType = "application/json";
- String AuthorizationData = "Bearer " + deviceToken;
- temperature = ((analogRead(A0) * (3300 / 1024)) - 500) / 10;
- onFire = false;
- int len = loadBuffer(temperature, onFire);
- Serial.println("Sending data " + String(temperature));
-
- client.beginRequest();
- client.post("/v1.1/messages");
- client.sendHeader("Authorization", AuthorizationData);
- client.sendHeader("Content-Type", "application/json");
- client.sendHeader("Content-Length", len);
- client.endRequest();
- client.print(buf);
-
- int statusCode = client.responseStatusCode();
- String response = client.responseBody();
- Serial.print("Status code: ");
- Serial.println(statusCode);
- Serial.print("Response: ");
- Serial.println(response);
- Serial.println("Wait a bit");
- delay(30000);
- }
- int loadBuffer(float temp, boolean onFire) {
- StaticJsonBuffer < 200 > jsonBuffer;
- JsonObject & root = jsonBuffer.createObject();
- root["sdid"] = deviceId;
- root["type"] = "message";
- JsonObject & dataPair = root.createNestedObject("data");
- dataPair["Temperature"] = temp;
- dataPair["onFire"] = onFire;
- root.printTo(buf, sizeof(buf));
- return (root.measureLength());
- }
- void ledToggle() {
- if (ledState == 0) {
- digitalWrite(LED, LOW);
- ledState = 1;
- } else {
- digitalWrite(LED, HIGH);
- ledState = 0;
- }
- }
Open serial monitor.
Click Arduino Temperature Sensor. Click "+/- CHARTS" and check the Temp field to visualize a chart.