今天这里简单举一个前几年做的一个很简单的小项目给大家,帮助大家了解一下单片机STM32的简单应用。后续也会给大家不断分享项目实践。
随着社会的进步,经济的快速发展,人们对于日常生活科技化的追求越来越高,大量的智能家电进入了家家户户,对这些种类繁杂的智能家电有一个便捷的集中化控制系统成为了迫在眉睫的需求,本次设计要求综合运用传感器、单片机技术、电路分析、模拟电子技术等相关知识,结合学生的实际动手能力,通过现有的电话网络终端或者互联网网络终端实现远程控制的智能家居系统,给出了该系统的电路原理和办硬件设计与实现方法。 该装置是由单片机、LCD1602、温度传感器DS18B20、无线数据收发芯片nRF401、风扇、PCF8591T芯片、蜂鸣器、电源、继电器模块以及按键模块设计而成的。
设计具体要求:
1:熟悉多种传感器的工作原理和检测电路(智能家居系统常用的传感器);
2:实现家庭多种电器的智能及远程控制;
3:系统具有防火的自动报警功能;
4:编写相关代码;
5:能使用Protues、Altium Designer、Keil、Visio等相关软件;
6:翻译与本设计有关的英文资料和文献(不少于3千中文字符);
根据自己大学所学的知识 进行知识点分析和拆解
火灾自动报警检测用到mq-7 一氧化碳检测
首先要有主控芯片 其次要有传感器采集 ,还要有wifi模块进行控制
最后完成以stm32为mcu+esp8266结合机智云的解决方案
材料选型如图所示
通过AD20画原理图
4.购买材料
根据原理图进行相关电路连接 通过万用表来测试是否虚焊以及是否连通
通过下载安装keil软件进行程序的编写
编写各个功能函数以及传感器初始化连接
最后编写主函数 控制程序 通过st-link 进行对板子程序的下载注:可以自行采用其他下载方式
再程序使用过程中遇到了很多问题
1.无法进行程序下载是因为st-link的配置方式不对 通过阅读芯片手册 发现了接口接线。
2.最开始io口的配置错误是由于没有仔细看芯片手册导致的
3.普通的程序编译报错 有些是中文符号导致的
4.程序逻辑思考
5.程序调试过程 通过不断地设置断点来进行判断程序出错
进行oled 的驱动程序 调试和驱动函数编写。
进行WiFi模块ESP8266调试
进行主程序的调试
8.实物展示(见录制视频)
主界面下,1为切换界面,2为进入阈值调剂,3为WIFI进入Airlink模式连接,4为WIFI复位
阈值界面下,1为切换界面,2为切换阈值选型,3为阈值增加,4为阈值减少。
开机,初始化所有配置,默认蜂鸣器响
主界面下,显示光照 温度 湿度和空气质量
次界面下,显示烟雾,一氧化碳,光照强度,空气质量。
程序主循环等待按键,采集信息,并通过Gagent协议发送至服务器。
自动模式下,当光照低于阈值时,进行开窗操作和开灯操作。
自动模式下,传感器参数超过阈值蜂鸣器进行报警。
见录制视频
整个开发设计过程中,参考了许多网络上的驱动代码,避免了重复造轮子,但是也造成了自己对底层的理解不足,需要以后自己多读多思考,功能模块的组合从整体难度来说只有三颗星左右。主要是esp8266-01的第一次上手使用 以及相关文档的阅读,再根据开发手册进行相关配置和开发,能够有效解决在实际过程中遇到的问题,如果要写论文,也可以参考相关手册和硬件资料。
精度上,暂时无法根据实际情况测试,误差大致与器件相关,参考相关资料理论上可以采用更优质的材料和电路实现,APP推送等方式实现报警,进入物联网时代。
STM32F103C8T6核心板
ESP8266-01模组
MQ-2烟雾传感器
MQ-7一氧化碳传感器
MQ-135-空气质量传感器
GY-30光照传感器(BH1750FVI)
OLED0.96寸显示屏
DHT11温湿度传感器
ULN五线四相步进电机驱动模块
DC 5V 4相五线步进电机28YBJ-48
BMP280气压传感器
一排四键薄膜开关
面包板
杜邦线
按键
LED灯
【文章福利】需要相关项目资料可进学习群领取:769843038