目 录

摘 要 Ⅰ
Abstract Ⅱ
第1章 绪论 9
1.1 课题研究背景与意义 9
1.2 国内外研究现状 9
1.3 课题研究的主要内容 10
1.4 本文组织结构 10
第2章 系统关键技术介绍 12
2.1 无线传感器网络技术 12
2.2 WiFi通讯技术 13
2.3 单片机技术 13
2.4 物联网云平台 13
第3章 系统需求分析 15
3.1 系统需求概述 15
3.2 系统可行性分析 16
3.2.1 经济可行性 16
3.2.2 技术可行性 16
第4章 系统具体设计与实现 17
4.1 系统总体设计 17
4.2 硬件部分设计 17
4.2.1 stm32单片机 17
4.2.2 dht11温湿度传感器 19
4.2.3 光敏传感器 21
4.2.4 oled显示器 22
4.2.5 ESP8266模块 23
4.3 系统各部分功能实现 24
4.3.1数据的采集 24
4.3.2云平台的接入 25
4.3.3 串口命令的传输 26
4.3.4数据的可视化显示 27
4.4 系统软件的实现 28
4.4.1 MQTT协议 28
4.4.2 ADC采集 30
4.4.3 I2C通信 32
4.5 安卓APP实现 33
4.5.1 Android studio简介 33
4.5.2 Android设备的MQTT对接 33
4.6 系统编辑环境介绍 35
第5章 系统测试 36
5.1 系统搭建完成 36
5.2 测试结果 36
5.2 测试总结 38
第6章 总结与展望 39
6.1 总结 39
6.2 展望 39
参考文献 39
致 谢 40
第3章 系统需求分析
3.1 系统需求概述
放眼整个设计,系统需求分析是对设计做出一个准确判断,需求分析是否到位关系着整个设计最终的成败,包括软件产品的质量。在全面完善的需求分析下,设计者可明确设计的整体方向,大大减少返工重做的可能。因此,需求分析要求对系统所需的功能进行全面的完整的有效的分析。
此次,设计的是一个室外的环境监测系统,考虑本次设计面向的用户是普通家庭,环境温湿度和光照强度时影响室外植物健康生长的重要因素,所以系统所要完成的任务就是要实时准确的监测室外所处环境的温湿度、光照强度等物理信息,然后要直观地反馈到用户管理处。那么最终目的是为了方便客户,所以在系统采集数据之前就要保证系统有简单、经济的特性。当客户不在室外旁边时,就需要用一个合适的传输协议把数据传输到客户端,这也要保证室外环境监测具有可靠性、实时性和直观性,这才能让用户更好分析数据,当客户在家时便需要一个视频显示设备直接反馈信息,然后设置报警值域提醒用户对环境做出合理的处理,这才能体现本次设计功能所在!分析,总结处理之后,其大致模块如下图3-1所示:

图3-1 系统的功能模块图
3.2 系统可行性分析
设计出发点,背景都是好的,系统的构思也是符合实际的,但是在设计完成前系统的可行性分析也是不可或缺的,第一点,室外是用户比较小的一个生活组成部分,所以这就确定此次设计所用的成本不必过大,避免盲目投资导致失败;第二点,系统在理论知识上是可行的,那么就要考虑实际操作中,得来的结果会不会过于鸡肋;第三点,如果实际需要的技术存在过高要求,在消耗经济的同时又消耗人力,这是不是一种浪费。所以在思考这些问题之后才能决定系统该设计的意义。
3.2.1 经济可行性
由于站在的出发点是室外,物件小,客观因素少,所以此系统能做到成本低,流程简单,只需要一些合适的廉价、低功耗的传感器及其传输模块,而且只需要把传感节点部署在室外附近,然后搭建网络,设置好网关,这就避免了大量布线所带来的经济损耗,搭配应用程序让客户无需消耗过多时间照看室外,这便省去了人力,本文转载自http://www.biyezuopin.vip/onews.asp?id=16845如后续问题发现也只需调试节点,又省去了维护成本。

3.2.2 技术可行性
本次设计使用的是物联网相关技术,在万物互联的时代,无线传感器已经在各个领域应用,传感器的使用已经深入到生活且已经难以摆脱,尤其是社会产业的迅速发展,物联网技术越发重要,这样物联网技术的使用方法日益熟练且规范,设备越来越智能化。又有云计算,云平台的加持,个人用户的服务利于慢慢变得丰富,这样也就不用过多考虑数据的存储与处理问题了,然后WiFi结合stm32可以更快的设定终端节点,在app开发方面,随着平台 越来越友好,开源代码越来越多,这样设计一个智能室外环境监测系统愈加可行,这样本次设计的技术需求是不成问题的。
第4章 系统具体设计与实现
4.1 系统总体设计
此次设计的是一个室外环境的监测系统,主要目标就是对室外区域采集温湿度,光照强度等物理数据,然后上传至云平台,最后转发至手机用户端接收。其中温湿度传感器、光敏传感器就是整个系统的感知层,利用stm32将采集到得数据一边通过oled显示出来,另一边再在云平台创建两个api接口,通过WiFi模块接入互联网与云平台建立连接使用mqtt协议把数据传输至云平台,用户就可以使用手机app连入互联网和云平台建立通信,获取室外实时环境数据,查看室外是否健康。系统框架如图4.1所示:

#include "dht11.h"
#include "delay.h"
//   //
u8 DHT11_Temp,DHT11_Hum;
//复位DHT11
void DHT11_Rst(void)
{                 DHT11_IO_OUT();   //SET OUTPUTDHT11_DQ_OUT=0;    //拉低DQdelay_ms(20);     //拉低至少18msDHT11_DQ_OUT=1;  //DQ=1 delay_us(30);       //主机拉高20~40us
}
//等待DHT11的回应
//返回1:未检测到DHT11的存在
//返回0:存在
u8 DHT11_Check(void)
{   u8 retry=0;DHT11_IO_IN();//SET INPUT    while (DHT11_DQ_IN&&retry<100)//DHT11会拉低40~80us{retry++;delay_us(1);};     if(retry>=100)return 1;else retry=0;while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后会再次拉高40~80us{retry++;delay_us(1);};if(retry>=100)return 1;      return 0;
}
//从DHT11读取一个位
//返回值:1/0
u8 DHT11_Read_Bit(void)
{u8 retry=0;while(DHT11_DQ_IN&&retry<100)//等待变为低电平{retry++;delay_us(1);}retry=0;while(!DHT11_DQ_IN&&retry<100)//等待变高电平{retry++;delay_us(1);}delay_us(40);//等待40usif(DHT11_DQ_IN)return 1;else return 0;
}
//从DHT11读取一个字节
//返回值:读到的数据
u8 DHT11_Read_Byte(void)
{        u8 i,dat;dat=0;for (i=0;i<8;i++) {dat<<=1; dat|=DHT11_Read_Bit();}                          return dat;
}
//从DHT11读取一次数据
//temp:温度值(范围:0~50°)
//humi:湿度值(范围:20%~90%)
//返回值:0,正常;1,读取失败
u8 DHT11_Read_Data(u8 *temp,u8 *humi)
{        u8 buf[5];u8 i;DHT11_Rst();if(DHT11_Check()==0){for(i=0;i<5;i++)//读取40位数据{buf[i]=DHT11_Read_Byte();}if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]){*humi=buf[0];*temp=buf[2];}}else return 1;return 0;
}
//初始化DHT11的IO口 DQ 同时检测DHT11的存在
//返回1:不存在
//返回0:存在
u8 DHT11_Init(void)
{    GPIO_InitTypeDef  GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //使能PG端口时钟GPIO_InitStructure.GPIO_Pin = DHT11_PIN;                 //PG11端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(DHT11_IO, &GPIO_InitStructure);               //初始化IO口GPIO_SetBits(DHT11_IO,DHT11_PIN);                       //PG11 输出高DHT11_Rst();  //复位DHT11return DHT11_Check();//等待DHT11的回应
} //DHT11_Read_Data(&temperature,&hum);
//printf("%d  %d\r\n",temperature,hum);


















基于stm32的室外环境监测系统的设计和实现相关推荐

  1. 基于stm32的室内环境监测系统 9746字

    毕 业 设 计 说 明 书 课题名称 基于STM32的室内环境监测系统 院    系 计算机与软件学院 专    业 嵌入式技术与应用 班    级 嵌设1913 学    号 1902423134 ...

  2. 毕业设计 —— 基于STM32手势控制显示系统的设计

    目录 一.前言 二.项目背景及资源分享 三.项目简介 1.项目名称 2.系统框架 3.功能简介 4.控制核心 5.最小系统: 6.外围模块: 四.相关设计原理及框图 1.系统设计的原理 2.手势识别原 ...

  3. 基于STM32的智能手环系统的设计

    STM32系列 基于STM32的智能手环系统的设计 STM32系列 前言 一.系统方案的设计 1.1系统功能分析 1.2系统总体结构 二.硬件电路的搭建 2.1STM32最小系统组成部分 2.2S硬件 ...

  4. 基于STM32的智能抽油烟机系统与设计

    基于STM32的智能抽油烟机系统与设计 功能实现: 本课题是基于STM32的抽油烟机自动监控系统设计,通过STM32单片机实现对家用抽油烟机的检测与控制.完成有毒气体检测,并能自动发出报警信息,根据烟 ...

  5. 【单片机毕业设计】基于单片机的农田环境监测系统的设计

    一.功能简介 题目拓展:基于单片机的土壤环境监测的设计 基于单片机的智能灌溉系统的设计 基于单片机的智慧农业监测的设计 项目编号:mcuclub-hj-012 单片机类型:STC89C52.STM32 ...

  6. 基于 STM32 的智能水表计费系统的设计

    一.毕业设计(论文)的技术背景和设计依据: 加料系统集成在制丝车间香料厨房控制系统下,柔性化生产能力弱,现场加香.加料控制点与香料厨房处于同一控制系统中,网络布线长,干扰大,网络上任一控制点出故障影响 ...

  7. android zigbee环境监测,基于ZigBee的环境监测系统的设计与实现

    基于ZigBee的环境监测系统的设计与实现 Design and Research of Environmental Monitoring System Based on ZigBee DOI: 10 ...

  8. 基于stm32人体健康监测系统

    基于stm32人体健康监测系统 (心率,血氧,体温,语音播报,报警) 本设计采用STM32F103C8T6作为主控 使用MAX30102采集心率和血氧值 使用MLX90614测量体温 OLED显示当前 ...

  9. 基于STM32与红外感应开关的自动门设计与实现(结构+设计)

    基于STM32与红外感应开关的自动门设计与实现 采用STM32作为主控,设计了自动和手动开门装置,MLX90614作为设计测温装置. 前言说明 元器件清单说明 STM32F103C8T6系统板 微型滑 ...

最新文章

  1. Tomcat7.0源码分析——Session管理分析(下)
  2. FPGA锁存器、触发器、寄存器和缓冲器的区别
  3. selenium 定制启动 chrome 的选项
  4. tensorflow教程 开始——数据集:快速了解 tf.data
  5. HTML编码问题导致的乱码
  6. android view滑动到顶部并固定在顶部
  7. 【OS学习笔记】十七 保护模式五:保护模式下如何进行内存保护 与 别名段的意义与作用
  8. 动态规划——0-1背包问题
  9. OpenCL memory object 之 Global memory (2)
  10. VirtualBox 扩展虚拟硬盘容量
  11. vuex commit 传参数,传递多个参数
  12. Redis六种底层数据结构
  13. ubuntu内核和主线内核_如何在没有任何Distro-upgrade的情况下将内核更新到最新的主线版本?...
  14. 5款最好用的前端开发工具
  15. 阿里副总裁、达摩院自动驾驶负责人王刚离职!
  16. 三星30pin引脚_USB3.0针脚定义、引脚定义(精校版本)
  17. 【IC卡】终极版复卡器操作方法 ID卡读取方法
  18. tcl网络电视android无法启动,tcl智能电视系统升级和刷机常见问题解答
  19. PHP多进程 - opcode缓存与用户缓存(APC, XCache, eAcclerator,Zend Opcache,Yac)
  20. c# 收取邮件 解析_c#接收邮件

热门文章

  1. 中国2019最有价值的科幻类影视游戏IP 网络科幻小说《公元2119年》、
  2. cisco 交换机 定期 自动 备份配置 -linux,Cisco交换机配置文件定时自动备份
  3. 万能DOS启动盘制作全攻略!(软盘+光盘+U盘+硬盘+NTFS+……)
  4. NeurlPS2020:Neuron-level Structured Pruning using Polarization Regularizer(polarization正则化技术)
  5. linux博通bcm4313无线网卡,Debian中配置broadcom bcm43XX无线网卡
  6. 『phphot』【SD2.0大会】刘振飞:微软Office研发成功三大法宝
  7. 2022年起重机械指挥特种作业证考试题库模拟考试平台操作
  8. [转]键盘上的符号用英语怎么读?
  9. 北京“新城卓越”黑中介租房感受
  10. DSP28335 SPI的使用