物联网项目智能家居

一、产品架构
esp8266连接stm32。8266使用微信smartconfig配网,并连入百度云,通过mqtt协议上传传感器数据,利用百度云规则引擎将数据转存到云数据库,以方便进行下一步的操作。
二、硬件连接
(一)、8266与stm32的连接:
因为我买的是8266的板子,所以要用杜邦线连接串口,连接方式如下:
将32的VCC,GND连接8266的VCC,GND,将32串口的RX与8266的TX连接,Tx与8266的RX连接。
(二)、模块使用:
1、摄像头模块(还没学)
2、TFTLCD模块:直接插
3、其他模块:用到在加
三、接入百度云
(一)、32把摄像头的数据通过串口发到8266,8266作为一个中转站,把32的数据进行修饰,发到天工云平台。
(二)、烧入8266的程序:smartconfig+接收串口的数据+把数据修饰后发到百度云
四、MQTT协议
对于开发者,不需要深入学习MQTT协议报文的具体形式,以下介绍MQTT协议的理解和应用场景。
MQTT协议是一种通信协议在网络层中属于应用层,同一层的是HTTP协议,基于tcp/ip协议栈,
(一)、MQTT的概念
(1)、订阅(Subscribtion):
订阅包含主题筛选器(Topic Filter)和最大服务质量(QoS)。订阅会与一个会话(Session)关联。一个会话可以包含多个订阅。每一个会话中的每个订阅都有一个不同的主题筛选器。
最大服务质量:
MQTT中用QoS表示服务质量,MQTT协议中有三种服务质量(QoS):
QoS =0,至多一次,可能会出现丢包的情况,使用在对实时性要求不高的情况,例如,将此服务质量与通信环境传感器数据一起使用。 对于是否丢失个别读取或是否稍后立即发布新的读取并不重要。
QoS =1,至少一次,保证包会到达目的地,但是可能出现重包。
QoS =2, 刚好一次,保证包会到达目的地,且不会出现重包的现象。
对于服务质量举个例子:共享单车
1、共享单车需要发送自己的位置信息,这里Qos可以为0,因为即便这一个时刻没发到,过一会又会发。
2、当用户扫一辆车的码后,这里的Qos可以为1,一遍遍向服务器发送已被解开。
3、当用户结束使用,这时用Qos=2,确保只会扣一次钱。
(2)、会话(Session):
每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。会话存在于一个网络之间,也可能在客户端和服务器之间跨越多个连续的网络连接。
(3)、主题名(Topic Name):
连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。
需要注意的是,MQTT中消息主题按照层级命名,使用 ‘/’ 进行分割
此外,主题中可以使用通配符进行多个主题或多层级的订阅,有两种常见的通配符:

  1. 单层通配符 +:单层通配符只能匹配一层的主题,例如:China/Beijing/+,可以匹配的只有Beijing这个主题下面一层的主题,例如Xicheng, DongCheng, Xuanwu等等。
  2. 多层通配符 #:顾名思义,多层通配符就是可以匹配多个层级的主题,例如:China/#,可以匹配到的主题可能有:China/Beijing/Dongcheng, China/Shanghai/PuDong,等等。
    (4)、主题筛选器(Topic Filter):
    一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。
    (5)、负载(Payload):
    消息订阅者所具体接收的内容
    (二)、MQTT协议的特点:
    MQTT协议是异步发送,即客户端与客户端不会建立直接连接,而是通过服务器作为中转,客户端通过订阅和发送来进行消息的读取和发送。所以MQTT协议使用相对灵活,可以多个客户端订阅同一个主题。反之不成立。
    五、规则引擎数据转存云数据库
    (一)、规则引擎将8266发送到物接入的数据发送到数据库进行数据处理
    (二)、发送到app端做视频回传
    (三)、云端处理结果要发到手机端,开发板端
    (四)、开发板端要把得到的数据通过串口再发到stm32,通过LCD显示
发布了27 篇原创文章 · 获赞 3 · 访问量 1413

猜你喜欢

转载自blog.csdn.net/qq_42860166/article/details/102861990