毕业故事集体系之基于WiFi的智能农业大棚管控系统规划代码机械设备

#include
<dht11.h>//dht11库

#include
<Ms提姆(Tim)er2.h>               //定时器库的 头文件

#include
<Wire.h>   

#include
<LiquidCrystal_I2C.h> //引用I2C库  

LiquidCrystal_I2C
lcd(0x3F,16,2);    //设置LCD1602配备地址,这里的地址是0x3F,一般是0x20,或者0x27,具体看模块手册  

int
PIRpin=A1;//红外传感器引脚号

int val1 = 0;
            // 存储光敏电阻值的变量

int w=0;//设定红外先导值

int o=0;//定义手动自动开光初步值

int h=38;//设定温度初始值

int p=0;//设定温度提高暂存变量

int k=0;//设定温度骤降暂存变量

int photocellPin =
2;    // 光敏电阻连接模拟端口【A2】

int ledPin = 7;
        // LED灯连接数字端口【D7】

 

int
ss[512];

dht11
DHT11;

#define DHT11PIN
4//设定4号引脚为温度输入

#define DHT11PIN1
5//设定5号引脚为温度输入

#define turang
A0//设定土壤输入为A0口

#define turangq
A4//设定土壤输入为A0口

#define fen 8
    //定义风扇引脚为8

#define shuiben 9
    //定义水泵引脚为9

void
setup(){

 Serial.begin(9600);

 Serial.println(“AT+CIPMODE=1”);
//WiFi连接服务器

 delay(1000);

 Serial.println(“AT+CWJAP=\”TP-LINK_4226\”,\”19960710\””);

 delay(5000);

 Serial.println(“AT+CIPSTART=\”TCP\”,\”115.29.109.104\”,6555″);

 delay(5000);

 Serial.println(“AT+CIPSEND”);

 delay(3000);

  Ms提姆er2::set(100,
falsh);        // 中断设置函数,每100ms 进入三遍暂停

 

  lcd.init();
                 // 初始化LCD  

  lcd.backlight();
            //设置LCD背景等亮  

  lcd.setCursor(0,0);
               //设置呈现指针
 

  lcd.print(“Welcome to
“);     //输出字符到LCD1602上  

  lcd.setCursor(0,1);
 

  lcd.print(“It’s
my system”);  

  delay(2000);

  lcd.clear();

  pinMode(PIRpin,INPUT);//红外传感器输入情势

  pinMode(turang,INPUT);//土壤湿度输入形式

  pinMode(fen,OUTPUT);
    //设定LED引脚为出口状态

  pinMode(6,OUTPUT);//设定蜂鸣器报警为出口

  pinMode(shuiben,OUTPUT);//定义水泵为出口形式  

  pinMode(ledPin,OUTPUT);//定义水泵为出口情势

 

  for(int
i=10;i<14;i++)   //步进电机

  {

   pinMode(i,OUTPUT);
  //设定步进电机输出引脚

   }

   }

void
loop(){    

   DHT11.read(DHT11PIN);//读取空气中的温湿度

   int
n =DHT11.temperature;

   int
dht11temp = DHT11.temperature;

   int
l = DHT11.humidity;

   int
dht11hum = DHT11.humidity;

   DHT11.read(DHT11PIN1);

   int c
=DHT11.temperature;//负责打印

   int
dht11temp1 = DHT11.temperature;

   int
y= DHT11.humidity;

   int
dht11hum1 = DHT11.humidity;

   lcd.setCursor(0,0);
 

   lcd.print(“tem:”);
    

   lcd.print(dht11temp);

   lcd.print(“tem1:”);
    

   lcd.print(dht11temp1);

   lcd.setCursor(0,1);

   lcd.print(“hum:”);

   lcd.print(dht11hum);

   lcd.print(“hum1:”)
;

   lcd.print(dht11hum1);

   Serial.println(“自动控制:B   手机控制:A”);

 

   Serial.print(“温度上限值:”);

   Serial.print(h);

   Serial.println(“度”);

   Serial.print(“温度一示数读数:”);

   Serial.print(n);

   Serial.println(“度”);

   Serial.print(“湿度一示数读数:”);

   Serial.print(l);

   Serial.println(“%”);

   Serial.print(“温度二示数读数:”);

   Serial.print(c);

   Serial.println(“度”);

   Serial.print(“湿度二示数读数:”);

   Serial.print(y);

   Serial.println(“%”);

   Serial.print(“土壤湿度一参数:”);

   int
m=analogRead(turang);//读取读数

   if(m>500){

   Serial.println(“干旱,请浇水”);

   }

   if(m<500){

   Serial.println(“湿润”);

   }
 

   int
r=analogRead(A3);//读取雨滴传感器的读数

   Serial.print(“是否下雨啦:”);

   if(r<500){

   Serial.println(“是”);

   }

   if(r>1000){

   Serial.println(“否”);

   }

   Serial.print(“光照:”);

   if(val1>500){

   Serial.println(“没有光照”);

   }

   if(val1<200){

   Serial.println(“有光照”);

   }

   int f=0;//定义串口接收数据最先值

   while(Serial.available())//串口接收到多少

   {

   ss[f++]=Serial.read();

   delay(2);

   }

   if(f>=0){

   if(ss[0]==65){//当接到到的数额为A时,为自行控制

   o=0;

   }

   if(ss[0]==66){//当收到到的数据为B时,为按键控制

   o=1;

   }

   if(ss[0]==67){//当接受到的数码为B时,为按键控制

   p=1-p;

   if(p==1){

   h=h+1;

   delay(100);

   return;

   p=0;

   }

   }

   if(ss[0]==68){//当接到到的多寡为B时,为按键控制

   k=1-k;

   if(k==1){

   h=h-1;

   delay(100);

   return;

   k=0;

   }

   }

   else
if(ss[0]==48){

   digitalWrite(fen,HIGH);
 //开启LED灯

   }

   else
if(ss[0]==49){

   digitalWrite(fen,LOW);
 //开启LED灯

   }

   else
if(ss[0]==50){

   digitalWrite(shuiben,HIGH);
 //开启LED灯

   }

   else
if(ss[0]==51){

   digitalWrite(shuiben,LOW);
 //开启LED灯

   }

   else
if(ss[0]==52){

   digitalWrite(ledPin,HIGH);
 //开启LED灯

   }

   else
if(ss[0]==53){

 digitalWrite(ledPin,LOW);
 //开启LED灯

   }
 

   else
if(ss[0]==54){

  

   }
 

    else
if(ss[0]==55){

  

   }

   else
if(ss[0]==56){

 

   }

   else
if(ss[0]==57){

   }

   }

   if
(o==1){//自动控制  

      Ms提姆(Tim)er2::start();
               //先导计时

   if(n>h){
     

  digitalWrite(fen,HIGH);
 

  }

  else{

  digitalWrite(fen,LOW);
 

  }

  if(m>500){

  digitalWrite(shuiben,HIGH);
 //开启LED灯

  }

  else{

  digitalWrite(shuiben,LOW);
 

  }
    

  if(
r<500){    

  int
a;

  a=128;//

  while(a++)

  {

  for(int
i=13;i>9;i–)

  {

  digitalWrite(i,1);

  delay(10);

  digitalWrite(i,0);

  }

  if(a==512)

  {

  delay(1000);

  return;

  }

  }

  }

  if(
r>1000){

  }
      

  

  }

  else if
(o==0){//手机控制

  MsTimer2::stop();

  }

 

  int
w=analogRead(PIRpin);//读取读数

  Serial.print(“是否有人闯入:”);

  if(w>400){

  Serial.println(“有人闯入!!!”);

  }

  else{

  Serial.println(“正常”);

  }

  if(w>200){

  for(int
i=201;i<=800;i++)                    //用循环的办法将频率从200HZ 净增到800HZ

  {

  tone(6,i);
                           //在四号端口输出频率

  delay(5);
  //该频率维持5飞秒    

  }

  delay(4000);
                           //最高频率下保持4分钟

  for(int
i=800;i>=200;i–)

  {

  tone(6,i);

  delay(10);

  }

  if(int
i=200){

  noTone(6);

  delay(1000);

  }

  else{

  }

  }
        

  delay(2000);

  }

void
falsh()   {

  val1 =
analogRead(photocellPin);    // 读取光敏电阻的值

  if(val1>=112){

  digitalWrite(ledPin,
HIGH);

  }else{

  digitalWrite(ledPin,
LOW);

机械设备,  }
       

  }

目     录

 

 

摘要
……………………………………………………………………………………Ⅰ

第一章 绪论……………………………………………………………………………()

1.1
引言………………………………………………………………………………()

1.2
 商量背景…………………………………………………………………………()

其次章智能农业控管系统总体设计方案……………………………………………()

2.1智能农业控管系统概述…………………………………………………………()

2.1.1职能要求………………………………………………………………………()

2.2智能农业控管系统硬件设计方案…………………………………………………()

2.2.1微处理器…………………………………………………………………………()

2.2.2传感器……………………………………………………………………………()

2.2.3微处理器…………………………………………………………………………()

2.2.4数码展现…………………………………………………………………………()

2.3智能农业控管系统的软件设计方案………………………………………………()

其三章  智能农业大棚控管系统的硬件设计和贯彻………………………………()

3.1微处理器的取舍……………………………………………………………………()

3.2
Arduino简介………………………………………………………………………()

3.3 Arduino
UNO开发原理图…………………………………………………………()

3.4Arduino
UNO首要功效介绍………………………………………………………()

第四章  智能农业大棚控管系统的软件设计………………………………………()

4.1程序设计框架………………………………………………………………………()

4.1.1主程序流程图……………………………………………………………………()

4.2各模块程序设计……………………………………………………………………()

4.2.1数量搜集模块设计………………………………………………………………()

(1)DHT11模块………………………………………………………………………()

(2)土壤湿度模块……………………………………………………………………()

(3)光敏传感器………………………………………………………………………()

(4)热释电红外感应…………………………………………………………………()

(5)LCD1602显得模块程序设计……………………………………………………()

(6)手机呈现及控制模块设计……………………………………………………()

4.3推行模块及报警装置设计………………………………………………………()

4.3.1实施模块流程…………………………………………………………………()

4.3.2报警模块流程图…………………………………………………………………()

第五章  系统调试……………………………………………………………………()

5.1硬件调试……………………………………………………………………………()

5.2软件调试……………………………………………………………………………()

5.3部手机远程操控调试…………………………………………………………………()

第六章  结 论…………………………………………………………………………()

参考文献 XXXXXXXXXXXX
……………………………………………………………() 

附表XXXXXXXXXXXXXXXX
 …………………………………………………………()

 

 

 

 

 

 

 

 

 

 

 

 

 

按照WiFi的智能农业大棚管控系统规划

 

 [摘要]本课题就怎样方便实用地对大棚环境展开监测和操纵,咋样增强农业生产音信化水平,通过对大棚环境的督察的钻研现状和发展趋势,运用Aduino开发板,并透过其利用DHT11温湿度传感器模块、Risym土壤湿度传感器控制器模块、HC-SR501人体红外感应模块、Risym光敏电阻传感器模块、Risym高灵敏雨滴清明控制器模块、A\D转换器、LCD液晶突显器,由水泵、排风扇、蜂鸣器、LED灯等组合的电器控制系列,在元器件方面接纳继电器模块,并用类C语言写出程序代码组成总体系统,以贯彻智能控管。

第一章  绪论

1.1引言

物联网是由此各个信息传播设备及传感器系统、射频识别、红外感应器、条码与二维码、全球定位系统、激光扫描器等和此外依照物物通信形式的中距离无线传感器网络,通过这一网络可以举行信息互相、传递、通信,从而实现对实体的智能化识别、定位、跟踪、监控与治本。在物联网时代,通过在五光十色的实体中镶嵌一种短距离收发器,人类在消息与通信世界里将收获一个新的交流维度。从此外时间任何地点的人与人以内的联系连接增添到人与物与物与物之间的关联连接。

1.2钻探背景

用作世界上最首要的农业强国之一,使用智慧科学的管理形式就重点。传统的农业依靠大量的人工,手工工具和部分相对简便易行的机械设备,农民骨干依靠经验来种植,导致农业所耗费的水资源、化肥、农药等都在快速增长,数据一定震惊,但农业产量绝对较低,依靠着落后的生育技能、劳动工具来保障简单的生产以毫无意义。传统农业的技术落后,使得农业产量提高过于缓慢,而又浪费大量的人力物力,从而导致生产成效没有晋级空间。综合上述,在现代化的农业中引入物联网技术,通过传感器实时采集农田的条件温湿度数据、土壤温湿度、光照强度、二氧化碳浓度、PH值、土壤有机含量值等音讯,并因而无线的章程传输到中心决定体系,使用户能随时随地的牵线土地的实时状态,并经过总括机如故手机远程控制设备,以促成现代农业的自动化、音讯化和智能化。

第二章  智能农业控管系统总体设计方案

2.1智能农业控管系统概述

2.1.1效果要求

(1)系统可以实现对大棚大棚内的氛围中的温湿度、土壤中的湿度、光照强度、是否有人随意闯入达到实时监控。

(2)当温室大棚内某项环境目标达标预设值时系统要发出相应的举报控制音讯。

(3)温室大棚内被监测的气氛中的温湿度数据在LCD屏上显得出来,用户仍是可以够由此手机上彰显的实时的通俗易懂的多寡以自行和手机控制两种方法以实现对温室内相关装备的主宰。

(4)本系统硬件设计有WiFi上传数据,可以实现对系统的远程管控。

技术目标

Arduino规格目标参数

工作电压:5V

输入电压:接上USB时无需外部供电或外部7V~12V DC输入

出口电压:5V DC输入和3.3V DC输出和表面电源输入

电脑:ATmega328

钟表频率:16 MHZ

检测参数及范围值见表

所选传感器

检测参数

检测范围

检测精度

DHT11 

温度

0~50℃

±2℃

湿度

20%~90%RH

±5%RH

土壤湿度

湿度

245~1023

±1

HC-SR501

感应

5~7米

\

TSL2561

光照

0~70000勒克斯(Lx)

±50Lx

雨滴

雨滴

0~1023

\

2.2智能农业控管系统硬件设计方案

智能农业控管系统有一个电脑作为主控,在该微处理器的外侧展开配备扩充如ESP-8266作为系统连接网络的WiFi、传感器作为检测装备、LCD1602看成液晶展现屏、蜂鸣器作为报警装置、下图表示智能农业控管系统的硬件结构原理图。

 

智能农业控管系统硬件原理图

2.2.1微处理器

微机又称MCU,它是由一片或个别几片广阔集成电路组成,具有电路执行控制能力与算数逻辑运算效用,在小型电脑中肩负“大脑”一职。本智能农业控管系统的硬件装备就相当于一部微型电脑,其中“大脑”一职Arduino担负。

2.2.2传感器

传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的音讯,并能将感受到的消息,按一定规律变换成为电信号或此外所需情势的信息输出,以满足信息的传输、处理、存储、显示、记录和决定等要求。通常由感应元件和转换元件组成。本智能农业大棚大棚用到的传感器有DHT11温湿度传感器模块、Risym土壤湿度传感器控制器模块、HC-SR501人体红外感应模块、Risym光敏电阻传感器模块、Risym高灵敏雨滴处暑控制器模块作为本管控系统的监测模块,他们分别担当温室大棚中的空气中的温度、土壤的湿度、光照的强度等作物生长必须的环境因素和温室内是否有人闯入。

2.2.3数量展现

数量展示是为了更好的兑现人机交互,方便用户的用户操作,使用户更直观的领悟到温室大棚内各项条件目的的实时变化。本智能农业控管系统所选的显得模块为LCD1602显示屏和经过手机APP彰显,通过APP,用户能够在其他地方任什么时候刻领会大棚内的实时数据并拓展手机控制或选取自动控制。

2.2.4报警装置

   为了以防万一不法分子进入大棚内进行破坏,本系统扩张啦报警装置,当有人进入大棚内时,蜂鸣器会拉响警报,手机上会呈现有人闯入。

2.3智能农业控管系统的软件设计方案

智能农业控管系统的硬件电路确定今后,软件负责整个系统的要害功用实现。由软件来贯彻硬件电路的运作,其中包括数据搜集、数码呈现、环境调节、报警等。本系统的软件设计需要有一个密切系数的进程。首先要清楚的列出智能农业监测系统中各系统部件与软件设计的连带特点,并拓展定义和认证,作为软件设计的依照。在此基础上画出软件设计的主导框架图、主程序流程图。再将先后流程图中历数的一多级操效用类C语言编写出来,然后通过Arduino IDE编译调试,调试完成后下载到Arduino内,至此软件设计基本完成。

其三章 智能农业大棚控管系统的硬件设计和贯彻

3.1微处理器的精选

本智能农业大棚大棚控管系统挑选的电脑为Arduino
UNO。

3.2
Arduino简介

Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各个型号的Arduino板)和软件(Arduino
IDE)。它适用于爱好者、戏剧家、设计师和对此”互动”有趣味的对象们。

3.3
Arduino UNO开发原理图

 

3.4
Arduino UNO首要效用介绍

扶助USB接口协商及供电(不需外接电源)

协理ISP下载效率

14路数字输入输出口:工作电压为5V,每一块能出口和联网最大电流为40mA。

(1)串口信号RX(0号)、TX(1号):与其中ATmega8U2
USB-to-TTL芯片相连,提供TTL电压水平的串口接收信号。

(2)外部中断(2号和3号):触发中断引脚,可设成上升沿、下降沿或同时触发。

(3)脉冲宽度调制PWM(3、5、6、9、10、11):提供6路8位PWM输出。

(4)SPI(10(SS),11(MOS1),12(MOS0),13(SCK));SPI通信接口。

(5)LED(13号):Arduino专门用于测试LED的保存接口,输出为高时点亮LED,输出为低时LED熄灭。

6路模仿输入A0到A5,每一起怀有10位分辨率(即输入有1024个不同值),默认输入信号范围为0~5V。

AREF:模拟输入信号的参考电压。

Reset:信号为低时复位单片机芯片。

直流电流:40mA
 (I/O端口)

直流电流:50mA
 (3.3V端口)

Flash内存:32KB(ATmega328中间0.5KB用于带领程序)

第四章 智能农业大棚控管系统的软件设计

本智能农业监测系统运转过程中重大概括AD采集,数码显示,反馈控制,检测报警四大模块,其主导框架如图所示:

4.1主次设计框架

4.1.1主程序流程图:

程序主流程图

主程序是一个LOOP循环,其关键流程是:系统上电首先对主控各类IO口举行布置,设置各类环境变量,并对环境变量阈值举办赋值,以及调用各种模块的起始化函数,然后在LOOP循环中调用各类模块的数码搜集函数,LCD屏彰显函数,然后对各环境数据举行判定,看是否接触中断进行调控,或者举办报警。

4.2各模块程序设计

4.2.1数量收集模块设计

(1)DHT11模块

程序设计流程图如图所示:

(2)土壤湿度模块

次第设计流程图如图所示:

(3)光敏传感器

次第设计流程图如图所示:

(3)雨滴传感器

先后设计流程图如图所示:

(4)热释电红外感应

先后设计流程图如图所示:

(5)LCD1602显得模块程序设计

程序设计流程图如图所示:

(6)手机展现及控制模块设计

程序设计流程图如图所示:

4.3履行模块及报警装置设计

实施模块和报警模块紧假如对LED灯、水泵、风扇、雨棚、蜂鸣器举办初阶化及控制,当本控管系统监测到某项环境目的超标时,做出相关调控。报警模块是遵照是否有人进入来决定是否报警。

4.3.1举办模块流程

4.3.2报警模块流程图

第五章 系统调试

按照本智能农业控管系统的方案设计要求,调试过程重要分为三大部分:硬件调试、软件调试和手机远程操控调试。

5.1硬件调试

将次第传感器模块电路依据逻辑图连接起来,遵照器件规格和极性看连接是否有误,然后利用万用表逐个检测调试,看是不是有梗塞、断路现象。检查过传感器模块后再检测电源模块有无短路现象,确保电源上电后输出电压为专业5V电压,降压电路能出口3.3V电压。

5.2软件调试

本智能农业控管系统以Arduino为主控芯片,将各传感器模块接入IO口后,利用对Arduino IDE系统软件部分开展编译及调试。依照编译结果,修改相关错误指示。

5.3无线电话远程操控调试

将逐条传感器模块电路遵照逻辑图连接起来,并将代码下载到主控芯片中,按操作顺序连接上WiFi,打开手机用户端,检测是否实时上传数据,发送指令,看有关设备是否比照指令进行运行,假使否,则展开代码修改,直到按有关指令举办操作。

第六章 结 论

本规划从选题、论证、查阅有关材料、确定设计方案到设计的实现内外共历时近两个月,并且基本落实了预期效用,可以正常显示监测环境中的温度、湿度、光照强度、以及土壤湿度。初阶形成了条件目的领先阈值自动举行调控,并且当有人进入时,蜂鸣器正常报警,并且成功啦远程监控和管制。本统筹还设有一些不足之处,首先检测精度无法说很高,由于所选传感器限制测量精度只可以算普通档次,但对此常见的大棚大棚环境检测已经足矣。若需要更确切的检测数据需要转移更完美的传感器。

在于自己水平有限,设计中难免还有任何不足之处,在此敬请我们见谅。

 

 

 

 

 

参考文献:

[1] 郑少仁,王海涛,赵志峰等.Ad hoc网络技术【M】.迪拜:人民邮电出版社,2005,P1-P2

[2]  杨硕.[依照无线传感器网络的温室植物生长光照强度监控系统的探究]达累斯萨兰姆大学,2009,P13-P15

[3]
陈文智,王总辉. 嵌入式系统原理与设计. 哈工大高校出版社,2011

[4]
谭浩强,C程序设计【M】,于欣龙译.香港:人民邮电出版社,2012

[5]
佟长福.AVR单片机GCC程序设计【M】. 日本首都:香水之都政法大学出版社,2006

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

附表

智能农业控管系统总体代码:

#include
<dht11.h>//dht11库

#include
<Ms提姆er2.h>               //定时器库的 头文件

#include
<Wire.h>   

#include
<LiquidCrystal_I2C.h> //引用I2C库  

LiquidCrystal_I2C
lcd(0x3F,16,2);    //设置LCD1602装备地址,这里的地址是0x3F,一般是0x20,或者0x27,具体看模块手册  

int
PIRpin=A1;//红外传感器引脚号

int val1 = 0;
            // 存储光敏电阻值的变量

int w=0;//设定红外开首值

int o=0;//定义手动自动开光开端值

int h=38;//设定温度开首值

int p=0;//设定温度进步暂存变量

int k=0;//设定温度骤降暂存变量

int photocellPin =
2;    // 光敏电阻连接模拟端口【A2】

int ledPin = 7;
        // LED灯连接数字端口【D7】

 

int
ss[512];

dht11
DHT11;

#define DHT11PIN
4//设定4号引脚为温度输入

#define DHT11PIN1
5//设定5号引脚为温度输入

#define turang
A0//设定土壤输入为A0口

#define turangq
A4//设定土壤输入为A0口

#define fen 8
    //定义风扇引脚为8

#define shuiben 9
    //定义水泵引脚为9

void
setup(){

 Serial.begin(9600);

 Serial.println(“AT+CIPMODE=1”);
//WiFi连接服务器

 delay(1000);

 Serial.println(“AT+CWJAP=\”TP-LINK_4226\”,\”19960710\””);

 delay(5000);

 Serial.println(“AT+CIPSTART=\”TCP\”,\”115.29.109.104\”,6555″);

 delay(5000);

 Serial.println(“AT+CIPSEND”);

 delay(3000);

  Ms提姆er2::set(100,
falsh);        // 中断设置函数,每100ms 进入四回中断

 

  lcd.init();
                 // 初始化LCD  

  lcd.backlight();
            //设置LCD背景等亮  

  lcd.setCursor(0,0);
               //设置呈现指针
 

  lcd.print(“Welcome to
“);     //输出字符到LCD1602上  

  lcd.setCursor(0,1);
 

  lcd.print(“It’s
my system”);  

  delay(2000);

  lcd.clear();

  pinMode(PIRpin,INPUT);//红外传感器输入情势

  pinMode(turang,INPUT);//土壤湿度输入形式

  pinMode(fen,OUTPUT);
    //设定LED引脚为出口状态

  pinMode(6,OUTPUT);//设定蜂鸣器报警为出口

  pinMode(shuiben,OUTPUT);//定义水泵为出口情势  

  pinMode(ledPin,OUTPUT);//定义水泵为出口形式

 

  for(int
i=10;i<14;i++)   //步进电机

  {

   pinMode(i,OUTPUT);
  //设定步进电机输出引脚

   }

   }

void
loop(){    

   DHT11.read(DHT11PIN);//读取空气中的温湿度

   int
n =DHT11.temperature;

   int
dht11temp = DHT11.temperature;

   int
l = DHT11.humidity;

   int
dht11hum = DHT11.humidity;

   DHT11.read(DHT11PIN1);

   int c
=DHT11.temperature;//负责打印

   int
dht11temp1 = DHT11.temperature;

   int
y= DHT11.humidity;

   int
dht11hum1 = DHT11.humidity;

   lcd.setCursor(0,0);
 

   lcd.print(“tem:”);
    

   lcd.print(dht11temp);

   lcd.print(“tem1:”);
    

   lcd.print(dht11temp1);

   lcd.setCursor(0,1);

   lcd.print(“hum:”);

   lcd.print(dht11hum);

   lcd.print(“hum1:”)
;

   lcd.print(dht11hum1);

   Serial.println(“自动控制:B   手机控制:A”);

 

   Serial.print(“温度上限值:”);

   Serial.print(h);

   Serial.println(“度”);

   Serial.print(“温度一示数读数:”);

   Serial.print(n);

   Serial.println(“度”);

   Serial.print(“湿度一示数读数:”);

   Serial.print(l);

   Serial.println(“%”);

   Serial.print(“温度二示数读数:”);

   Serial.print(c);

   Serial.println(“度”);

   Serial.print(“湿度二示数读数:”);

   Serial.print(y);

   Serial.println(“%”);

   Serial.print(“土壤湿度一参数:”);

   int
m=analogRead(turang);//读取读数

   if(m>500){

   Serial.println(“干旱,请浇水”);

   }

   if(m<500){

   Serial.println(“湿润”);

   }
 

   int
r=analogRead(A3);//读取雨滴传感器的读数

   Serial.print(“是否下雨啦:”);

   if(r<500){

   Serial.println(“是”);

   }

   if(r>1000){

   Serial.println(“否”);

   }

   Serial.print(“光照:”);

   if(val1>500){

   Serial.println(“没有光照”);

   }

   if(val1<200){

   Serial.println(“有光照”);

   }

   int f=0;//定义串口接收数据开首值

   while(Serial.available())//串口接收到多少

   {

   ss[f++]=Serial.read();

   delay(2);

   }

   if(f>=0){

   if(ss[0]==65){//当收到到的多寡为A时,为自发性控制

   o=0;

   }

   if(ss[0]==66){//当接受到的数目为B时,为按键控制

   o=1;

   }

   if(ss[0]==67){//当接到到的数额为B时,为按键控制

   p=1-p;

   if(p==1){

   h=h+1;

   delay(100);

   return;

   p=0;

   }

   }

   if(ss[0]==68){//当收到到的数据为B时,为按键控制

   k=1-k;

   if(k==1){

   h=h-1;

   delay(100);

   return;

   k=0;

   }

   }

   else
if(ss[0]==48){

   digitalWrite(fen,HIGH);
 //开启LED灯

   }

   else
if(ss[0]==49){

   digitalWrite(fen,LOW);
 //开启LED灯

   }

   else
if(ss[0]==50){

   digitalWrite(shuiben,HIGH);
 //开启LED灯

   }

   else
if(ss[0]==51){

   digitalWrite(shuiben,LOW);
 //开启LED灯

   }

   else
if(ss[0]==52){

   digitalWrite(ledPin,HIGH);
 //开启LED灯

   }

   else
if(ss[0]==53){

 digitalWrite(ledPin,LOW);
 //开启LED灯

   }
 

   else
if(ss[0]==54){

  

   }
 

    else
if(ss[0]==55){

  

   }

   else
if(ss[0]==56){

 

   }

   else
if(ss[0]==57){

   }

   }

   if
(o==1){//自动控制  

      MsTimer2::start();
               //起首计时

   if(n>h){
     

  digitalWrite(fen,HIGH);
 

  }

  else{

  digitalWrite(fen,LOW);
 

  }

  if(m>500){

  digitalWrite(shuiben,HIGH);
 //开启LED灯

  }

  else{

  digitalWrite(shuiben,LOW);
 

  }
    

  if(
r<500){    

  int
a;

  a=128;//

  while(a++)

  {

  for(int
i=13;i>9;i–)

  {

  digitalWrite(i,1);

  delay(10);

  digitalWrite(i,0);

  }

  if(a==512)

  {

  delay(1000);

  return;

  }

  }

  }

  if(
r>1000){

  }
      

  

  }

  else if
(o==0){//手机控制

  MsTimer2::stop();

  }

 

  int
w=analogRead(PIRpin);//读取读数

  Serial.print(“是否有人闯入:”);

  if(w>400){

  Serial.println(“有人闯入!!!”);

  }

  else{

  Serial.println(“正常”);

  }

  if(w>200){

  for(int
i=201;i<=800;i++)                    //用循环的法子将频率从200HZ 增多到800HZ

  {

  tone(6,i);
                           //在四号端口输出频率

  delay(5);
  //该频率维持5毫秒    

  }

  delay(4000);
                           //最高频率下维持4分钟

  for(int
i=800;i>=200;i–)

  {

  tone(6,i);

  delay(10);

  }

  if(int
i=200){

  noTone(6);

  delay(1000);

  }

  else{

  }

  }
        

  delay(2000);

  }

void
falsh()   {

  val1 =
analogRead(photocellPin);    // 读取光敏电阻的值

  if(val1>=112){

  digitalWrite(ledPin,
HIGH);

  }else{

  digitalWrite(ledPin,
LOW);

  }
       

  }

发表评论

电子邮件地址不会被公开。 必填项已用*标注