温湿度检测无线模块

本文介绍了作者自行设计并编程的温湿度无线监测模块,该模块采用STC89C52RC单片机、DS18B20温度传感器、DHT11湿度传感器和24L01P无线模块。模块能将温湿度数据通过2.4G无线信号发送到主机,同时具备多种工作模式设置,允许主机查询和设置采样间隔。目前存在的问题是定时存在误差,作者正在寻求解决方案。此外,文中还展示了模块实物照片,并提到了2.4G无线信号在室内隔断后的信号衰减问题。
摘要由CSDN通过智能技术生成

我自己设计、制作、编程开发的温湿度无线模块正式调试完成了。

整个模块由STC89C52RC单片机+DS18B20温度传感器+DHT11湿度传感器+24L01P无线模块组成。

其功能可以将温湿度采样后通过2.4G无线信号传送到主机上。

另外,这个模块也在92频道上监听来自主机的命令:

命令 80:查询命令。一旦接收到这个命令,模块马上进行一次温湿度采样,并将结果立即返回主机;

命令 90:设置模块工作模式命令。模块一共有28个工作模式,设置不同的采样间隔时间,最小5秒,最大18个小时。0模式设置模块不自主发送温湿度给主机,仅在主机发送查询命令时返回温湿度值。主机对模块的设置将被存入STC的片内EEPROM中。这样,下次开机时,模块就自动按照上次的设置开始工作了。

目前的问题是定时有误差。我还没有找到原因,我是用定时器0做的定时,应该很准的,但实际却有误差。下面是定时、中断相关的代码,如果您看出为何会出现误差,请回复这个帖子告诉我您的想法,谢谢先。

首先是定义了2个全局变量:

//中断计数器,每50ms加一
byte timerMSCounter = 0;

//中断计数器,每1秒加一
uint timerSecCounter = 0;

然后是对Timer0的初始化:

void initTimer0(void)
{
	TMOD &= 0xf0; //清除定时器0模式位
	TMOD |= 0x01; //设定定时器0为方式1:16位
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值