迅维网

查看: 1324|回复: 2
打印 上一主题 下一主题

HC-06蓝牙+DHT11温湿度模块

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-24 10:26:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东青岛 来自 山东青岛

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x

1.蓝牙
硬件上,我直接将蓝牙模块与单片机的串口处连接(蓝牙-单片机: VCC-5V, GND-GND, RX-TX,TX-RX)?。软件上,由于HC-06的资料比较少,我下载了几个HC-05的程序看,发现都是讲RX/TX(发射/接收端)接在单片机IO的情况。这才意识到,如果蓝牙模块是直接连在串口端的话,写代码相当于只是串口通信了。所以尝试打开串口实验(这个大家都有的,买单片机老板都会送,这个程序要实现的是STM32通过串口和上位机的对话,STM32在收到上位机发过来的字符串后,原原本本的返回给上位机,需要注意在上位机输入的字符串末尾加入回车键,否则无响应),几乎不需要改动什么,烧进去之后看结果。首先蓝牙的LED灯亮了,是个好现象。手机打开蓝牙串口助手的客户端,也成功配对了蓝牙(默认密码是0000或1234)。但是手机端显示的却是乱码,我估计可能是不能识别中文的原因,所以将程序里所有输出的中文都改成简版的英语,这样也能知道输出的是哪个部分。重新烧了一次,结果如下图:



?这才看出来,是一直提示“input”,结果是正确的,可以返回我输入的字符串,但是单词都得分几次才能出来,显然是软件不合适。重新找了个软件,成功解决问题,实现了实验要求。而一直提示input,是由于这段代码:



这句话原本是times 0==0,所以致使频繁输出input,将时间拉长就明显好多啦~
2.温湿度
?DHT11的代码在网上也很方便的找得到,问题在于如何修改。这个模块只有三个引脚,很自然的高接高,地接地,但是数据线接哪需要看程序是怎么给的。程序里有dht11.c和dht11.h,可以看到程序是要求数据线接单片机的PG11管脚,但是我的单片机并没有这个管脚,这就很麻烦了,需要改变两个文件里对管脚的定义。为了使改动的地方减少,我意图改为PA11/PB11/PC11中的某个管脚。此时,需要查看单片机的原理图,看哪个管脚是空闲的,同时综合板子上管脚的位置,我选择了改为PC11。修改的程序如下图(.c+.h):
?.c


.h


?但这个程序较为麻烦的是,主函数也得改,因为原程序的作用是:开机的时候先检测是否有DHT11存在,如果没有,则提示错误。只有在检测到DHT11之后才开始读取温湿度值,并显示在LCD上,如果发现了DHT11,则程序每隔100ms左右读取一次数据,并把温湿度显示在LCD上。而我的要求是输出到串口处。所以直接将所有LCD输出的句子都删去,改为printf即可。我仔细看了蓝牙模块的程序,主函数里并没有特别的地方,直接用printf就输出到了串口处了。可是这次却不一样,打开手机蓝牙端,没有任何反应。我百度了一下原因,http://blog.csdn.net/wdscq1234/article/details/7944036 这个链接给我帮助,意思是printf需要重定向到串口处。我再一次打开蓝牙的keil工程,发现确实勾选“UseMicroLIB”了,所以想试试“Target——Code Generation——选中UseMicroLIB”的办法,结果确实可靠。如下图:



测试的温度湿度准不准是一码事,起码连接和代码是没有问题了~?
嗯,今天就这些。宝宝是纯小白,希望大家指教!?



2#
发表于 2016-2-24 11:40:58 | 只看该作者 来自: 浙江台州 来自 浙江台州
好高端的玩意  

点评

你自己可以制作  详情 回复 发表于 2016-2-24 13:00
回复 支持 反对

使用道具 举报

3#
发表于 2016-2-24 13:00:20 | 只看该作者 来自: 山东青岛 来自 山东青岛

你自己可以制作

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复