利用Labview与Arduino两大利器的蓝牙温湿度测量仪设计_第1页
利用Labview与Arduino两大利器的蓝牙温湿度测量仪设计_第2页
利用Labview与Arduino两大利器的蓝牙温湿度测量仪设计_第3页
利用Labview与Arduino两大利器的蓝牙温湿度测量仪设计_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、利用 labview 与 arduino 两大利器的蓝牙温湿度测量仪设计作者 / 张力arduino 控制器上。我比较欣赏 dfrobot 公司的电路板层叠设计的理念,这样可以把作品的电控部分集成在一起,为 我们创作作品腾出了更多的创意空间。把 arduino 控制器和 dht11 温湿度传感器用双面胶带 粘在电池盒背面,再把电池盒的电源插头插到 arduino uno 的电源插座里,给 arduino uno 板提供电源的同时也给蓝 牙温湿度采样器供电。于是采样器的硬件系统就这样快速搭 建完成了,如图 3 所示。df-bluetoothv3 蓝牙模块,默认设置为从机模式,波 特率为 9600

2、b/s,通过 at 指令可以修改波特率和主从机模 式,将 2 个模块分别设置为主模块和从模块后,2 个模块就 可以自由配对进行数据传输,因此它非常适用于 2 个单片机 之间的数据通讯。如果仅是 pc 机与 arduino 单片机的蓝牙通信,就用出 厂默认设置即可,即从机模式,波特率为 9600 b/s,这样就 不需要用 at 指令进行事先特别设置,对于两个单片机之间 主从机蓝牙通信实验,暂时不详细介绍。df-bluetoothv3 模块有两个拨码开关,1 号开关 led off 是 link 灯的开关,可以关闭 link 省电,拨到“on”为开, 拨到“1”端为关;2 号开关 at mode

3、是 at 命令模式开关, 拨到“on”,进入 at 命令模式,拨到“2”端,退出 at 命令模式。在进行 pc 机与 arduino 单片机之间进行蓝牙无 线通信实验前,仔细看图 4 中蓝牙模块电路板的标识文字, 要把 1 号开关 led off 拨到 on,把 2 号开关 at mode 拨 到 2 端。pc 机与 arduino 控制器之间进行蓝牙无线通信不仅 需要 df-bluetoothv3 模块,而且还需要把蓝牙适配器插 在 pc 机 usb 插座里,市面上大多数蓝牙适配器都可以与 df-bluetoothv3 模块成功配对。插上蓝牙适配器,电脑会 自动搜索新设备,安装蓝牙驱动,并映

4、射出两个 com 串口, 可以在设备管理器的“端口(com 和 lpt)”目录里看到它们, 这些虽不是我们需要的端口,但千万不要把它们卸载了!使用蓝牙适配器和 df-bluetooth v3 配对时,df- bluetooth v3 必须设置为从机模式,蓝牙适配器不需要驱动 程序,配对密码为“1234”。 我用 windows xp 自带的蓝 牙组件“link”联机 df-bluetooth v3 蓝牙模块,不成功。 采用 ivt bluesoleil 1.6 蓝牙管理软件联机是成功的! ivt 软件请从以下网址下载 :http:/115.com/file/e7xrv2ou# ivt blue

5、soleil 1.6.zip。安装 ivt bluesoleil 1.6 蓝牙管理软件时,它会让您安图 1 蓝牙温湿度测量仪全景图在电脑上,我用 labview 制作了一个酷酷的界面,显示着宜昌城区的室内气候,由于连续几天的大雨,显然此刻 温度和湿度都比较宜人(见图 1)。电脑屏幕前是 arduino 温湿度采样器,采样器左侧的部分是 arduino 控制器,上面 层叠着蓝牙模块,右侧部分是 dht11 温湿度传感器。传感 器把温度和湿度通过蓝牙上传到了上位机,在 labview 的仪 表盘中显示出来。有了无线蓝牙通信,pc 机仪表面板与采 样器之间可以脱离开有线的束缚。现在把采样器拿到 5

6、米以 外,对着 dht11 传感器,哈气,一股潮湿的暖流向它袭去, 再看电脑屏幕上的仪表盘,指针行动起来了,温湿度值同时 开始上升。好玩!我们又一次亲身体验到了科技的乐趣。df-bluetooth v3模块与pc机的蓝牙连接笔者将着重介绍 dfrobot 公司出品的蓝牙模块的应用。df-bluetoothv3 蓝牙模块采用独特双层板设计,既美 观又能防止静电损坏模块。模块设计有两个电源输入口,宽 电压供电(3.5 8v)和 3.3v 供电,可适用于各种场合 ; state 和 link 指示灯清晰明亮,用于显示模块工作状态 和联机状态 ;自带高效板载天线,信号质量好发射距离远 ; 提供透明串口

7、协议,可与各种蓝牙适配器、蓝牙手机配对使 用。这些人性化的设计为二次开发提供了便利。通过蓝牙模块 df-bluetoothv3,建立起 pc 机与 ar-duino 单片机之间无线通信的流程图如图 2。图 2 中 df-bluetoothv3 蓝牙模块,它可以层叠在dht11温湿度传感器图 2 pc 机与 arduino 单片机的无线通信流程图图 3 蓝牙温湿度采样器装蓝牙设备驱动,还有多个蓝牙虚拟串口,不管它,都安装上,如图 5。 安装完 ivt 软件,然后我们用它一步步地把蓝牙适配器与 df-blue- tooth v3 蓝牙模块进行联机“link”。 打开 ivt bluesoleil

8、软件,橘色的 球体就是蓝牙适配器,在黄色的球体上,点右键搜索蓝牙设备,这时软件界面 里会出现一个带问号的 bluetooth v3 图标,它就是搜索到的 df-bluetooth v3 蓝牙模块。在 bluetooth v3 图标 上,点右键配对,会出现“配对”对 话框,要求填写口令,填入“1234”, 填好后点确定,配对后蓝牙硬件模块的 state 指示灯会一闪一闪的。在 bluetooth v3 图标上,点右键刷新服务,ivt 软件界面的串口图标 会高亮显示,如图 6 所示。接下来进 行最后一个“link”步骤,在 blue- tooth v3 图标上,点右键连接蓝 牙串行端口服务,随之出

9、现“快速连接” 对话框,对话框显示的串行端口就是联 机生成的串口号。联机成功后,橘色的 球体与 bluetooth v3 图标之间有一条 绿色虚线出现,表示正在传输数据。同 时 df-bluetooth v3 蓝牙模块的绿色“link”指示灯会持续点亮,指示联机 成功!图 6 显示,windows 操作系统桌 面右下角出现提示文字,“我的蓝牙端口 com16(com16)已与远程设备建立连接”,当然您具体联机操作时, 最后生成的串口号不一定是 com16, 要记住您生成的串口号,这个虚拟出的 蓝牙串口号是 pc 机与 arduino 控制 器之间通信的唯一通道。这时再打开 windows 设备

10、管理器的“端口(com 和 lpt)”目录,您可以把多余的串行 端口给卸载掉了,如图 7。蓝牙适配器与 df-bluetooth v3 蓝牙模块联机成功后,生成了串口号 com16,现在就可以用 rs232 串口 协议进行无线通信。图 4 df-bluetoothv3 模块的拨码开关图 5 ivt bluesoleil 软件的蓝牙虚拟串口安装蓝牙适配器xbee传感器 arduino uno 扩展板v5控制板df bluetoothv3蓝牙模块测量仪上位机软件设计蓝牙虚拟测量仪由上位机 labview 仪表面板和下位机温湿度采样器组成,现在谈谈上位机仪表面板程序的设计。可 以再看图 1,我为这个

11、作品设计的仪表盘前面板,蛮酷的吧。这个仪表盘外形控件看起来很棒,是 labview 软件自 带的吗?不是,您需要下载“vi 封装管理器”软件 vipm, vipm 是管理 labview 附加组件的 labview 官方软件, labview 附加组件有些像 arduino 第三方库文件。我用这个 软件下载和安装了一个金属风格控件库组件。vipm 下载地 址是 :/vipm。在 windows 桌面上,点击 vipm 图标,运行程序。在 其菜单栏的“window”菜单项里,选择 show labview tools network,如果这时您的电脑已经连上了互

12、联网,就 会紧跟着出现一个更直观的 vi 附加组件的介绍和安装窗口。 选择 sort by 为“rating”,再一页页地翻看,找到图8 中我用矩形框标注的金属风格控件库组件,点击下载,并 安装。安装完后,labview 的控件工具库面板里就会出现这个 金属风格的控件库组件,控件包括 :仪表盘、按钮、开关、 图表等。有了这个控件库组件,您再设计的人机交互面板是 不是会比以前更酷。嗯,现在我们来做一个实验,找出一个 打火机,要干嘛?别紧张!点火来“烤”dht11 温湿度传 感器,猜猜电脑屏幕上的 labview 仪表盘上温度和湿度指针 如何行动?看图 9。看看,温度上升到了 50,而湿度被蒸发下

13、降到了25%。夏日里,我们并不缺乏对温度和湿度的定性感受,但 如果能清晰直观地观测到定量值,相信对温湿度,可以做到 更加心里有数,就如您随时看手表,了解现在的时间是几点 几分一样了。labview 前面板的 ui 设计虽然比较酷,但支撑它的后 台框图程序却很简单,花短短 20 分钟来设计这个程序足以, 初学者可能要时间再长一些。蓝牙温湿度测量仪 pc 机仪表面板框图程序如图 10。 要编写串口通信程序,不仅要具备 labview 软件,还必须另外安装 ni_visa 串口通讯协议驱动。安装完 ni_ visa,在框图程序界面右击鼠标,出现函数工具库面板,再 点击“仪表 i/o”“串口”,就会出

14、现串口函数 vi 子面板, 如图 11。框图程序是采用 ni_visa“串口”函数来访问和控制 串口的。visa 中的“串口”函数库里包含如图 11 所示的 八个子函数 vi。本设计用到的三个 visa 串口子函数分别是 visa 配置串口、visa 读取和 visa 关闭。visa 配置串口函数的作用是完成串口参数的初始化设图 6 df-bluetooth v3 蓝牙模块与蓝牙适配器的联机图 7 卸载多余的串行端口图 8 金属风格主题控件库组件的下载图 9 火烤试验下蓝牙温湿度测量仪前面板的温湿度显示图 10 蓝牙温湿度测量仪的后台框图程序以字符串的形式输出。visa 读取函数图标上面输出端

15、子输出的是串口资源名称,下面的输出端子输出的是错误码,继 续向下游函数传递信息。在前面板按下“exit”按钮,可结 束 while 循环。visa 关闭函数的作用是当程序停止时,必须要把所用 到的串口设备关闭,若不关闭,其他程序就不能使用该串口。从 visa 读取函数输出的字符串,通过“字符串至字符 数组转换”函数把字符串转换为字符数组,再通过“索引数 组”函数,把第 0 元素从字符数组取出,是湿度值,送到湿 度仪表控件里显示,把第 1 元素从字符数组取出,是温度值, 送到温度仪表控件里显示,于是您就看到了 dht11 传感器 的温湿度直观地显示在 pc 机屏幕的 labview 前面板仪表上

16、 了!当然对仪表控件还要通过属性对话框进行数据范围和数 据类型的设置。另外还需用修饰控件进一步美化前面板。labview 程序下载网址是 :http:/115.com/file/an-86rv29# 蓝牙虚拟温湿度仪 .zip。图 11 visa 串口函数 vi 子面板置,包括了串口资源名称,波特率,奇偶校验、数据位数、是否启用终止符等,图 10 中该函数连接了两个输入变量, 它们分别连在串口资源名称和波特率参数端子上,变量值由 前面板上的相应控件来设定,另外该函数在“是否启用终止 符”的端子上还连接了一个布尔常量,常量值为 false,含 义是不启用终止符,其它输入参数采用默认值。visa

17、串口 配置函数有两个输出端子,它的图标上面输出端子输出的是 串口资源名称,下面输出端子输出的是错误码,输出端子向 下游函数传递信息。visa 读取函数有三个输入端子,图中 visa 读取函数 图标的上面输入端子是前面 visa 配置串口函数传递的串口 资源名称,下面的输入端子传递的是错误码,意思是若前面 的函数出错了,会往这里输入一个错误码,然后继续往下面 传递,有错误码出现时程序是不会工作的。中间输入端子是 每次从串口读取的字符串字节数,本文串口通信的字节数应 设置为 2。图 10 中 visa 读取函数包含在一个 while 循环结构中, 每 20ms 从串口读取两个字节,并从该函数的中间

18、输出端子,测量仪下位机软件设计费了半天劲,写完了 lavbiew 上位机程序,接下来,下位机 arduino 的程序如何设计? arduino 程序的任务有两点:1. 把 dht11 传感器的温湿度值读出来,处理成字节数据 ;2. 把湿度和温度字节数据通过串口上传给上位机。由于 dht11 传感器是采用单线制串行通讯的方法进 行采样数据的,要配合时序,一位位从单条通讯线传过来, 再合成 8 位字节,然后还要进行校验和,所以厂家自带程 序,比较复杂冗长,看起来头疼 ! 实际上有的时候,我们琢 磨一个东西,可以大刀阔斧,没必要转牛角尖,所以从下面arduino 程序中,您找到所需的温度值和湿度值,

19、就行了,dht11_dat2 为温度值整数部分,dht11_dat0 为湿度值 整数部分,然后把湿度和温度字节数据通过 rs232 通讯协 议,上传给 pc 机串口 com。下位机蓝牙温湿度采样器 arduino 程序 :arduino 程 序 的 下 载 网 址 是 :http:/115.com/file/an86r28u#bluetooth-dht11.zip。 蓝牙技术是爱立信、ibm 等 5 家公司在 1998 年联合推出的一项无线网络技术。它能够在短距离范围内无线连接桌 上型电脑与笔记本电脑、便携设备、pda、移动电话、拍照 手机、打印机、数码相机、耳麦、键盘甚至是电脑鼠标。蓝 牙无

20、线技术使用了全球通用的频带(2.4ghz),以确保能在 世界各地通行无阻。简言之,蓝牙技术让各种数码设备之间 能够无线沟通,让散落各种连线的桌面环境成为历史。短距离通信的发展趋势是无线通信。蓝牙技术在当前已 经应用得比较普遍,但是这种应用往往局限于高端的电子产 品中。本文介绍的 arduino 单片机与 pc 机之间实现蓝牙无 线数据传输方法,使得蓝牙技术也可以应用在低端嵌入式电子产品中。#define dht11_pin 0/dht11 连接在 arduino uno 模拟端口 pin 0 byte read_dht11_dat()/“读取 dht11 的温湿度值”子函数byte i = 0

21、; byte result=0; for(i=0; i 8; i+)while(!(pinc & _bv(dht11_pin); / 延时 50us delaymicroseconds(30);if(pinc & _bv(dht11_pin)result |=(1(7-i);while(pinc & _bv(dht11_pin); / 为“1”时结束return result;/ 初始化void setup()ddrc |= _bv(dht11_pin); portc |= _bv(dht11_pin); serial.begin(9600); / 串口通讯启动/ 主程序void loop()byte dht11_dat5;/ 存储从 dht11 传感器采样的温湿度值的数组byte dht11_in;byte i;/ 初始化/ 延迟 18ms,拉低 i/o 口/ 启动采样portc &= _bv(dht11_pin)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论