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

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.二、多个形容词修饰同一名词时的顺序是固定的,其顺序为:①冠词、指示代词、不定代词、物主代词②序数词基数词③一般性描绘形容词…...
python的WebSocket编程详解,案例群聊系统实现
1.websocket相关 1.1为什么要用websocket 如果有需求要实现服务端向客户端主动推送消息时(比如聊天室,群聊室)有哪几种方案 轮训:让浏览器每隔两秒发送一次请求,缺点:有延时,请求太多网站压力…...
flutter学习-day22-使用GestureDetector识别手势事件
文章目录 1. 介绍2. 使用2-1. 单击双击和长按2-2. 拖动和滑动2-3. 缩放 3. 注意点 1. 介绍 在 flutter 中,GestureDetector 是手势识别的组件,可以识别点击、双击、长按、拖动、缩放等手势事件,并且可以与子组件进行交互,构造函数…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一:HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二:Floyd 快慢指针法(…...