吃晕车药有什么副作用| 檀郎是什么意思| 稻谷是什么| 早上5点是什么时辰| 小腹痛是什么原因| 膝盖后面叫什么部位| 马来西亚说什么语言| 六月二十三是什么日子| 鱼精是什么| 什么是养生| 颜值担当是什么意思| 厉鬼是什么意思| 乌鸦飞进家里什么征兆| 刀伤用什么药愈合最快| 雨中漫步是什么意思| oct试验是什么| 慵懒是什么意思| 洁颜蜜是什么| 鳌鱼是什么鱼| 晚上吃什么不会胖| 自然是什么意思| 六味地黄丸有什么作用| 掉发严重是什么原因| 姊妹什么意思| 有鸟飞进屋是什么预兆| 声带小结是什么意思| 王八是什么字| 客厅挂钟放在什么位置好| 积劳成疾的疾什么意思| 雏形是什么意思| msm是什么药| 雷峰塔为什么叫雷峰塔| scr是什么意思| 硬刚是什么意思| 大便潜血弱阳性是什么原因| 骨刺是什么| 儿童c反应蛋白高说明什么| 养狗有什么好处| 长命百岁的动物是什么| 危如累卵是什么意思| 为什么尽量抽混合型烟| 5月10号是什么日子| 特应性皮炎是什么病| 什么情况下不能献血| 狗皮肤病用什么药| 为什么叫马桶| 嘴角发麻是什么病前兆| 脚掌发麻是什么原因| 垂体是什么意思| 头发麻是什么病的前兆| 双鱼座是什么性格| 好麻吉是什么意思| 乘载和核载是什么意思| 为什么北京是首都| 开屏什么意思| 5月20日是什么日子| 七月六号是什么日子| pef是什么意思| 表达是什么意思| 第二聚体高什么意思| 刚愎自负是什么意思| 小孩拉肚子吃什么食物| 什么样的轮子只转不走| 心影增大是什么意思| 农历7月28日是什么星座| icp是什么| 体感是什么意思| 老人怕冷是什么原因| 今年二十岁属什么生肖| 揪心是什么意思| 忘情水是什么意思| ha什么意思| 脾虚的人有什么症状| 鳞状上皮乳头状瘤是什么| 梦见自己大出血是什么征兆| 中老年人补钙吃什么牌子的钙片好| 生鱼又叫什么鱼| 0r是什么意思| 6月25什么星座| superstar是什么意思| 七月二十五是什么星座| 全身浮肿是什么病| 老睡不醒是什么原因| 反复低烧是什么原因| 屁股长痣代表什么| 糖类抗原是什么| 一飞冲天是什么生肖| 胎儿打嗝是什么原因| 纤维蛋白是什么| 黄色裤子配什么上衣| 白蛋白偏低是什么原因| 喉咙有异物感挂什么科| 叩齿是什么意思| 睡觉腿抽筋是什么原因| 肌肉萎缩什么症状| 火和什么相生| 牛三合生肖是什么| 山竹什么时候吃是应季| 喝可乐有什么好处| lsa是什么意思| 清真是什么意思啊| 复诊是什么意思| 血离子是检查什么的| 系统性红斑狼疮挂什么科| m和s是什么意思| 慢性鼻窦炎吃什么药| 肉芽是什么| 胆固醇高吃什么可以降下来| 2017年是属什么年| 关节退变什么意思| mankind是什么意思| 魔芋是什么做的| 天蝎后面是什么星座| 多此一举是什么生肖| 10月30日是什么星座| 咽炎挂什么科室| 为什么来姨妈左侧输卵管会痛| 银红色是什么颜色| 周边是什么意思| 难舍难分是什么意思| 阴道什么形状| 一九七二年属什么生肖| 暑假什么时候结束| 插入阴道是什么感觉| 二月二十五号是什么星座| 谌读什么| 绿豆与什么食物相克| 宝宝大便酸臭味是什么原因| 母胎solo是什么意思| 阴囊潮湿吃什么药好| edo是什么意思| 银消病用什么药效果最好| 腰椎间盘突出适合什么运动| 戾气太重是什么意思| 虎和什么属相不合| 装修公司名字取什么好| 对等是什么意思| 胆脂瘤是什么病| 女性尿频吃什么药| 海里有什么动物| 黄疸高对婴儿有什么影响| 被蚂蚁咬了涂什么药| 男士吃什么壮阳最厉害| 为什么天上会下雨| 高铁为什么没有e| 重阳节是什么生肖| b超检查前要注意什么| 狮子女喜欢什么样的男生| 阴道炎不能吃什么| 桑叶有什么作用| 什么叫换手率| 地龙是什么生肖| gf是什么单位| 后中长是什么意思| 鸡打瞌睡吃什么药| 尿胆素1十是什么意思| paul是什么意思| 总胆红素是什么| 女人为什么会阳虚| 库克是什么| 空调干燥是什么意思| 南瓜什么季节成熟| 老年人爱出汗是什么原因| 唐氏是什么意思| laurel是什么牌子| 卡罗莱手表是什么档次| 藏红花适合什么样的人喝| 狮子座和什么星座最配| 律动是什么意思| 嗓子有异物感吃什么药| 青蒿素是什么| 对偶是什么意思| 氯偏高是什么原因| 脸上发红是什么原因| 乳清蛋白是什么| 头晕目眩是什么病的征兆| 口腔溃疡是什么样子| 脑缺血灶吃什么药| 维生素c什么时候吃| edc是什么意思| 甘油三酯高挂什么科| 15岁属什么| 破壁机是干什么用的| 藏红花泡水喝有什么功效和作用| 熊猫为什么会成为国宝| 检查视力挂什么科| 筛查是什么意思| 法西斯是什么意思| 尿淀粉酶高是什么原因| 女生抽什么烟合适| 白细胞低是怎么回事有什么危害| dg是什么牌子| 动卧是什么意思| 肾阴虚火旺吃什么药| 凌波仙子是什么意思| 什么是胃溃疡| 来大姨妈拉肚子是什么原因| 蔻依属于什么档次| 狄仁杰为什么才三品| 姨妈期吃什么| 金牛男最烦什么女孩| 幽门螺杆菌阳性吃什么药| 五月十六是什么星座| 做一半就软了是什么原因| living是什么意思| 做梦梦到掉牙齿是什么意思| 煤气是什么味道| 斯里兰卡属于什么国家| 一个黑一个今念什么| 猪蹄炖什么好吃| 湿气重的人适合吃什么| 怕热爱出汗是什么原因| 血小板减少是什么病| 玖姿女装属于什么档次| 蛇属于什么动物| 什么空如洗| 清明节有什么习俗| 两鬓长白发是什么原因| 丁字是什么意思| 红配什么颜色最好看| 质体是什么| 吃什么好| 青岛有什么好吃的| 什么是义齿| 大象的鼻子为什么那么长| 什么是食物链| 人间烟火什么意思| 胎儿右侧脉络丛囊肿是什么意思| 为什么坐久了屁股疼| 干冰是什么| 吃完就拉是什么原因| 乙肝五项15阳性是什么意思| 男人性功能不行是什么原因| 心境什么意思| 激动是什么意思| 天台是什么意思| 痔疮什么样子| 老年人适合吃什么水果| 牙痛 吃什么药| 儿童发烧挂什么科| 脑供血不足什么原因引起的| 耳鸣有什么症状| 胆固醇高是什么原因引起| 领袖是什么意思| 6.18是什么星座| 什么是脂蛋白a| 吃什么都咸是什么原因| 蜂蜜水什么时候喝最好| 梦见海水是什么意思| 戊土是什么土| 养老金什么时候补发| 什么帽不能戴| 玻璃水是干什么用的| 中国防御系统叫什么| 婴儿什么时候长牙| 喜欢紫色的人是什么性格| 12月9号是什么星座| 大便颜色发黑是什么原因| tid是什么意思| 医院打耳洞挂什么科| 春天有什么花开| 上梁不正下梁歪是什么意思| 什么猫| 躁郁症吃什么药| 百度
"); //-->

博客专栏

EEPW首页 > 博客 > LabVIEW Arduino RS-485智能农业监测系统(项目篇—4)

发布人:美男子玩编程 时间:2025-08-03 来源:工程师 发布文章
百度 宋智孝又讲到自己最擅长的是用手指弹额头,并即场指要试打姜虎东的额头,她笑指迁怒姜虎东的原因是因为《RM》曾打算邀请姜虎东做新主持,令她与金钟国等人差点没得赚。

1


项目概述


智能农业是目前农业发展的新方向,它根据农作物的生长习性及时调整土壤状况和环境参数,以最少的投入获得最高的收益,改变了传统农业中必须依靠环境种植的弊端及粗放的生产经营管理模式,改善了农产品的质量与品质,调整了农业的产业结构,确保了农产品的总产量,高效地利用了各种各样的农业资源,可取得可观的经济效益和社会效益。


在农业生产过程中,温度、湿度、光照强度、CO2浓度、水分,以及其他养分等多种自然因素共同影响农作物生长。传统农业的管理方式远远没有达到精细化管理的标准,只能算是粗放式管理,在这种管理方式下,通过人的感知能力来管理上述环境参数,无法达到准确性要求。而智能农业,是通信、计算机和农学等若干学科和领域共同发展并相互结合所形成的产物,它将信息采集、传输、处理和控制集成在一起,使人们更容易获得农作物生长各个阶段的各类信息,也让人们更容易掌控这些信息,通过人工智能与农业生产的结合真正实现人与自然的交互。


智能农业的核心问题可以概括为以下四部分,即农业信息的获取、对所获取信息的管理、经信息分析做出的决策、由决策而决定的具体实施方针。在这四部分中,对农业信息的获取是智能农业的起点,也是非常关键的一点,做不到准确实时地获取农业信息,就无法建造真正的智能农业。而实现智能农业,建立一个实用、可靠、可长期监测的农业环境监测系统是非常必要的。


随着通信、计算机、传感网等技术的迅猛发展,将物联网应用到农业监测系统中已经是目前的发展趋势,它将采集到的温度、湿度、光照强度、土壤水分、土壤温度、植物生长状况等农业信息进行加工、传输和利用,为农业生产在各个时期的精准管理和预警提供信息支持,追求以最少的资源消耗获得最大的优质产出,使农业增长由主要依赖自然条件和自然资源向主要依赖信息资源转变,使不可控的产业得以有效控制。


2


项目架构


本篇博文将要介绍一种基于Arduino与LabVIEW的智能农业监测系统,可以实现农作物生长环境参数的实时采集以及上位机监测软件的数据分析和远程监测。数据采集终端设备采用Arduino作为控制核心,上位机软件采用LabVIEW,两者通过RS-485总线实现通信,只需要在田垄之间进行RS-485布线,即可实现组网通信。


图片



3


传感器选型


3.1、温湿度传感器


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


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


图片


3.2、光强度传感器


BH1750FVI是一种两线式串行总线接口的数字型光强度传感器,可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度,利用它的高分辨率可以探测较大范围的光强度变化。BH1750FVI光照传感器模块如下图所示:


图片


3.3、水分传感器


专业的农用水分传感器价格较贵,此处选择价格较为低廉的电阻式水分传感器,如下图所示:


图片



4


硬件环境


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


将BH1750FVI光照传感器的VCC、GND、SCL、SDA和ADD分别接至Arduino Uno控制板上的+5V、GND、SCL、SDA和GND,此处在硬件连接图上没有表示出来。


将水分传感器的VCC、GND、Vout分别接至Arduino Uno控制板上的+5V、GND和模拟端口A0,此处在硬件连接图上表示出来。


将MAX485模块的VCC、GND、RO、DI分别接至Arduino Uno控制板上的+5V、GND、RX和TX,将RE和DE端接至数字端口D2,用于控制收发信号。


Arduino Uno与MAX485和SHT11的硬件连接,如下图所示:


图片

5


Arduino功能设计


在基于RS-485总线的智能农业监测系统中,每个节点配置一个Arduino Uno控制器通过MAX485模块挂在RS-485总线上。Arduino Uno控制器需要完成以下功能:接收和判断命令、采集和传输温湿度、光照和水分数据。Arduino Uno控制器利用MAX485模块通过串口从RS-485总线上接收上位机发来的命令,分析得到有效命令,再根据命令码实现温湿度、光照和水分数据的采集,并上传给LabVIEW软件。


智能农业监测系统Arduino控制器程序代码如下所示:







































































































#include <Wire.h>#include <SHT1x.h> #define temp_Command          0x10   //采集命令字#define humidity_Command      0x20   //A1采集命令字#define water_Command         0x30   //D1采集命令字#define illumination_Command  0x40   //D0采集命令字// GY-30// BH1750FVI// in ADDR 'L' mode 7bit addr#define ADDR 0b0100011// addr 'H' mode// #define ADDR 0b1011100 // Specify data and clock connections and instantiate SHT1x object#define dataPin  A3#define clockPin A2SHT1x sht1x(dataPin, clockPin); byte comdata[3]={0};      //定义数组数据,存放串口接收数据float temp_c;float humidity;int dustPin=0;int dustVal=0;int Water_Val=0; int Illumination_Val = 0; void receive_data(void);      //接受串口数据void test_do_data(void);      //测试串口数据是否正确,并更新数据 void setup(){  Serial.begin(9600);        Wire.begin();   Wire.beginTransmission(ADDR);  Wire.write(0b00000001);  Wire.endTransmission();}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 water_Command:                    Water_Val=analogRead(A0);                 Serial.print(Water_Val);                                     break;            case illumination_Command:                                     // reset                  Wire.beginTransmission(ADDR);                  Wire.write(0b00000111);                  Wire.endTransmission();                   delay(100);                   Wire.beginTransmission(ADDR);                  Wire.write(0b00100000);                  Wire.endTransmission();               // typical read delay 120ms                  delay(120);                   Wire.requestFrom(ADDR, 2); // 2byte every time                   for (Illumination_Val=0; Wire.available()>=1; ) {                  char c = Wire.read();                  //Serial.println(c, HEX);                  Illumination_Val = (Illumination_Val << 8) + (c & 0xFF);                  }                   Illumination_Val = Illumination_Val / 1.2;                  Serial.println(Illumination_Val);                                           break;                         }       }   }}

6


LabVIEW功能设计


LabVIEW上位机部分需要完成如下功能:根据所选择的节点向RS-485总线上发送不同节点号的温度、湿度、光照、水分的数据采集命令,Arduino控制器通过串口和MAX485模块从RS-485总线上接收上位机命令,然后判断接收的命令中的节点号是否与自己的节点号匹配,如果匹配则实现相应的数据采集之后并将采集的数据回传,LabVIEW软件将回传的数据显示在前面板上;如果不匹配则舍弃当前接收的上位机命令,重新等待下次命令的到来。


6.1、前面板设计


LabVIEW前面板分为节点选择、工作指示灯和数据显示模块,节点选择用于选择当前监测的节点,将其数据显示在显示模块上;工作指示灯用于该节点是否正常工作;显示模块主要用于显示当前的数据,包括温度、湿度、光照和水分情况。

基于Arduino与LabVIEW的智能农业监控系统的LabVIEW上位机前面板,如下图所示:


图片


6.2、程序框图设计


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


为了更好地实现通信,制定如下的通信协议:帧头+节点代号+操作码。0x55为帧头,节点代号有0xA1为节点0的代号,0xA2为节点1的代号,0xA3为节点2的代号,0xA4为节点3的代号,0xA5为节点4的代号,操作码有0x10为温度采集,0x20为湿度采集,0x30为光照采集,0x40为水分采集。


在0状态中,通过设置的串口号来初始化串口通信,如下图所示:


图片


在1状态中,读取温度数据并显示,如下图所示:


图片


在2状态中,读取湿度数据并显示,如下图所示:


图片


在3状态中,读取光照数据并显示,如下图所示:


图片


在4状态中,读取水分数据并显示,如下图所示:


图片


最后,关闭串口通信。


由于RS-485总线具有抗干扰能力强的优点,适合用于可靠性要求高的场合,本节介绍的智能农业监测系统采用RS-485总线作为每个子节点与总站的通信方式,如果需要检测的面积较大,监测密度较为稀疏,RS-485总线方式需要很多的线材,则采用ZigBee无线通信方式更为实用。由于农业专业的传感器价格较为昂贵,本部分采用较为低廉的传感器来实现了一个简易的监测,如果需要专业应用,则需要购买农业专用的传感器。


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



关键词: LabVIEW

相关推荐

技术专区

关闭
rf医学上是什么意思 什么地飞翔 去医院看头发挂什么科 血沉是什么意思 白天不懂夜的黑是什么意思
宋朝之前是什么朝代 sop是什么意思 窦性心律逆钟向转位是什么意思 老是嗳气是什么原因 为什么会得面瘫
下午五点是什么时辰 去势是什么意思 荷字五行属什么 善存什么时间吃比较好 甲状腺功能是什么
吉吉念什么 女士喝什么茶叶对身体好 什么东西越热越爱出来 万马奔腾什么意思 脱轨是什么意思
狍子是什么动物hcv9jop8ns0r.cn 喝什么茶好hcv9jop6ns5r.cn 梦见牛是什么预兆hcv7jop9ns2r.cn 什么菜煮不熟hcv9jop2ns2r.cn 什么牌子洗发水好qingzhougame.com
特警属于什么编制hcv9jop3ns2r.cn 5.20是什么星座hcv9jop6ns8r.cn 肝硬化是什么病hcv9jop4ns8r.cn 拔完智齿后需要注意什么hcv9jop8ns2r.cn 打嗝是什么病hcv8jop2ns7r.cn
飞机后面的白烟是什么1949doufunao.com 鸟语花香是什么生肖hcv7jop5ns2r.cn 继发性肺结核是什么意思hcv8jop3ns9r.cn 睡眠好的人说明什么hcv9jop5ns5r.cn 颈椎反弓有什么症状hcv7jop9ns9r.cn
车代表什么生肖hcv9jop7ns1r.cn 什么叫便秘inbungee.com 头晕脑胀是什么原因hcv8jop1ns0r.cn 西瓜和什么榨汁好喝hcv8jop8ns1r.cn 硅对人体有什么危害hcv7jop5ns0r.cn
百度