既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
最后,系统定义了一个空气温度阈值,显示在屏幕第三行。如果检测到空气温度大于阈值,那么蜂鸣器响,风扇打开。否则蜂鸣器不响,风扇关。系统还定义了一个土壤湿度阈值,如果检测到的土壤湿度阈值低于此阈值,那么打开水泵。
/*
接线:
DHT11-DAT----->P2.0
DS18B20-DAT----->P3.7
OLED-SCL----->P1.4
OLED-SDA----->P1.3
蜂鸣器---->P1.5
风扇---->P2.6
水泵----->P2.7
ADC0832-CS---->P1.0
ADC0832-CLK---->P1.1
ADC0832-DAT---->P1.2
土壤湿度传感器的模拟输出口—>ADC0832的CH0
L298N需要额外供电,也就是需要另一个电源。
接线方式:
L298N的电源端: 12V接 12V/5V GND接GND
L298N的IN1---->P2.6
IN2 不接
IN3---->P2.7
IN4 不接
L298N左边输出端接风扇
右边输出端接水泵
*/
2.实物图
3.课题意义
基于51单片机的大棚环境监测系统具有以下几个重要的课题意义:
1. 提高大棚种植效率:大棚是一种封闭式的种植环境,通过监测和控制关键参数,如温度、湿度、光照等,可以优化植物生长环境,提高种植效率。通过51单片机实时监测环境参数并作出反应,可以及时调整大棚内部的光照、通风、加热等设备,创造适宜的生长环境,提高植物的生长速度和产量。
2. 降低资源消耗:大棚环境监测系统可以实时监测大棚内部环境的温度、湿度等参数,并根据监测结果自动调整灌溉、通风等设备的运行状态,从而避免资源的浪费和能源的过度消耗。这样不仅能节约水和电,还有助于减少农药的使用,对环境保护起到积极的作用。
3. 提高农作物质量和口感:通过大棚环境监测系统,可以及时掌握大棚内部环境的变化,并实时调整环境参数,为农作物提供最适宜的生长环境。这样可以提高农作物的质量和口感,使其在市场上具有竞争力。
4. 实现智能化管理:大棚环境监测系统可以利用51单片机作为中央控制单元,通过传感器收集大棚内部的环境数据,并将数据发送到中央控制单元进行处理和分析。通过网络连接,可以实现对大棚环境的远程监控和控制,实现智能化管理,提高农作物的管理水平和生产效益。
综上所述,基于51单片机的大棚环境监测系统的课题意义在于提高大棚种植效率,降低资源消耗,提高农作物质量和口感,实现智能化管理。这对于推动农业的可持续发展和提高农民收入具有重要的意义。
4.代码
整个工程的结构如下:
main.c的代码如下
#include "reg51.h"
#include "oled.h"
#include "DHT11.h"
#include "delay.h"
#include "temp.h"
#include "adc0832.h"
/*
接线:
DHT11-DAT----->P2.0
DS18B20-DAT----->P3.7
OLED-SCL----->P1.4
OLED-SDA----->P1.3
蜂鸣器---->P1.5
风扇---->P2.6
水泵----->P2.7
ADC0832-CS---->P1.0
ADC0832-CLK---->P1.1
ADC0832-DAT---->P1.2
土壤湿度传感器的模拟输出口--->ADC0832的CH0
L298N需要额外供电,也就是需要另一个电源。
接线方式:
L298N的电源端: 12V接 12V/5V GND接GND
L298N的IN1---->P2.6
IN2 不接
IN3---->P2.7
IN4 不接
L298N左边输出端接风扇
右边输出端接水泵
*/
sbit beep=P1^5; //蜂鸣器
sbit fengshan=P2^6; //风扇控制引脚
sbit shuibeng=P2^7; //水泵控制引脚
extern uchar temp; //温度
extern uchar humi; //湿度
int t=0; //在定时器中记录1S时间
int wendu_yuzhi=30; //空气温度阈值 大于此阈值 开风扇 低于 关
int turang_yuzhi=20; //土壤湿度阈值 小于此阈值 开水泵 大于 关
int datapros(int temp)
{
float tp;
if(temp< 0) //当温度值为负数
{
//因为读取的温度是实际温度的补码,所以减1,再取反求出原码
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
//留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
//算加上0.5,还是在小数点后面。
}
else
{
tp=temp;//因为数据处理有小数点所以将温度赋给一个浮点型变量
//如果温度是正的那么,那么正数的原码就是补码它本身
temp=tp*0.0625*100+0.5;
//留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
//算加上0.5,还是在小数点后面。
}
return temp;
}
void Int0Init() //定时器初始化
{
TMOD=0X01; //定时器工作在方式1下,即16位定时器
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1; //打开定时器0
ET0=1; //使能定时器0
EA=1; //打开总中断
}
main()
{
int turang_tempe=0; //土壤温度数据
int turang_humi=0; //土壤湿度数据
OLED_Init(); //初始化OLED
OLED_Clear();
Int0Init() ;
while(1)
{
![img](https://img-blog.csdnimg.cn/img_convert/243915a840b30a6638c10e6073c2cb0a.png)
![img](https://img-blog.csdnimg.cn/img_convert/c437a1b6e46ac3ed08250b9f0101f8c0.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**
了95%以上物联网嵌入式知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**