2020-3-20 22:42:42 [显示全部楼层]
3644浏览
查看: 3644|回复: 1

[项目] 春天来了,别忘给爱花浇水

[复制链接]
写这个项目主要是因为之前用的带比较器那种土壤传感工作不稳。想试下更好用的土壤传感。用它来照顾爱花。

、、

硬件清单
春天来了,别忘给爱花浇水图1
Arduino pro mini

春天来了,别忘给爱花浇水图2
土壤传感

春天来了,别忘给爱花浇水图3

RGB led

春天来了,别忘给爱花浇水图5
蜂鸣器
===========================================
连线图

春天来了,别忘给爱花浇水图4

[mw_shl_code=applescript,false]/*This sketch is created by gada888*/

const int soil = A0;
int moistVal = 0;

int RLed = 2;
int GLed = 3;
int BLed = 4;

int piezoPin = 8;
int pitches[] = {523, 587, 659, 698, 784};
int numPitches = 5;

void setup(){
  pinMode(soil, INPUT);
  
  Serial.begin(9600);

  pinMode(RLed, OUTPUT);
  pinMode(GLed, OUTPUT);
  pinMode(BLed, OUTPUT);
}
void loop(){
  int percent = 2.718282 * 2.718282 * (.008985 * moistVal + 0.207762);
  moistVal = analogRead(soil);
  
  Serial.println(moistVal);
  Serial.print(percent);
  Serial.println("% Moisture ");
  
  if(moistVal>600&&moistVal<900){
    Serial.println("i feel good");
    digitalWrite(RLed, LOW);
    digitalWrite(BLed, LOW);
    digitalWrite(GLed, HIGH); //Green LED
   
     int i;
   for( i=0; i<numPitches; i++){
   tone(piezoPin, pitches, 200);
   delay(200);
    }
  if(moistVal>700){
    Serial.println("too much water");
    digitalWrite(RLed, LOW);
    digitalWrite(BLed, HIGH); //Blue LED
    digitalWrite(GLed, LOW);
  }
  }
  delay(2000);
}[/mw_shl_code]

项目运行后,RGB led会显示白色,在把土壤传感探针浸入水中后,RGB会变蓝色,之后蜂鸣器会鸣叫5个不同的频率值。作为对浇水太多的报警。
如果想反向操作,例如缺水的报警,就改这一行if(moistVal>600&&moistVal<900){,例如改成if(moistVal<600){
而RGB led颜色的改动,可以改digitalWrite语句,例如digitalWrite(BLed, HIGH);改成digitalWrite(BLed, LOW);

春天来了,别忘给爱花浇水图6

春天来了,别忘给爱花浇水图7
供电用的5v电源。5v+连的是arduino mini 的raw脚。




hnyzcj  版主

发表于 2020-6-30 20:53:34

为毛这么好贴没人回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail