基于STM32的云上OneNET智慧大棚(包含程序设计报告)
目录
概要
作品介绍
设计原理
设计作品结构
软件部分
概要
为了解决传统农业生产效率低下,消耗大量的人力物力,不能精确的对农作物实现监控的问题,从而最大限度的提高农业生产力,实现优质、高产、低耗、环保的可持续发展物联网[1]农业。云上OneNET的智慧大棚采用STM32MCU[2][3]接收GY30[4]光照强度传感器、SGP30二氧化碳/TVOC传感器、SHT20[5]温湿度传感器、YL-69[6]土壤湿度传感器测得的参数,通过ESP8266wifi[7]模块上传至OneNET[8][9]云平台,云上OneNET的智慧大棚实现了在物联网,多终端的条件下实时监控大棚里的重要生产环境因素(光照强度、CO?、TVOC浓度、空气温湿度、土壤湿度),以及超过设定阀值的系统自动调节或从终端人为下发命令调节的功能。云上OneNET智慧大棚创新的将农业加上互联网,可以精准的及时监控大棚里的环境因素数据(上传数据时间间隔最低可达3s)并通过中移物联网OneNET平台将离散的数据可视化(中移OneNET平台支持多种数据展示方式:曲线图,柱状图,表盘,按键),方便长期的监控和分析最适宜作物生长的环境因素,可以高效率低成本的维持大棚内的稳态。
作品介绍
1、创作动机
为了解决传统农业生产效率低下,消耗大量的人力物力,不能足够精确的对农作物实现监控的问题,最大限度的提高农业生产力,实现优质、高产、低耗、环保的可持续发展农业。云上OneNet的智慧大棚实现了在互联网,多终端的条件下实时监控大棚里的环境因素(光照强度,空气温度,空气湿度,土壤湿度等),以及超过设定阀值的系统自动调节或从终端人为下发命令调节的功能。云上OneNet的智慧大棚创新的将农业加上互联网,可以更加精准的及时监控大棚里的环境因素数据(上传数据时间间隔最低可达8s)并通过中移物联网OneNet平台将离散的数据可视化(中移OneNet平台支持多种数据展示方式:曲线图,柱状图,表盘,按键),方便长期的监控和分析,此外还可以更加高效率低成本的维持大棚内的稳态。
2、创作目的为了解决传统农业生产效率低下,消耗大量的人力物力,不能足够精确的对农作物实现监控的问题,最大限度的提高农业生产力,实现优质、高产、低耗、环 保的可持续发展农业。
(1)、内容和技术云上 OneNet 智慧大棚由 STM32F103 单片机作为主控芯片处理来自 SHT20 温湿度传感器、GY30 光线传感器、土壤湿度传感器、CO2等传感器的数据再通过 ESP8266WiFi 模块将多种影响生产因素的数据上传至中移物联网 OneNet 平台上,多终端(PC 端、移动端、Pad 端)条件下实时监控大棚里的环境因素并从终端人为下发命令调节外设 和超过设定阀值的系统自动处理调节的功能。
(2)、应用和前景农业物联网,即在大棚控制系统中,运用物联网系统的温度传感器、 湿度传感器、Ph 值传感器、光传感器、CO2 传感器等设备,检测环境中的温度、相对湿度、 Ph 值、光照强度、土壤养分、CO2 浓度等物理量参数,通过各种仪器仪表实时显示或作为 自动控制的参变量参与到自动控制中,保证农作物有一个良好的、适宜的生长环境。远程 控制的实现使种植人员在办公室就能对多个大棚的环境进行监测控制。采用无线网络来测 量获得作物生长的适宜条件,可以为温室精准调控提供科学依据,达到增产、改善品质、 调节生长周期、提高经济效益。通过物联网技术开启的智慧风暴,让农业实现了“环境可测、生产可控、质量可溯”的目标。确保农产品质量安全,引领现代农业发展。
3、作品改良针对传统生态大棚数据不便于收集分析展示的缺点,我们采用中移物联网OneNet平台,能轻松实现平台的搭建,设备的联网,数据的收集分析展示,为寻找作物最佳生长状态提供实际指导。
4、芯片及功能云上OneNet智慧大棚使用了一块麒麟座迷你开发板作为主控,其上包含一块STM32F103C8T6MCU,STM32 作为主控芯片处理来自空气SHT20温湿度传感器、YL69土壤湿度传感器、GY30光强度传感器、SGP30二氧化碳传感器的数据;采用 ESP8266wifi 模块将本地数据实时上传至互联网;接入中移物联网 OneNet 云平台实现对数据的可视化处理和多终端共享以及命令的下发
三、作品功能与实用性1.功能:基于 OneNet 的智慧大棚统可以在多终端上实现对植物补光灯、排气 扇、灌溉系统及其遮光帘的控制。还可以通过中移物联网网关携带的图形人机界面,在室内智能网关控制系统上设置补光灯控制模块、排气扇控制模块、灌溉系统控制模块和遮光帘控制模块。监控温湿度、光照强度报警模块、土壤湿度模块、CO 2 浓度模块、PH 值模块、云端实时遥控命令等功能。由于“OneNet”物联网技术,移动应用程序可以与智能网关保持快速的数据通信。智能网关是整个设计的核心,可以起到连接的作用。为此,设计了 STM32主控芯片、WiFi 模块的方案。STM32 主芯片负责处理来自 WiFi 模块的数据,并对数据进行重新打包和分发。WIFI 模块负责与路由器的通信。灯光控制模块负责实际的植物补光灯,排气扇控制模块负责实际的风扇运行、灌溉系统控制模块负责实际的大棚内的浇水和遮光帘控制模块负责实际的遮光帘的升降。因此整个系统分为六个部分:PC 控制终端、智能网关控制器、补光灯控制模块、排气扇控制模块、灌溉系统控制模块、遮光帘控制模块。
2.将互联网和农业有机结合起来,实现农业的物联网化,接入中移物联网 OneNet 平台,不仅让各种大棚内的生产因素数据可视化(曲线图、柱状图、表盘、按 键),便于对生产因素的管理以获得作物生长的适宜条件,可以为温室精准调控提供科学依据,而且还获得了电信级的稳定,这对于满足农业生产的稳定性和可靠性有非常大的支撑。
3.具有市场竞争力方面:数据服务
通过农业大数据,不断收集智能大棚产生的各种环境生产因素,提供各地不同时节不同作物的相关生长数据包,支持农户选择不同数据包以快速适应种植地与作物;
设计原理
1.工作原理:采用 STM32F103 为主控芯片处理来自温度传感器、湿度传感器、 Ph 值传感器、光传感器、CO2 传感器的数据;采用 ESP8266wifi 模块将本地数据实时上传至互联网,接入中移物联网 OneNet 云平台实现对数据的可视化处理和多终端共享以及命令的发。
2.对于如何同云平台进行数据交换曾考虑过使用NB-IOT,但是NB的模块相比esp8266来说价格略高,除此之外NB还需要专门申请物联网卡,进一步加深了项目的成本,相对而言,使用esp8266既能满足项目需求,价格又合理。
3.技术来源:中移物联网社区、CSDN、Baidu。属于参赛者自主研发内容:硬件连接逻辑、按需进行代码编写、整体物理模型的构建。
五、设计作品结构1、硬件部分(1)、 SHT20温湿度传感器
SHT20是一款采用 DFN 封装-适于回流焊、数字输出,I2C 接口具有低功耗、优异的长期稳定性的温湿度传感器。可以通过I2C通信模式与MCU进行数据通信。SHT20传感器与STM32MCU相连,电路图如图3.1所示。其中VDD是传感器内部模拟电路电源端;SCL、SDA分别是12C通信模式时钟信号、数据信号;VSS接低电平。NC和NC_1本设计未使用,故悬空。
(2)、 SGP30二氧化碳传感器
SGP30多像素气体传感器分线板提供完全集成的MOX气体传感器,这是Sensirion的一款非常精细的空气质量传感器,具有I 2 C接口和完全校准的输出信号,测量值的典型精度为15%。SGP在一个芯片上结合了多个金属氧化物传感元件,以提供更详细的空气质量信号。该传感器可检测各种挥发性有机化合物(VOC)和H2,用于室内空气质量监测。SGP30具有标准的热板MOX传感器,以及控制电路板电源,读取模拟电压,跟踪基线校准,计算TVOC和CO 2 值的小型微控制器,并提供I 2 C接口。从中读取。与CCS811不同,该传感器不需要I 2 C时钟延长。该传感器VCC接3.3V,GND接MCU的GND,SCL和SDA分别接MCU的PB8和PB9.
(3)、GY30数字光照强度传感器
数字光强度检测模块:GY30采用ROHM原装BH1750FVI[7]芯片,供电电源3~5V,光照范围:0~65535lex,传感器内置16bitAD转换器直接数字输出,省略复杂计算,省略标定,不区分环境光源,接近视觉灵敏度实物的分光特性可对广泛的亮度进行1勒克斯的高精度测定标准,采用IIC通信协议。引脚VCC、GND和ADDR(器件地址0100011)分别接MCU的3.3/5V,GND和GND,SCL和SDA分别接PB6和PB7.
(4)、 YL69土壤湿度传感器
YL69[8]是一款比较器采用LM393 芯片,工作稳定,电源:3.3V ~ 5V,设有固定螺栓孔,方便安装,获取湿度信息的方式从传感器的A0引脚:获取到模拟量,更加精确。传感器板上的VCC接电源,GND接地,A0接单片机模拟输入PA0,再经过ADC采样,量化,编码计算,最终得到精确的土壤湿度值。
(5)、NLN2003步进电机驱动模块和28BYJ48步进电机
ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成,每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5VTTL电平,输出可达500mA/50V。 步进电机相数:4,减速比:1/64,步距角:5.625°/64,驱动方式:四相八拍。ULN2003模块的引脚VCC接5V电源,GND接MCU的GND,MCU的PB0、1、3、4分别接IN4(步进电机橙线)、3(黄)、2(粉)、1(蓝)。
(6)、STM32主控电路
本设计采用STM32最小系统板,主芯片采用STM32F103C8T6,该MCU是ST公司出品的高性能低功耗系列MCU之一,供电电压范围1.65V-3.6V,采用超低漏电工艺技术,使得MCU的运行速度和功耗与其供电无关;具有48个引脚、128kB程序Flash、lOkBRAM、8个16位定时器、2路USART、2路SPI、2路I2C和1路USB通信接口;内置16MHz和38kHzRC振荡器,使得电路无需外部晶振也能正常运行。该系列MCU可长时间运行在低功耗状态,具有周期性唤醒功能,快速唤醒时间低至4us,且数据量较小、数据传输间隔周期较大。
为了尽可能降低功耗,本设计未使用外部晶振,而使用内部16MHz的MSI RC振荡器作为系统主时钟源,经160分频成lOOkHz供I2C外设使用,I2C采用低速率,可以稳定传输且降低功耗。MCU长时间处于停止状态,内部除RTC实时时钟(采用内部LSI 40kHzRC振荡器,低于luF电流)外,其余定时器全部停止计数,RTC实时时钟每隔30秒唤醒MCU,内部16MHz RC振荡器开始工作,主控程序正常运行,读取传感器参数,并上传至OneNET云平台。
图3.6是STM32主控电路图,采用最小系统板,其中VBAT为系统电源,使用USB供电;BOOTO和BOOT1引脚都接地,系统上电后默认从用户Flash启动。STM32F103C8T6通过I2C接口连接SHT20温湿度传感器、GY30光照强度传感器、YL69土壤湿度传感器和SGP30二氧化碳传感器;通过USART串口连接ESP8266 WIFI模块。
软件部分
云上OneNET智慧大棚主要功能为远程实时采集温室的温湿度、光照强度、土壤湿度、二氧化碳浓度等信息,对采集的信息进行通风、遮光、灌溉等操作。实现方法为STM32MCU处理来自温湿度传感器SHT20、外接土壤湿度传感器YL69、GY30光强传感器、SGP30二氧化碳传感器等采集的信息,再通过板载ESP8266将数据传送到OneNET云平台,在云平台上设计监控界面来显示接收到的数据,既可以实现超过阈值的自动操作又可以人为远程控制温室内的抽水系统进行浇灌、直流风扇换器、遮光帘降下、阴天补光等操作。
本设计采用中国移动物联网有限公司的OneNET方案,OneNET接入流程如图4.1所示。其中账号注册、创建产品、添加设备3个步骤需要用户在https://open.iot.10086.cn/页面上进行操作。账号注册时填写用户的个人信息;创建产品时,产品信息的联网方式须选择“wifi”,协议须选择“EDP[3]”;添加设备时填写“云上OneNET智慧大棚”,并添加麒麟座迷你开发板的产品ID和鉴权信息;STM32主控OneNET.c程序完成接入流程中的上报数据步骤,将传感器参数上传至OneNET云平台;通过浏览器或中国移动的“设备云”APP可以查看展示数据。
相关文章:

基于STM32的云上OneNET智慧大棚(包含程序设计报告)
目录 概要 作品介绍 设计原理 设计作品结构 软件部分 概要 为了解决传统农业生产效率低下,消耗大量的人力物力,不能精确的对农作物实现监控的问题,从而最大限度的提高农业生产力,实现优质、高产、低耗、环保的可持续发展物联…...

11.scala函数进阶
目录 概述函数scala函数和方法的区别第一种第二种方法转函数 函数柯里化 结束 概述 函数 vs 方法 1.定义 方法:def函数:> 2.方法本质上是一个特殊的函数3.函数是一等公民,函数可以当做值来传递,方法的参数,返回值…...

在WebSocket中使用Redis出现空指针异常解决方案
文章目录 在WebSocket中使用Redis1.问题描述2.原因3.解决步骤1.新建一个SpringUtil.java类,通过getBean的方法主动获取实例2.在WebSocketSingleServer.java中导入 在WebSocket中使用Redis 1.问题描述 在controller 和 service中都可以正常使用Redis,在…...

问题:第十三届全国人民代表大会第四次会议召开的时间是()。 #经验分享#知识分享#媒体
问题:第十三届全国人民代表大会第四次会议召开的时间是()。 A. 2018年3月3日至3月11日 B. 2019年3月5日至3月11日 C. 2020年3月5日至3月11日 D. 2021年3月5日至3月11日 参考答案如图所示 问题:顾客满意是顾客对一件产品满足…...

《区块链简易速速上手小册》第10章:区块链的未来与趋势(2024 最新版)
文章目录 10.1 区块链的未来展望10.1.1 基础知识10.1.2 主要案例:区块链在金融领域的发展10.1.3 拓展案例 1:区块链在供应链管理中的应用10.1.4 拓展案例 2:区块链在身份管理和隐私保护中的应用 10.2 新兴技术与区块链的融合10.2.1 基础知识1…...

JVM工作原理与实战(三十一):诊断内存泄漏的原因
专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、诊断原因 二、MAT内存泄漏检测的原理 总结 前言 JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线…...

#{}和${}的区别
#{}和${}的区别 .本质区别:使用注意事项防止SQL注入排序like查询 . 在使用mybatis操作数据库的时候,我们在编写sql语言的时候,会遇到一个问题,就是在传参的时候,有两个符号#,$.这两个符号有什么异同呢,接下来,我就会带着大家对这个问题进行简单的探讨 本质区别: #执行的是预编…...

【数据结构】(三)树Tree
目录 1、基本概念 2、二叉树Binary Tree 3、树、森林与二叉树的转换 4、赫夫曼树Huffman Tree与赫夫曼编码Huffman Coding 1、基本概念 (1)树(Tree)是 n(n ≥\geq 1)个节点的有限集,n 0时称…...

扩展坞 接两个显示器
笔记本电脑如何外接两个显示器,达到三个屏同时显示? 3 笔记本有 2 个显示扩展接口 目前笔记本中最常见的就是 1 个 HDMI 口 1 个支持 DP 协议的 Type-C 口或 2 个支持 DP 协议的 Type-C 口,此时使用 HDMI 线和 Type-C 转接线分别直连两台显…...

鸿蒙 ArkTS 从数组内查找指定的数据
let arr [1, 2, 3, 4, 5]; let target 3; let result arr.filter(item > item target); let a String(result) 将数字转换成文本型 console.log(a); 亲爱的读者: 首先,我要感谢您抽出宝贵的时间阅读这篇文章。我深知,您的每一分每一…...

qemu 抓取linux kernel vmcore
一、背景 在qemu调试linux kernel时 有时我们会遇到dump 情况,这时可以通过gdb 方式连接分析dump, 但实际中我们用得更多的是离线dump 分析,分析的文件通常是vmcore(linux kernel panic 生成的coredump文件)或者ramdu…...

RabbitMQ 死信队列应用
1. 概念 死信队列(Dead Letter Queue)是在消息队列系统中的一种特殊队列,用于存储无法被消费的消息。消息可能会因为多种原因变成“死信”,例如消息过期、消息被拒绝、消息队列长度超过限制等。当消息变成“死信”时,…...

除毛可以用宠物空气净化器吗?猫用空气净化器哪些品牌吸毛好?
作为一位长期养猫的铲屎官,我深刻理解只有养猫人才懂的困扰,那就是家里到处都是猫毛和异味。我发现自从开始养猫之后,家里的空气质量变得不佳。猫毛和皮屑飞扬,而且室内空气中的污染物也越来越多。这种低质量的空气对我们的健康有…...

有趣的css - 好看的呼吸灯效果
整体效果 这个效果主要用 css3 的 animation 属性来实现的。 这个效果可以用作在网站的整体 Loading,也可以放在网站首屏当一个 banner 的背景也是非常棒的! 代码部分 html 部分代码: <div class"app"><span class&quo…...

二叉树-堆应用(1)
目录 堆排序 整体思路 代码实现 Q1建大堆/小堆 Q2数据个数和下标 TopK问题 整体思路 代码实现 Q1造数据CreateData Q2建大堆/小堆 建堆的两种方法这里会用到前面的向上/向下调整/交换函数。向上调整&向下调整算法-CSDN博客 堆排序 整体思路 建堆(直…...

猫头虎博主第10期赠书活动:《写给大家看的Midjourney设计书》
博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…...

线程池相关的类学习
Executor public interface Executor {//执行任务void execute(Runnable command); }ExecutorService public interface ExecutorService extends Executor {//关闭线程池,不能再向线程池中提交任务,已存在与线程池中的任务会继续执行,直到…...

Redis核心技术与实战【学习笔记】 - 9.如何避免单线程模型的阻塞
概述 Redis 被广泛应用的原因是因为它支持高性能访问。所以,我们要重视所有可能影响 Redis 性能的因素(如命令操作、系统配置、关键机制、硬件配置等)。 影响 Redis 性能的 5 大方面的潜在因素分别是: Redis 内部的阻塞式操作C…...

如何在 JavaScript 中使用 map() 迭代数组
简介 从经典的 for 循环到 forEach() 方法,JavaScript 中有各种技术和方法用于遍历数据集。其中最流行的方法之一是 .map() 方法。.map() 通过在父数组的每个项目上调用特定函数来创建一个数组。.map() 是一个非变异方法,它创建一个新数组,而…...

学习JavaEE的日子 Day19 常用类
Day19 1.包装类的使用 理解:8种基本数据类型对应类 出现原因: Java为纯面向对象语言(万物皆对象),8种基本数据类型不能new对象, 就破坏Java为纯面向对应语言的特征,Java又为8种基本数据类型分别 匹配了对应的…...

25考研政治备考计划
各位小伙伴大家好,今天给大家分享的是25考研政治复习备考计划。 政治没有基础阶段,直接就是强化,强化的内容也就是听课,刷题。 【时间安排】 *7-9月中 徐涛老师或腿姐强化课,推荐刷肖1000 *9月中-10月中 背腿姐的背…...

漏洞01-目录遍历漏洞/敏感信息泄露/URL重定向
目录遍历漏洞/敏感信息泄露/URL重定向 文章目录 目录遍历敏感信息泄露URL重定向 目录遍历 敏感信息泄露 于后台人员的疏忽或者不当的设计,导致不应该被前端用户看到的数据被轻易的访问到。 比如: ---通过访问url下的目录,可以直接列出目录下…...

软件工程知识梳理4-详细设计
详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统,也就是说.经过这个阶段的设计工作.应该得出对目标系统的精确描述.从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 详细设计的的目标不仅仅是逻辑上正确地实现每个模块地功能&a…...

Spring Boot3,启动时间缩短 10 倍!
前面松哥写了一篇文章和大家聊了 Spring6 中引入的新玩意 AOT(见Spring Boot3 新玩法,AOT 优化!)。 文章发出来之后,有小伙伴问松哥有没有做性能比较,老实说,这个给落下了,所以今天…...

Picturesocial | 只要 5 分钟,发现容器编排的秘密武器!
在上一篇文章《Picturesocial | 开发实践:如何在 15 分钟内将应用容器化》,我们讨论了容器以及容器化应用程序所需的步骤。在不考虑将 container 部署到哪里的情况下创建 container,就像把家放在漂浮在海中的货运集装箱里一样,听起…...

GEE数据集——Umbra 卫星合成孔径雷达开放数据
Umbra 合成孔径雷达开放数据 Umbra 卫星生成的合成孔径雷达图像分辨率最高(优于 25 厘米/10 英寸)。合成孔径雷达卫星可以在夜间、透过云层、烟雾和雨水捕捉图像。合成孔径雷达具有监测变化的独特能力。开放数据计划(ODP)对全球十个不同地点进行监测。经常更新新图像。ODP …...

一个vue项目中通过iframe嵌套另外一个vue项目,如何让这两个项目进行通信
文章目录 需求分析父传子子传父 需求 一个vue项目中通过iframe嵌套另外一个vue项目,如何让这两个项目之间进行通信 分析 在Vue项目中通过iframe嵌套另外一个Vue项目时,可以通过postMessage方法实现这两个项目之间的通信。postMessage是HTML5新增加的API…...

上班族学习方法系列文章目录
上班族学习方法系列文章目录 文章目录 上班族学习方法系列文章目录前言一、时间管理二、答题实战 前言 上班族如果想提高自己,那么就得掌握有效的学习方法和良好的时间管理。 一、时间管理 上班族有家有业,考证或者提高学历备考时间不充分。需要学会精…...

《Lua程序设计》-- 学习9
迭代器和泛型for 迭代器和闭包 迭代器(iterator)是一种可以让我们遍历一个集合中所有元素的代码结构。在Lua语言中,通常使用函数表示迭代器:每一次调用函数时,函数会返回集合中的“下一个”元素。 一个闭包就是一个…...

GIS应用水平考试一级—2009 年度第二次
全国信息化工程师——GIS应用水平考试 2009 年度第二次全国统一考试一级 试卷说明: 1、本试卷共9页,6个大题,满分150 分,150 分钟完卷。 2、考试方式为闭卷考试。 3、将第一、二、三題的答案用铅笔涂写到(NCIE-GIS)答题卡上。 4、将第四、五、六题的答案填写到主观题答题卡上…...