这里oneNet平台作为服务器esp8266作为下位机将获得的数据上传至移动oneNet平台。上位机方面做了一个简单的c#winform程序来获取设备状态和下位机上传的数据。

一、整个项目使用的通讯协议。

上位机与服务器使用的是http协议,下位机与服务器使用的mqtt协议。

二、oneNet平台的搭建

首相是注册一个平台账号,然后再登录,之后就是创建设备,在创建设备这里使用的是多协议接入设备(相关注册与数据流之类的详情就不在赘述)。下面是注册好之后的效果图。

这个时候可以用mqtt.fx程序测试以下能否连接上。

连接设置如下

三、库文件准备

#include <PubSubClient.h>主要用到mqtt的库

四、功能代码

4.1 连接

const char *Device_ID = "xxxxxx";         //设备ID
const char *Product_ID = "xxxxxx";        //产品ID
const char *Api_KEY = "xxxxxxx";           //鉴权信息
const char *WiFi_SSID = "xxx";         //WiFi名称
const char *WiFi_Password = "xxxxxxxx";  //WiFi密码
char* pub="$dp";                   //发布主题名

4.2上传数据

上传我也是估摸着用,不是很了解,只是知道能够这样上传,而且手册里也没说到这种上传我就只能瞎用了,各位可以自己深入了解再来教教我!!!嘻嘻

//这是我其中一个上传部分的代码
void pubBmp()
{if (millis() - Last_Updata_Time >= 0){Last_Updata_Time = millis();memset(Upload_Package, 0, 100);String Json_Buffer = ",;temp2,"+String(temp2)+",;pressure,"+String(pressure)+",;altitude,"+String(altitude)+";";
//由于不太会jason语句就直接使用网上其他大佬提供的办法,这里格式都是固定的,都是“,;变量名,”+格式类型(变量值)最后以";"结尾就行,一次可以上传多个。Upload_Package[0] = 5;Upload_Package[1] = highByte(Json_Buffer.length());Upload_Package[2] = lowByte(Json_Buffer.length());  for (int i = 0; i < Json_Buffer.length(); i++)Upload_Package[i + 3] = Json_Buffer.c_str()[i];client.publish(pub, Upload_Package, Json_Buffer.length() + 3);}
}

4.3获取数据

这里获取数据用的是http协议在上位机获取。同时还有上位机发送数据。

首先是获取数据。这里用的是c#的代码用到的协议是http,将获取的Jason语句解析后调用。


public void getDevDate(){string url = "http://api.heclouds.com/devices/datapoints?devIds=932938880";//请求地址HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request.Method = "GET";SetHeaderValue(request.Headers, "api-key", "DmeBqDy=wOEj3oreThNecuJKv1g=");//设备API地址和 首部参数request.Host = "api.heclouds.com";request.ProtocolVersion = new Version(1, 1);request.ContentType = "text/html;charset=UTF-8";HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream myResponseStream = response.GetResponseStream();StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));string retString = myStreamReader.ReadToEnd();AnalysisT(retString);//Console.WriteLine(retString);myStreamReader.Close();myResponseStream.Close();}

第二个是通过http协议上传数据。

        public void UpGps(string lon,string lat){string url = "http://api.heclouds.com/devices/932938880/datapoints";HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request.Method = "POST";SetHeaderValue(request.Headers, "api-key", "DNDuXRJFXk7FXEytb7=lxKcncZM=");//设备API地址和 首部参数request.Host = "api.heclouds.com";request.ProtocolVersion = new Version(1, 1);string Cod = "{\"datastreams\":[{\"id\":\"location\",\"datapoints\":[{\"value\":{\"lon\":"+lon.ToString()+",\"lat\":"+lat.ToString()+"}}]}]}";byte[] data = Encoding.UTF8.GetBytes(Cod);request.ContentLength = data.Length;using (Stream reqStream = request.GetRequestStream()){reqStream.Write(data, 0, data.Length);reqStream.Close();}HttpWebResponse resp = (HttpWebResponse)request.GetResponse();Stream stream = resp.GetResponseStream();//获取响应内容 using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)){//label1.Text = reader.ReadToEnd();Console.WriteLine(reader.ReadToEnd());}}

这就是项目的大概内容,写得比较乱请见谅,有问题欢迎私信或者qq331388572

通过mqtt再利用移动oneNet平台的连接与数据收发相关推荐

  1. 基于STM32与OneNet平台的智能家居系统设计(代码开源含自制APP代码)

     前言:本文为手把手教学的基础物联网开发设计,项目包含对下位机(MCU对外设数据读取与控制)和上位机(包含服务平台和APP端)的设计.下位机选取STM32作为MCU,外设有LED灯和DHT11温湿度传 ...

  2. NBIOT模组M5310接入OneNET平台

    一.OneNET平台介绍 中国移动物联网开放平台OneNET是由中国移动打造的PaaS物联网开放平台.平台能够帮助开发者轻松实现设备接入与设备连接,快速完成产品开发部署,为智能硬件.智能家居产品提供完 ...

  3. 电信iot平台和移动oneNet平台使用心得

    最近在做智能设备,设备跟服务器通信,用到Iot技术通信方式,先使用到电信iot平台,再使用移动oneNet平台,,期间遇到很多问题,不过在一次又一次的迭代,终于找到一个比较好的方法,兼容两个平台,可以 ...

  4. 做好数据再利用,让企业数据价值发挥最大

    2020年我们最常用到的数据种类有哪些呢?这些数据你应该都有使用到: 防疫复工( 病情.治安.城市服务.基础设施运营等): 卫生健康(公共卫生.医疗保险.医疗资源.药品安全等): 交通出行( 实时位置 ...

  5. ESP01 连接OneNet平台

    ESP01 连接OneNet平台 ESP01 连接OneNet平台 1.硬件准备 2.ESP8266 Arudino环境搭建 3. ESP8266采集DHT11数据 4.OneNet平台搭建 5.ES ...

  6. NBIOT模块 BC26 openCPU LWM2M协议传输数据到OneNet平台

    BC26支持openCPU是一个特点.openCPU的意思就是向芯片编程,既是通信芯片又可以当MCU来使用.下面分享一下我使用BC26进行openCPU的实现过程. 软件: ①.sublimetext ...

  7. NBIOT模块 BC20 OPENCPU LWM2M协议传输数据到OneNet平台

    BC20支持OPENCPU是一个特点.OPENCPU的意思就是向芯片编程,既是通信芯片又可以当MCU来使用.下面分享一下我使用BC20进行openCPU的实现过程. 软件: ①.sublimetext ...

  8. 【IoT】NB-IoT模块对接移动oneNET平台流程

    Onenet 基础通信如此下图所示,可以看到这个是没有UDP层的,所以需要把Coap层和UDP层进行对接: SDK移植到NB芯片:其他两种凡是请参考 Blog: MCU+NB模组 在NB芯片中移植基础 ...

  9. 利用延时处理实现表单系统数据通过微信公众号自动发送消息提醒

    延时处理是指在流程搭建过程中,在第一个步骤完成后不需要立即开启后续步骤,需要几个小时或者几天后再执行,这时可以利用延时处理功能,来实现数据流程. 如:利用集简云无代码软件集成平台, 连接金数据表单系统 ...

最新文章

  1. 机器学习——聚类算法
  2. Android 使用自带的HttpClient进行https请求出现403的解决过程记录
  3. .pyc文件_python专题shutil高阶文件操作
  4. 财务审批流程都有哪些步骤呢?
  5. 隐藏JqueryMobile中的Header与Footer
  6. 自定义一个springboot启动器
  7. “云原生”为什么对云计算生态充满吸引力?
  8. 1583. 统计不开心的朋友
  9. leetcode 706. 设计哈希映射
  10. python死磕八之迭代器与生成器
  11. 华为,百度豪投,这类程序员要再次上榜了!
  12. NSArray和NSString的联合使用
  13. iphone9发布_苹果将发布iPhone9!配置升级价格公道,期待官网亮相!
  14. Linux之操作系统杂谈
  15. GitHub冲突解决
  16. chmod 更改文件的权限
  17. 【结课报告】游戏中的知识产权
  18. 03惯性导航系统误差分析
  19. Python学习笔记——python基础之Python实现名片管理系统
  20. win10 uwp 打电话

热门文章

  1. 旅游类App的原型制作分享
  2. EXCEL:摒弃千篇一律,修改工作表中网络线的颜色
  3. 可替代50欧姆_50欧姆阻抗四层板射频信号隔层参考做不了吗?
  4. python实现2000投影坐标转经纬度
  5. HttpClient 爬取百度图片
  6. 计算机视觉方向相关文献下载
  7. 2022春招字节跳动校招内推码: UX8B35W
  8. 九连环问题(Java)
  9. TOC视角:巴顿将军的管理角色-----项目关键链(转)
  10. 更新wlan.bin文件