基于MM32W系列开发的温湿度监测仪
eetrendMcu 2023-03-21

在前面两个章节中我们详细介绍过的基于MM32W系列芯片开发的智能灯控方案和蓝牙自拍杆方案,在本章节我们将继续给大家介绍一个使用场景较为丰富的蓝牙应用方案——基于MM32W系列开发的温湿度监测仪。


图1 方案应用图

温度、湿度与我们的生活息息相关,科研实验室、农业大棚、食品储存室、疫苗存储及配送、贮藏室等对环境的温度、湿度有着严格的控制标准,温度、湿度的异常变化都可能会给其造成严重的影响。传统的人工巡查和记录环境温湿度变化并非易事,随着时代的发展,可实现智能化监测环境温湿度的温湿度传感器出现了。如今,科研、农业、暖通、机房、航天航空、电力等工业部门都开始采用智能化的温湿度传感器监测环境的温湿度。利用温湿度传感器对环境的温湿度进行实时监测,不仅能够及时发现环境温湿度的异常,进而做出应对措施,避免或减少损失,还能够减少员工工作量,降低人力成本。

硬件资源如下:

本方案基于MM32 BLE_Test Board进行测试验证,搭配上温湿度传感器DHT11作为采集环境中温湿度数据,再加上一款小型的OLED屏幕作为本地式数据输出显示窗口,另外可以通过手机APP获取温湿度变化情况。在硬件原理上,本方案的DHT11模块的单线数据传输引脚连接到MCU的PA7,为了解析模块的数据时序,该引脚复用为TIM3_CH2输入捕获功能;使用硬件IIC接口连接到OLED屏上去,引脚为PB6(SCL)、PB7(SDA),可以将温湿度数据显示在OLED;蓝牙相关的功能引脚与前面介绍的方案一致,此处不做过多展开。

软件资源如下:

结合上述使用到的硬件资源,下面我们着重介绍软件实现流程以及相关配置代码。使用MCU的引脚复用为TIM3_CH2输入捕获功能DHT11模块,在开启捕获时将PA7配置为浮空输入模式,复用功能选择AF1配置为TIM3的CH2输入捕获通道,并且将TIM3开启;在停止捕获时将PA7配置为推挽输出模式,并且将TIM3关闭。由于DHT11模块限制,温湿度采样周期间隔必须大于1S,本方案采样和显示周期为2S。

在使用OLED屏幕需要用到硬件IIC外设接口,需要将对应的PB6 PB7配置为复用开漏输出模式,初始化时还需要根据不同的OLED模块在函数IIC_Init()中修改slave设备地址,使能IIC接口后即可以开始传输工作了。由于数据采集和定时显示需要,本方案的低功耗模式采用STOP模式。

以下为主函数初始化配置内容,主要将所有的外设资源和蓝牙协议栈初始化,并且以中断服务程序的方式运行蓝牙,代码如下:

主函数的循环中主要实现的功能为定时采集和显示当前环境的温湿度数据,而该数据也将在蓝牙服务中发送到APP端显示,代码如下:

下面简单介绍一下OLED操作相关的几个函数:

//初始化IIC

void IIC_Init(I2C_TypeDef* I2Cx);

//发送命令函数

static void Write_Command(unsigned char Command);

//发送数据显示在屏幕

static void Write_DataBuff(unsigned char *Data, unsigned char Len);

//OLED屏初始化

void OLED_Init(void);

//设置坐标

void OLED_SetPos(unsigned char x, unsigned char y);

//字符串显示

void OLED_DispStr(unsigned char x, unsigned char y, char *ch);

//显示logo

void OLED_DispLogo(void);

//清屏操作

void OLED_Clear(void);

 

下面简单介绍一下DHT11模块操作相关的几个函数:

// TIM3_CH2输入捕获初始化

void CaptureInit(void);   //用TIM3_CH2  PB5  AF3

//启动捕获

void CaptureStart(void);

//停止捕获

void CaptureStop(void);

在TIM3_IRQHandler()中针对捕获的数据进行解析和处理。

我们在gatt_user_send_notify_data_callback函数中给手机发送数据,该函数属于回调函数,协议栈会在系统允许的时候(异步)回调本函数,该函数可用于蓝牙模块端主动发送数据之用,函数内部不得增加阻塞代码。该应用中我们在此函数中实现将采集转换好的温湿度数据传输给手机APP。详细实现代码如下:

//蓝牙连接成功后协议在空闲的时候会调用本回调函数

void gatt_user_send_notify_data_callback(void){ 

static u8 notiCnt = 0;//回调次数计数器

u16 humiBat ,tempBpm = 0;

unsigned char DHTData[3]={0x00,0x00,0x01};

notiCnt  ; //每进一次该函数回调次数计数器 1

if(CaptureDataMon(&humiBat, &tempBpm) == 0) return;//未成功采集到温湿度数据立即返回

tempBpm %= 512;//初步判断温度数据大小

humiBat /= 10;//初步判断湿度数据大小

if (notiCnt >= 20) {//每进入该回调函数20次才发送一次温度数据

notiCnt = 0;       

cur_notifyhandle = 0x12;//温度数据回复句柄值

if (tempBpm >8;

sconn_notifydata(DHTData,3);//换算处理好温度数据后通过蓝牙发出

}

}

else if (10 == notiCnt) {//每进入该回调函数10次才发送一次湿度数据

SimBatt = humiBat; //0~100

cur_notifyhandle = 0x18;//湿度数据回复句柄值

sconn_notifydata(&SimBatt,1);//换算处理好湿度数据后通过蓝牙发出

}

}

除了上述关键的蓝牙数据发送函数外,下面再简单介绍一些与蓝牙相关的特征值定义:

手机操作流程如下:

打开手机蓝牙并打开App,选择HRM进入,点击Connect按钮开始搜索温湿度蓝牙设备。

选择对应名称(MM32W0_DHT)的蓝牙设备并进行配对,等待连接成功。连接成功后会有相应提示,按钮Connect名字会变成Disconnect。

连接成功后,在App界面上电池图标会显示从DHT11传感器获取的湿度信息(百分比)Finger和图表会显示从DHT11传感器获取的温度信息(原始数据,温度值x10)。


图2 手机APP图 
声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 物联网
  • 蓝牙
  • WIFI
  • LoRa
  • 水质测量系统的参考设计

    Circuits from the Lab®参考设计Analog Devices公司的Circuits from the Lab®参考设计是Analog Devices公司熟练的工程师为各个领域最终产品而制作的包含基板、布局在内的全部设计信息、软件...

    2024-12-09
  • 使用手势传感器制作钥匙锁认证系统

    手势传感器用例子 – 钥匙锁认证系统 作为代替机械按钮和开关的新用户界面,手势传感器正在受到关注。但是,很多人不知道手势传感器实际上适用于哪个应用。将手势传感器用作用户界面的优势应用...

    2024-12-09
  • 智能家居的传统居住功能

    智能家居是未来发展趋势,在喜爱科技化的小伙伴家中,智能家居也是必不可少的组件。为增进大家对智能家居的认识,本文将对智能家居、智能家居系统的安装予以介绍。如果你对智能家居具有兴趣,不妨和小编一起继续往...

    2024-07-23
  • 工业物联网应用层如何实现所感知信息的应用服务?

    物联网" target="_blank">工业物联网的应用具有实时性、自动化、嵌入式(软件)、安全性、和信息互通互联性等特点,在上篇文章中,小编对工业物联网感知层、现场管理层、网络层有所阐述。为增进大家对工业物联网的认...

    2024-07-08
  • 物联网安全性:建立单独网络的重要性

    物联网IoT这个概念,已经发展了好多年了,想必大家对于物联网这3个字早已不再陌生了。为增进大家对物联网的认识,本文将对提升物联网安全性的10个技巧予以介绍。如果你对物联网或是本文内容具有兴趣,不妨继续往下...

    2024-07-08
  • 云存储的三大分类和两个隐患

    存储是各电子设备均存在的组件或者能力之一,通过存储,能够帮我们存储运行过程中产生的数据。依据存储的不同,可分为对象存储、文件存储等。目前,最火热的存储方式之一,便是云存储。为增进大家对云存储的认识,...

    2024-06-21
  • 云存储的3大类型

    云存储作为目前最火热的存储方式之一,自然受到不少人的关注。上篇文章中,小编对云存储的分类以及云存储的版本、隐私问题有所阐述。本文中,为增进大家对云存储的认识,将对云存储的选择、云存储的一些弊端予以介...

    2024-06-21
  • 云存储的优势及文件管控

    前两篇文章中,小编对云存储分类、云存储版权问题、云存储的选择以及云存储的弊端有所阐述。为增进大家对云存储的认识,本文将对云存储的优势以及云存储文件管控予以介绍。如果你对云存储具有兴趣,不妨继续往下阅...

    2024-06-21
  • BLE抗干扰的几种解决方案

    蓝牙作为常用技术,早已被现代居民所接受。但是,大家想过一个问题吗?蓝牙为什么被称为蓝牙呢?蓝牙的命名缘由是什么?本文中,小编将对该问题予以探讨。此外,小编还将介绍蓝牙技术存在的几个问题,以及蓝牙抗干扰的...

    2024-06-21
  • AGV远程控制及工作环境实时监控的实现

    1 总体方案设计 物流中心自动引导小车(AGV)控制系统由AGV智能控制模块、监视模块、及无线网络通讯模块等三大部分组成。工作过程是通过接入互联网的手机或者微机客户端通过无线网络向远程的AGV发送控制指令代码,期...

    2024-06-14
下载排行榜
更多
评测报告
更多
广告