超菜菜 发表于 2013-2-23 19:00:07

付费求助:谁能帮我儿子写个自动浇花程序

儿子喜欢制作,但年龄小,还不会编程,(我更不会)配件已经都买好,想做个自动浇花机。程序要求:基于Arduino的自动浇花程序,控制板是Arduino uno,通过土壤干湿感应器返回数据,控制板指令给继电器,启动潜水泵浇水,湿度达到后,水泵停止浇花。具体联系我的QQ810983492.急用。付费。谢谢。

PPeach 发表于 2013-2-23 19:15:33

这算是一个比较简单的程序,不过里面最主要的还是中间的数据最好能贴出来,连接图贴出来

老摸 发表于 2013-2-23 20:31:01

儿子多大?

沧海笑1122 发表于 2013-2-24 00:26:01

本帖最后由 沧海笑1122 于 2013-2-24 00:33 编辑

楼主这样做,是希望达到孩子喜爱、学习、运用arduino的目的,还是仅仅完成这样一个有点技术含量的“科技制作”?毕竟快开学了。
。可怜天下父母心,要是后者,真的不太建议这样做。
要是前者,这个项目对基础不足的孩子来说,还是有点难度的。涉及传感器部分,采集运算和判断、执行元件等三个部分,其实是一个完整的系统了。还有简单的支架、整体封装等。如果参数需要在运行中设定,还得有块液晶、有几个电位器吧。系统也需要不断地调试,因为土壤不同,传感器的位置以及达到湿度所要求的时间都是需要不断调试的。真不是花钱买成品,其实乐趣也在这个环节。

根据自己的菜鸟经历,一直主张选择一个力所能及的项目入手学习arduino,可以将兴趣与学习结合起来,取得不错的学习效果,但也应该是力所能及。
我看过楼主的三个主题,应该是刚刚起步,建议对照论坛的基础教程(倒不是全部教程,也没必要,和你的项目相关的),先从基础学起,然后再逐步进阶。
祝你好运。

friskit 发表于 2013-2-24 08:57:24

感觉能说出这么多词儿的人,不像是写不出这程序的人啊……
自己动手丰衣足食。arduino的乐趣就在于折腾……

茕兔 发表于 2013-2-24 11:28:25

这程序很简单啊,等会发到你邮箱

Rays 发表于 2013-2-24 18:16:16

说简单也是很简单的,不过需要一些细节的注意。回来QQ聊

正_初 发表于 2013-2-24 21:08:59

土壤湿度传感器输出模拟量,就是读模拟口数值,数字口在输出给继电器控制水泵。

bacon6581 发表于 2013-2-24 21:16:31

#include "ST7920.h"
#include "PIC.h"

ST7920 lcd;
int time;
int liquid_level;
int resistance;
char text_liquid_level={0};
char text_resistance={0};
char *p;
int ultrasonic=7;
void setup()
{
        lcd.LCD_Init();
        lcd.LCD_ClearRam();
      Serial.begin(9600);
      pinMode(8,OUTPUT);
      lcd.chsDisplay_16bit(0x80, 0xd2ba);//液
      lcd.chsDisplay_16bit(0x81, 0xcebb);//位
      lcd.chsDisplay_16bit(0x88, 0xb5e7);//电
      lcd.chsDisplay_16bit(0x89, 0xd7e8);//阻
      lcd.LCD_DisplayStrings_WithAddress(0x82,":");
      lcd.LCD_DisplayStrings_WithAddress(0x8a,":");
      }

void loop()
{
        pinMode(ultrasonic,OUTPUT);
      digitalWrite(ultrasonic,LOW);
      delay(1);
      digitalWrite(ultrasonic,HIGH);
      delayMicroseconds(12);
      digitalWrite(ultrasonic,LOW);
      pinMode(ultrasonic,INPUT);
      time=pulseIn(ultrasonic,HIGH);





      Serial.println(time);
      liquid_level=31.8-time*0.0001*340/2;
      sprintf(text_liquid_level,"%d",liquid_level);
      if (liquid_level<0){
      lcd.LCD_DisplayStrings_WithAddress(0x83,"OVER");}
      else if(liquid_level<10){
      lcd.LCD_DisplayStrings_WithAddress(0x83,"");      
      lcd.LCD_DisplayStrings_WithAddress(0x83,text_liquid_level);
      lcd.LCD_DisplayStrings_WithAddress(0x84,"cm"); }
      else{      
      lcd.LCD_DisplayStrings_WithAddress(0x83,text_liquid_level);
      lcd.LCD_DisplayStrings_WithAddress(0x84,"cm"); }
       // lcd.LCD_DisplayStrings_WithAddress(0x83,"   Welcome to   ");
       
      resistance=analogRead(0);
      sprintf(text_resistance,"%d",resistance);
      lcd.LCD_DisplayStrings_WithAddress(0x8b,"    ");
      lcd.LCD_DisplayStrings_WithAddress(0x8b,text_resistance);

      if (resistance>500 and liquid_level>10){       //---------------
      digitalWrite(8,HIGH);
      delay(2000);
      digitalWrite(8,LOW);
      
      pinMode(ultrasonic,OUTPUT);
      digitalWrite(ultrasonic,LOW);
      delay(1);
      digitalWrite(ultrasonic,HIGH);
      delayMicroseconds(12);
      digitalWrite(ultrasonic,LOW);
      pinMode(ultrasonic,INPUT);
      time=pulseIn(ultrasonic,HIGH);





      Serial.println(time);
      liquid_level=31.8-time*0.0001*340/2;
      sprintf(text_liquid_level,"%d",liquid_level);
      if (liquid_level<0){
      lcd.LCD_DisplayStrings_WithAddress(0x83,"OVER");}
      else if(liquid_level<10){
      lcd.LCD_DisplayStrings_WithAddress(0x83,"");      
      lcd.LCD_DisplayStrings_WithAddress(0x83,text_liquid_level);
      lcd.LCD_DisplayStrings_WithAddress(0x84,"cm"); }
      else{      
      lcd.LCD_DisplayStrings_WithAddress(0x83,text_liquid_level);
      lcd.LCD_DisplayStrings_WithAddress(0x84,"cm"); }
       // lcd.LCD_DisplayStrings_WithAddress(0x83,"   Welcome to   ");
       
      resistance=analogRead(0);
      sprintf(text_resistance,"%d",resistance);
      lcd.LCD_DisplayStrings_WithAddress(0x8b,"    ");
      lcd.LCD_DisplayStrings_WithAddress(0x8b,text_resistance);
      }
      
        delay(2000);
       
}
前几年编的自动浇水的程序
带LCD12864液晶显示,液位高于10cm,电阻大于500,启动水泵浇水。

视频明天回单位的电脑上找找!

huiyu1981 发表于 2013-4-4 21:27:26

bacon6581 发表于 2013-2-24 21:16 static/image/common/back.gif
#include "ST7920.h"
#include "PIC.h"



厉害。但不是泡在水里,是检测湿度的

假令狐冲 发表于 2013-4-23 19:21:21

前段时间刚写了个自动浇花的教程。你可以到DFrobot的讨论区找一下,或者看《无线电》今年的第三期
页: [1]
查看完整版本: 付费求助:谁能帮我儿子写个自动浇花程序