# TemHumIViewer
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200317192820477.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQ4NzkwNg==,size_16,color_FFFFFF,t_70)
# 引言
出生于互联网时代的我们,见证了智能手机和个人电脑通过计算机网络互相进行连接,把每个人紧密地连接在一起,形成了一个地球村。而今,我们即将迈入5G时代,在通信技术不断发展的今天,连接到互联网的将不仅是昂贵精密的手机电脑,身边的各种物体也可以通过物联网连接到云端,由物联网平台管理上云的物联网设备,使用者通过浏览器,小程序等接收物发出的通知并且完成想过操作。物联网不仅将物与物连接在一起,也将物与人紧密地连接在一起,让生活更加智慧便捷。这,就是即将到来的AIOT时代。
本次实验主要通过自制一个家庭物联网温湿度检测模块,学习具体的基于MQTT协议的物联网设计制作。在应用的过程中,也加深了对计算机网络各层次之间的理解。
硬件设备原代码附于文末。
# 需求分析
- 硬件设备可以读取温湿度信息
- 硬件设备可连接互联网上传消息
- 云端物联网平台24小时不间断工作,完成接入设备的管理,消息存储与转发
- web服务器接收物联网平台的信息,经过处理使用户通过网页访问的方式查询信息
# 系统设计
### 系统总体数据流
- 硬件设备stm32作为终端结点,通过MQTT协议将数据上传至物联网平台,同时接受物联网平台下发的信息。
- 云服务器作为与用户直接联系的平台,既作为http服务端,使用http协议向用户展示温湿度等信息接收用户发送的命令信息,又作为mqtt客户端与物联网平台交换信息。
- 物联网平台作为消息的中转站,负责物联网设备的管理与消息的转发。
- 总体计算机网络应用层协议数据流如下图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200317091316852.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQ4NzkwNg==,size_1,color_FFFFFF,t_70)
### 硬件设备端
#### 各模块设计
- 为实现开发的便捷性和稳定性,使用意法半导体的STM32F103ZET6作为主控MCU,接收各传感器的消息。负责与服务器建立连接,并将消息构造成MQTT报文,上传至云端物联网平台。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200316225134702.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQ4NzkwNg==,size_1,color_FFFFFF,t_70)
- 使用DHT11温湿度传感器,可同时检测温湿度,测量范围为0-100,精度为1度,采用单总线与主控芯片完成数据传递,单总线协议不是本文主要内容,概不介绍
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200316225951636.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQ4NzkwNg==,size_1,color_FFFFFF,t_70)
- 使用ESP8266模块完成硬件设备的物联网功能,ESP8266在数据链路层使用WIFI协议,适用于家庭室内这种不需要经常移动的场合。ESP8266已完整封装TCP/IP协议,只需要通过AT指令连接WIFI网络,然后进入透传模式,主控MCU发送过来的MQTT消息包就会经ESP8266发送至互联网,完成设备之间的解耦。ESP8266模块通过串口与主控MCU完成通讯。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200316230956379.png)
#### 硬件设备数据流
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200316231550547.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQ4NzkwNg==,size_1,color_FFFFFF,t_70)
### 云端物联网服务平台和Web服务器
- 云端服务全部使用阿里云平台的服务,阿里云的服务具有稳定性强,配置便捷的特点,方便部署物联网应用,云端总体应用架构如下。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020031709364994.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQ4NzkwNg==,size_1,color_FFFFFF,t_70)
- 云端物联网平台使用**阿里云物联网平台**。阿里云物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制。提供设备接入,设备管理,安全能力和规则引擎。其中规则引擎用来完成数据转发,负责沟通数据在设备间,设备与数据库间,设备与服务器间流转。
- Web服务器使用**阿里云服务器ECS**,云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力业务发展。
# MQTT协议
### 简介
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
### 主要特性
- 工作在低带宽、不可靠的网络的协议,数据精简,节约流量,不添加冗余功能
- 使用TCP/IP提供网络连接
- 使用订阅/发布消息模式,可以完成一对多的消息传递,消息并不是通过端到端传递,而是经过代理端转发,比如硬件设备端并不直接将数据发送到服务器,而是硬件设备将数据发送到指定话题,然后服务器订阅该话题,完成数据的传递。使用订阅/发布消息模式,可完成设备之间的解耦,同一个话题可以有多个发布者和多个订阅者。
- 有三种消息发布服务质量(Qos)用于不同的通讯环境中,分为Qos0,Qos1,和Qos2,分别代表消息至少到达一次,消息重复一次,消息至少重复两次。灵活可变的消息服务质量可以用于不同的场合。
- 使用遗嘱机制,通知有关各方客户端异常中断的机制,当设备断开连接时,通过遗嘱信息通知各方,以便于后续处理。
### 协议原理
实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
- Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
嵌入式优质项目,资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目。 本人单片机开发经验充足,深耕嵌入式领域,有任何使用问题欢迎随时与我联系,我会及时为你解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明,项目具体内容可查看下方的资源详情。 【附带帮助】: 若还需要嵌入式物联网单片机相关领域开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步。 【本人专注嵌入式领域】: 有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为你提供帮助,CSDN博客端可私信,为你解惑,欢迎交流。 【建议小白】: 在所有嵌入式开发中硬件部分若不会画PCB/电路,可选择根据引脚定义将其代替为面包板+杜邦线+外设模块的方式,只需轻松简单连线,下载源码烧录进去便可轻松复刻出一样的项目 【适合场景】: 相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可以基于此项目进行扩展来开发出更多功能
资源推荐
资源详情
资源评论
收起资源包目录
基于stm32设计的物联网家庭温湿度监控系统.zip(毕设/课设/竞赛/实训/项目开发) (252个子文件)
WIFI_test.uvguix.Alpha 96KB
WIFI_test.axf 710KB
WIFI_test_sct.Bak 464B
stm32f1xx_hal_tim.c 207KB
stm32f1xx_hal_uart.c 107KB
cJSON.c 73KB
stm32f1xx_hal_tim_ex.c 62KB
stm32f1xx_hal_rcc.c 48KB
stm32f1xx_hal_flash_ex.c 35KB
stm32f1xx_hal_rcc_ex.c 29KB
stm32f1xx_hal_flash.c 29KB
stm32f1xx_hal_dma.c 27KB
stm32f1xx_hal_pwr.c 20KB
stm32f1xx_hal_gpio.c 20KB
stm32f1xx_hal.c 20KB
stm32f1xx_hal_cortex.c 18KB
stm32f1xx_hal_exti.c 15KB
system_stm32f1xx.c 14KB
MQTTPacket.c 10KB
MQTTFormat.c 8KB
utils_sha1.c 8KB
utils_md5.c 8KB
delay.c 7KB
usart.c 7KB
main.c 6KB
stm32f1xx_it.c 6KB
MQTTConnectClient.c 6KB
utils_hmac.c 6KB
MQTTSerializePublish.c 5KB
MQTTConnectServer.c 5KB
esp8266.c 4KB
MQTTSubscribeClient.c 4KB
stm32f1xx_hal_gpio_ex.c 4KB
IOT_baidu.c 4KB
MQTTDeserializePublish.c 3KB
MQTTSubscribeServer.c 3KB
MQTTUnsubscribeClient.c 3KB
tim.c 3KB
MQTTUnsubscribeServer.c 3KB
dht11.c 2KB
stm32f1xx_hal_msp.c 2KB
transport.c 2KB
gpio.c 2KB
sys.c 1KB
stm32f1xx_hal_tim.crf 556KB
main.crf 547KB
iot_baidu.crf 545KB
stm32f1xx_hal_uart.crf 528KB
stm32f1xx_hal_tim_ex.crf 525KB
esp8266.crf 524KB
transport.crf 523KB
stm32f1xx_hal_dma.crf 523KB
stm32f1xx_hal_rcc.crf 522KB
usart.crf 520KB
tim.crf 519KB
stm32f1xx_it.crf 519KB
stm32f1xx_hal_flash_ex.crf 516KB
stm32f1xx_hal_flash.crf 515KB
stm32f1xx_hal_gpio.crf 514KB
dht11.crf 514KB
stm32f1xx_hal_exti.crf 513KB
stm32f1xx_hal_pwr.crf 513KB
stm32f1xx_hal_rcc_ex.crf 513KB
delay.crf 513KB
sys.crf 512KB
stm32f1xx_hal.crf 512KB
stm32f1xx_hal_cortex.crf 511KB
gpio.crf 511KB
system_stm32f1xx.crf 511KB
stm32f1xx_hal_msp.crf 511KB
stm32f1xx_hal_gpio_ex.crf 511KB
cjson.crf 60KB
utils_sha1.crf 26KB
utils_md5.crf 21KB
mqttpacket.crf 21KB
mqttformat.crf 19KB
mqttconnectclient.crf 19KB
mqttserializepublish.crf 19KB
mqttconnectserver.crf 19KB
mqttsubscribeclient.crf 19KB
mqttdeserializepublish.crf 18KB
mqttsubscribeserver.crf 18KB
mqttunsubscribeclient.crf 18KB
mqttunsubscribeserver.crf 18KB
utils_hmac.crf 18KB
iot_baidu.d 3KB
main.d 3KB
stm32f1xx_it.d 3KB
transport.d 3KB
stm32f1xx_hal_flash_ex.d 2KB
esp8266.d 2KB
stm32f1xx_hal_gpio_ex.d 2KB
stm32f1xx_hal_cortex.d 2KB
stm32f1xx_hal_rcc_ex.d 2KB
stm32f1xx_hal_tim_ex.d 2KB
stm32f1xx_hal_flash.d 2KB
stm32f1xx_hal_exti.d 2KB
stm32f1xx_hal_gpio.d 2KB
stm32f1xx_hal_uart.d 2KB
stm32f1xx_hal_msp.d 2KB
共 252 条
- 1
- 2
- 3
资源评论
阿齐Archie
- 粉丝: 1w+
- 资源: 2303
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功