10312浏览
查看: 10312|回复: 6

自动烧水壶

[复制链接]
要求功能:
1、电热水壶24小时通电,到指定时间自动加水到固定水位后,加热烧开。(6点半和17点)
2、同时有一键烧水的功能,只要按一下按钮,水壶自动加水到固定水位后,加热烧开。

水壶做了改装,装了一个浮球开关来判定水位,浮球开关常开,当水位上升,浮球上升后闭合;
原配的蒸汽开关换成90度的KSD301温度开关,温度开关常闭,贴在水壶外表面,当温度上升到90度,开关断开
2路继电器,一路控制12V电磁水阀(常闭)进水,当检测到浮球阀闭合,就断电停止加水
继电器另一路控制电热水壶底部加热管,当温度开关断开时,断开加热管的电路

按钮、温度开关、浮球开关都加了1个10K的电阻,是参考《爱上Arduino》书第41页的例子


自动烧水壶图1

  1. //时钟模块按以下接线  SCL--A5  SDA--A4 VCC--5V GND--GND
  2. #include <DS3231.h>
  3. #include <Wire.h>
  4. //----------------
  5. #define LED 10  // 继电器CH1信号-电磁水阀
  6. #define HOT 11  // 继电器CH2信号-热水壶加热
  7. #define BUTTON 7 //按钮信号
  8. #define BALL 8  //浮球阀信号
  9. #define TEP 6   //温控开关信号
  10. int an = 0;
  11. int ba = 0;
  12. int te = 0;
  13. int n = 0;
  14. int h = 0;
  15. int m = 0;
  16. int s =0;
  17. //-----------------
  18. DS3231 Clock;
  19. bool Century = false;
  20. bool h12;
  21. bool PM;
  22. byte ADay, AHour, AMinute, ASecond, ABits;
  23. bool ADy, A12h, Apm;
  24. byte year, month, date, DoW, hour, minute, second;
  25. void setup() {
  26.   // 启动I2C(IIC)接口
  27.   Wire.begin();
  28.   //以下部分是初始化时间,每次板子通电之后都会初始化成这个时间,只是测试用,以后可以删除。
  29. //  Clock.setSecond(00);//Set the second
  30. // Clock.setMinute(31);//Set the minute 设置分钟
  31. // Clock.setHour(21);  //Set the hour 设置小时
  32. // Clock.setDoW(7);    //Set the day of the week 设置星期几
  33. //  Clock.setDate(4);  //Set the date of the month 设置月份
  34. //  Clock.setMonth(10);  //Set the month of the year 设置一年中的月份
  35. //  Clock.setYear(15);  //Set the year (Last two digits of the year) 设置年份(在今年的最后两位数——比如2013年最后的13)
  36.   // Start the serial interface
  37.   Serial.begin(115200);
  38.   //---------------
  39.   pinMode (LED, OUTPUT); // 继电器CH1信号-电磁水阀
  40.   pinMode (HOT, OUTPUT);   // 继电器CH2信号-热水壶加热
  41.   pinMode (BUTTON, INPUT);  //按钮信号
  42.   pinMode (BALL, INPUT);  //浮球阀信号
  43.   pinMode (TEP, INPUT);   //温控开关信号
  44.   //-------------------
  45. }
  46. void loop()
  47. {
  48.   //  ReadDS3231();
  49.   //   delay(1000);  //间隔1000ms(1000ms=1秒)循环一次。
  50.   //--------------
  51.   an = digitalRead (BUTTON);//读取按钮开关的信号
  52.   ba = digitalRead (BALL);  //读取浮球开关的信号
  53.   te = digitalRead (TEP);   //读取温控开关的信号
  54.   m = Clock.getMinute();    //定时自动烧水的小时
  55.   h = Clock.getHour(h12, PM); //定时自动烧水的分钟
  56.   s= Clock.getSecond();  定时自动烧水的秒钟
  57.   if (te == LOW)   //一开始就检查温控开关,如果温控开关是断开的,即水温已经达到95度,
  58.   {
  59.     digitalWrite(HOT, LOW); //则继电器CH2信号为断开,热水壶不加热
  60.   }
  61.   else {
  62.     if (h == 6 && m == 35 && s==1||h == 16 && m == 50 && s==1) //检查时间是否符合定时自动烧水时间,如果到了
  63.     { n =  1;                         //引入变量n
  64.       digitalWrite(LED, HIGH);        //继电器CH1信号通电,电磁水阀开始加水
  65.       if (n == 1) {
  66.         if (ba == HIGH)               //如果浮球开关通电,即加水已经到达水位,
  67.         { digitalWrite(LED, LOW);     //则继电器CH1信号断电,电磁水阀停止加水
  68.           digitalWrite(HOT, HIGH);    //然后继电器CH2信号为通,热水壶开始加热
  69.           n = 0;                      //一个定时烧水流程结束,变量n设为0
  70.         }
  71.       }
  72.     }
  73.     { if (an == HIGH)                 //如果按钮开关按下,即开始一键烧水
  74.       {
  75.         n =  1;                       //引入变量n
  76.         digitalWrite(LED, HIGH);      //继电器CH1信号通电,电磁水阀开始加水
  77.       }
  78.       if (n == 1) {
  79.         if (ba == HIGH)               //如果浮球开关通电,即加水已经到达水位,
  80.         { digitalWrite(LED, LOW);     //则继电器CH1信号断电,电磁水阀停止加水
  81.           digitalWrite(HOT, HIGH);    //然后继电器CH2信号为通,热水壶开始加热
  82.           n = 0;                       //一个定时烧水流程结束,变量n设为0
  83.         }
  84.       }
  85.     }
  86.   }
  87. }
复制代码

用一块arduino pro mini控制一个2路继电器,一路控制电磁水阀加水,并由浮球阀来控制加水的水位;一路控制电热水壶烧水,并由温度开关来控制加热,水壶和底座是由小螺栓和磁铁来连接以传递信号,完成图如下
自动烧水壶图2

从厨房的净水器引出了一根管子,连接到电磁阀。这个盒子里,最下面是电磁阀,上来是220V转12V2A的适配器,再上来是12V转5V的模块,还有pro mini板,2路继电器和DS3231时钟模块,还有最后面一块洞洞板用来接线:
自动烧水壶图3



水壶上要钻个洞,安装上浮球阀,水壶内部是这样的:
自动烧水壶图4



手柄左边是浮球开关的连接线,手柄下面是KSD301温度开关的接头:
自动烧水壶图5



这是底座的4个磁铁,只要按白色标志的位置放下,就可以连接水壶底的4个小螺栓,传递2个温度开关和浮球开关的信号:
自动烧水壶图6



原文(部分):http://www.geek-workshop.com/thread-25023-1-1.html


大连林海  初级技神

发表于 2015-10-25 19:43:22

高手啊 给我做个啊
回复

使用道具 举报

丄帝De咗臂  高级技匠
 楼主|

发表于 2015-10-25 19:51:15

大连林海 发表于 2015-10-25 19:43
高手啊 给我做个啊

not me
回复

使用道具 举报

大连林海  初级技神

发表于 2015-10-25 20:19:00


不要暴漏 不说都是大神
回复

使用道具 举报

丄帝De咗臂  高级技匠
 楼主|

发表于 2015-10-25 20:43:08

大连林海 发表于 2015-10-25 20:19
不要暴漏 不说都是大神

回复

使用道具 举报

dsweiliang  初级技神

发表于 2015-10-26 10:29:03

好丑的水壶,会不会漏水的啊?
回复

使用道具 举报

 初级技匠

发表于 2022-5-20 08:54:21

好丑的水壶,会不会漏水的啊?
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail