#include <HttpPacket.h>
#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
HttpPacketHead packet;
#define myPeriodic 5
int L = ; //LED指示灯引脚
int sent = ;
char OneNetServer[] = "api.heclouds.com"; //不需要修改
const char ssid[] = "plus"; //修改为自己的路由器用户名
const char password[] = ""; //修改为自己的路由器密码
char device_id[] = ""; //修改为自己的设备ID
char API_KEY[] = "ZnbTv5Qpbrv"; //修改为自己的API_KEY
char sensor_id1[] = "PM1.0";
char sensor_id2[] = "PM2.5"; void connectWifi()
{ Serial.print("Connecting to " + *ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay();
Serial.print("."); }
Serial.println("");
Serial.println("Connected");
Serial.println("");
digitalWrite(, HIGH);
delay();
digitalWrite(, LOW);
delay();
digitalWrite(, HIGH);
}
void postDataToOneNet(char* API_VALUE_temp, char* device_id_temp, char* sensor_id_temp, float thisData)
{
WiFiClient client;
StaticJsonBuffer<> jsonBuffer;
JsonObject& myJson = jsonBuffer.createObject();
JsonArray& datastreams= myJson.createNestedArray("datastreams");
JsonObject& id_datapoints = datastreams.createNestedObject();
id_datapoints["id"] = sensor_id_temp;
JsonArray& datapoints = id_datapoints.createNestedArray("datapoints");
JsonObject& value = datapoints.createNestedObject();
value["value"] =thisData;
char p[];
myJson.printTo(p, sizeof(p));
packet.setHostAddress(OneNetServer);
packet.setDevId(device_id_temp); //device_id
packet.setAccessKey(API_VALUE_temp); //API_KEY
/*create the http message about add datapoint */
packet.createCmdPacket(POST, TYPE_DATAPOINT, p);
if (strlen(packet.content))
Serial.print(packet.content);
Serial.println(p);
char cmd[];
memset(cmd, , );
strcpy(cmd, packet.content);
strcat(cmd, p);
if (client.connect(OneNetServer, )) {
Serial.println("WiFi Client connected ");
client.print(cmd);
delay();
}//end if
// Serial.println(cmd);
client.stop();
}
void setup() {
Serial.begin();
pinMode(, OUTPUT);
connectWifi();
Serial.println("setup end!");
}
void loop() {
int temp = random(, ); int hum = random(, );
//发送数据到Onenet
postDataToOneNet(API_KEY, device_id, sensor_id1, temp);
delay();
postDataToOneNet(API_KEY, device_id, sensor_id2, hum);
Serial.println("N0 " + String(sent) + " Stream: was send");
sent++;
int count = myPeriodic;
while (count--)
delay();
}

ESP8266上报数据到中国移动物联网平台HTTP的更多相关文章

  1. 中国移动物联网平台数据转发 c# 控制台程序

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  2. ESP8266 上报数据到贝壳物联

    下面贴上代码: #include <aJSON.h> #include <SPI.h> #include <Wire.h> #include <dht11.h ...

  3. 中国移动物联网ONENET平台数据本地采集工具

    吧从中国移动物联网平台上接收的数据 实时按天保存为CSV文件或者是SQL SERVER数据库中方便进行数据处理 还可设置显示最大值,最小值,报警值,报警推送,tts语音报警等贴心功能

  4. HelloX操作系统与中国移动OneNET物联网平台成功完成对接

    HelloX成功与中国移动物联网平台对接 经过HelloX项目组同仁的努力,尤其是Tywin(@飓风)的努力下,HelloX最新版本V1.78已成功与中国移动OneNET(open.iot.10086 ...

  5. 玩转OneNET物联网平台之MQTT服务① —— OneNetMqtt全方位调试

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  6. 国内物联网平台(7):Ablecloud物联网自助开发和大数据云平台

    国内物联网平台(7)——Ablecloud物联网自助开发和大数据云平台 马智 平台定位 面向IoT硬件厂商,提供设备联网与管理.远程查看控制.定制化云端功能开发.海量硬件数据存储与分析等基础设施,加速 ...

  7. [IOT] 自制蓝牙工牌办公室定位系统 (一)—— 阿里物联网平台概览及打通端到云(硬核·干货)

    目录:老少皆宜.超长干货文警告 1.快速入门创建产品 -- 小白,打包带走去吹牛 2.代码分析 -- 老炮,快速了解能用上 2.1 从start.sh分析开发环境如何自动构建 2.2 从sample. ...

  8. 玩转OneNET物联网平台之HTTP服务① —— 模拟上传温度(TcpClient)

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  9. 玩转OneNET物联网平台之简介

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

随机推荐

  1. Confluence 6 自定义空间布局

    你可以通过编辑布局文件来对 Confluence 的外观和表现进行编辑.这个页面将会告诉你如何来为空间自定义布局文件.你需要系统管理员的 全局权限(global permission) 和你希望进行修 ...

  2. 【模板/经典题型】FWT

    FWT在三种位运算下都满足FWT(a×b)=FWT(a)*FWT(b) 其中or卷积和and卷积还可以通过FMT实现(本质上就是个高维前缀和) #include<bits/stdc++.h> ...

  3. pycharm配置appium 提示unsrsloved reference

    1.如:进入C:\Users\Administrator\PycharmProjects\project\venv 输入:在cmd 下进入 venv  输入   Scripts\activate 回车 ...

  4. Dedecmsv5.7整合ueditor 图片上传添加水印

    最近的项目是做dedecmsv5.7的二次开发,被要求上传的图片要加水印,百度ueditor编辑器不支持自动加水印,所以,找了很多资料整合记录一下,具体效果图 这里不仔细写dedecmsv5.7 整合 ...

  5. 『Yaml』配置文件读写包

    YAML 在Python中的配置应用 YAML 是专门用来写配置文件的语言,和JSON相近,都是对字典做规范化文件输出的 一.简介 YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读 ...

  6. 【Java】【6】JDK8 Stream操作整理

    摘要: 1,List<EntityOld>转换为List<EntityNew> List<EntityOld> list = oldList; List<En ...

  7. APP安全防护基本方法(混淆/签名验证/反调试)

    本教程所用Android Studio测试项目已上传:https://github.com/PrettyUp/SecTest 一.混淆 对于很多人而言是因为java才接触到“混淆”这个词,由于在前移动 ...

  8. 小程序swiper效果高宽设置(微信小程序交流群:604788754)

    swiper的宽和高一定要设置在swiper上面.swiper-item默认继承swiper的宽和高.swiper-item容器里面的宽和高没有继承他的父节点宽和高,需要从新设置. 不明白之处,可以咨 ...

  9. C++解析五-this 指针,指向类的指针

    C++this指针 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址.this 指针是所有成员函数的隐含参数.因此,在成员函数内部,它可以用来指向调用对象.友元函数没有 this 指 ...

  10. java 数据溢出和编译错误的差别

    int a=100000000000;编译错误,超出int范围 int a=2100000000; int b=a*12020200;数据溢出,a并未溢出,但b在通过a计算后的数据溢出 long e= ...