在上一小节我们创建乐鑫云平台,如何将8266 连接到乐鑫云平台,如何与乐鑫云平台进行交互,这就是本小节主要讲述的内容。乐鑫云平台采用完全的API 设计、构建。要想设计开发乐鑫云平台就不可避免地要使用API 参考手册。
要想将8266 连接到乐鑫云平台,就必须使用上一节生成的设备密钥,怎样将密钥烧录到8266 呢?
(1)通信方式的选取:通过API 参考手册可知,云平台支持Http Rest 和Socket 接口,其中Socket 接口,支持加密或不加密的TCP 通信方式。故选择使用不加密的TCP 通信来和云平台进行交互,端口号是8000。
(2)通信数据的形式:云下设备与乐鑫云平台的交互,使用的是JSON 字符串。JSON 字符串中,提供了指令、设备密钥等的参数接口,如图1-4-4 所示。当接收方接收到发送方发送的JSON 报文之后,接收方需要向发送方进行响应。
图1-4-4 JSON 字符串代码
当确定好了设备与云平台的通信方式和通信数据形式时,就可以使用乐鑫云平台进行交互的API 函数。
云下设备在与乐鑫云平台建立网络连接后,只要按照鑫云平台规定好的数据格式来收发网络数据,云下设备就能与云平台进行交互,实现设备接入物联网云平台。一般情况下,为了验证设备与保护数据,物联网云平台需要鉴别设备的身份,比如通过设备密钥以及证书等方式。接下来将使用网络调试助手来作为云下设备,通过云提供的API 来和云平台进行交互,激活我们创建的云端设备,接收RPC 请求等。目前云端设备的状态是未激活,将使用相关API 给参数赋值,比如设备密钥,mark 地址,如图1-4-5 所示。
图1-4-5 设备激活API
通过网络调试助手,作为TCPCline 连接到云平台。设置云平台的域名,端口号是8000,点击连接,可以看到TCP 连接已成功建立,如图1-4-6 所示。
图1-4-6 TCPCline 设置
使用网络调试助手,来向云平台发送云端设备激活的API。将设备激活API 复制到发送端并发送,如图1-4-7 所示。云平台同时返回激活成功的数据。
图1-4-7 激活云平台
刷新网页。云平台显示云端设备已经激活,说明我们网络调试助手成功的作为云下设备,将创建的云端设备激活,如图1-4-8 所示。
图1-4-8 云平台已激活
要想使用云平台,还要将设备在云上标识身份,使用标识API 进行身份标识,如图1-4-9所示。身份标识成功。
图1-4-9 设备身份标识
这样云平台与云下设备连接就建立完成,可以通过RPC 请求,向设备发布指令。下面发送一个LED,点击请求,看实训结果是否成功。如图1-4-10 所示,在云平台上发送RPC 请求。
图1-4-10 云平台的RPC 请求
在网络调试助手上,接收到云平台向他发送的RPC 请求,请求内容是LED_ON,如图1-4-11 所示。
图1-4-11 网络调试助手收到的RPC 信息(www.xing528.com)
网络调试助手作为云下设备,已经成功地与新云平台进行了交互,激活了我们创建的云端设备,并且接收了云平台向它发送的RPC 请求。现在网络助手作为虚拟云下设备已经完成云连接,下面将把开发板连入云端。
【程序1.4.1】在乐鑫云服务上,通过RPC 请求,控制云下设备ESP8266 的LED 灯亮灭。
在main 函数中,要根据程序中Flash 的大小来决定系统上区的起始位置。若Flash 的大小是32~512 MB,设备密钥二进制文件需要烧录到0x7D 区,若 Flash 的大小设为32~1024 MB,设备密钥二进制文件需要烧录到0XFD 区,根据烧录时所选择的Flash 大小而决定,设备密钥二进制文件需要烧录到区域,如图1-4-12 所示。
图1-4-12 设备密钥烧录地址
烧录软件上我们选择的Flash 为32 MB,那么我们的设备密钥二进制文件就需要烧录到0X7D 上区。
在user_main.c 中只关心user_esp_platform_init(void)函数。
在user_esp_platform_init(void)函数中,程序读取Flash 中0X7D 地址上的数据,里面有设备密钥等参数,如图1-4-13 所示。
图1-4-13 密钥读取
之后连接WiFi,若成功连接到WiFi 的话,那么进行TCP 连接设置,并进行DNS 域名解析。若域名解析成功的话,那么就将8266 作为TCPClient 连接到TCPServer,也就是云平台。
当8266 接收到云平台向他发送的RPC 请求,请求内容是LED_ON,8266 将会把LED点亮。
当请求内容是LED_OFF 时,8266 将会把LED 熄灭,如图1-4-14 所示。
图1-4-14 RPC 请求回复
下载程序,注意还要将设备密钥二进制文件烧录到Flash 的0X7D000 地址中。工程下载完成后,打开云平台,使用RPC 请求向8266 发送指令,如图1-4-15 所示。
综上所述,所谓的设备接入云平台,实际上就是设备语音平台建立网络连接之后,按照云平台规定的数据格式来收发网络数据,设备就能与云平台进行交互,实现设备接入云平台。这里的乐鑫云平台比较繁杂,不推荐大家使用。只是把乐鑫云平台作为一个过渡,让大家对设备接入云平台有一个直观的认识。如果大家对乐鑫云平台感兴趣的话,也可以进一步深入地了解。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。