CSDN话题挑战赛第2期
参赛话题:学习笔记
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?
博客写作背景----项目中解决的问题
最近遇到一个基于Arduino与LabVIEW的智能大棚监控系统,可以实现农作物生长环境参数的实时采集以及上位机监测软件的数据分析和远程监测。数据采集终端设备采用Arduino作为控制核心,上位机软件采用LabVIEW 2012,两者通过RS-485总线实现通信。只需要在田垄之间进行RS-485布线,即可实现组网通信。初步定为使用labview编写上位机程序进行处理。为啥用labview呢,因为LabVIEW是美国国家仪器公司(NI)的创新软件产品,其全称是实验室虚拟仪器工程平台(Laboratory Virtual Instrument Engineering Workbench),是一种基于G语言(Graphics Language,图形化编程语言)的测试系统软件开发平台。LabVIEW并不局限于虚拟仪器的开发,它的作用是为大型复杂测试系统提供通用的软件开发平台。目前,LabVIEW已经成为测试领域应用最广泛和最有前途的软件开发平台之一。
下面是我最近写程序的一些知识,进行了部分的整理,发出来和大家一起分享,也方便我以后查找自己的编程过程。
编程知识点
1、传感器部分
为了更为准确地测量出土壤中的温湿度,此处选用SHT1X系列的SHT10温湿度传感器,BH1750F是一种两线式串行总线接口的数字型光强度传感器,可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度,利用它的高分辨率可以探测较大范围的光强度变。
BH1750FVI光照传感器具有以下特点:1)支持I2C总线接口;2)接近视觉灵敏度的光谱灵敏度特性(峰值灵敏度波长典型值:560nm);3)输出对应亮度的数字值;4)对应广泛的输入光范围(相当于1-65535lx);5)通过降低功率功能,实现低电流化;6)通过50Hz/60Hz除光噪音功能实现稳定的测定;7)支持1.8V逻辑输入接口;8)无需其他外部件;9)光源依赖性弱(白炽灯、荧光灯、卤素灯、白光LED、日光灯);10)有两种可选的I2C从地址;11)可调的测量结果影响较大的因素为光入口大小,使用这种功能能计算1.1lx到100000lx的范围;12)最小误差变动为±20%;13)受红外线影响很小。
BH1750FVI使用I2C接口进行通信,四线(VCC,GND,SDA,SCL),7位地址。地址模式分为高位地址和低位地址两种,当ADD接GND时,为低地址模式,地址为0x23,当ADD接VCC时,为高地址模式,地址为0x5C。
专业的农用水分传感器价格较贵,此处选择价格较为低廉的电阻式水分传感器‘。土壤水分传感器是通过土壤中水分含量的多少表现出的阻值来判定土壤水分的多少。当土壤湿度传感器探头悬空时,三极管基极处于开路状态,三极管截止输出为0;当插入土壤中时由于土壤中水分含量不同,土壤的电阻值就不同,三极管的基极就提供了大小变化的导通电流,三极管集电极到发射极的导通电流受到基极控制,经过发射极的下拉电阻后转换成电压。
将SHT10温湿度传感器的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,将和DE端接至数字端口D2,用于控制收发信号。
Arduino Uno与MAX485和SHT10的硬件连接