久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 單片機(jī)智能凈水器代碼分享,并邀你一起完成家用智能凈水器電腦板的完整軟硬件整體開(kāi)發(fā) [打印本頁(yè)]

作者: tigerlyt    時(shí)間: 2019-5-5 11:56
標(biāo)題: 單片機(jī)智能凈水器代碼分享,并邀你一起完成家用智能凈水器電腦板的完整軟硬件整體開(kāi)發(fā)
目前我們有凈水器及配件凈水器控制電腦板,我剛好想計(jì)劃學(xué)習(xí)單片機(jī)的東西,所以就想著以現(xiàn)有的項(xiàng)目做切入,在實(shí)踐中逐漸學(xué)習(xí),看看有沒(méi)有大神幫忙指點(diǎn),因?yàn)榭雌饋?lái)很簡(jiǎn)單,但是自己剛開(kāi)始摸索,很多東西搞不懂,所以也在這里求助大家:

計(jì)劃分步完成:
1、完成單片機(jī)最基礎(chǔ)的控制部分的軟件,單片機(jī)選型直接借鑒現(xiàn)有的板子;

2、繼續(xù)借鑒現(xiàn)有的板子,完成外圍電路的開(kāi)發(fā),直接可以控制凈水器,直接使用;

3、完成TDS檢測(cè)這個(gè)系統(tǒng)的部分,并整合到整塊板上;

3、之前想做這個(gè)的時(shí)候,已經(jīng)打樣了幾塊液晶顯示板,連接并實(shí)現(xiàn)驅(qū)動(dòng);

4、完成上述部分的同時(shí)考慮后續(xù)的wifigprs的增加,預(yù)留接口和程序?qū)崿F(xiàn)串口透?jìng)鞯韧ㄓ嵑瓦h(yuǎn)程控制功能(現(xiàn)在使用的安卓和蘋(píng)果app都有,做這個(gè)部分的時(shí)候先考慮安卓,蘋(píng)果因?yàn)槌杀締?wèn)題后面再說(shuō));

5、后續(xù)可能增加的功能:

  A、增加一個(gè)水龍頭tds顯示和濾芯使用情況顯示的分支,包含一個(gè)水龍頭用的觸控開(kāi)關(guān)控制一個(gè)電磁閥供水到水龍頭(市場(chǎng)有類(lèi)似產(chǎn)品);

B、通過(guò)檢測(cè)的tds值來(lái)動(dòng)態(tài)調(diào)整沖洗的頻率或者沖洗比例閥的大小,實(shí)現(xiàn)動(dòng)態(tài)調(diào)整節(jié)水的目標(biāo);

C、設(shè)定一個(gè)閾值,tds超過(guò)這個(gè)值后,進(jìn)行報(bào)警,但并不強(qiáng)制停機(jī)(這個(gè)也可以通過(guò)跳碼開(kāi)關(guān)實(shí)現(xiàn)超過(guò)一個(gè)值持續(xù)一定的時(shí)候后就強(qiáng)制待機(jī));

D、濾芯的時(shí)間根據(jù)tds的大小動(dòng)態(tài)調(diào)整,而不是一個(gè)固定時(shí)間,這個(gè)時(shí)間自行擬定一個(gè)公式進(jìn)行核算,譬如設(shè)定tds值150的時(shí)候是標(biāo)準(zhǔn)值,每增加10%則濾芯使用時(shí)間在標(biāo)準(zhǔn)值基礎(chǔ)上上調(diào)10%計(jì)入實(shí)際使用時(shí)間;

F、濾芯到了設(shè)定時(shí)間后,進(jìn)行濾芯更換提醒(這里也可以用撥碼開(kāi)關(guān)實(shí)現(xiàn),是否強(qiáng)制停機(jī)進(jìn)入待機(jī)狀態(tài))


現(xiàn)有的電腦板的主要元器件:
1、  STM8S005K6T6C
2、  STM8S003F3P6
3、  顯示驅(qū)動(dòng)HT1621B
4、  泵和進(jìn)水電磁閥驅(qū)動(dòng)MOS管:4406A或GA 5N2P
5、  Wifi:ESP12F樂(lè)鑫
6、  Gprs:廣和通G510


現(xiàn)有的電腦板分三種:

1、  普通版,控制凈水器運(yùn)作,可以顯示進(jìn)水出水tds值;

2、  Wifi版,有普通版的功能,有app可以聯(lián)網(wǎng),使用樂(lè)鑫esp8266聯(lián)網(wǎng)實(shí)現(xiàn)遠(yuǎn)程查看數(shù)據(jù)及控制的功能;

3、  Gors版,普通版的功能外,有app可以聯(lián)網(wǎng),使用廣和通g510聯(lián)網(wǎng)實(shí)現(xiàn)遠(yuǎn)程查看數(shù)據(jù)及控制的功能;

普通版的具體功能和運(yùn)作流程:
1、  控制系統(tǒng)正常運(yùn)作,大致流程是:
A、 上電,檢測(cè)低壓開(kāi)關(guān)(低壓閉合說(shuō)明自來(lái)水接入,沒(méi)有閉合會(huì)提示缺水,并蜂鳴器6聲報(bào)警,缺水指示燈閃爍,持續(xù)閃爍直到低壓開(kāi)關(guān)閉合,停止閃爍),
B、 低壓開(kāi)關(guān)閉合有水后,檢測(cè)高壓開(kāi)關(guān)(高壓開(kāi)關(guān)的作用是檢測(cè)儲(chǔ)水桶的水有沒(méi)有滿(mǎn),水滿(mǎn)則待機(jī),水沒(méi)有滿(mǎn),高壓開(kāi)關(guān)是閉合的,這時(shí)候進(jìn)入制水狀態(tài),制水指示燈閃爍直至推出制水狀態(tài)),
C、 如果高壓開(kāi)關(guān)斷開(kāi)說(shuō)明水滿(mǎn),則進(jìn)入水滿(mǎn)狀態(tài),整機(jī)待機(jī),水滿(mǎn)狀態(tài)燈閃爍,直至狀態(tài)改變?yōu)橹梗?/div>
D、 如果:曾經(jīng)低壓斷開(kāi)過(guò),則低壓再閉合直接先進(jìn)入沖洗狀態(tài),之后再檢測(cè)高壓等等流程,
E、  累計(jì)制水6個(gè)小時(shí),中間沒(méi)有因?yàn)閿嚯姡彼M(jìn)入過(guò)沖洗狀態(tài),那么沖洗一次,這個(gè)計(jì)時(shí)不計(jì)待機(jī)時(shí)間,只計(jì)算制水時(shí)間(可以考慮只計(jì)時(shí)泵運(yùn)轉(zhuǎn)的時(shí)間)
F、  連續(xù)制水3個(gè)小時(shí),連續(xù)的,中間沒(méi)有水滿(mǎn)過(guò),則進(jìn)入系統(tǒng)認(rèn)為超時(shí),系統(tǒng)進(jìn)入故障狀態(tài),整機(jī)待機(jī),故障燈閃爍,需要重新上電才能消除故障狀態(tài);
G、 輸入:高壓開(kāi)關(guān),低壓開(kāi)關(guān),輸出:泵+進(jìn)水電磁閥(這兩個(gè)產(chǎn)品運(yùn)作周期相同,直接并聯(lián)輸出即可),排水電磁閥(排水狀態(tài)打開(kāi)其他狀態(tài)關(guān)閉),輸出還包括各狀態(tài)指示燈:制水,水滿(mǎn),缺水,沖洗,故障;

2、  除了基礎(chǔ)的控制部分,還有顯示屏,顯示信息,段碼屏,用ht1621(b)驅(qū)動(dòng),不超過(guò)128段;

3、  五級(jí)濾芯顯示,濾芯會(huì)定義一個(gè)時(shí)間,每個(gè)濾芯有不同的時(shí)間設(shè)置,隨著時(shí)間的減少,進(jìn)行倒計(jì)時(shí),目前的狀態(tài)是五段逐漸變暗,直到最后全部變暗,同時(shí)考慮另外的一種顯示方式,一個(gè)燈,不斷變暗直至滅掉;

4、  單獨(dú)一個(gè)單片機(jī)實(shí)現(xiàn)兩路tds檢測(cè),顯示在面板上(這個(gè)液晶面板已經(jīng)有打樣,后續(xù)批量的時(shí)候可能要稍微調(diào)整,但大體上不變);

5、  Pcb板尺寸130*60mm,顯示屏窗口尺寸30*70mm,這個(gè)是通用版的尺寸。

附件是CSDN下載的一個(gè)STM32的智能凈水器的源碼,但是因?yàn)闆](méi)有電路原理圖等我也看的不是很明白,分享給大家一起看看吧。

有愿意一起合作的,我也沒(méi)有能力支付什么費(fèi)用,只能說(shuō),有機(jī)會(huì)做成成品,標(biāo)注上你的名字或id吧,另外可以考慮幫助最多的以后購(gòu)買(mǎi)產(chǎn)品可以有優(yōu)惠,因?yàn)閷?shí)際的支付能力有限,希望你能喜歡吧。

希望各位大咖恢復(fù)一些相關(guān)的內(nèi)容或者代碼,謝謝!

有意一起合作搞一下的兄弟姐妹加我微信:tigerlyt (不知道能不能發(fā)聯(lián)系方式,如果不合適幫忙刪掉就好了)

現(xiàn)有的板子的樣子:




我自己畫(huà)的最簡(jiǎn)單的原理圖和流程圖:





準(zhǔn)備后期可以加的龍頭:


現(xiàn)在的板子實(shí)用的狀態(tài):


佛山云米科技小米智能凈水器源碼用IAR設(shè)計(jì)的基于STM32的程序:下載 智能凈水器.7z (2.62 MB, 下載次數(shù): 114)

我自己的單片機(jī)程序和思路,不過(guò)目前是不可行的,請(qǐng)指出一些錯(cuò)誤吧,謝謝:

  1. /*Main.c file generated by New Project wizard
  2. *
  3. * Created:   4 17 2019
  4. * Processor: 89C52
  5. * Compiler:  Keil for 89C52
  6. ****/

  7. #include <reg52.h>
  8. #include <stdio.h>
  9. #include "main.h"
  10. #include "delay.h"
  11. void delay_ms(uint timer)
  12. {
  13.         uchar j=0;
  14.         while(timer--)
  15.         {
  16.                 for(j=110;j>0;j--)
  17.             {
  18.                                 ;
  19.                         }
  20.         }
  21. }
  22. sbit LOW=P2^0;   //低壓開(kāi)關(guān)
  23. sbit HIGH=P2^1;   //高壓開(kāi)關(guān)
  24. sbit LED1=P1^0;  //沖洗指示燈
  25. sbit LED2=P1^1;   //水滿(mǎn)指示燈
  26. sbit LED3=P1^2;    //缺水指示燈
  27. sbit LED4=P1^3;    //故障指示燈
  28. sbit LED5=P1^4;     //制水指示燈
  29. sbit run=P1^5;     //泵+進(jìn)水閥
  30. sbit flow=P1^6;    //排水閥
  31. sbit dula=P2^6;
  32. sbit wela=P2^7;
  33. /*void display(uchar,uchar);
  34. uchar code table[]={
  35. 0x3f,0x06,0x5b,0x4f,
  36. 0x66,0x6d,0x7d,0x07,
  37. 0x7f,0x6f,0x77,0x7c,
  38. 0x39,0x5e,0x79,0x71};*/
  39. uchar num1,num2,flag,shi,ge,shine;
  40. uint num,numx,aa;
  41. void main()
  42. {
  43.                                 TMOD=0X11;
  44.         TH0=(65536-45872)/256;
  45.         TL0=(65536-45872)%256;
  46.         TH1=(65536-45872)/256;
  47.         TL1=(65536-45872)%256;
  48.         EA=1;
  49.         ET0=1;
  50.         ET1=1;
  51.         TR0=1;
  52.         TR1=1;
  53.               num=0;
  54.         
  55.           //display (shi,ge);
  56.         
  57.         
  58.         while(1)
  59.         {        
  60.           if(LOW==0|flag==1)    //檢測(cè)有無(wú)自來(lái)水和連續(xù)制水6小時(shí)
  61.           {
  62.                         delay_ms(10);  //延時(shí)去抖
  63.                         if(LOW==0|flag==1)
  64.                         {
  65.                                 run=0;        //有水,沖洗
  66.                           flow=0;
  67.                           shine=1;
  68.                                 aa=0;
  69.                           delay_ms(18000);  //沖洗延時(shí)18秒
  70.                          }
  71.                          else if(HIGH==0)   //高壓沒(méi)動(dòng)作,水桶沒(méi)滿(mǎn),進(jìn)入制水
  72.                          {
  73.                                  run=0;
  74.                                  flow=1;
  75.                                  shine=5;
  76.                                  num=0;
  77.                                  numx=aa;
  78.                                                   if(num==10800)
  79.                                                         {
  80.                                                                 num=0;
  81.                                   shine=4;
  82.                                                                 run=1;
  83.                                                                 flow=1;
  84.                                                          }
  85.                                    
  86.                                                   if(numx==21600)
  87.                                                   {
  88.                                                     numx=0;
  89.                                                           flag=1;
  90.                                                   }                 
  91.                          }
  92.                          else
  93.                                  {
  94.                             num=0;
  95.                                         aa=numx;
  96.                             shine=2;
  97.                                         run=1;
  98.                                         flow=1;
  99.                     }
  100.           }
  101.                 else
  102.                   {
  103.                         shine=3;
  104.                         run=1;
  105.                         flow=1;
  106.                         }
  107.         switch(shine)
  108.         {
  109.                 case 1:
  110.                           while(1)
  111.                                 {
  112.                                   delay_ms(500);
  113.                                         LED1=~LED1;
  114.                                 }
  115.                 case 2:
  116.                           while(1)
  117.                                 {
  118.                                   delay_ms(500);
  119.                                         LED2=~LED2;
  120.                                 }
  121.     case 3:        
  122.                           while(1)
  123.                                 {
  124.                                   delay_ms(500);
  125.                                         LED3=~LED3;
  126.                                 }
  127.     case 4:
  128.                           while(1)
  129.                                 {
  130.                                   delay_ms(500);
  131.                                         LED4=~LED4;
  132.                                 }
  133.     case 5:        
  134.         while(1)
  135.                                 {
  136.                                   delay_ms(500);
  137.                                         LED5=~LED5;
  138.                                 }                        
  139.         
  140.            }
  141.                 }
  142.         
  143.      */
  144.    void T0_time() interrupt 0
  145.       {
  146.             TH0=(65536-45872)/256;
  147.             TL0=(65536-45872)%256;
  148.             num1++;
  149.                                 if(num1==20)
  150.                                 {
  151.                                         num1=0;
  152.                                         num++;
  153.                                        
  154.                                 }
  155.            }
  156.       
  157.    void T1_time() interrupt 1
  158.          {
  159.                TH1=(65536-45872)/256;
  160.          TL1=(65536-45872)%256;
  161.                num2++;
  162.                      if(num2==20)
  163.                                   {
  164.                                         num2=0;
  165.                                         numx++;
  166.                                   }
  167.                 }
復(fù)制代碼

124/128段液晶顯示板:








作者: tigerlyt    時(shí)間: 2019-5-5 21:16
沒(méi)人有興趣嗎?來(lái)人看看唄。
作者: SUSTLIGHT    時(shí)間: 2019-5-5 23:06
MARK
作者: tigerlyt    時(shí)間: 2019-5-6 11:07
好像代碼附件不對(duì)的,正常是13.8m的,現(xiàn)在看怎么才二點(diǎn)幾兆(管理壓縮了)


小米智能凈水器源碼


作者: tigerlyt    時(shí)間: 2019-5-9 10:23
小米凈水器,佛山云米科技,源碼發(fā)不出來(lái),不知道為什么

需要的聯(lián)系我,我發(fā)給你
作者: 單片機(jī)學(xué)男    時(shí)間: 2019-11-9 15:52
正準(zhǔn)備學(xué)習(xí),不知道從何下手,能發(fā)一份源代碼給我嗎?再買(mǎi)一個(gè)能調(diào)試程序的電腦板,可以嗎?謝謝!
作者: zj1037157350    時(shí)間: 2019-11-17 13:41
tigerlyt 發(fā)表于 2019-5-9 10:23
小米凈水器,佛山云米科技,源碼發(fā)不出來(lái),不知道為什么

需要的聯(lián)系我,我發(fā)給你

1037157350@qq.com
作者: 這一生只為你    時(shí)間: 2019-12-8 16:13
流程圖收了,感謝樓主分享!準(zhǔn)備用51做一個(gè)簡(jiǎn)單的控制板,直要幾個(gè)指示燈就行了,樓主有興趣的話(huà)加QQ一起交流(495486180)
作者: hoattar    時(shí)間: 2020-1-30 03:39
zj1037157350 發(fā)表于 2019-11-17 13:41

我也想學(xué),可以也發(fā)一份給我嗎?
hoattar@msn.com
作者: 龍嘯千里行    時(shí)間: 2021-6-1 18:54
落后了,現(xiàn)在都到了,物聯(lián)網(wǎng)控制板時(shí)代
作者: 龍嘯千里行    時(shí)間: 2021-6-1 18:56
現(xiàn)在已經(jīng)是單片機(jī),控制
作者: ljfllp    時(shí)間: 2023-12-5 12:20
要合作開(kāi)發(fā)凈水器電路板不,我已經(jīng)寫(xiě)完了完整代碼
作者: jovew    時(shí)間: 2023-12-6 08:02
ljfllp 發(fā)表于 2023-12-5 12:20
要合作開(kāi)發(fā)凈水器電路板不,我已經(jīng)寫(xiě)完了完整代碼

怎么聯(lián)系你啊。想要 程序。
作者: leidei    時(shí)間: 2024-3-23 17:08
剛開(kāi)始學(xué)51單片機(jī),對(duì)這個(gè)感興趣,有沒(méi)有一起學(xué)習(xí)研究的小伙伴啊?
作者: TTQ001    時(shí)間: 2024-3-24 02:14
這是一個(gè)非常有趣的話(huà)題。 感謝您帶領(lǐng)我們深入討論智能飲水機(jī)。
作者: duozui    時(shí)間: 2024-3-25 15:40
希望能互相交流,萌新程序員




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产欧美一区二区三区久久手机版 | 亚洲高清视频在线观看 | 欧美日高清视频 | 一级欧美 | 国产性色视频 | 狠狠伊人 | 日韩国产黄色片 | 羞羞涩涩在线观看 | 国产专区视频 | 国产农村妇女精品一二区 | 午夜av成人 | 一区二区三区国产视频 | 爱草视频 | 日韩1区 | 9999久久 | 亚洲福利一区 | 欧美成人h版在线观看 | 成人av高清在线观看 | 69电影网 | 久久精品一区二区三区四区 | 精品免费av | 一区二区三区四区视频 | 欧美日韩在线播放 | 日本aa毛片a级毛片免费观看 | 777777777亚洲妇女 | 久久91| 久久久久久久久久久丰满 | 欧美网址在线观看 | 久久不卡| 人人看人人射 | 亚洲精品成人网 | 国产丝袜一区二区三区免费视频 | 亚洲久久 | 午夜不卡一区二区 | 夜操| 午夜视频免费在线观看 | 五月综合激情婷婷 | 国产免费人成xvideos视频 | 性一交一乱一透一a级 | 国产在线一区二区三区 | 华人黄网站大全 |