LabVIEWArduinoRS-485智能农业监测系统(项目篇—4)

原创 美男子玩编程 2022-08-16 12:00

点击上方蓝色字体,关注我们


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 #include  #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 Arduino ZigBee无线气象站(项目篇—3)

  • LabVIEW Arduino无线蓝牙遥控智能车(项目篇—2)

  • LabVIEW Arduino电子称重系统(项目篇—1)

点击阅读原文,更精彩~
美男子玩编程 多领域、有深度的开发者交流平台
评论
  • 根据Global Info Research(环洋市场咨询)项目团队最新调研,预计2030年全球无人机电池和电源产值达到2834百万美元,2024-2030年期间年复合增长率CAGR为10.1%。 无人机电池是为无人机提供动力并使其飞行的关键。无人机使用的电池类型因无人机的大小和型号而异。一些常见的无人机电池类型包括锂聚合物(LiPo)电池、锂离子电池和镍氢(NiMH)电池。锂聚合物电池是最常用的无人机电池类型,因为其能量密度高、设计轻巧。这些电池以输出功率大、飞行时间长而著称。不过,它们需要
    GIRtina 2025-01-13 10:49 90浏览
  • 流量传感器是实现对燃气、废气、生活用水、污水、冷却液、石油等各种流体流量精准计量的关键手段。但随着工业自动化、数字化、智能化与低碳化进程的不断加速,采用传统机械式检测方式的流量传感器已不能满足当代流体计量行业对于测量精度、测量范围、使用寿命与维护成本等方面的精细需求。流量传感器的应用场景(部分)超声波流量传感器,是一种利用超声波技术测量流体流量的新型传感器,其主要通过发射超声波信号并接收反射回来的信号,根据超声波在流体中传播的时间、幅度或相位变化等参数,间接计算流体的流量,具有非侵入式测量、高精
    华普微HOPERF 2025-01-13 14:18 160浏览
  • ARMv8-A是ARM公司为满足新需求而重新设计的一个架构,是近20年来ARM架构变动最大的一次。以下是对ARMv8-A的详细介绍: 1. 背景介绍    ARM公司最初并未涉足PC市场,其产品主要针对功耗敏感的移动设备。     随着技术的发展和市场需求的变化,ARM开始扩展到企业设备、服务器等领域,这要求其架构能够支持更大的内存和更复杂的计算任务。 2. 架构特点    ARMv8-A引入了Execution State(执行状
    丙丁先生 2025-01-12 10:30 186浏览
  • 01. 什么是过程能力分析?过程能力研究利用生产过程中初始一批产品的数据,预测制造过程是否能够稳定地生产符合规格的产品。可以把它想象成一种预测。通过历史数据的分析,推断未来是否可以依赖该工艺持续生产高质量产品。客户可能会要求将过程能力研究作为生产件批准程序 (PPAP) 的一部分。这是为了确保制造过程能够持续稳定地生产合格的产品。02. 基本概念在定义制造过程时,目标是确保生产的零件符合上下规格限 (USL 和 LSL)。过程能力衡量制造过程能多大程度上稳定地生产符合规格的产品。核心概念很简单:
    优思学院 2025-01-12 15:43 218浏览
  • 新年伊始,又到了对去年做总结,对今年做展望的时刻 不知道你在2024年初立的Flag都实现了吗? 2025年对自己又有什么新的期待呢? 2024年注定是不平凡的一年, 一年里我测评了50余块开发板, 写出了很多科普文章, 从一个小小的工作室成长为科工公司。 展望2025年, 中国香河英茂科工, 会继续深耕于,具身机器人、飞行器、物联网等方面的研发, 我觉得,要向未来学习未来, 未来是什么? 是掌握在孩子们生活中的发现,和精历, 把最好的技术带给孩子,
    丙丁先生 2025-01-11 11:35 172浏览
  • 随着数字化的不断推进,LED显示屏行业对4K、8K等超高清画质的需求日益提升。与此同时,Mini及Micro LED技术的日益成熟,推动了间距小于1.2 Pitch的Mini、Micro LED显示屏的快速发展。这类显示屏不仅画质卓越,而且尺寸适中,通常在110至1000英寸之间,非常适合应用于电影院、监控中心、大型会议、以及电影拍摄等多种室内场景。鉴于室内LED显示屏与用户距离较近,因此对于噪音控制、体积小型化、冗余备份能力及电气安全性的要求尤为严格。为满足这一市场需求,开关电源技术推出了专为
    晶台光耦 2025-01-13 10:42 180浏览
  • 随着全球向绿色能源转型的加速,对高效、可靠和环保元件的需求从未如此强烈。在这种背景下,国产固态继电器(SSR)在实现太阳能逆变器、风力涡轮机和储能系统等关键技术方面发挥着关键作用。本文探讨了绿色能源系统背景下中国固态继电器行业的前景,并强调了2025年的前景。 1.对绿色能源解决方案日益增长的需求绿色能源系统依靠先进的电源管理技术来最大限度地提高效率并最大限度地减少损失。固态继电器以其耐用性、快速开关速度和抗机械磨损而闻名,正日益成为传统机电继电器的首选。可再生能源(尤其是太阳能和风能
    克里雅半导体科技 2025-01-10 16:18 148浏览
  • 随着通信技术的迅速发展,现代通信设备需要更高效、可靠且紧凑的解决方案来应对日益复杂的系统。中国自主研发和制造的国产接口芯片,正逐渐成为通信设备(从5G基站到工业通信模块)中的重要基石。这些芯片凭借卓越性能、成本效益及灵活性,满足了现代通信基础设施的多样化需求。 1. 接口芯片在通信设备中的关键作用接口芯片作为数据交互的桥梁,是通信设备中不可或缺的核心组件。它们在设备内的各种子系统之间实现无缝数据传输,支持高速数据交换、协议转换和信号调节等功能。无论是5G基站中的数据处理,还是物联网网关
    克里雅半导体科技 2025-01-10 16:20 171浏览
  • 在不断发展的电子元件领域,继电器——作为切换电路的关键设备,正在经历前所未有的技术变革。固态继电器(SSR)和机械继电器之间的争论由来已久。然而,从未来发展的角度来看,固态继电器正逐渐占据上风。本文将从耐用性、速度和能效三个方面,全面剖析固态继电器为何更具优势,并探讨其在行业中的应用与发展趋势。1. 耐用性:经久耐用的设计机械继电器:机械继电器依靠物理触点完成电路切换。然而,随着时间的推移,这些触点因电弧、氧化和材料老化而逐渐磨损,导致其使用寿命有限。因此,它们更适合低频或对切换耐久性要求不高的
    腾恩科技-彭工 2025-01-10 16:15 80浏览
  • PNT、GNSS、GPS均是卫星定位和导航相关领域中的常见缩写词,他们经常会被用到,且在很多情况下会被等同使用或替换使用。我们会把定位导航功能测试叫做PNT性能测试,也会叫做GNSS性能测试。我们会把定位导航终端叫做GNSS模块,也会叫做GPS模块。但是实际上他们之间是有一些重要的区别。伴随着技术发展与越发深入,我们有必要对这三个词汇做以清晰的区分。一、什么是GPS?GPS是Global Positioning System(全球定位系统)的缩写,它是美国建立的全球卫星定位导航系统,是GNSS概
    德思特测试测量 2025-01-13 15:42 150浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦