tag 标签: stm32

相关博文
  • 2024-1-11 17:24
    114 次阅读|
    0 个评论
    stm32 CubeMx 实现SD卡/sd nand FATFS读写测试。   材料:stm32F407ZGT6开发板、雷龙公司的SD_NAND 测试板(CSNP1GCR01-AOW)。(一开始是使用 Nandflash的操作起来不太方便而且 stm32cubemx自带的 fatfs还没有磨损平衡算法,很是难受。)   CSNP1GCR01-AOW的优势:   不用写驱动程序自带坏块管理的NAND Flash(贴片式TF卡),尺寸小巧,简单易用,兼容性强,稳定可靠,固件可定制,LGA-8封装,标准SDIO接口,兼容SPI/SD接口,兼容各大MCU平台,可替代普通TF卡/SD卡,尺寸6x8mm毫米,内置SLC晶圆擦写寿命10万次,通过1万次随机掉电测试耐高低温,支持工业级温度-40°~+85°,机贴手贴都非常方便,速度级别Class10(读取速度23.5MB/S写入速度12.3MB/S)标准的SD 2.0协议使得用户可以直接移植标准驱动代码,省去了驱动代码编程环节。支持TF卡启动的SOC都可以用SD NAND,提供STM32参考例程及原厂技术支持,主流容量:128MB/512MB/4GB/8GB,比TF卡稳定,比eMMC便宜,样品免费试用(可到官网找客服小姐姐领取样品哦)。雷龙官网   话不多说开始正文:   stm32cubeMX 版本:6.6.1   MDK5 版本5.35   开始配置STM32   1、 配置时钟:   系统时钟树配置(我这里直接拉满,实际使用根据功耗要求作相应的调整)   2、 配置调试接口   注意DEBUG这个一定要配置,如果是默认的那下载一次程序之后第二次就下载不进去了.   3、配置SDIO:   (我这里还是用了DMA 减少mcu的资源开销)   配置完成之后随便选一个IO口作为SD_NAND的插入检测引脚(没有检测脚的也选上不然在生成代码的时候会有警告,看着很不舒服,我这里选的是 PE4 引脚)   4、配置SDIO的DMA   5、添加文件系统  6、配置堆栈大小(稍微调大一点,不然在读写大一点的数据的时候可能会出错)   7、生成代码   8、生成代码后在 bsp_driver_sd.c这个文件中将这三行代码注释(这是检测SD卡是否接入的引脚 如果不注释在挂载sdnand的时候会提示 not_ready)   9、在main.c中 添加测试代码 */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" #include "dma.h" #include "fatfs.h" #include "sdio.h" #include "gpio.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ FATFS fs; /* FatFs 文件系统对象 */ FIL file; /* 文件对象 */ FRESULT f_res; /* 文件操作结果 */ UINT fnum; /* 文件成功读写数量 */ BYTE ReadBuffer = {0}; /* 读缓冲区 */ BYTE WriteBuffer */ void* work, /* Pointer to working buffer */ UINT len /* Size of working buffer */ )  f_mkfs 这个函数有五个参数,老版本的只有三个参数   所以在格式化的时候得这么来操作 f_res = f_mkfs("0:/",FM_FAT|FM_SFD,0,&ReadBuffer,sizeof(ReadBuffer));
  • 热度 4
    2023-12-21 13:24
    427 次阅读|
    2 个评论
    总体设计 设计来源 随着社会科技的迅猛发展,智能化安防系统在家居安全领域得到了广泛的应用。为了提升居民生活质量和家庭安全性,我决定开发一款基于STM32的智能防盗门系统。 在传统的门锁系统中,使用物理钥匙进行开锁存在一些不便之处,例如容易丢失、难以记忆等问题。而基于STM32的智能防盗门系统将采用密码锁和指纹识别等先进技术,为用户提供更加方便、安全的门禁控制方式。同时,通过集成无线通信模块,用户可以实现远程控制。 项目的设计来源于对智能家居安全领域的市场需求以及对传统门禁系统的不足的深入分析。我们选择了STM32作为主控芯片,以其卓越的性能和灵活性,为系统提供稳定可靠的硬件支持。为了实现多种认证方式,我们引入了RFID和指纹传感器,并通过精心设计的软件算法实现了高效的用户认证流程。 在项目开发中,我注重安全性、可维护性和用户友好性的平衡。通过对系统的全面设计,我将安全置于首位,并提供了友好的用户界面,方便用户轻松操作。 通过这一项目,我打造一种更加智能、安全、便捷的门禁系统,提升家庭安全感,为智能家居领域的发展贡献一份力量。 功能需求分析 1.夜间感应开灯:当检测在夜间的时候,当用户接近到智能防盗门时,防盗门的照明系统打开,方便用户进行开锁。 2.IC卡开门:无线频率辨识(RFID)技术,是一种在卡片与读卡装置之间无需直接接触的片只需在读卡器的读卡范围内晃动即可,即可达到开门的目的。 3.蓝牙开门:利用手机蓝牙配对连接进行开门 4.指纹解锁开门:利用生物技术将门锁与指纹解锁结合在一起达到开门的目的。 设计思路 传统的防盗门在便利性和安全性方面存在一定的短板,用户对门禁系统的需求逐渐提升。智能门锁因其高隐私性、大编码量、低随机开锁成功率以及密码灵活变化等优势,成为了满足用户更高需求的理想选择。为此,我们将移动互联网和无线通信技术融入智能门锁系统,不仅简化了操作流程,还推动了人机交互的发展。 借助STM32F103RCT6单片机卓越的实时性能、最大程度的集成整合、配置灵活以及强大的编程和控制能力,我们设计了一款以STM32F103RCT6为主控制器的智能防盗门系统。该系统整合了键盘模块、HC-06蓝牙模块、OLED屏模块和无线传输等外围电路,构建了一个全面的智能防盗门管理体系。 除了基本的门禁功能外,我们还在系统中增加了夜间感应开灯模块。这一功能旨在提升用户体验,当用户接近防盗门时,系统能够智能地开启照明,方便夜间操作。在白天或用户离开防盗门附近时,系统则能够智能地关闭照明,实现了节能环保的目标。 通过这一设计,我们旨在为用户提供一种更便捷、更安全、更智能的防盗门系统。整合了先进的技术和用户友好的功能,这一系统将满足现代生活对安全和便利的双重需求,为智能家居领域的发展注入新的活力。 前期准备 硬件准备 STM32F103RCT6 开发板 HC-06蓝牙模块 OLED显示屏 光照传感器 人体红外传感器 继电器 RC522无线射频模块 电子锁 AS608指纹模块 12V电源 功能实现 模块介绍 RC522近场通信模块:是一种短距离的高频无线通讯技术,允许电子设备之间进行非接触式点对点数据传输,在十厘米(3.9英寸)内交换数据 蓝牙模块:是一种集成蓝牙功能的 PCBA板,用于短距离无线通讯,按功能分为蓝牙数据模块和蓝牙语音模块。蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯,大致可分为三大类型:数据传输模块、蓝牙音频模块、蓝牙音频+数据二合一模块等等,模块具有半成品的属性,是在芯片的基础上进行过加工,以使后续应用更为简单。像SKYLAB的BLE4.2/5.0蓝牙模块SKB369/BLE5.0蓝牙模块SKB501是属于数据传输模块,仅支持数据传输,不支持音频传输。 光学指纹模块:利bai用光的折射和反射原理,光从底部射向 三棱镜,并经棱镜射出, 射出的光线在手指表面指 纹凹凸不平的线纹上折射的角度及反射回去的光线明暗就会不一样。CMOS或者CCD的光学器件就会收集到不同明暗程度的图片信息,就完成指纹的采集。半导体指纹模块:无论是电容式或是电感式,其原理类似,在一块集成有成千上万半导体器件的“平板”上,手指贴在其上与其构成了电容(电感)的另一面,由于手指平面凸凹不平,凸点处和凹点处接触平板的实际距离大小就不一样,形成的电容/电感数值也就不一样,设备根据这个原理将采集到的不同的数值汇总,也就完成了指纹的采集。射频指纹模块:利用生物射频指纹识别技术,通过传感器本身发射出微量射频信号,穿透手指的表皮层去控测里层的纹路,来获得最佳的指纹图像。防伪指纹能力强,射频识别原理只对人的真皮皮肤有反应,从根本上杜绝了人造指纹的问题。 红外传感器:红外测距传感器是一种传感装置,是用红外线为介质的测量系统,测量范围广,响应时间短,主要应用于现代科技,国防和工农业领域。红外测距传感器具有一对红外信号发射与接收二极管, 利用的红外测距传感器LDM301发射出一束红外光,在照射到物体后形成一个反射的过程,反射到传感器后接收信号,然后利用CCD图像处理接收发射与接收的时间差的数据。经信号处理器处理后计算出物体的距离。这不仅可以使用于自然表面,也可用于加反射板。测量距离远,很高的频率响应,适合于恶劣的工业环境中。 OLED显示屏:OLED显示屏是利用有机电致发光二极管制成的显示屏。由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。此设计采用IIC方式进行数据读取。 OLED(Organic Light-Emitting Diode,又称有机电激发光显示、有机发光半导体)是有机发光二极管的英文缩写。其是一种利用多层有机薄膜结构产生电致发光的器件,它很容易制作,只需要低的驱动电压,这些特征使得OLED在满足平面显示器的应用上显得非常突出。OLED显示屏比LCD更轻薄、亮度高、功耗低、响应快、清晰度高、柔性好、发光效率高。单色屏幕的像素是一个像素就是一个发光二极管。OLED是”自发光”,像素本身就是光源,所以对比度极高,显示效果很犀利,绝无朦朦胧胧、拖泥带水之感,深受爱好者追捧,可惜当前技术所限制,无法大尺寸化,价格比TFT液晶屏高得多。 功能开发 OLED_Init();//OLED初始化 OLED_ColorTurn(0);//0正常显示,1 反色显示 OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示 yemian(); 人机交互显示 //初始页面函数 void yemian(void) { OLED_Clear(); //根据取模软件取模而成 OLED_ShowChinese(0,0,7,16);//智 OLED_ShowChinese(18,0,8,16);//能 OLED_ShowChinese(36,0,9,16);//房 OLED_ShowChinese(54,0,10,16);//盗 OLED_ShowChinese(72,0,11,16);//门 OLED_Refresh(); delay_ms(500); } //开门成功 void opean_OLED(void) { OLED_Clear(); OLED_ShowChinese(0,0,12,16);//开 OLED_ShowChinese(18,0,13,16);//锁 OLED_ShowChinese(36,0,15,16);//成 OLED_ShowChinese(54,0,16,16);//功 OLED_Refresh(); delay_ms(500); } //关门成功 void close_OLED(void) { OLED_Clear(); OLED_ShowChinese(0,0,12,16);//开 OLED_ShowChinese(18,0,13,16);//锁 OLED_ShowChinese(36,0,17,16);//失 OLED_ShowChinese(54,0,18,16);//败 OLED_Refresh(); delay_ms(500); } RC522无线射频卡解锁 思路 首先在RFID标签卡片上的块中存放数据,通过检测卡片中的数据,来判断是否有可以打开防盗门的权限。 写卡 首先,我们需要在IC卡中写入数据。 读卡 根据读取卡片中的数据是否是具备权限的,来检测是否开门 主要程序 status= PcdRequest(REQ_ALL,TagType);//寻卡 if(!status) { status = PcdAnticoll(SelectedSnr);//防冲撞 if(!status) { status=PcdSelect(SelectedSnr);//选定卡片 if(!status) { snr = 1; //扇区号1 status = PcdAuthState(KEYA, (snr*4+3), DefaultKey, SelectedSnr);// 校验1扇区密码,密码位于每一扇区第3块 { if(!status) { status = PcdRead((snr*4+0), bufRC522); // 读卡,读取1扇区0块数据到buf -buf if(!status) { for(i=0;i<16;i++) { sprintf((char *)dtbuf,"%02X ",bufRC522 ); printf((char *)dtbuf); } printf("\r\n"); bufRC522 =0x00; bufRC522 =shuju;//数据 status = PcdWrite((snr*4+0), bufRC522); // 写卡,将buf -buf 写入1扇区0块 if(!status) { } for(i=0;i<16;i++) { sprintf((char *)dtbuf,"%02X ",bufRC522 ); printf((char *)dtbuf); } printf("\r\n"); WaitCardOff(); } } } } } } APP解锁 蓝牙解锁原理 蓝牙解锁的原理就是串口传输数据,通过串口传输和手机的APP进行传输数据,蓝牙接收到的数据进行检测。 我在前面的一篇文章,系统的讲过串口传输,想了解的读者可以自行观看。 思路 首先,通过手机APP连接手机搜索到的蓝牙,连接成功后,在APP中点击开锁。智能防盗门接收到指令后,进行开锁。 重要程序 ///重定向c库函数printf到串口,重定向后可使用printf函数 int fputc(int ch, FILE *f) { /* 发送一个字节数据到串口 */ USART_SendData(DEBUG_USARTx, (uint8_t) ch); /* 等待发送完毕 */ while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_TXE) == RESET); return (ch); } ///重定向c库函数scanf到串口,重写向后可使用scanf、getchar等函数 int fgetc(FILE *f) { /* 等待串口输入数据 */ while (USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_RXNE) == RESET); return (int)USART_ReceiveData(DEBUG_USARTx); } 简单的使用 scanf("%c", &GetData); printf("GetData = %c\n", GetData); if(GetData=='A') suo=0;//开 else if(GetData=='B') suo=1;//关 夜间感应开灯 思路 通过光照传感器检测智能防盗门周围的光照强度来判断是白天还是夜间。根据人体红外传感器判断是否有人到达智能防盗门前准备进入,之后选择是否进行开关灯。 scanf("%c", &GetData); printf("GetData = %c\n", GetData); if(GetData=='A') suo=0;//开 else if(GetData=='B') suo=1;//关 重要程序 原理 利用光的折射和反射原理,光从底部射向三棱镜,并经棱镜射出,射出的光线在手指表面指纹凹凸不平的线纹上折射的角度及反射回去的光线明暗就会不一样。CMOS或者CCD的光学器件就会收集到不同明暗程度的图片信息,就完成指纹的采集。 思路 首先,用户需要先录入可以进入智能防盗门的人员的指纹。然后分别进行标号、命名进行存储。 之后,对想要进入智能防盗门的人员进行指纹识别,当识别到是具备允许进入的权限的人员的时候,进行开门,否则进行关门。 效果演示 总结 本文通过指纹解锁、RFID解锁、APP解锁和夜间感应开灯实现一个完整的智能防盗门项目
  • 热度 1
    2023-10-29 19:26
    418 次阅读|
    0 个评论
    • 实验环境 工程文件下载链接! 本次实验是通过Proteus+MDK一起模拟完成的。Proteus模拟实际电路,MDK编译代码。Proteus版本是8.9,MDK版本是5.36。需要注意的是,Proteus需要安装8.8以上版本,器件库里面要支持STM32F401VE。 • 实验目的 通过定时器3TIM3,计数,8位数码管,一个3*4的键盘来实现一个简单的可设置电子时钟。 •主控: STM32F401VE,Cotex-M4内核,主频最大84MHz,程序空间512KB,FLASH空间96KB。 •时钟: 没有用外部晶振,因为Proteus只支持一种时钟树,所以这里采用内部晶振,做实验够了。 •复位电路: 没有配置相关外设电路,因为Proteus默认是有电压的,默认是复位的,毕竟是仿真软件,主要是验证程序功能。 • IO说明: 我们利用PD0~PD7以及PC0~PC7控制数码管、PE0~PE6控制键盘输入。
  • 2023-10-13 16:55
    0 个评论
    前言 嵌入式项目中,比较常见的存储扩展方案是使用TF/SD卡或者EMMC或者RAW NAND,各种方案都有其优缺点,而SD NAND相对于上述方案具备很多优势,是目前嵌入式项目中存储扩展方案的一个非常不错的选择,正好一个项目在选择NAND存储方案, 恰巧论坛中联系到雷龙公司申请到了两片SD NAND,所以就进行一下测试评估。 SD NAND是什么? 为什么选择SD NAND? 其与TF/SD卡,EMMC,RAW NAND比有什么优势, 我们可以从深圳市雷龙发展有限公司的官网找到答案http://www.longsto.com/news/。 该公司SD NAND 二代产品介绍可以参考如下地址http://longsto.com/product/list-39.html,有1Gb,4Gb,32Gb,64Gb的容量可选,我这里申请到的是两片32Gb的芯片和测试板. 焊接后如下: 测试过程 申请样品时官方提供了野火版的STM32测试程序,但是手里只有精英STM32F103开发板 V2开发板, 稍微改以下即可使用。 使用工程SDIO模式SD测试例程\\SDIO-HAL库代码\\36-SDIO—SD卡读写测试\\Project\\Fire_F103VE.uvprojx 修改下芯片型号 修改下编译器,我这里使用的是新版本的MDK所以是AC6 选择下对应的仿真器 User\\key\\bsp_key.h中修改下按键,按照开发板原理图改为PE3 #define KEY1_PIN GPIO_PIN_3 #define KEY1_GPIO_PORT GPIOE #define KEY1_GPIO_CLK_ENABLE __HAL_RCC_GPIOE_CLK_ENABLE 由于AC6只能使用UTF-8编码,而原来的文件使用GB2312编码,所以需要修改下main.c的编码,用VSCODE打开main.c Save with Encodeing选择UTF8,这样就改为UTF-8格式了。 编译下载按Key1按键, 串口打印测试结果如下 实际上CS SD NAND是完全兼容SD/TF卡的,所以直接使用精英STM32F103开发板 V2开发板的SD卡测试程序也是可以的 使用工程 【正点原子】精英STM32F103开发板 V2-资料盘(A盘)\\4,程序源码\\2,标准例程-HAL库版本.zip\\2,标准例程-HAL库版本\\实验34 SD卡实验 编译下载运行,可以看到串口打印如下 以上测试可以看出,用SD卡的程序完全可以不做任何修改应用于CS SD NAND, 软件可以无缝切换。 总结: CS创世SD NAND相对于TF卡的优势 焊接在PCB稳定,LGA-8封装容易焊接 尺寸小 结构更容易做到防水 内置SLC 擦写寿命长 一致性好 SD NAND与eMMC比具备以下优劣 尺寸小 方便焊接 容量可选多,适合实际应用 PIN脚少 功耗低 擦写寿命长 性能稳定 使用SLC/MLC CS创世 SD NAND相对于Raw NAND具有以下优势 免驱动使用 性能更稳定。 尺寸更小。 SD NAND可选容量更多 SD NAND的读写速度更快 在使用上程序完全兼容TF/SD卡,原来的程序无需任何修改即可使用,无缝切换. 而SD NAND又相对于其他方案具备上述诸多优势,所以是一个非常不错的选择. 综上,还在使用TF卡吗,是时候考虑用SD NAND替换了。
  • 热度 1
    2023-8-25 18:57
    238 次阅读|
    0 个评论
    本项目由吉林建筑大学何冬雪、岳俊华开发设计完成,该基于单片机的瓦斯监测控制系统,其硬件主要由 STM32 单片机、甲烷气体传感器、温湿度传感器、Wi-Fi 模块、蜂鸣器报警电路模块、控制电路及显示电路模块等组成。 以单片机为核心,能够实时检测到煤矿中的有毒气体,当有害气体的浓度超标时,蜂鸣器会发生声音进行报警提醒工作人员撤离,同时开启继电器控制风扇排气,增加空气流通;还结合温湿度传感器采集煤矿的环境,实现煤矿数据的采集与设定阈值对比后,并通过蜂鸣器报警。 同时结合 Wi-Fi 模块实现机智云电脑端页面显示和控制,最后还能够通过有机发光二极管显示屏显示。 一 、 引言 随着科技的日益进步,人们对能源的需求不断增加。在中国的基本能源中,煤炭的重要性是无可比拟。然而煤炭开采过程中煤矿瓦斯爆炸事故频繁发生,对人们的生命安全和经济财产造成了巨大损失。近年来,随着电子技术、计算机软硬件技术的快速发展,中国的一些研究机构和厂家推出了各种各样的监控系统,纷纷加大了对煤矿安全生产监控系统研究、开发投入,煤矿安全监测监控系统的先进性、稳定性、可靠性也在逐步提升,在煤矿安全生产过程中发挥不可忽视的重要作用。 针对上述情况,本文设计出这一款基于 STM32 单片机煤矿瓦斯监测控制管理系统,包括甲烷气体传感器电路、温湿度传感器电路、Wi-Fi 模块电路、报警电路、继电器控制电路及显示电路。 STM32 单片机作为核心,具有监测煤矿矿井温湿度、瓦斯浓度参数的功能,并具有瓦斯浓度超限报警功能;具有自动强制通风功能:采集数据可通过液晶屏显示。监控数据和告警信息可以通过 Wi-Fi 模块传输到远程机智云云端。 二、系统方案设计 2.1 设计思路 本次设计的主要核心是机智云平台对煤矿瓦斯安全环境的监控,使用移植机智云 GAgent 的 Wi-Fi / GPRS 模组建立桥梁,使煤矿瓦斯监测系统采集的数据与机智云互联互通。煤矿瓦斯监测系统与机智云数据交互图如图1所示。 图1 数据交互图 2.2 总体方案设计 煤矿瓦斯安全监测系统涉及的主要硬件设备有单片机最小系统控制电路、瓦斯气体采集模块、温湿度传感器采集模块、蜂鸣器报警模块、有机发光二极管 显示模块、继电器自动化控制模块和 Wi-Fi 无线通信模块。 这几大模块共同组成了煤矿瓦斯安全监测系统,主要功能实现如下。: 1)运用有毒气体传感器,检测煤矿有害气体浓度(比如瓦斯、一氧化碳等)是否超标,当检测到有毒气体超标,开启排风口排有毒气体,同时开启蜂鸣器警报报警,开启工作人员安全撤离,保障工作人员的安全。 2)运用温湿度传感器,采集当前煤矿环境的温湿度值。当温湿度值超过设定的阈值时,开启风扇散热排湿,实现煤矿工作环境的稳定。 3)运用光敏传感器,采集煤矿工作的光强环境。 4)OLED 液晶屏幕显示煤矿环境温湿度值、瓦斯浓度值。 5)手机 App 机智云页面的监控。 采用 Wi-Fi 模块,实现数据无线传输在手机 App 端显示监控以及控制。 手机 App 端可以显示采集的数据,还可以控制瓦斯浓度报警阀值,系统方框图如图 2 所示。 图2 系统方框图 三、系统软硬件设计 3.1 硬件电路设计 1)单片机最小系统介绍 单片机最小系统一般由下载电路、电源电路、复位电路、晶振电路和单片机芯片组成,也是系统能够实现运转的最小电路原理图。可以说,每个项目设计的每一个系统都离不开这几个电路的支撑,其外设各种功能都是在此基础上开发。 *晶振电路 本设计采用的是外接晶振电路:本晶振电路有两个电容和一个晶振源组成,两个无极电容的主要作用是消除晶振源产生干扰电感的阻抗。晶体振荡器在系统电路中主要起着产生振荡频率的作用,可以说所有的系统电路都离不开时序的频率驱动,这是一种有序的时序逻辑电路,比喻为单片机的心脏也不为过,起着至关重要的作用,而晶振的频率主要采用 12 M,可以根据单片机需求进行锁相环分频,至高能达到 72 MHz。 *复位电路 刚开始系统上电时给电容充电,此时的电阻和电容之间会形成高电压,所以单片机的RST 复位引脚是高电平,当按键 S2 被按下后,此时的电阻和电容之间会形成低电压,单片机复位引脚 RST 是低电平状态,处于这个状态超过两个机器周期,单片机就会进行程序初始化(复位)。 2)甲烷气体传感器电路 甲烷、一氧化碳等有毒气体检测电路是整个系统电路的核心组成部分之一,核心部件 MQ-5 有毒气体传感器,具有灵敏度高、寿命长、稳定性好、电路结构简单的优点,所以常用于家庭、工厂和公共场所的气体安全检测,而且 MQ-5 不仅能检测甲烷,还能检测氢气、苯、天然气等气体的探测。所以相对准确地说,MQ-5 是个多种气体检测传感器。 3)温湿度传感器电路 本次设计采用 DHT11 温湿度传感器模块采集煤矿的温湿度。DHT11 温湿度传感器是一种能够自行测量温度和湿度的复合型元器件,也是一种能够自行校准数字信号并且串行输出的传感器。其中湿度能够检测的范围 20% ~ 90% RH,温度为 0 ~ 50 ℃ ,湿度的精确度在 ±5% RH,误差较大点,温度精确度在±2 ℃ 左右,精确度较高。 4)蜂鸣器电路 蜂鸣器电路连接在三极管基极和单片机 PB12 的电阻主要起到限流的保护作用,工作原理是只要单片机 PB12 端口输出低电平至三极管基极,集电极与发射极超过0. 7 V 的导通电压,三极管被导通,有较大的电流经过三极管,蜂鸣器机会进行报警,此处用于煤矿有毒气体超标时和温湿度值过大时就会进行警报。 5)显示模块电路 屏幕的电路设计采用的是一种 IIC 接口,该类型接口连接单片机的接口只需要 4 根脚连接,SCL 是时钟接口, VCC 接电源,SDA 是数据接口,GND 接地。简而言之,两根数据线就可显示内容。IIC 是一种通信接口协议,通信协议中有起始信号、终止信号、应答和非应答四个信号。 6)继电器控制电路 因为单片机的 I / O 口驱动能力有限,所以需要加装一个继电器模块以小电流控制大电流进行驱动。由于本次设计需要用到风扇散热、有毒气体排气、排湿自动控制系统的应用,所以需要1 个继电器模块接口。 继电器模块工作原理简介: PC1 当输入高电平时,三极管Q2 处于饱和导通,继电器线圈通电,触点吸合。 PC1 当输入低电平时,三极管Q2 处于截止,继电器线圈断电,触点断开。 7)Wi-Fi 模块电路 无线通信控制采用 Wi-Fi 来控制,通过无线控制的信号传输方式来设定瓦斯报警浓度的阈值,Wi-Fi 控制的特点是成本较低,传输速度快,稳定性强,集成度高,操作也简单,用串口进行无线网络模式的数据传输即可。所以此次设计中采用 ESP -8266 Wi-Fi 连接系统,确保能够与机智云平台进行通信,可以进行远程的一个相关控制。即对瓦斯有毒气体进行一个远程的监控(机智云监控)。 3.2 软件程序设计 本设计采用的是 Keil5 软件,目前最主流编程软件。功能强大:提供了 C 语言编译器、连接器、宏汇编、库函数管理功能,还能在线调试和仿真。 1)主控制程序设计 系统上电后,进入主程序之前循环之前,需要先对各个模块的程序进行初始化,模块初始化主要包括 MQ-5 甲烷气体传感器、DHT11 温湿度传感器、OLED 显示屏等,重新初始化可以复位系统电路,并获取传感器初始化状态。 初始化完成后,主程序会对 MQ-5 有毒气体传感器实时采集有毒气体、DHT11 温湿度传感器采集温湿度、 OLED 屏幕实时更新显示等,将获取的数据经过单片机的对比后,作出相应的紧急判断,最后通过 Wi-Fi 上传数据,实现手机 App 端机智云的监控,从而实现煤矿瓦斯安全监测等自动化操作。系统主程序流程图如图3 所示。 ​图3系统主程序流程图 2)电子电路设计 本设计的硬件制作原理图主要使用 Altium Designer这款软件进行制作。此款软件可以汉化支持中文显示,使用比较的方便,功能强大齐全,设计上比较的简单,对电子电路开发有着一整套的电路开发系统,适宜电子爱好者的设计与开发,在网上学习资料也比较的齐全。 以下是设计操作的几个主要步骤: 步骤一:打开软件运行后创建文件。 新工程需要选创建工程文件,然后保存命名为“ 单片机的煤矿瓦斯监测控制管理系统的设计与研究”。 步骤二:在工程项目中创建原理图,对一些需要用到的元器件进行库增加,在库元件中找到自己设计所需要的元器件拖出来,然后对元器件进行正常的连接与布局。 步骤三:完成以上的步骤后,最终可以得到完整的煤矿瓦斯监测控制管理系统。电路原理图如图 4 所示。 图4 电路原理图 3.3 数据自动采集与监测 机智云是一个致力于物联网和云服务的开发平台。机智云云平台主要专注于物联网硬件上的智能云服务和解决方案,是行业的长期努力,是对传统物联网行业的深刻改造,为个人和企业开发者提供一站式智能硬件开发和云服务平台。 该平台提供从定义的产品、设备端开发和调试、应用程序开发、生产测试、云开发、运营管理和数据服务访问到运营管理的智能硬件访问,以实现服务的全生命周期。 机智云平台为开发人员提供自助的智能硬件开发工具和开放的云服务。 通过简单的自助工具,完善的 SDK 和API 服务功能,最大限度地降低物联网硬件开发的技术门槛,降低开发人员的成本,提高开发人员的产品生产速度,智能升级开发人员,更好地连接和服务最终消费者。 本设计中借助机智云平台,通过 Wi-Fi 模块实现数据传输,实现对瓦斯气体采集并上传至机智云的功能,本设计机智云设备访问的基本过程如图 5 所示。 图5 机智云设备访问图 开发顺序步骤: 步骤一:注册并登录机智云开发者账号 在使用机智云物联网云平台服务之前,您需要注册一个开发者账号。 步骤二:创建产品 在开发者中心点击“创建新产品” 后输入产品名称以及选择对应设备接入方案即可完成“新产品”的创建。 * 点击“创建新产品”; * 输入产品名称与选择设备接入方案; * 创建数据点,点击“ 新建数据点”,添加开关机数据点; * 下载云端自动生成的协议。 步骤三:设备与应用开发 设备端访问,设计中把单片机设备采集的信息通过编写智能云连接协议 GAgent 的网络模块,即可通过智能云平台 Wi-Fi 模块无线通信实现设备组网和智能。通过 Wi-Fi 模块连接到智能云平台,实现 App 通过云控制智能设备。 步骤四:调试产品 产品开发完成后,单片机系统数据在调试过程中,开发和调试设备将连接到 Wisdom Cloud Sandbox 服务器( 测试服务器),将采集的电压值进行显示在对应的界面,并且可以进行控制充电开启以及关闭。 四、总结 本文设计的基于单片机的煤矿瓦斯监测控制管理系统,以单片机为核心,通过传感器将井下瓦斯浓度传给单片机,单片机经过处理,判断瓦斯浓度是否超标。当有害气体浓度超标时,会发出声光报警,开启继电器控制风扇进行空气浓度调节,直至浓度降到设定值以下。 通过 Wi-Fi 模块传输到机智云端,还能在 OLED 显示屏显示,便于工作人员查看和控制,能够防止和避免事故发生,保证井下工作人员的安全。
相关资源