51单片机项目(34)——基于51单片机和esp8266的智能农业检测系统

news2024/11/15 12:12:01

1.设计要求

        可以检测农业大棚中的温度、湿度、气压、光照等信息,可以检测土壤湿度,可以判断当前有没有下雨,能够将相关数据显示在OLED屏幕上。同时,使用esp8266wifi模块,将上述所有信息发送到手机APP显示。当温度、湿度、光照等数据不在规定范围内时,手机APP上提示报警信息!

2.方案设计

1.单片机

单片机直接使用普中开发板。

51单片机指的是Intel公司(后来被英特尔收购)推出的一款经典的8位单片机,型号为Intel 8051。它是一种高性能、低功耗、易于编程和广泛应用的单片机芯片,常用于嵌入式系统和各种电子设备的控制中。

下面是51单片机的一些特点和功能:
1. 8位CPU:51单片机使用8位CPU,具有较强的计算和控制能力。
2. 集成外设:51单片机内部集成了CPU、存储器、定时器、串口、I/O口等多种外设,方便开发和应用。
3. 体积小巧:51单片机芯片体积小,便于嵌入式系统的设计和应用。
4. 低功耗:51单片机在工作时功耗较低,适合电池供电的应用场景。
5. 存储容量:51单片机通常具有较大的存储空间,可用于存储程序和数据。
6. 软硬件资源丰富:51单片机有大量的相关资料和开发工具,支持各种编程语言和开发环境,易于学习和使用。

在应用方面,51单片机广泛用于各种领域,例如家电控制、工业自动化、汽车电子、智能家居、电子玩具等。开发人员可以通过编程来控制51单片机与外部传感器、执行器等设备进行通信和控制。

2.ESP8266

esp8266使用nodemcu。

NodeMCU 是一款基于 ESP8266 Wi-Fi 模块的开源 IoT 开发平台,其名字源自来自 NodeMCU 团队的 Node-Microcontroller 单词组合。NodeMCU 提供了一种简单而实用的方式来利用 ESP8266 模块进行物联网项目开发,支持 Wi-Fi 连接和编程。

以下是 NodeMCU 的一些特点和功能:
1. **基于 ESP8266 模块**:NodeMCU 使用 ESP8266 Wi-Fi 模块,具有高性能、低功耗和强大的无线连接功能。
   
2. **开源平台**:NodeMCU 是一个开源的硬件和软件平台,用户可以自由获取其设计图纸和固件源代码,进行定制开发。

3. **支持 Lua 编程**:NodeMCU 主要使用 Lua 脚本语言进行编程,通过简单的脚本代码即可实现各种 IoT 应用。

4. **丰富的 GPIO**:NodeMCU 提供了丰富的 GPIO 管脚,方便连接各种传感器、执行器和外部设备。

5. **易用性**:NodeMCU 提供了简便的开发环境和 API,使得用户可以快速上手进行物联网项目开发。

6. **支持 OTA(Over-The-Air)固件更新**:NodeMCU 支持通过无线网络实现固件的远程更新,方便在线升级设备。

NodeMCU 可以用于许多 IoT 应用,如智能家居控制、传感器数据采集、远程监控等。开发者可以利用 NodeMCU 快速搭建原型并部署到实际应用中。

3.GY-39

该传感器可以检测温度、湿度、气压、光照、海拔等数据,非常强大。

4.OLED

本次使用IIC接口的0.96寸OLED显示数据。

OLED 模块是一种使用有机发光二极管(OLED)作为显示元素的显示模块。OLED 技术相比于传统的液晶显示(LCD)具有许多优势,如更高的对比度、更广的视角、更快的响应速度和更低的功耗。OLED 模块通常用于各种电子设备中,如智能手表、智能手机、电子书阅读器、可穿戴设备等。

以下是 OLED 模块的一些特点和功能:
1. **无背光**:OLED 模块不需要背光,它的每个像素都是一个发光二极管,可以直接发光,这使得OLED显示具有更高的对比度和更广的颜色范围。

2. **高分辨率**:OLED 模块具有高分辨率,可以呈现细致、清晰的图像和文字。

3. **快速响应**:OLED 模块响应速度快,可以实现流畅的视频播放和动态效果。

4. **薄型轻便**:OLED 模块由于不需要背光灯,结构更简单,可以做得更薄更轻。

5. **低功耗**:OLED 模块在显示黑色时不需要消耗能量,因此在显示黑色画面时功耗较低,适合节能设备。

6. **强视角特性**:OLED 模块具有更广的视角范围,而且在不同角度观看时几乎没有颜色偏移。

OLED 模块可以是单色的(如单色蓝、单色白)也可以是全彩的,同时支持显示图像、文字甚至视频。开发者可以通过控制OLED 模块来实现各种用户界面设计和信息显示需求,同时也可以通过OLED 模块为电子产品增添时尚和科技感。

5.土壤湿度模块

土壤湿度传感器是一种用于测量土壤湿度水分含量的传感器。它通常被用于农业、园艺或其他土壤湿度监测应用中,帮助用户判断土壤湿度状态并进行相应的灌溉控制。

以下是土壤湿度传感器的一些特点和功能:
1. **测量土壤湿度**:土壤湿度传感器可以测量土壤中水分的含量,从而判断土壤是否湿润或干燥。

2. **精准度高**:传感器具有较高的测量精准度,能够提供准确的土壤湿度数据。

3. **多种类型**:土壤湿度传感器有多种类型,包括电阻式(如针式或片式传感器)、容性式和频域反射式等,可以选择适合不同应用场景的传感器。

4. **易于安装**:传感器通常具有简单的安装设计,可以轻松插入到土壤中。

5. **数字或模拟输出**:一些土壤湿度传感器提供数字输出(如 I2C 或串口)或模拟输出,方便与微控制器或其他设备进行连接和数据读取。

6. **环境适应性**:一些土壤湿度传感器具有良好的环境适应性,能够在不同温度、湿度和土壤类型下正常工作。

通过使用土壤湿度传感器,用户可以实时监测土壤湿度变化,并根据需要进行相应的灌溉控制,以达到节水和植物健康生长的目的。传感器的输出数据可供决策支持系统使用,以制定合理的灌溉计划和管理措施。

6.雨量传感器

雨量传感器是一种用于测量降雨量的传感器。它通常用于气象观测、水资源管理、洪涝监测和环境监测等应用中,帮助人们了解和记录降水情况。

以下是雨量传感器的一些特点和功能:
1. **测量降水量**:雨量传感器可以准确测量单位面积内降水的数量,通常以毫米(mm)为单位。

2. **高精度**:传感器具有较高的测量精度,能够提供准确的降水量数据。

3. **多种类型**:雨量传感器有多种类型,包括基于机械原理的翻斗式(tipping bucket)传感器、压电式传感器和光纤传感器等。

4. **实时监测**:传感器可以实时监测降水情况,提供连续的降水数据。

5. **抗干扰能力强**:雨量传感器通常具有抗干扰能力,能够在风、雪等干扰因素存在的情况下正常测量。

6. **易于安装**:传感器通常具有简单的安装设计,可以固定在合适的位置,如气象站、屋顶或塔架等。

7. **数据记录和传输**:雨量传感器可以将测量到的降水数据记录下来,并可通过数字输出(如串口或 Modbus)或模拟输出传输给数据采集设备或计算机。

通过使用雨量传感器,人们可以及时了解降水情况,用于监测气候变化、水文水资源管理以及洪水预警等。降水数据还可以用于农业灌溉和水资源规划等领域的决策支持。

3.接线方式 

NodeMCU的串口和单片机串口相连。如下图。

GY-39 SDA----> 单片机 P3.7

GY-39 SCL----> 单片机 P3.6

OLED SCL-----> 单片机 P1.4

OLED SDA-----> 单片机 P1.3

土壤湿度模拟量输出口------>普中开发板的XPT2046模拟量输入口IN3

雨量传感器----->单片机 P1.0

4.成果展示 

(有些数据为0,是因为我在测试的时候没有装上传感器,手头上没有) 

5.注意事项 

        关于nodeMCU相关开发步骤,MQTT云服务器相关,以及手机APP相关知识,可以前往我的专栏——ESP8266进行学习。代表作:

ESP8266智能家居(2)——8266发布数据到mqtt服务器-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/guangali/article/details/136239403

6.源代码

51单片机+esp8266+手机app的智能家居资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/guangali/88866328?spm=1001.2014.3001.5503

内含51单片机端代码   nodeMCU端代码, Android studio端代码

(虽然名字叫智能家居,但是实现的功能是本节文章的功能) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1468486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SQL-Labs46关order by注入姿势

君衍. 四十六关 ORDER BY数字型注入1、源码分析2、rand()盲注3、if语句盲注4、时间盲注5、报错注入6、Limit注入7、盲注脚本 四十六关 ORDER BY数字型注入 请求方式注入类型拼接方式GET报错、布尔盲注、延时盲注ORDER BY $id 我们直接可以从界面中得知传参的参数为SORT&#x…

可变参数、Collections类

一、可变参数 定义:是一种特殊的形参,定义在方法、构造器的形参列表里 格式:数据类型...参数名称 特点:可以不传数据,也可以传一个或者多个数据给它,也可以传一个数组 好处:可以灵活接收数据…

刷题日记-Day2- Leedcode-977. 有序数组的平方,209. 长度最小的子数组,59. 螺旋矩阵 II-Python实现

刷题日记Day2 977 有序数组的平方209. 长度最小的子数组59. 螺旋矩阵 II 977 有序数组的平方 链接:https://leetcode.cn/problems/squares-of-a-sorted-array/description/ 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组…

真Unity3D编辑器Editor二次开发

IMGUI Editor Label 改变颜色 分享一个很神奇的颜色 一开始这么写&#xff0c;以为不行的&#xff0c; private void OnGUI()(){GUILayout.Label("<colorred>name:</color>ffdasilufoi");//。。。。 } 结果这么写又好了&#xff0c; private GUIStyle m…

Vivado MIG ip核使用教程

Step 1 在ip catalog中搜索mig ip核并打开&#xff0c;检查硬件配置 Step 2 Step 3 选择对其他芯片类型的兼容性&#xff0c;若无此方面需求&#xff0c;可直接点击next Step 4 选择存储器类型 Step 5 配置DDR3芯片工作频率、用户时钟、mig ip核输入时钟、DDR3芯片类型…

数据结构-Queue队列

一,队列的简单认识 队列也是一种线性数据结构,与栈不同的是,它只能从一端添加元素,从另一端取出元素.定义了一端,另一端也就确定了. (当然还有一个特殊的双向队列LinkedList除外,它既可以从队首添加元素,也可以移除元素,队尾也是一样的,既可以添加元素,也可以移除元素) 二,队…

AI误导游戏——LLM的危险幻觉

在当今科技高速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已成为日常生活和工作中不可或缺的一部分。特别是大语言模型&#xff08;LLM&#xff09;如GPT-4等&#xff0c;它们的智能表现令人惊叹&#xff0c;广泛应用于文本生成、语言翻译、情感分析等多个领域…

【rust】9、reqwest 调用 http

文章目录 一、client1.1 post reqwest 实现的 http server 和 client 用 https://github.com/seanmonstar/reqwest cargo add reqwest -F json cargo add tokio -F full一、client 1.1 post async fn http_post<T: Serialize>(addr: String, body: T) -> Result<…

jQuery 基础、选择器和筛选器

【一】JQuery基础 【1】什么时Jquery &#xff08;1&#xff09;定义 jQuery是一个流行的JavaScript库&#xff0c;旨在简化JavaScript编程和处理HTML文档的任务。它提供了一组易于使用的功能和方法&#xff0c;可以加快开发速度并提高跨浏览器兼容性。一款轻量级的JS框架 …

【Java程序设计】【C00285】基于Springboot的游戏分享网站(有论文)

基于Springboot的游戏分享网站&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的游戏分享网站 本系统分为系统功能模块、管理员功能模块以及用户功能模块。 系统功能模块&#xff1a;在网站首页可以查看首页、游戏…

element 季度选择器组件

效果图&#xff1a; 回传给父组件的值&#xff1a; 季度选择器组件代码&#xff1a; <template><el-form><el-form-item><markclass"mark"v-show"showSeason"click.stop"showSeason false"></mark><el-input…

web安全学习笔记【15】——信息打点(5)

信息打点-CDN绕过&业务部署&漏洞回链&接口探针&全网扫描&反向邮件 #知识点&#xff1a; 1、业务资产-应用类型分类 2、Web单域名获取-接口查询 3、Web子域名获取-解析枚举 4、Web架构资产-平台指纹识别 ------------------------------------ 1、开源-CMS指…

大数据之Flink优化

文章目录 导言&#xff1a;Flink调优概览第1章 资源配置调优1.1 内存设置1.1.1 TaskManager 内存模型1.1.2 生产资源配置示例 1.2 合理利用 cpu 资源1.2.1 使用 DefaultResourceCalculator 策略1.2.2 使用 DominantResourceCalculator 策略1.2.3 使用DominantResourceCalculato…

RM电控讲义【HAL库篇】(二)

8080并口模式是一种常见的计算机接口模式&#xff0c;主要用于LCD&#xff08;液晶显示屏&#xff09;模块。 在8080并口模式中&#xff0c;通信端口包括多种信号线&#xff0c;用于实现数据的读写和控制功能。主要的信号线包括&#xff1a; CS&#xff08;片选信号&#xff…

测绘测量行业CRM功能大揭秘:哪家才是最佳选择?

测绘测量行业面临着处理及管理海量数据的难题。办公软件进行数据记录是非常繁琐的&#xff0c;往往需要花费大量的时间来查找所需的信息&#xff0c;甚至造成内容丢失。测绘测量企业运用CRM管理系统至关重要。本文将向您介绍测绘测量行业CRM功能、哪家好&#xff1f; CRM软件的…

在线程调用的函数中使用pthread_exit同样会将线程退出

如上图所示&#xff0c;在func()函数中调用pthread_exit&#xff0c;同样可以退出当前线程&#xff1b; 类似的&#xff0c;如果func&#xff08;&#xff09;函数中调用exit&#xff0c;可以直接退出整个进程。 return 是返回到函数调用处&#xff1b; pthread_exit是退出…

数字化转型导师坚鹏:如何制定政府数字化转型年度培训规划

如何制定政府数字化转型年度培训规划 ——以推动政府数字化转型战略落地为核心&#xff0c;实现知行果合一 课程背景&#xff1a; 很多政府都在开展政府数字化转型培训工作&#xff0c;目前存在以下问题急需解决&#xff1a; 缺少针对性的政府数字化转型年度培训规划 不清…

127 Linux 系统编程5 ,C++程序内存布局图

我们以32位 系统说明。 0-3G 是用户区 3g-4g 是kernel 区 BSS段&#xff1a;BSS段&#xff08;bss segment&#xff09;通常是指用来存放程序中未初始化的或者初始值为0的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。 数据段…

C语言中的assert.h:调试助手与断言详解

在C语言编程中&#xff0c;assert.h头文件提供了非常有用的断言&#xff08;Assertion&#xff09;功能&#xff0c;它主要用于开发和调试阶段&#xff0c;确保程序在运行时满足某些预期条件。如果这些条件未得到满足&#xff0c;则程序会立即停止执行&#xff0c;并打印出有关…

C++之std::async

std::async是C提供的一个异步处理函数。 函数原型&#xff1a; template<typename _Fn, typename... _Args> future<__async_result_of<_Fn, _Args...>> async(launch __policy, _Fn&& __fn, _Args&&... __args); 参数说明: int thFun(in…