#导入Word文档图片# MQTT协议连接百度物联网IOT服务器

男儿欲遂平生志,五经勤向窗前读。这篇文章主要讲述#导入Word文档图片# MQTT协议连接百度物联网IOT服务器相关的知识,希望能为你提供帮助。
创建第一个温度设备和温度仪表盘?在登录百度天工物接设备前需要先注册百度账号。?
??https://cloud.baidu.com/???



每个月有1百万条免费信息可以使用。?
??https://console.bce.baidu.com/iot2/hub/order/create/COMMON???










注意: 后面创建物可视界面时,需要使用到存储配置,在后面的截图会进行创建,存储数据需要使用数据库,需单独购买。?

TCP Address:?tcp://a7cysdm.mqtt.iot.gz.baidubce.com:1883?
SSL Address:?ssl://a7cysdm.mqtt.iot.gz.baidubce.com:1884?
WSS Address:?wss://a7cysdm.mqtt.iot.gz.baidubce.com:443?
name:a7cysdm/temp?
key:p3s1wztrxpfth12w?


下面将进行创建web仪表盘,生成网页界面文件,可生成链接分享给其他人,通过浏览器访问即可看到设计的页面,硬件设备上传的数据可以通过该仪表盘进行同步显示。?



















完成数据表和存储配置之后,回到UI设计界面,对仪表盘进行数据来源绑定,这样仪表盘就可以显示来至数据源的数据了。?



二、下载MQTT客户端代码?SDK下载页面: ??https://cloud.baidu.com/doc/IOT/IOTService.html#.16.E9.B0.78.14.44.44.D9.38.48.96.FF.7C.DA.76.5F???
2.1 下载TLS认证文件?
物接入支持SSL/TLS加密传输方式,保障用户的数据传输安全。用户在执行示例代码前,需先下载TLS认证文件,并在代码中指定认证文件的存放路径。?
下载??TLS认证文件?? ,并将认证文件保存至示例代码路径下。?
2.2 下载??MQTT-c压缩包?? ,解压MQTT-c,目录结构如下:?
MQTT-c?
├── include?
├── lib?
├── src?
├── ConnectorSync.c?
├── PublisherSync.c?
├── SubscriberSync.c?
├── Makefile?
├── root_cert.pem?
打开src/PublisherSync.c,配置以下参数:?
参数名称?
解释?
PRIVATE_FILE?
输入认证文件所在目录?
USER?
创建物接入设备后返回的用户名,参见??创建物接入设备??中的步骤3?
PWD?
创建身份后返回的密钥,参见??创建物接入身份??
publisher?
用来标识设备的ID,用户可自己定义,在同一个实例下,每个实体设备需要有一个唯一的ID,不同实体设备使用同一个client id建立连接会导致其它连接下线。client id只支持英文大小写字母,数字0-9,中划线和下划线,不支持其它字符。?
?
打开src/SubscriberSync.c,配置以下参数:?
参数名称?
解释?
PRIVATE_FILE?
输入认证文件所在目录?
USER?
创建物接入设备后返回的用户名,参见??创建物接入设备??中的步骤3?
PWD?
创建身份后返回的密钥,参见??创建物接入身份??
clientId?
用来标识设备的ID,用户可自己定义,在同一个实例下,每个实体设备需要有一个唯一的ID,不同实体设备使用同一个client id建立连接会导致其它连接下线。client id只支持英文大小写字母,数字0-9,中划线和下划线,不支持其它字符。?
?
打开Makefile文件:?
编辑`LIB_PATH`和`INCLUDE_PATH`,路径为MQTT -c文件的当前存储位置。?
LIB_PATH = /home/iot/MQTT-c/lib?
INCLUDE_PATH = /home/iot/MQTT-c/include?
编辑后执行`make all`编译文件,生成“PublisherSync”和“SubscriberSync”文件。?
运行“SubscriberSync”文件,参照命令格式Subscriber [host:port] [topic],执行订阅操作:?
`./SubscriberSync ssl://yourendpointname.mqtt.iot.gz.baiduce.com:1884 topic`?
运行“PublisherSync”文件,参照命令格式publish [host:port] [topic] [payload],执行发布操作?
`./PublisherSync ssl://yourendpointname.mqtt.iot.gz.baiduce.com:1884 topic publishmessage`?
返回message,说明发布成功。?
说明:?
如果提示"libpaho-mqtt3cs.so.1"无法找到,请执行export ?
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/iot/MQTT-c/lib?
2.3 下载并运行MQTT客户端代码?








项目名称和密码在创建设备之后返回的对话框里有。?












三、IoT Edge SDK ?下载页面: ??https://cloud.baidu.com/doc/IOT/IoTEdgeSDK.html#IoT.20Edge.20SDK-1???

3.1 百度云天工物联网平台 IoT Edge SDK for C?
此代码库包含以下组件:?
  1. iothub_client(物接入Edge SDK for C) 帮助设备快速接入百度云天工物接入服务?
  2. Serializer函数库帮助进行序列化和反序列化数据,来进行数据在设备上的存储或读取?
3.2 物接入Edge SDK for C?
  1. 代码使用ANSI C(C99)规范,从而使代码更方便移植到不同的平台中?
  2. 请避免使用编译器扩展选项,防止在不同平台上编译的不同行为表现?
  3. 在物接入Edge SDK中,使用了一个平台抽象层,以隔离操作系统相关性(线程和互斥机制,通信协议,例如HTTP等)。?
3.3 如何克隆资源库?
该代码库使用了一些第三方库作为子模块依赖关系。为了自动克隆这些子模块,您需要使用如下所述的--recursive选项:?
git clone --recursive https://github.com/baidu/iot-edge-c-sdk.git?
3.4 OS平台和硬件兼容性?
百度天工IoT Edge SDK可用于广泛的操作系统平台和设备。对于设备的最低要求是:?
  1. 能够建立IP连接:只有IP功能的设备可以直接与天工物接入(IoT Hub)进行通信。?
  2. 支持TLS(可选):推荐设备使用TLS来与物接入(IoT Hub)进行安全连接。 但这不是必需的。 IoT Edge SDK也支持使用用户名/密码的方式?
  3. 支持SHA-256(可选):用于使用服务认证设备的安全令牌。?
  4. 具有实时时钟或实现代码连接到NTP服务器(可选):如果你使用TLS连接或使用安全令牌以进行身份验证,时钟同步是必需的。?
  5. 具有至少64KB的RAM:SDK的具体内存占用取决于所使用的SDK文件、协议以及目标平台。我们尽可能将占用减到最低。?
3.5 SDK目录结构?
  1. /c-utility?引用的git子模块,使用的第三方工具库。请注意,其中可能包含嵌套子模块。?
  2. /umqtt?引用的git子模块,使用的第三方MQTT客户端。请注意,其中可能包含嵌套子模块。?
  3. /parson?引用的git子模块,使用的第三方的JSON库。请注意,其中可能包含嵌套子模块?
  4. /certs?包含与物接入进行通信所需的证书。?
  5. /build_all?包含客户端库和相关组件的针对指定平台的编译脚本。?
  6. /iothub_client?包含物接入IoT Hub客户端组件,将消息发往云端的物接入服务。有关如何使用它的信息,请参阅??https://cloud.baidu.com/doc/IOT/API.html???
  7. /serializer?
包含在原始消息库之上提供存储和JSON序列化功能的库。这些库便于上传结构化数据以及用于物接入服务的命令和控制。?
3.6 准备开发环境?
这篇文章介绍如何准备开发环境来使用百度云天工的c语言版本的IoT Edge sDK。这里主要介绍如何配置windows和Linux下的开发环境。?
3.7 关于openssl?
目前openssl LTS的版本有两个:1.0.2x和1.1.x ,两者的区别在于,后者在前者的基础上优化了API接口,一些数据结构已经对开发者透明,也就是说,如果在1.0.2x可以编译成功的软件,在1.1.x版本的openssl下就无法编译成功了。正是因为这个原因,openssl组织仍需要维护之前老接口的openssl版本(因为大量软件使用的仍旧是老接口),也就是1.0.2x,但这两个版本在安全性上是等价的。本sdk使用的是1.0.2x版本。请务必??下载??最新版本的openssl!如果是用git clone openssl仓库,也务必使用-b参数注明版本!?
git clone https://github.com/openssl/openssl.git -b OpenSSL_1_0_2-stable?
3.8 配置Windows的开发环境?
  1. 安装Visual Studio 2015。你可以使用Visual Studio Community免费版本通过遵循license许可?
  2. 安装Visual C++ 和 NuGet安装包管理工具?
  3. 安装git?确认git是否在你的PATH环境变量目录列表,你可以使用git version来检查git的版本?
    git version?
  4. 安装CMake?确认CMake在你的PATH环境变量目录列表,你可以使用cmake –version来测试安装是否正常并且检测版本。可以使用CMake来创建Visual Studio的项目,还可以编译libraries和样例。?
  5. 确认最新发布SDK版本的tag?目前发布版本的tag命名方式是yyyy-mm-dd?
  6. 选择你需要clone的tag版本,通过使用下面的命令来clone到本地机器?
  7. git clone -b < yyyy-mm-dd> --recursive https://github.com/baidu/iot-edge-c-sdk.git ?通过传递参数—recursive告诉git来clone git项目依赖的所有SDK。你可以从这里找到所有的依赖?
  8. 编译C语言SDK?
如果你想在本地编译开发和测试SDK的话,可以通过执行下面的步骤来生成项目文件:?
  1. 打开” Developer Command Prompt for VS2015”终端?
  2. 在respository的根目录运行CMake这个命令:?
  3. cd iot-edge-c-sdk mkdir cmake cd cmake cmake -G "Visual Studio 14 2015" .. ?如果想编译64位程序,修改cmake参数:?
    cmake .. -G "Visual Studio 14 2015 Win64"?
    如果项目文件成功生成的话,你应该可以看到一个Visual Studio的工程文件.sln在cmakefolder下面,可以通过下面的步骤来编译SDK?
  4. 在visual studio里面打开cmake\\iot_edge_c_sdk.sln,或者运行下面的命令来生成项目文件:?
  5. cmake --build . -- /m /p:Configuration=Release ?
  6. 你也可以使用MSBuild argument编译用于调试的文件:?
  7. cmake --build . -- /m /p:Configuration=Debug?
  8. 同时,你也可以编译和运行unit tests:?
  9. cmake -G "Visual Studio 14 2015" -Drun_unittests=ON .. cmake --build . -- /m /p:Configuration=Debug ?
  10. ctest -C "debug" -V ?
  11. 编译使用TLS的样例?
iothub_client_sample依赖openssl库的ssleay32和libeay32,在你使用他们之前,你需要首先编译并且安装这些库。?
【#导入Word文档图片# MQTT协议连接百度物联网IOT服务器】下面的步骤介绍如何编译和安装opens

    推荐阅读