完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
引言
作为电子专业本科毕业生既需要撰写毕业论文,又需要做出毕业设计实物。很开心,在前几日我的答辩正式结束,现在此对我所做的毕业设计做一个总结和分享,希望对本项目有兴趣的同学能有所收获。同时,如果有问题或者需要代做同学可以私信我哦,此项目可应用于环境监测和智能家居! 实现的功能
本部分主要介绍硬件选择的原因,具体使用方法可以在购买元器件的时候向商家索要。 主控模块 主控模块选用的是STM32F103C8T6。选择这款芯片的主要原因是性价比,相较于51,32具有强大外设接口和较高的运行速度。并且大多数同学本科阶段也使用过 ,所以应用起来也是很方便。 无线通信模块 无线通信模块选用的是ESP01S。基于此模块首先考虑的是通信方式,如果不谈应用场景,比较传输速度、传输距离和安全性,zigbee和蓝牙会是更好的选择。但是在智能家居的场景下,wifi会是更优选择,因为当下wifi技术基本普及到了每个家庭。接下来是芯片的选择,安信可的ESP8266模组,其具体的区分主要体现在封装方式、硬件配置、资源引脚等等方面。具体的区分可以参考安信可官网给出的文档说明,please click! 数据采集模块 温湿度监测 本设计中温湿度检测模块选取的是DHT11。DHT11是一款有已校准数字信号输出的温湿度传感器。此传感器使用起来简单,精度和性能参数足够满足环境监测的场景。 DHT11遵从单总线协议,有严格的时序要求。主机先要发送一个至少18ms的低电平,在这个过程中,DHT11内部完成AD转换等操作,当主机拉高后,有20-40us时间,这个时间用于主机做输入输出切换,当主机释放总线控制权(此时主机为输入状态,总线被上拉电阻拉高),DHT11尝试将总线拉低,成功拉低后就开始准备发送数据了,再拉高一次就开始传输数据了。 空气质量监测 空气监测选用的是MQ135。MQ系列传感器是监测空气环境最常用的传感器,大概十几个都是针对不同污染物进行检测的,本次实验我们采用的是MQ135,主要针对氨气、苯、酒精、烟雾颗粒进行空气质量检测,同样根据自己的需求可以选择其他型号的传感器吧,比如烟雾、酒精、一氧化碳等等。 光照监测 光照监测模块选用的是BH1750模块。在最开始设计的时候并没有将此项监测放在考虑范围,考虑到家庭中可以能会根据此项监测进行开关灯的操作。而最常用的是BH1750模块,该模块遵循IIC协议,在硬件配置和代码书写的时候需要格外注意。 数据展示模块 数据展示模块选用的是OLED模块。数据显示无非就是OLED、LCD、TFT屏幕等,该模块起到的作用只是辅助进行监测,考虑性价比因素最终选取0.96寸OLED屏幕显示。 家具模拟模块 家具模拟模块主要是模拟到了门、窗、灯和风扇。具体是通过步进电机、舵机、LED灯和风扇模块实现的。在某宝直接购买就可以,而应用也很简单,配置IO口的工作模式,控制GPIO口输出的高低电平即可。 云平台选择 本设计云平台选用的是中国移动的OneNET物联网云平台。 在设计之前考虑过很多物联网云平台:OneNet、机智云、阿里云等等。最终经过比较选择采用机智云或者OneNET其中一个,在此针对两个云平台的使用范围进行说明。
代码部分所有内容比较多,在此只展示部分主函数代码。除此之外,数据上云格式定义、命令下发、各个模块的驱动函数同样重要,在此不进行详细展示。 软件设计 整个代码工程内容相对较大,在此就不进行详细的展示了如果有需要可以私信我。在此只展示部分主函数代码和相关头文件等,除此之外,数据上云格式定义、命令下发、各个模块的驱动函数同样重要! 头文件 #include "stm32f10x.h" #include "stdio.h" #include "math.h" #include "delay.h" #include "string.h" #include "dht11.h" #include "BH1750.h" #include "adc.h" #include "led.h" #include "OLED_I2C.h" #include "usart.h" #include "timer.h" #include "exti.h" #include "key.h" #include "door_bsp.h" #include "fan.h" #include "esp8266.h" #include "MqttKit.h" #include "onenet.h" 主函数 typedef struct{ //定义结构体 uint8_t temp; //温度 uint8_t humi; //湿度 float mq; //MQ135传感器 float sun; //光照强度传感器 uint8_t LED_FLAG; //LED uint8_t FAN_FLAG; //风扇 uint8_t DOOR_FLAG; //步进电机 uint8_t WARNING_FLAG; //步进电机 }SendData; extern SendData send_data; extern uint8_t cmd_rev_flag; SendData send_data = {0, 0, 0.0, 0.0, 0 , 0 , 0 ,0}; //初始化 uint8_t cmd_rev_flag = 0; int main(void) { unsigned char *data_ptr = NULL; unsigned short timeCount = 0; //发送间隔变量 Hardware_Init(); Net_Init(); while(1) { if(++timeCount >= 200 || (cmd_rev_flag == 1)) { DHT11_Read_Data(&send_data.temp,&send_data.humi); send_data.mq=(float)(Get_Adc_Average(ADC_Channel_1,10))*(3.3/4096); send_data.sun = LIght_Intensity(); OneNet_SendData(); //发送数据 timeCount = 0; cmd_rev_flag=0; ESP8266_Clear(); } data_ptr = ESP8266_GetIPD(0); //检查是否有下发指定 if(data_ptr != NULL) OneNet_RevPro(data_ptr); delay_ms(10); } } 硬件初始化 void Hardware_Init(void) { delay_init(); //延时函数初始化 TIM2_Int_Init(4999,7199); //用于OLED显示 Usart1_Init(115200); //串口调试 Usart2_Init(115200); //esp8266--stm32通信 OLED_Init(); //OLED初始化 OLED_CLS(); KEY_Init(); //按键初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置中断优先级分组2,为后面外部中断做基础 EXTIX_Init(); //判断键值执行操作 DHT11_Init(); //温湿度传感器初始化 Adc_Init(); //空气检测初始化 BH1750_Init(); //光照 TIM3_Int_Init(4999,7199); //报警显示 ESP8266_Init(); //初始化ESP8266 while(OneNet_DevLink()) //接入OneNET delay_ms(500); } 结果展示 实物图与手机界面展示 云平台数据可视化界面 云平台控制界面展示 可扩展功能 该系统具有很高的扩展性,做出基础模型之后可以进行二次开发。需要注意的是将硬件资源分配好。
本来计划这部分要写遇到的问题的总结,但是想了一下问题太多并不能一下子说清楚,如果有请私信,必要的话单独写一篇。整理来说,本设计实现的功能是:四测三显两控一平台,基本实现了智能家居的要求,但是这些都是基础的模拟。 本设计硬件的选型及测试是本着低成本、低功耗、高集成、高仿真度的原则来进行实施的,所以整个系统有很多优点。首先,本设计对于智能家居控制系统的模拟从传统到智能、从前端到后端覆盖面、还原度还是比较高的;其次,系统的兼容性和可扩展移植性较高,基于此可以进行再次开发,比如:添加语音模块、改变更高精度的传感器等等;最后就是应用性较强,当有独立电源之后可以直接应用的实际当中,达到监控的作用。 行文至此,差不多啦,如果还有不到位请指出再完善~ |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1856浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 19:54 , Processed in 1.103529 second(s), Total 48, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号