arduino - 微型智慧农业项目

arduino - 微型智慧农业项目

一、项目介绍

通过各种传感器,实时监测植物的生长环境,通过arduino网络拓展板连接网线,把传感器监测到的数据实时发送到乐维网(物联网平台),在PC端或是手机端可以实时监测数据。当温度过大时,会开启风扇模块,给植物降温,当土壤湿度过低时,会开启继电器开关,进而打开水泵,自动抽水来灌溉植物

二、仪器介绍

序号仪器
1arduino Uno板
2arduino网络扩展板
3温湿度传感器
4土壤传感器
5光敏传感器
6继电器
7微型水泵
8电池盒
9硅胶软管
10杜邦线若干
11面包板

三、仪器连接

光敏传感器:

  • VCC接 arduino 的3.3或5V

  • GND接 arduino的GND

  • DO 接 arduino的Digital 5

  • AO 接 arduino的Analog 0

风扇:

  • VCC接 arduino 的3.3或5V
  • GND接 arduino的GND
  • INA接 arduino的Digital 9
  • INB接 arduino的Digital 8

土壤湿度传感器:

  • VCC接 arduino 的3.3或5V
  • GND接 arduino的GND
  • DO 接 arduino的Digital 4
  • AO 接 arduino的Analog 2

继电器:

  • VCC接 arduino 的3.3或5V
  • GND接 arduino的GND
  • IN 接 arduino的Digital 7

温湿度传感器:

  • + 接 arduino 的3.3或5V
  • - 接 arduino的GND
  • S接 arduino的Digital 6

:各个模块用到的数字接口模拟接口,并不是唯一固定,只要不重复且和要上传到arduino板上的代码中定义的引脚能一一对应即可。

四、核心功能介绍——水泵+继电器模块

继电器工作原理:

  • 信号输入端信号时(继电器),公共端常开端会导通,水泵正常工作

  • 信号输入端信号时(继电器),公共端常开端会断开,水泵不工作

五、数据上传到乐联网(物联网平台)

step1:在乐联网上注册一个账号,用来接收、统计 传感器数据

step2:获取有关乐联网相关的arduino 代码

  • 乐联网的相关Arduino代码托管在Github上,地址 https://github.com/lewei50/leweiclient,
    打开链接,点击Zip下载按钮,将名称为master.zip的文件下载到本地。

  • 下载后解压,打开你电脑里的Arduino IDE
    所在文件夹里的libraries文件夹,在里面新建一个leweiclient的文件夹,将master压缩包解 压缩后LeweiClient-master文件夹里的文件全部拷贝到这个文件夹里。

  • 打开示例代码
    在这里插入图片描述
    step3:修改userkey

    • Userkey代表每个账号的的唯一标识,arduino联上网之后可以通过Userkey正确的找到你的账户,并上传数据。


在这里插入图片描述
step3: 添加新设备并修改设备标识号

  • 添加新设备后,请记住你的设备号标识


step4: 添加传感器,并修改传感器标识




step5: 实时监测传感器数据

六、代码及注释


//需要自己手动导入LeweiClient库和DHT库
#include <LeweiClient.h>
#include <SPI.h>
#include <Ethernet.h>
#include "DHT.h"


//温湿度传感器引脚及类型
#define DHTPIN 6     //连接温湿度传感器的数字引脚接口
#define DHTTYPE DHT11   //定义温湿度传感器类型 DHT11
DHT dht(DHTPIN, DHTTYPE);//定义检测温湿度的对象,同时传入接口和类型的的参数

//光敏传感器引脚
#define LLU_PIN_A 0
#define LLU_PIN_D 5


//土壤湿度传感器引脚
#define SOIL_PIN_AO 2
#define SOIL_PIN_DO 4

//风扇引脚
int FAN_INA = 9;
int FAN_INB = 8;

//继电器引脚
int jidianqi = 7;

//乐维物联
#define LW_USERKEY "09b46be890ee4ffbbac6ff4f3cd70841"   //乐维网账号的 userKey
#define LW_GATEWAY "02"                         //设备标识号(根据自己所定义的的设备标识号而改变)
LeWeiClient *lwc;                               //上传到乐维网所需到的LeWeiClient对象


 //数据上传的的时间间隔1秒
#define POST_INTERVAL 1000     
 
void setup() {

  //初始化对象和引脚
  
   pinMode(SOIL_PIN_AO, INPUT);
   pinMode(SOIL_PIN_DO, INPUT); 

   pinMode(FAN_INA,OUTPUT);
   pinMode(FAN_INB,OUTPUT);

   pinMode(jidianqi, OUTPUT); 
   
   Serial.begin(9600);

   Serial.println(F("DHT11 test!"));

   dht.begin();//打开温湿度传感器
  
   lwc = new LeWeiClient(LW_USERKEY, LW_GATEWAY);
 }
 
void loop() {

  if (lwc) {
    
    Serial.println("read data ");
    
  //读取空气中的湿度值
  float h = dht.readHumidity();
  //读取空气中的温度值
  float t = dht.readTemperature();

  //将空气中的温湿度值上传到到 乐维网上定义好的tem传感器和hum传感器上
    lwc->append("tem", t);
    lwc->append("hum", h);
    
  //温度大于29度 则开启小风扇
  if(t>29)
  {
     digitalWrite(FAN_INA,LOW);
     digitalWrite(FAN_INB,HIGH);
  }
  else
  {
     digitalWrite(FAN_INA,LOW);
     digitalWrite(FAN_INB,LOW);
  }


  //光敏传感器
  int val;
  val=analogRead(LLU_PIN_A);
  Serial.print("a:");
  Serial.print(val);
  lwc->append("light", val);//上传光照强度数值到乐维网上
  Serial.print(", d:");
  val=digitalRead(LLU_PIN_D);
  Serial.println(val);


   //土壤湿度传感器
   Serial.print("AO=");  
  Serial.print(analogRead(SOIL_PIN_AO));
  Serial.print(", DO=");  
  Serial.println(digitalRead(SOIL_PIN_DO));
  lwc->append("soilHum", analogRead(SOIL_PIN_AO));

  //当测量的湿度值大于500单位时,开启继电器,否则关掉。
    if(analogRead(SOIL_PIN_AO)>500)
    {
     digitalWrite(jidianqi, LOW); //继电器开
    }
    else
    {
      digitalWrite(jidianqi, HIGH);//继电器关
     // delay(2000);
    }
     
    lwc->send();//发送所有的传感器的数据到乐维网上

    Serial.println("*** send completed ***");

  // delay(POST_INTERVAL);
   }
 }

七、资源和文件

链接:https://pan.baidu.com/s/179Pp0LJ8bk7EdwnQxLOO_Q
提取码:gjkv

评论 61
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值