智能家具 嵌入式实训 把数据传入服务器(aliyun)
一 如何数据传给服务器或云平台?
² 现在数据存在哪里? STM32F103ZET6开发板
² 要传到哪里? 服务器(数据的保存和处理)
(1)本地服务器:串口、网口等等
(2)云服务器(云端):用到网络,TCP/IP协议(域名、IP地址)
² 只要你硬件物理层具有支持TCP/IP协议的设备,你就能连上去
如果电脑想连接服务器,有线:网口
那么开发板呢?无线方式越来越重要,WiFi、4G、5G、GPRS、NBIOT...
我们选用了一个WiFi模组:ESP8266WiFi模组
² 应用层协议(通信的格式):HTTP(平时打开网页用的)、MQTT、COAP(针对物联网的)
二 ESP8266模组
1.ESP8266简介
ESP8266是上海乐鑫信息科技设计的超低功耗串口WiFi芯片,是⼀个完整且⾃成体系的Wi-Fi网络解决⽅案,能够搭载软件应⽤,拥有⾼性能⽆线SOC,以最低成本提供最⼤实⽤性,为WiFi功能嵌⼊其他系统提供⽆限可能
2.ESP8266WIFI设置3种无线通信模式
AP模式:ESP8266产生WIFI网络,其他设备加入该网络 |
|
无线终端模式:别人创建WIFI网络,ESP8266加入该网络 -- 局域网通信 |
|
混合模式 |
|
3.ESP8266的使用
硬件连接
|
PB10:复用推挽输出 PB11:上拉输入
PE6:通用推挽输出 |
如何配置ESP8266联网功能: (1)底层使用USART3 (2)检测ESP8266是否正常工作 (3)配置为Station模式 (4)连接手机发出的热点 步骤: (1)移植提供的ESP8266源码(放入API,main.h中包含其头文件) (2)主函数中调用接口函数
(修改为自己手机热点的用户名和密码) |
三、阿里云的注册和使用
1. 注册并登陆阿里云账号
|
2. 进入控制台,进入物联网平台-》公共实例-》创建产品
|
3. 添加设备(桌面新建TEXT文档,记录设备三元组信息)
|
4. 产品 -》功能定义 -》 添加功能
|
5. 公共实例MQTT接入域名(参考文档-》入门教程)
TEXT文档记录: (1)Broker Address(阿里云域名) a1yqe2PPC1R.iot-as-mqtt.cn-shanghai.aliyuncs.com (2)端口号:1883 (3)ClientId:test|securemode=3,signmethod=hmacsha1| (4)User Name:TEST_Device1&a1yqe2PPC1R (5)Password:ECFD2F29910BBAA3220437ACB0BD0A8A207EFE0C 6. 使用MQTTfx连接阿里云平台(测试功能) (1)定义代理
(2)测试上行和下行(自定义topic)
【1】上行--发布:/a1yqe2PPC1R/${deviceName}/user/update/error
【2】下行--订阅:/a1yqe2PPC1R/${deviceName}/user/get
(3)测试属性上报
【1】发布: /sys/a1yqe2PPC1R/${deviceName}/thing/event/property/post
【2】订阅: /sys/a1yqe2PPC1R/${deviceName}/thing/event/property/post_reply
(1)测试设置属性
发布请求Topic:(订阅请求topic,返回同样的内容) /sys/{productKey}/{deviceName}/thing/service/property/set
|
7. STM32连接阿里云(程序实现) (1)修改三元组信息
(2)修改ESP8266连接的热点名称与密码
(3)修改JSON数据格式(main.c、ALIIOT.c)
|
1.注册阿里云物联网平台
2.根据项目创建产品,根据组员格式创建设备(1个)。
3.根据产品需要给物联网云平台提供的数据,自定义物模型。 -- 发布物模型。
温度、湿度、光照等等
4.保存其的3元组。
5.使用MQTT.fx连接阿里云物联网平台。
6.MQTT.fx发布数据。(温度、湿度等等) -- 以json格式发送。
现象:截图 -- 物模型的参数
最后截图