基于Arduino上传JSON格式数据至中移OneNet平台

中移OneNet平台JSON格式:

POST /devices/39245655/datapoints HTTP/1.1
api-key:UAXd=EZif9opr36q3E6L7Q1J2mk=
Host:api.heclouds.com
Connection:close
Content-Length:66

{
  "datastreams":[{
  "id":"Temperature","datapoints":[{
  "value":27}]}]}

1. 使用Arduino输出HTTP报头

#include <HttpPacket.h>

void setup() {
  // put your setup code here, to run once:

  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
}

HttpPacketHead packet;

void loop() {
  // put your main code here, to run repeatedly:
  char *p = "{\"datastreams\":[{\"id\":\"Temperature\",\"datapoints\":[{\"value\":29}]}]}";

  packet.setHostAddress("api.heclouds.com");
  packet.setDevId("39245655");
  packet.setAccessKey("UAXd=EZif9opr36q3E6L7Q1J2mk=");
  packet.setDataStreamId("Temperature");
  // packet.setTriggerId("<trigger_id>");
  // packet.setBinIdx("<bin_index>");

  /*create the http message about add datapoint */
  packet.createCmdPacket(POST, TYPE_DATAPOINT, p);
  if (strlen(packet.content))
    Serial.print(packet
  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以使用以下步骤将温度数据上传OneNet平台: 1. 首先,您需要将温度传感器连接到Arduino板上,并使用Arduino IDE编写代码来读取传感器数据。 2. 接下来,您需要将ESP8266连接到Arduino板上,并使用Arduino IDE编写代码来将温度数据发送到OneNet平台。 3. 在OneNet平台上创建一个设备,并为该设备添加一个数据流,以便将温度数据上传到该数据流中。 4. 在Arduino代码中,使用HTTP协议将温度数据发送到OneNet平台,并将数据流ID和API Key包含在HTTP请求中。 5. 最后,您可以在OneNet平台上查看温度数据,并使用OneNet提供的API将数据导出到其他应用程序中。 以下是示例代码: #include <ESP8266WiFi.h> #include <WiFiClient.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* server = "api.heclouds.com"; const char* apiKey = "your_API_KEY"; const char* deviceID = "your_DEVICE_ID"; const char* streamID = "your_STREAM_ID"; void setup() { Serial.begin(9600); delay(10); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); } void loop() { float temperature = readTemperature(); // read temperature from sensor sendTemperature(temperature); // send temperature to OneNet delay(10000); // wait for 10 seconds } float readTemperature() { // read temperature from sensor } void sendTemperature(float temperature) { WiFiClient client; if (!client.connect(server, 80)) { Serial.println("Connection failed"); return; } String url = "/devices/" + String(deviceID) + "/datapoints"; String data = "{\"datastreams\":[{\"id\":\"" + String(streamID) + "\",\"datapoints\":[{\"value\":\"" + String(temperature) + "\"}]}]}"; String request = "POST " + url + " HTTP/1.1\r\n" + "Host: " + String(server) + "\r\n" + "Content-Type: application/json\r\n" + "api-key: " + String(apiKey) + "\r\n" + "Content-Length: " + String(data.length()) + "\r\n" + "Connection: close\r\n\r\n" + data; Serial.println(request); client.print(request); delay(10); while (client.available()) { String line = client.readStringUntil('\r'); Serial.print(line); } Serial.println(); Serial.println("Temperature sent to OneNet"); }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值