当前位置: 首页 > news >正文

NFC与ZigBee技术在智慧农业物联网监测系统中的应用

近年来,我国农业物联网技术飞速发展,基于物联网技术的智能农业监测系统有望得到较大规模的推广应用。但传统的物联网农业监测系统其网络结构层次单一,多采用基于有线或无线结构的节点-上位机数据采集模式,节点数据访问模式缺乏灵活性,对监测数据的获取过度依赖上位机。使用者需要通过上位机或远程网络才能实时获得种植信息。在很多场合中,使用者感兴趣的仅仅是局部种植信息或现场田间接入,若利用 3G/4G 网络或 WiFi作为技术支持手段,则存在系统建立与维护成本高昂、拓扑结构单一、节点功耗增加、对外部网络依赖性强等缺点。

NFC 是近几年蓬勃发展的一种新型短距离高频无线通信技术。该技术允许电子设备之间进行非接触式点对点数据传输(数厘米内)。相对于 RFID 技术,NEC 不仅可用于识别还具有一定的通信能力。近年来国内外已经将 NFC用于移动支付、广告营销及安全控制等领域。NFC 技术由于具有与移动智能设备集成度好、可用于识别、成本低廉及安全性高等优点,未来将成为物联网的主要短距离通信 /识别手段之一。

智慧农业监控系统

本文提出了一种融合近场通信(Near Field Communica-tion,NFC)与 igBee 技术的农业种植监测系统。该系统不仅可以借助 ZigBee 无线网络向上位机传输节点采集到的温湿度、土类温度、光照、氧气含量等数据,还可以让使用者在田间地头直接通过智能手机或平板电脑等移动智能设备与身边的监测节点交互,经由 NFC 实时动地了解局部种植监测信息。该系统可丰富现有物联网智能农业监测系统的工作模式,尤其在一些高端农业种植、个体植林监测与观光农业领域,有望得到推广应用。

1 系统设计

本文提出的农业种植管理系统主要面向智能观光农业领域。管理者通过系统获得温湿度等种植信息,还可将施肥、喷药等信息写入终端节点。而普通访问者(如农业观光园中的游览者)通过具有 NFC 功能的移动智能设备获取某一节点周围局部的挂果时间、农业肥料喷洒时间、栽培品种、温湿度、价格等相关信息供其采摘时参考。管理者还可通过 NFC 接入次数在宏观层面了解各种植区的人流及采摘兴趣。系统中网络节点分为数据采集节点与数据汇聚节点。数据采集节点采集种植区内的空气温湿度、土壤温度、日光照度与氧气数据,并通过ZigBee 送往数据汇聚节点。数据汇聚节点负责将前端数据送往上位机,并周期性地将接收到的上位机下行信息分发到数据采集节点。汇聚节点同样使用 ZigBee 信道与采集节点及上位机进行交互。上位机将采集数据进行存储显示,并对网络进行管理控制。移动智能设备可以通过NFC 从数据采集节点获得种植信息,并利用设备上已安装好的相应 App 来查看。种植信息向节点的写入方式可以采用近程与远程两种模式,既可以由种植区管理者在种植的每一个阶段用NFC 读写器将信息写入节点,也可以由远程上位机下达。如果采用 NFC 读写器写入种植信息,每次写入的结果还将在下一个轮询周期内发往上位机。

2 硬件设计

智慧农业物联网监测系统

由于系统中数据采集节点既需承担对种植参数的采集与发送工作,也需要负责 NFC 的数据读写,因此其设计的优劣将直接决定系统的工作性能。在具体设计中,采用微芯公司生产的PIC16F690 单片机作为节点 MCU。PIC16F690 具有高可靠性、低能耗及低成本等特点,非常符合户外监测系统的应用需求。节点温湿度传感器选用 AM2306,该传感器为单总线数字式传感器,温湿度、精度都可以达到 0.1%RH的标准。土壤温度传感器选用不锈钢封装的DS18B20。节点日光照度传感器选取美国 DAVIS 公司生产的 6450光辐照传感器,其光谱响应范围覆盖了 400nm到1100 m的区域,输出角度响应为一余弦响应曲线。氧气传感器采用英国City Technology 公司生产的40XV氧气电池式氧气传感器。40XV 输出信号经由AD8602高精度放大器放大后供 MCU 进行 A/D 采样。

数据采集节点 NFC 部分采用恩智浦半导体(NXP)PN532芯片,PN532是一个高度集成的非接触读写芯片,它包含带 40 KB ROM和1KB RAM的80C51 微控制器内核,用于 NFC协议控制,同时还集成了 13.56 MHZ 的各种主动/被动式非接触通信方法和协议。在 NFC 模式下,典型工作距离约为 100 mm。节点中 PN532 通过 SPI接口与 MCU 相连。节点 ZigBee 部分选用基于 TI公司 CC2530的DRF-2617 透传模块。PIC16F690 通过 USART 接口与其连接。为了降低 ZigBee 传输受葡萄藤蔓、大棚支撑物等障碍物的干扰,还采用了信号增益为 18 dBi的八木定向天线作为增强 ZigBee 传输的手段。

数据采集节点共有三种工作模式,即 NFC 写、NFC读与 ZigBee 采集/传输。

在NFC 写模式下,系统管理者可以利用 NFC 读写器,通过PNS32 将种植信息(如施肥种类/时间、农药喷洒种类/时间、植株挂果时间) 等按照预先设定好的格式写入节点的存储空间中。

在NFC 读模式下,智能设备通过 PN532 读取种植信息,此外还可查阅该时刻节点传感器采集到的氧气浓度、温度等棚内环境实时信息。设计通过绑定读写器 ID 来分设备的工作模式与读写权限。此外,在移动智能设备配套 App 中也设置了相应的权限标签。

在没有 NFC 访问要求时,节点工作于 ZigBee 采集/传输模式下。当接到上位机通过数据汇聚节点发来的轮询传输请求后,节点先检查是否有上位机发来新的种植信息或自身内部存储中是否有未上传的种植信息,如果有则执行相应更新。完成种植信息交互后,节点采集传感器数据,并与周期内 NFC 接入次数一起发往上位机。

3 系统软件设计

3.1上位机软件设计

上位机负责系统的管理与数据存储显示,系统中上位机软件使用 VC++编写。软件初始化时写入网络中各数据汇聚节点与数据采集节点的 ZigBee 网络 ID。针对每一个数据采集节点建立对应的文件夹,每日的监测数据存储到以日期编号的文件中。上位机软件根据节点网络分布设定轮询周期,在每一个轮询周期中对各节点的监测数据进行查询。用户还可通过上位机软件针对特定数据采集节点输入种植信息。通常通过上位机写入的种植信息对应园区施用较广的化肥或农药等。而利用节点 NEC 写入的种植信息是覆盖小片区或单植株的种植信息。上位机软件还提供简洁的 UI,便于拥有较少电脑操作经验的系统管理者使用。由于 40XV 氧气传感器的输出受温湿度等影响较大,而 6450 辐照传感器的输出受日照入射角影响,所以必须在二者的直接测量值上进行处理才能得到真实值。 40XV 在节点装机前都利用变温气室进行测量,得到一组离散的数据节点。之后在上位机软件中结合节点温湿度进行双二次样条插值,从而得到真实的氧气浓度。6450 角度余弦误差则通过利用实时时间引入日照高度角计算值来进行修正。

出处 物联网技术

原标题 基于NFC与ZigBee 技术的农业种植监测系统

作者 万雪芬 杨义 郑涛 蒋学芹

参考资料

https://www.hooketech.com/smart-agriculture-iot-monitoring-system.html

相关文章:

NFC与ZigBee技术在智慧农业物联网监测系统中的应用

近年来,我国农业物联网技术飞速发展,基于物联网技术的智能农业监测系统有望得到较大规模的推广应用。但传统的物联网农业监测系统其网络结构层次单一,多采用基于有线或无线结构的节点-上位机数据采集模式,节点数据访问模式缺乏灵活…...

k8s-cni网络 10

Flannel vxlan模式跨主机通信原理 在同一个节点上的pod 流量通过cni网桥可以直接进行转发; 在需要跨主机访问时,数据包通过flannel(隧道) 知道另一边的mac地址,就可以拿到另一边的ip地址,然后构建常规的以太网数据包,…...

听GPT 讲Rust源代码--src/tools(27)

File: rust/src/tools/clippy/clippy_lints/src/methods/suspicious_to_owned.rs 文件rust/src/tools/clippy/clippy_lints/src/methods/suspicious_to_owned.rs的作用是实施Clippy lint规则,检测产生潜在性能问题的字符转换代码,并给出相关建议。 在Rus…...

经济危机下,我们普通人如何翻身?2024创业新风口,适合普通人的创业项目

明年的商业环境会比今年更残酷,不是贩卖危机。旅游行业还在刺激性消费,再过几个月大家就没钱了,估计慢慢也消停。中小微企业资金链断裂,大部分公司倒闭,大批人失业,所以经济恢复需要一个周期。 30年河东&am…...

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第五节 引用类型复制问题及用克隆接口ICloneable修复

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第五节 引用类型复制问题及用克隆接口ICloneable修复 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节…...

python中基本元素的pop函数

python中基本元素的pop函数 一、列表List二、元组Tuple三、字典dict四、集合set 一、列表List pop() 根据索引删除并返回被删除的元素,索引默认为-1 a [1, 2, 3, 2, 5] b a.pop() # b5,默认返回最后一个值 print(b) b a.pop(2) # b3,返回a[2] pri…...

MPLS动态协议LDP配置示例

一、预习: MPLS是一种根据报文中携带的标签来转发数据的技术,两台LSR必须在它们之间转的数据 的标签使用上“达成共识”。LSR之间可以运行LDP来告知其他LSR本设备上的标签绑定信息,从而实现标签报文的正确转发。 LSR:Label Switch…...

JS调用栈:为何会栈溢出

JS调用栈:为何会栈溢出 JS调用栈什么是函数调用什么是栈在开发中利用调用栈栈溢出 JS调用栈 JavaScript 经常会出现一个函数中调用另外一个函数的情况,调用栈就是用来管理函数调用关系的一种数据结构,首先你要先弄明白函数调用和栈结构 什么…...

代码随想Day52 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

300.最长递增子序列 这道题目的重点在于动态数组的定义 dp[i]:以nums[i]为结尾的最长递增子序列,因为这样定义可以进行递推; 递推:j从0-i进行对比,如果nums[i]大于nums[j],dp[i]dp[j]1; 初始化…...

使用 pytest 相关特性重构 appium_helloworld

一、前置说明 在 pytest 基础讲解 章节,介绍了 pytest 的特性和基本用法,现在我们可以使用 pytest 的一些机制,来重构 appium_helloworld 。 appium_helloworld 链接: 编写第一个APP自动化脚本 appium_helloworld ,将脚本跑起来 代码目录结构: pytest.ini 设置: [pyt…...

猪目标检测数据集VOC格式600张

猪是一种常见的哺乳动物,通常被人们认为是肉食动物,但实际上猪是杂食性动物,以植物性食物为主,也有偶尔食肉的习性。猪的体型较大,圆胖的体型和圆润的脸庞使其显得憨态可掬。它们主要通过嗅觉来感知周围环境&#xff0…...

Pandas中concat的用法

Pandas中concat的用法 ​ pd.concat 是 pandas 库中的一个函数,用于将多个 pandas 对象(如 Series、DataFrame)沿指定轴进行合并连接。 pd.concat(objs, axis0, joinouter, ignore_indexFalse, keysNone, levelsNone, namesNone, verify_in…...

【C++】引用详解

前言 在学习C语言时,我们通常会遇到两个数交换的问题,为了实现这一功能,我们会编写一个经典的Swap函数,如下所示: void Swap(int *a, int *b) {int tmp *a;*a *b;*b tmp; } 然而,这个Swap函数看起来可…...

平时的一些思考内容

文章目录 阶乘位运算求概率 阶乘 阶乘是一很迷人的,刚开始的的变化还不是很大,到后面变化类似于直线上升的,不知道现实中哪些实例来表示阶乘。19的阶乘就已经超过了long了,在竞赛或者其他中要求2023或者很大数字的阶乘就需要考虑…...

AIGC时代下,结合ChatGPT谈谈儿童教育

引言 都2024年了,谈到儿童教育,各位有什么新奇的想法嘛 我觉得第一要务,要注重习惯养成,我觉得聊习惯养成这件事情范围有点太大了,我想把习惯归纳于底层逻辑,我们大家都知道,在中国式教育下&a…...

Java中的锁(一)

一、前言 在Java中,锁是用于多线程同步的重要概念。它可以保护共享资源,确保多个线程在访问共享资源时的数据一致性。 共享资源指的是多个线程同时对同一份资源进行访问 (读写操作),被多个线程访问的资源就称为共享资源。 如何保证多个线程访…...

CSS-SVG-环形进度条

线上代码地址 <div class"circular-progress-bar"><svg><circle class"circle-bg" /><circle class"circle-progress" style"stroke-dasharray: calc(2 * 3.1415 * var(--r) * (var(--percent) / 100)), 1000" …...

英语中修饰头发的形容词顺序是怎么样的(加补充)

一、英语描述发型 :漂亮长短形状颜色头发。 例如她有一头美丽的黑色的直发。She has beautiful long straight black hair.二、多个形容词修饰同一名词时的顺序是固定的&#xff0c;其顺序为&#xff1a;①冠词、指示代词、不定代词、物主代词②序数词基数词③一般性描绘形容词…...

python的WebSocket编程详解,案例群聊系统实现

1.websocket相关 1.1为什么要用websocket 如果有需求要实现服务端向客户端主动推送消息时&#xff08;比如聊天室&#xff0c;群聊室&#xff09;有哪几种方案 轮训&#xff1a;让浏览器每隔两秒发送一次请求&#xff0c;缺点&#xff1a;有延时&#xff0c;请求太多网站压力…...

flutter学习-day22-使用GestureDetector识别手势事件

文章目录 1. 介绍2. 使用2-1. 单击双击和长按2-2. 拖动和滑动2-3. 缩放 3. 注意点 1. 介绍 在 flutter 中&#xff0c;GestureDetector 是手势识别的组件&#xff0c;可以识别点击、双击、长按、拖动、缩放等手势事件&#xff0c;并且可以与子组件进行交互&#xff0c;构造函数…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...