当前位置:文档之家› 基于温湿度及光照的无线传输

基于温湿度及光照的无线传输

硬件电路工作流程图: 此系统的主站和从站可以任意切换,主站可以一点对多点,最多可以多达 100 个,在此 我们只做三个站实现收发。
三、发挥部分
硬件模块有多种模式,针对 NRF24L01 有发送模式,接收模式,自由收发 模式, 当进入发送模式的时候,该模块就担任为从站,可以自定义自己的站点号 (00~99),还可以自定义需要发送的数据——温度,光照,湿度。除了这些,还 可以自由选择每分钟向主站发送的频率,使得发送有很大的自由性,可控性。除 了发送之外,还具有查看本站实时采集的温湿度数据,显示数据是通过图表显示 和数字显示结合的方式来实时显示,非常只管,当数字数据更新太快时,可以选 择显示频率,坐标轴也可以放大缩小,非常的人性化。
附录: /***************************************************************
触摸屏的最简版本 可以用此程序帮助别的程序加载这一部分
加载程序后就可以在屏幕上画了 按 CLR 部分清屏
端口分配详见原理图
****************************************************************/ #include "stm32f10x.h" #include "fsmc_sram.h" #include "lcd_dis24.h" #include "Chinese.h" #include "date.h" #include "RTC.h"
硬件电路组成:硬件系统分为五大部分,第一大部分就是无线发送和接受的 无线模块(NRF24L01),第二部分就是数据采集部分,由 AMT1001 温湿度模块和 光敏电阻组成,第三部分就是显示部分,由触屏模块组成,第四部分则是警报控 制部分,由蜂鸣器和 IO 模拟 led 作为模拟,第五部分则是 MCU,采用一片 STM32F103VCT6 及简单外围电路组成
考虑到本系统性能,我们选择方案二。 二、理论分析与电路 (一)工作原理
本系统的无线收发模块为 NRF2401,其工作原理如下: 发射数据时,首先将 NRF2401 配置为发射模式:接着把接收节点地址 TX_ADDR 和有 效数据 TX_PLD 按照时序由 SPI 口写入 NRF2401 缓存区,TX_PLD 必须在 CSN 为低时连续 写入,而 TX_ADDR 在发射时写入一次即可,然后 CE 置为高电平并保持至少 10μs,延迟 130μs 后发射数据;若自动应答开启,那么 NRF2401 在发射数据后立即进入接收模式,接收 应答信号(自动应答接收地址应该与接收节点地址 TX_ADDR 一致)。如果收到应答,则认 为此次通信成功,TX_DS 置高,同时 TX_PLD 从 TX FIFO 中清除;若未收到应答,则自动 重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT 置高,TX FIFO 中数据保留以便再次重发;MAX_RT 或 TX_DS 置高时,使 IRQ 变低,产生中断,通知 MCU。 最后发射成功时,若 CE 为低则 NRF2401 进入空闲模式 1;若发送堆栈中有数据且 CE 为高, 则进入下一次发射;若发送堆栈中无数据且 CE 为高,则进入空闲模式 2。 接收数据时,首先将 NRF2401 配置为接收模式,接着延迟 130μs 进入接收状态等待数据 的到来。当接收方检测到有效的地址和 CRC 时,就将数据包存储在 RX FIFO 中,同时中断 标志位 RX_DR 置高,IRQ 变低,产生中断,通知 MCU 去取数据。若此时自动应答开启, 接收方则同时进入发射状态回传应答信号。最后接收成功时,若 CE 变低,则 NRF2401 进 入空闲模式 1。 (二)电路分析
#include "ADS7846.h" #include "delay.h" #include "main.h"
#include "NRF24L01.h" #include "shuruchuli.h"
#include "ADC.h" #include "math.h"
EXTI_InitTypeDef EXTI_InitStructure;
温度光照和湿度的实时监控
本系统是基于 STM32 单片机作为主控制芯片,通过无线收发模块对环境温度,光照和 湿度进行温度,光照和湿度的实时监控。

摘要:本系统是基于 STM32 单片机作为主控制芯片,通过无线收发模块对环境温度, 光照和湿度进行温度,光照和湿度的实时监控。由主要硬件由 STM32 单片机,2.4 寸触屏 液晶,NRF2401,以及光敏传感器和温湿度传感器等,主要工作原理由光敏传感器和温湿度 传感器对环境的光照和温湿度进行检测,将检测到的数据通过无线收发模块进行发送给单片 机,单片机将数据通过触屏液晶显示出来,并分析数据,判断是否发送命令给检测点是否改 变环境温湿度,如此循环从而实现一个实时的监控。

extern u8 TempXYsign;
//温度 XY 坐标切换 5 最大 Y 为 50 度 10 为最大 Y 为 100
度 20 为最大 Y 为 200 度
extern u8 datechange;
//切换显示数据 1 温度 2 湿度 3 光照
extern u8 showdaterate;
//显示数据的分频值 1 一分频 2 二分频 3 三分频......
方案 2: STM32 单片机
STM32 单片机,其晶振频率可达到 70 多 M(51 单片机一般 12M 左右),其
处理速度不仅快,并且自带 12 位的 ADC 寄存器,PWM 寄存器(如果响应端加 上电机,还可以控制降温),彩屏,数据采集都可以达到使用要求。另外 STM32 还有功耗低,多个定时器等等。使用 STM32 完全能满足本系统的功能和性能。
当模块选择接收模式时,则此时模块就作为主站了(可以有多个主站,完 全自由调控,而且主站和从站之间也可以互相切换,只需要改变模式就可以), 作为主站时,该模块则会接受来自各个从站的信息数据,主站自动滤波功能,可 以排除非从站协议信号的接受,还有从站滤波功能,实时的记录当前从站的站点 号,和对应的信息数据,
⑥对应的还有光照选项,对于光照选项,图表和数字式结合的显示当前的光 照强度,并且还具有记录功能,记录着最低的光照强度和最高的光照强度,当然 有记录的清除功能(最低的湿度和最高的光照强度记录就是从上次清除开始的); 除了最高最低光照强度的记录和实时显示之外,还有光照强度控制的设置,高低 光照强度警报的设置,这里的光照强度控制你可以设置你想要保持的一个光照强 度,用来该站点的自行光照强度控制,当然此功能可以选择开关,开或关则看具 体的应用需求,主站对这一从站是否会光照强度警报,就看这一功能的开关。如 果开的话则报警功能打开,如果关闭的话则报警功能关闭。
3 表示自由收发配置 OK
extern u8 station[2];
//站点设置
extern u16 sendrate;
//发送频率
extern u8 WSDsetinsign[5]; //WSDsetinsign[0]=1 发送温度 WSDsetinsign[1]=1 发送湿度
WSDsetinsign[2]=1 发送光照 WSDsetinsign[3]=1 自由发送开启 WSDsetinsign[4]=1 显示数
void Delay(__IO uint32_t nCount);
示出来。
为实现各模块的功能,分别作了几种不同的设计方案并进行了论证,我们选择了较好的
方案实现。
(二)各模块方案选择和论证
方案 1:51 单片机
用 51 单片机作为本系统的微控制器,从功能角度来看,51 单片机是可以完 成的,但是从性能方面就不尽人意,主要表现在,处理速度慢,没有 AD/DA 转 换(需要外加 AD/DA 转换),彩屏刷新慢,采集周期长等等一些问题。
ErrorStatus HSEStartUpStatus;
/* Private function prototypes -----------------------------------------------*/
extern u8 wirelesssetok; //无线设置完成
1 表示发射配置 OK 2 表示接收配置 OK
本系统所使用的模块较多,电路相对要简单一点,没有自制电源,选择了外加稳压电 源。因为主站和从站可以任意切换,主站电路和从站电路一样。主站和从站的主要不同之处 在于,主站上接有触屏液晶,并在程序上有数据的接收和显示,还有触屏的输入等。当要将 从站切换成主站时,只需接上触屏液晶,并在程序上也切换成主站程序。 (三)硬件电路组成及工作流程图:
⑦该程序还支持 100 个从站点,任意个主站点。
四、测试结果及分析
三、总结 经过三个月的努力学习和研究,从开始查找资料,学习相关的软件,了解相关的基础知
识,到制定具体实施方案,最后购买相关材料并制作。小组成员的通力协作,团结互助,终 于完成了实验项目。
在本次设计的过程中,我们遇到了许多突发事件和各种困难。致使浪费在查错上很多时 间。但通过团队的仔细分析和自我调整状态后我们终于解决了所有问题,取得了圆满的结果。 经过此次电子大赛让我们对电路的设计、调试有了深刻的印象,加深了对 STM32 的了解, 同时也深刻的体会到了共同协作和团队精神的重要性,提高了我们解决问题的能力,设计中 还有欠缺的方面,今后的学习工作中会加以注意。
功能可以选择开关,开或关则看具体的应用需求,主站对这一从站是否会高低温 警报,就看这一功能的开关。如果开的话则报警功能打开,如果关闭的话则报警 功能关闭。
⑤对应的还有湿度选项,对于湿度选项,图表和数字式结合的显示当前的湿 度,并且还具有记录功能,记录着最低的温度和最高的湿度,当然有记录的清除 功能(最低的湿度和最高的湿度记录就是从上次清除开始的);除了最高最低湿 度的记录和实时显示之外,还有湿度控制的设置,高低湿度警报的设置,这里的 湿度控制你可以设置你想要保持的一个湿度,用来该站点的自行湿度控制,当然 此功能可以选择开关,开或关则看具体的应用需求,主站对这一从站是否会高低 湿度警报,就看这一功能的开关。如果开的话则报警功能打开,如果关闭的话则 报警功能关闭。
相关主题