APP下载

基于物联网平台的温度和照度远程测量系统

2021-01-27蔡光师

物联网技术 2020年12期
关键词:开发板照度联网

李 海,蔡光师

(华南农业大学 电子工程学院 人工智能学院,广东 广州 510642)

0 引 言

在农业生产领域,土壤条件、温度和照度是对农作物生长、农产品产量和品质产生重要影响的三个因素[1-2]。因此,除了土壤条件,精准的远程监测并记录环境温度、照度,及时做出有效反馈对高品质农业生产具有重要的意义。为此,本文设计了基于物联网平台的温度和照度远程测量系统,通过WiFi把系统测量的农作物数据传送至物联网平台,从而实现高效的农业生产。

1 系统设计

1.1 开发板

开发板是信息采集与处理的核心,本系统采用Arduino UNO开发板。Arduino开发板于2005年开发成功,其独有的开放性和易用性备受开发者青睐[3-4]。目前,Arduino系列开发板有多个不同版本,包括Arduino UNO、Arduino Nano等。其中,Arduino UNO开发板配套有Arduino IDE开发软件,丰富的第三方库资源,无需编写繁琐复杂的底层驱动程序,开发快捷,支持I2C、SPI等多种串行通信方式,且价格低廉,运算能力及内存均可满足本系统的需求。

1.2 温度传感器

本系统采用的DS18B20数字型传感器能直接将信号作为数字量输出,不易受外界信号干扰,具有较高精度和较高分辨率[5]。此外,DS18B20数字型传感器与Arduino适配性好,且Arduino集成有适用于DS18B20的第三方数据库,编程及既定功能容易实现。

1.3 照度传感器

本系统采用的GY-30照度传感器是照度传感器型号中使用较多的一种[6]。GY-30照度传感器具有如下优势:

(1)将BF1750FVI芯片和部分外围电路集成到一块小电路板上,可通过I2C串行时钟总线、I2C串行数据总线与Arduino连接;

(2)Arduino IDE中自带的Wire库封装了对I2C的相关操作方法,可以很方便地与GY-30通信;

(3)光谱特性曲线与人眼视觉灵敏度曲线较为接近,可见光测量范围大。

1.4 无线传输模块

系统选用嵌入式WiFi模块进行数据传输[7-9]。它是基于ESP8266-12F WiFi模组扩展而来的NodeMCU模块,含有USB串口,可以与计算机直接相连;在单独使用时可作为开发板,具有GPIO、I2C以及ADC等多种功能;可编写硬件代码,使用Arduino IDE即可将程序烧录进去,方便对WiFi模块进行透传设置。

1.5 软件开发环境

本系统采用的Arduino IDE是一款专业的开发软件[10],可以在三大主流操作系统Windows、Mac OS X和Linux上运行。Arduino语言由C语言与C++语言混编而成,对具有C语言基础的开发者来说,使用很方便。

Arduino程序由两部分构成:一部分是void setup()函数,主要用于初始化变量、设置管脚模式等,该函数内的代码只被执行一次;另一部分是void loop()函数,主要用于编写主体程序,该函数内的代码会被重复执行,类似于C语言中的loop()函数。

1.6 数据上传平台

本系统选择贝壳物联网平台上传数据。贝壳物联网平台能同时接入多个设备,并将接收的数据以实时变化的曲线方式展现。此外,它还具有延时小、开发文档详细、协议公开等优势。将数据上传之前,需要对贝壳物联网平台进行配置操作:注册贝壳物联网账号,登录后点击“一键开始”即可自动生成所需设备和接口。由于需要上传温度和照度的数据信息,因此考虑额外添加一个模拟量接口。

2 系统设计方案

本系统设计方案的流程如下:以Arduino UNO开发板为核心,利用DS18B20数字型温度传感器和GY-30数字光照度传感器采集周围环境数据,通过I2C等通信方式将数据发送给Arduino进行片上运算处理,之后Arduino将数据处理结果打包成符合平台通信协议的JSON数据格式,再通过串口传输给嵌入式WiFi模块,由它将温度与照度数据通过TCP协议以WiFi传输形式发送给物联网平台,并实时显示。

3 硬件电路

系统的硬件电路如图1所示,包括温度采集电路、照度采集电路、数据发送电路、无线传输模组。

图1 系统硬件电路

(1)温度采集电路。将Arduino开发板上的2号数字I/O口作为接收DS18B20温度传感器数据的通信端口;将DS18B20的VCC引脚和GND引脚分别与Arduino的5 V引脚和GND引脚相连;将DQ引脚与I/O口相连;外接一个阻值为4.7 kΩ的上拉电阻,并将其连接在VCC与DQ之间。

(2)照度采集电路。将Arduino板上的A4引脚、A5引脚对应连接到GY-30光照度传感器模块上的SDA引脚、SCL引脚,再分别将它们与VCC引脚、GND引脚连接,ADDR引脚设置为悬空。

(3)数据发送电路,即Arduino开发板将处理完毕的温度和照度数据发送给WiFi模块电路。这部分电路使用串口通信方式进行数据传输,只需将Arduino板上的RX引脚、TX引脚和WiFi模块的TX引脚、RX引脚对应连接,再将Arduino板与WiFi模块的GND引脚相连即可。

(4)无线传输,即将接收到的数据信息通过WiFi上传到物联网平台。首先在Arduino IDE上编写程序,然后将其烧录进WiFi模块,再将数据上传到物联网平台。但在此之前需要对WiFi模块进行透传设置,透传设置代码如下:

4 系统测试流程

先将本系统的完整电路正确连接,然后将在Arduino IDE上编写的完整程序烧录进Arduino开发板,之后再将已完成透传设置的WiFi模块上电,此时电路可开始采集数据并通过WiFi将数据上传至贝壳物联网平台。登录贝壳物联网平台后,点击智能设备控制模式中的“数据查看”即可查看数据采集、显示情况。

5 结 语

本文设计的基于物联网平台的温度和照度远程测量系统完全可满足智慧农业的发展需求。实验测量数据显示,该系统在-10~85 ℃范围内的温度误差为0.5 ℃,照度精度为1 Lux,整体精度较好,达到既定要求。

猜你喜欢

开发板照度联网
“身联网”等五则
恒照度智慧教室光环境
抢占物联网
电子投影机照度测量结果的不确定度评定
Microchip最新推出两款PIC32 Curiosity开发板
浅析单片机开发板的设计与制作
可再生能源与物联网
Mouser为您呈上开发关键之STMicroelectronics Nucleo开发板
Arduino和Atmel发布Arduino Zero开发板
得MCU者得物联网天下