属猴和什么属相相克| 四面八方是什么意思| 属马的跟什么属相最配| 贼不走空什么意思| 日丙念什么| 伤官伤尽是什么意思| 乳头瘤有什么症状| 电灯泡什么意思| 吃什么东西补充胶原蛋白| sherpa是什么面料| 养字五行属什么| 血糖高吃什么水果好能降糖| 梦见纸人是什么意思| 孕妇梦见下雨是什么意思| 右肺上叶钙化灶是什么意思| 小孩检查微量元素挂什么科| 叒怎么读音是什么意思| 女孩当兵需要什么条件| 陌路人是什么意思| 白癜风的症状是什么| 梦见打蛇是什么预兆| 球蛋白高是什么原因| 什么的茄子| 孕前检查挂什么科| 胸口闷堵是什么原因| 周杰伦英文名叫什么| md是什么意思| 痛风能吃什么水果| 尿检白细胞弱阳性是什么意思| 胎儿顶臀长是什么意思| 7.30是什么星座| 睡觉做梦是什么原因| 桑树枝煮水有什么功效| 话费为什么扣那么快| 天肖是什么生肖| 全身冰凉是什么原因| 白细胞偏低是什么原因| 大便有点绿色是什么原因| 4.14是什么星座| 有什么有什么四字词语| 头皮屑多是什么原因引起的| 头疼头晕挂什么科| 1988属什么生肖| 美商是什么意思| 六月是什么夏| 什么水果可以减肥| 官杀混杂是什么意思| 牛子是什么| 吃完泡面吃什么解毒| 茄子不能和什么一起吃| 脚肿看什么科| 幽门螺旋杆菌挂什么科| 水痘擦什么药膏好得快| 三色堇的花语是什么| 岁运并临是什么意思| 辛巳五行属什么| 看好你是什么意思| 马赫是什么意思| congee是什么意思| 上嘴唇上有痣代表什么| 反馈是什么意思| mcm牌子属于什么档次| 肛塞有什么用| gl小说是什么意思| 为什么会做梦| 下午16点是什么时辰| 儿童口腔溃疡吃什么药| 歆字五行属什么| 手什么脚什么| 李白被人们称为什么| 睾丸疼吃什么药| 嫡传弟子是什么意思| 何方神圣是什么意思| 87年兔是什么命| 什么是礼仪| 高血脂吃什么| 凌晨两点多是什么时辰| 血小板体积偏低是什么原因| 临床医学主要学什么| 贫血的人吃什么好| 宫寒应该吃什么怎样调理| 化作风化作雨是什么歌| 桑叶泡水喝有什么功效| 鳞状上皮增生是什么意思| 消肿吃什么药| 什么是强迫症有哪些表现| 白左什么意思| 疤痕憩室什么意思| 1991是什么年| May什么意思| 属牛男和什么属相最配| 吃止疼药有什么副作用| 家里什么东西止血最快| 吃什么补阳气最快| 心跳加快吃什么药| 虎与什么生肖相合| 六月初一有什么讲究| 早上起来头晕是什么原因| 瞎子吃核桃砸了手是什么生肖| 雪莲果什么季节成熟| 口腔溃疡吃什么水果好得快| 什么七八什么| 金蝉吃什么| 三百多分能上什么大学| 瑾字是什么意思| 男孩子断掌有什么说法| 固执什么意思| 男才女貌是什么意思| 老年人心慌是什么原因| 腹泻拉水吃什么药| 浣碧什么时候背叛甄嬛| 小孩脚抽筋是什么原因引起的| 做肝功能检查挂什么科| 抓包是什么意思| 什么东西一吃就死| 颈椎脑供血不足吃什么药| 玫瑰花有什么功效| lgg是什么意思| 坐飞机要带什么证件| 逼宫什么意思| 性情什么意思| 看淋巴挂什么科室| 小儿疝气挂什么科| 四川的耗儿鱼是什么鱼| 男人不举是什么原因造成的| 对策是什么意思| 耳鸣什么原因引起的| 过氧化氢阳性是什么意思| 为什么说| 睡不着挂什么科| 面肌痉挛挂什么科| 肾痛是什么原因| 骨折吃什么恢复得快| 吃榴莲对妇科病有什么好处| 肝红素高是什么原因| 进是什么结构| 正确的三观是什么| 唇炎去医院挂什么科| 拉肚子是什么原因引起的怎么办| 欧舒丹属于什么档次| 宫闱是什么意思| 莱猪是什么| 7月初是什么星座| 胃炎吃什么药最有效| 所以我求求你别让我离开你是什么歌| 西安机场叫什么名字| 招魂是什么意思| 右侧卵巢多囊样改变是什么意思| 阴中求阳是什么意思| 长江学者是什么级别| 跑步肚子疼是什么原因| 咳嗽有白痰吃什么药| 一个火一个华念什么| 口巴念什么| 浚字五行属什么| 考拉吃什么食物| 离线缓存是什么意思| 吃什么降血压最快最好方法| 阴唇痒是什么原因| 额头冒痘是什么原因| 鼻窦炎有什么特效药| 日月星辰是什么意思| 喉咙干是什么病的前兆| 格桑花是什么花| 心颤吃什么药效果好| 什么食物含硒量最高| 唇系带断了有什么影响| 维他命是什么意思| 阴道口瘙痒是什么原因| 取环是什么意思| ev病毒是什么| 小分子肽有什么作用| 朝秦暮楚是什么意思| 夕阳无限好是什么意思| 中老年人吃什么油好| 仲什么意思| 眼睛有异物感是什么原因| 牙齿发黑是什么原因| 警示是什么意思| 尿道炎吃什么药| 温水煮青蛙什么意思| 开场白是什么意思| 扁桃体发炎严重吃什么药好得快| ootd什么意思| 补气血吃什么药效果好| 为什么不建议打卧蚕呢| 什么叫词牌名| 10度穿什么| 骨髓瘤是什么原因引起的| 内火重吃什么药见效快| 什么电视剧好看| 羊内腰和外腰分别是什么| 怨念是什么意思| 前庭功能减退是什么原因| 3月9日是什么星座| 淋症是什么意思| 红枣泡水喝有什么好处| 五阴是什么| 肩周炎是什么原因引起的| 蛋皮痒痒是什么病| l1是什么意思| 肝火旺盛吃什么食物好| 618是什么节日| 关帝庙求什么最灵| 百折不挠的意思是什么| 脚麻木是什么病的前兆| 结肠憩室是什么意思| 流苏是什么东西| 西兰花是什么季节的蔬菜| 10点多是什么时辰| 十指不沾阳春水是什么意思| 逍遥丸主要治什么病| 有出息是什么意思| 女人尿多是什么原因| 床单是什么| 什么是乙肝| 什么是透析治疗| 孩子喉咙痛吃什么药好| 夜尿多什么原因| 口腔溃疡吃什么药好使| 什么时间运动减肥效果最好| 今天冲什么生肖| 去侍庙有什么禁忌| 周岁是什么意思| 胃溃疡a1期是什么意思| 一什么就| omega3是什么意思| 乌托邦是什么| 前列腺吃什么药见效快| wonderflower是什么牌子| 话唠是什么意思| 早期复极是什么意思| 什么是质子重离子治疗| 胃酸吃什么药效果最好| 右侧上颌窦粘膜增厚是什么意思| 嘴里发甜是什么原因| 吃葱有什么好处和坏处| 肺肿了是什么病严重吗| 手术前吃什么补充营养| 肠胃不好吃什么比较好| 静脉石是什么意思| 右脚踝肿是什么原因引起的| 肿瘤出血意味着什么| 桂皮是什么| 甲状腺应该多吃什么| 心虚是什么意思| 天蝎座和什么星座最不配| 比是什么| 纳闷是什么意思| 催乳素过高是什么原因| 土界读什么| 生产周期是什么意思| 白玫瑰代表什么| 桶状胸常见于什么病| 一月十八号是什么星座| 降真香是什么| 腹水是什么意思| 女生经常手淫有什么危害| 什么的枝叶| 上海有什么好玩的地方适合小孩子| 身主天相是什么意思| 最大的海是什么海| 气血不足吃什么补得快| 枭雄的意思是什么| 百度
"); //-->

博客专栏

EEPW首页 > 博客 > LabVIEW Arduino ZigBee无线气象站(项目篇—3)

一款曾经让中国压力巨大的轰炸机,如今求中国

发布人:美男子玩编程 时间:2025-08-04 来源:工程师 发布文章
百度 在岗位上,大大小小的加班数不胜数。

1


项目概述


目前,国内气象站对地面气象数据的采集大多采用传统的有线方式,其布线成本高,维护不方便,尤其对于山区等一些复杂的地形来说,这种缺点更为明显。传统的无线通信方式有很多,无线电、微波、红外线、蓝牙、射频等,在某些只需简单的无线连接的应用领域对数据速率的要求并不很高,设备的功耗是更需要考虑的问题。ZigBee网络是低功耗、低成本、高可靠性的无线传感器网络,其在环境检测等领域中有着广阔的应用前景。



2


项目架构


本篇博文将要介绍一种基于Arduino、LabVIEW和ZigBee的个人小型无线自动气象站,可以实现自主采集温度、湿度、气压、粉尘浓度,并且将数据实时上传至LabVIEW上位机软件。气象站终端设备采用Arduino作为控制核心,上位机软件采用LabVIEW,两者通过基于ZigBee技术的XBee模块实现无线通信。


个人小型气象站的总体框图如下图所示:


图片



3


传感器选型


3.1、温湿度传感器


SHT11是瑞士Sensirion公司推出的一款数字温湿度传感器芯片,将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号,采用CMOSens专利技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器芯片内部包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上与14位的A/D转换器以及串行接口电路实现无缝连接。因此,具有品质卓越、响应迅速、抗干扰能力强、性价比高等优点,广泛应用于暖通空调、汽车、消费电子、自动控制等领域。


每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在OTP内存中,用于内部的信号校准。两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。微小的体积、极低的功耗,使SHT11成为各类应用的首选。


图片


拓展学习:

LabVIEW控制Arduino采集热电偶温度数值(进阶篇—2)

LabVIEW控制Arduino采集多路DS18B20温度数值(进阶篇—3)

LabVIEW控制Arduino采集DHT11温湿度数值(进阶篇—4)


3.2、压力传感器


气压是指作用在单位面积上的大气压力,它等于单位面积上到大气上界的垂直空气柱的重量,大气压力测量的基本单位是帕斯卡(Pa,即牛顿每平方米)。此处采用BMP085气压传感器实现气压的测量。


BMP085是一款高精度、超低能耗的压力传感器,可以应用在移动设备中。它的性能卓越,绝对精度最低可以达到0.03hPa,并且耗电极低,只有3uA。BMP085采用强大的8-pin陶瓷无引线芯片承载(LCC)超薄封装,可以通过I2C总线直接与各种微处理器相连。而且,BMP085利用温度补偿来提高气压的测量精度,反应时间7.5ms,待机电流0.1uA,无需外部时钟电路,无铅,符合RoHS规范。BMP085气压传感器模块如下图所示:


图片


3.3、空气质量传感器


粉尘是指悬浮在空气中的固体微粒。按照国际标准化组织规定,粒径小于75um的固体悬浮物定义为粉尘。大气中粉尘的存在是保持地球温度的主要原因之一,大气中过多或过少的粉尘将对环境产生灾难性的影响。但在生活和工作中,过多的粉尘是人类健康的天敌,是诱发多种疾病的主要原因。


随着经济的发展,环境污染越发严重,随着生活水平的提高,人们的健康意识也越来越强,在小型气象站中增加粉尘传感器,用于监测空气中的粉尘等可吸入固体颗粒。


GP2Y1010AU0F是夏普公司的光学空气质量传感器,可以测量空气中尘埃的含量。该装置中包含一个红外发光二极管和光电晶体管,且呈对角布置,允许其检测的反射光在空气中的灰尘,可以非常有效地检测比较微小的颗粒,如香烟烟雾,并且是常用的空气净化器系统。GP2Y1010AU0F实物图效果如下图所示:


图片



4


硬件环境


将SHT11温湿度传感器的VCC、GND、SCK、DATA分别接至Arduino Uno控制板上的+5V、GND、模拟端口A2和A3。


将BMP085气压传感器的VCC、GND、SCL、SDA分别接至Arduino Uno控制板上的3.3V、GND、SCL和SDA。若Arduino Uno控制板上没有标注的SCL和SDA端口,则将BMP085的SCL和SDA分别接至模拟端口A5和A4上。


GP2Y1010AU0F粉尘传感器VLED串联150Ω电阻接至Arduino Uno控制板上的+5V,LED-GND接至GND,LED接至数字引脚D2,S-GND接至GND,Vo接至模拟输入A0,Vcc接至5V。


Arduino Uno控制器与XBee模块、BMP085和SHT11的硬件连接,如下图所示:


图片



5


Arduino功能设计


在基于Arduino与LabVIEW的个人小型气象站中,Arduino Uno控制器需要完成两个功能:接收和判断命令,采集和传输温湿度、气压、粉尘浓度的数据,Arduino Uno控制器通过XBee模块接收上位机发来的命令,分析得到有效命令,读取温湿度、气压、粉尘浓度等数据,并上传给LabVIEW软件。


个人气象站Arduino控制器程序代码如下所示:





























































































#include <Wire.h>#include <BMP085.h>#include <SHT1x.h> #define temp_Command      0x10   //采集命令字#define humidity_Command  0x20   //A1采集命令字#define pressure_Command  0x30   //D0采集命令字#define dust_Command      0x40   //D1采集命令字 // Specify data and clock connections and instantiate SHT1x object#define dataPin  A3#define clockPin A2SHT1x sht1x(dataPin, clockPin);BMP085 bmp;  byte comdata[3]={0};      //定义数组数据,存放串口接收数据float temp_c;float humidity;int dustPin=0;int dustVal=0;int PressureVal=0; int ledPower=2;int delayTime=280;int delayTime2=40;float offTime=9680;  void receive_data(void);      //接受串口数据void test_do_data(void);         //测试串口数据是否正确,并更新数据 void setup(){  Serial.begin(9600);        pinMode(2, INPUT);  pinMode(3, INPUT);  pinMode(ledPower,OUTPUT);  pinMode(4, OUTPUT);  analogReference(INTERNAL);  bmp.begin();  }void loop(){  while (Serial.available() > 0)   //不断检测串口是否有数据   {        receive_data();            //接受串口数据        test_do_data();               //测试数据是否正确并更新标志位   }}void receive_data(void)       {   int i ;   for(i=0;i<3;i++)   {      comdata[i] =Serial.read();      //延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失,       delay(2);   }} void test_do_data(void){  if(comdata[0] == 0x55)            //0x55和0xAA均为判断是否为有效命令   {     if(comdata[1] == 0xFF)     {        switch(comdata[2])          {               case temp_Command:                   temp_c = sht1x.readTemperatureC();                Serial.print(temp_c, 2);                   break;            case humidity_Command:                    humidity = sht1x.readHumidity();                 Serial.print(humidity,2);                 break;            case pressure_Command:                    PressureVal=bmp.readPressure();                 Serial.print(PressureVal,2);                                     break;            case dust_Command:                    digitalWrite(ledPower,LOW); // power on the LED                 delayMicroseconds(delayTime);                 dustVal=analogRead(dustPin); // read the dust value via pin 5 on the sensor                 delayMicroseconds(delayTime2);                 digitalWrite(ledPower,HIGH); // turn the LED off                 delayMicroseconds(offTime);                 Serial.println(dustVal);                                              break;                         }       }   }}



6


LabVIEW功能设计


LabVIEW上位机部分需要完成以下功能:

1、向下位机Arduino控制器发送温度、湿度、气压数据的采集命令,Arduino控制器通过串口接收上位机命令,完成相应的数据采集之后并将采集的数据回传,LabVIEW软件将回传的数据显示在前面板上。

2、向下位机Arduino控制器发送粉尘浓度的采集命令,Arduino控制器通过串口接收上位机命令,完成粉尘浓度的电压采集之后并将采集的电压数据转换为粉尘浓度,LabVIEW软件接收Arduino返回的粉尘浓度并显示在前面板上,同时将粉尘浓度的变化显示在波形图上。


6.1、前面板设计


LabVIEW前面板分为仪表盘显示和波形图显示两个部分,仪表盘部分用于显示当前的数据,包括温度、湿度、气压和粉尘浓度;波形图显示部分用于显示粉尘浓度的变化趋势。基于Arduino与LabVIEW的个人小型气象站的LabVIEW上位机前面板,如下图所示:


图片


6.2、程序框图设计


在LabVIEW上位机的程序设计中,温度、湿度、气压和粉尘浓度的采集需要向Arduino Uno控制器发送不同的命令码,并获取Arduino Uno控制器返回的测量数据,为了使得程序结构更加清晰明朗,此处将温度、湿度、气压和粉尘浓度采集分别编写成子VI。


温度采集子程序的前面板和程序框图,如下图所示:


图片


图片


湿度采集子程序的前面板和程序框图,如下图所示:


图片


图片


气压采集子程序的前面板和程序框图,如下图所示:


图片


图片


粉尘浓度采集子程序的前面板和程序框图,如下图所示:


图片


图片


采用条件结构+移位寄存器的状态机来实现LabVIEW上位机主程序,将主程序划分为5个状态:0状态为串口初始化,1状态为温度测量,2状态为湿度测量,3状态为气压测量,4状态为粉尘浓度测量,且初始状态为0状态(串口初始化)。


在0状态中,通过设置的串口号来初始化串口通信。在1状态中,读取温度数据并显示,在2状态中,读取湿度数据并显示,在3状态中,读取气压数据并显示,在4状态中,读取粉尘浓度数据并显示在波形图上。最后,关闭串口通信。


串口初始化程序框图如下所示:


图片


温度采集程序框图如下所示:


图片


湿度采集程序框图如下所示:


图片


气压采集程序框图如下所示:


图片


粉尘浓度采集程序框图如下所示:


图片


本节介绍的基于ZigBee的个人小型气象站可以通过无线方式实现温湿度、气压和粉尘浓度的测量,如需要增加其他的测量参数,则需要添加相应的传感器即可。

另外,利用ZigBee的组网技术,在一定的区域内布置多个测量站点,可以实现区域性的气象参数的测量。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

电容式接近开关相关文章:电容式接近开关原理
光电开关相关文章:光电开关原理


关键词: LabVIEW

相关推荐

技术专区

关闭
什么茶降血压效果最好 小孩子头晕是什么原因 依云矿泉水为什么贵 fila是什么品牌 劼字取名的寓意是什么
蓝莓什么时候开花结果 骨化是什么意思 氧气湿化瓶里加什么水 dido是什么牌子 祛湿气喝什么茶
去医院查怀孕挂什么科 静脉曲张吃什么中成药 年轮是什么意思 欣赏一个人是什么意思 汉堡是什么意思
53年属什么生肖 pcp是什么意思 儿童吃手指是什么原因 不睡人的空床放点什么 九层塔是什么菜
长脸型适合什么样的发型hcv9jop7ns3r.cn 皮肤瘙痒是什么原因hlguo.com 升米恩斗米仇是什么意思cl108k.com 抗核抗体是检查什么病hcv8jop4ns7r.cn 河南有什么大学hcv8jop7ns6r.cn
藕粉色是什么颜色hcv8jop9ns7r.cn 喝豆浆有什么好处和坏处hcv9jop6ns0r.cn 557是什么意思jingluanji.com 螳螂吃什么食物hcv8jop3ns7r.cn 脑鸣挂什么科hcv7jop9ns2r.cn
唯我独尊指什么生肖hcv8jop1ns1r.cn 乖巧是什么意思hcv7jop4ns7r.cn 晚上为什么睡不着hcv8jop6ns0r.cn 兔死狐悲指什么生肖hcv8jop4ns3r.cn 喝茶叶水有什么好处和坏处hcv8jop0ns3r.cn
灰指甲用什么药效果好hcv8jop7ns9r.cn 心火旺吃什么药hcv7jop5ns6r.cn 总流口水是什么原因hcv8jop2ns6r.cn 22年属什么生肖hcv9jop1ns2r.cn 尖锐湿疣吃什么药hcv7jop5ns1r.cn
百度