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 是手势识别的组件,可以识别点击、双击、长按、拖动、缩放等手势事件,并且可以与子组件进行交互,构造函数…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
