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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 12259|回復(fù): 17
打印 上一主題 下一主題
收起左側(cè)

微信掃碼單片機(jī)自動(dòng)定時(shí)開(kāi)關(guān)制作 附源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
閑來(lái)無(wú)事,用單片機(jī)DIY了個(gè)掃碼自動(dòng)充電系統(tǒng),單片機(jī)程序,控制端軟件都是親自編寫,本人半桶水,希望能跟各位大神一起學(xué)習(xí)討論!!!
說(shuō)明:本程序無(wú)需公眾號(hào),系統(tǒng)分為兩部分,服務(wù)端跟單片機(jī)程序端,服務(wù)端程序?yàn)楸O(jiān)測(cè)跟控制開(kāi)關(guān)服務(wù)端,可在內(nèi)網(wǎng)電腦也可在服務(wù)器上同WX一起開(kāi)啟。使用步驟:1.登錄WX,并打開(kāi)WX支付窗口,調(diào)整窗口適合大小,最小化!2.把配套單片機(jī)程序下載到單片機(jī),并連接好繼電器模塊,WIFI 模塊,WFFI模塊登錄設(shè)置好服務(wù)器端IP,端口,接通電源。3.服務(wù)端填好端口,填寫好免費(fèi)KEY,點(diǎn)擊啟動(dòng)服務(wù),如果提示框里有IP上線,表示與單片機(jī)連接成功,可以手動(dòng)控制也可掃碼控制了。4.WX二維碼設(shè)置:打開(kāi)WX二維碼收款,設(shè)置固定金額,收錢備注里填寫開(kāi)關(guān)代碼,保存二維碼,用戶掃碼支付就可以自動(dòng)打開(kāi)6小時(shí)后自動(dòng)關(guān)閉,可以控制10路開(kāi)關(guān)!如還不明白或需要修改程序請(qǐng)聯(lián)系QQ:214909754




適用于個(gè)人測(cè)試使用小范圍的WX自動(dòng)收款控制設(shè)備,掃碼洗衣機(jī),掃碼充電器,掃碼電吹風(fēng)等等,本人已經(jīng)使用了兩個(gè)多月了,比較穩(wěn)定沒(méi)出現(xiàn)過(guò)什么問(wèn)題!


單片機(jī)程序51hei下載: 單片機(jī)程控開(kāi)關(guān).7z (742.02 KB, 下載次數(shù): 158)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏15 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2020-7-31 00:33 | 只看該作者
能分享下源碼嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:809724 發(fā)表于 2020-7-31 12:36 | 只看該作者

源碼已經(jīng)上傳,自己下載
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. uchar dat;

  4. sbit LED =P1^0;
  5. sbit JDQA=P0^0;
  6. sbit JDQ1=P2^0;
  7. sbit JDQ2=P2^1;
  8. sbit JDQ3=P2^2;
  9. sbit JDQ4=P2^3;
  10. sbit JDQ5=P2^4;
  11. sbit JDQ6=P2^5;
  12. sbit JDQ7=P2^6;
  13. sbit JDQ8=P2^7;
  14. sbit JDQ9=P0^7;
  15. sbit JDQ10=P0^6;
  16. bit Time_1S;
  17. bit RX_OK;
  18. bit TX_Busy;
  19. unsigned char Time_Tick;
  20. unsigned char RX_Buf[3];
  21. unsigned char RX_Index;
  22. unsigned int  RelayTime[10];
  23. unsigned int  RelayTiOK[10];

  24. void t0isy() interrupt 1 using 1    //該中斷實(shí)現(xiàn)LED閃爍,周期為30*2=60毫秒{   
  25.         {
  26.         TH0=(65536-50000)/256;   
  27.         TL0=(65536-5000)%256;   
  28.         Time_Tick++;
  29.         RelayTiOK[0]++;
  30.         RelayTiOK[1]++;
  31.     RelayTiOK[2]++;
  32.         RelayTiOK[3]++;
  33.         RelayTiOK[4]++;
  34.         RelayTiOK[5]++;
  35.     RelayTiOK[6]++;
  36.         RelayTiOK[7]++;
  37.         RelayTiOK[8]++;
  38.         RelayTiOK[9]++;
  39.     if(Time_Tick >= 15)
  40.         {
  41.         Time_Tick = 0;
  42.         Time_1S = 1;
  43.         LED= ~LED;
  44.        
  45.         }
  46.         if(RelayTiOK[0] >= 1578)
  47.         {
  48.         RelayTiOK[0]=0;
  49.         RelayTime[0]--;
  50.         }       
  51.         if(RelayTime[0] ==0)
  52.         {         
  53.     RelayTime[0]=0;
  54.         JDQ1 = 1;
  55.     }
  56.        
  57.     if(RelayTiOK[1] >= 1578)
  58.         {
  59.         RelayTiOK[1]=0;
  60.         RelayTime[1]--;
  61.         }       
  62.         if(RelayTime[1] ==0)
  63.         {
  64.     RelayTime[1]=0;
  65.         JDQ2 = 1;
  66.     }
  67.         if(RelayTiOK[2] >= 1578)
  68.         {
  69.         RelayTiOK[2]=0;
  70.         RelayTime[2]--;
  71.         }       
  72.         if(RelayTime[2] ==0)
  73.         {
  74.         RelayTime[2]=0;
  75.         JDQ3 = 1;
  76.     }
  77.         if(RelayTiOK[3] >= 1578)
  78.         {
  79.         RelayTiOK[3]=0;
  80.         RelayTime[3]--;
  81.         }       
  82.         if(RelayTime[3] ==0)
  83.         {
  84.         RelayTime[3]=0;
  85.         JDQ4 = 1;
  86.     }
  87.         if(RelayTiOK[4] >= 1578)
  88.         {
  89.         RelayTiOK[4]=0;
  90.         RelayTime[4]--;
  91.         }       
  92.         if(RelayTime[4] ==0)
  93.         {
  94.                  
  95.     RelayTime[4]=0;
  96.         JDQ5 = 1;
  97.     }
  98.         if(RelayTiOK[5] >= 1578)
  99.         {
  100.         RelayTiOK[5]=0;
  101.         RelayTime[5]--;
  102.         }       
  103.         if(RelayTime[5] ==0)
  104.         {
  105.                  
  106.     RelayTime[5]=0;
  107.         JDQ6 = 1;
  108.     }
  109.         if(RelayTiOK[6] >= 1578)
  110.         {
  111.         RelayTiOK[6]=0;
  112.         RelayTime[6]--;
  113.         }       
  114.         if(RelayTime[6] ==0)
  115.         {
  116.                  
  117.     RelayTime[6]=0;
  118.         JDQ7 = 1;
  119.     }
  120.         if(RelayTiOK[7] >= 1578)
  121.         {
  122.         RelayTiOK[7]=0;
  123.         RelayTime[7]--;
  124.         }       
  125.         if(RelayTime[7] ==0)
  126.         {
  127.     RelayTime[7]=0;
  128.         JDQ8 = 1;
  129.     }
  130.          if(RelayTiOK[8] >= 1578)
  131.         {
  132.         RelayTiOK[8]=0;
  133.         RelayTime[8]--;
  134.         }       
  135.         if(RelayTime[8] ==0)
  136.         {
  137.         RelayTime[8]=0;
  138.         JDQ9 = 1;
  139.     }
  140.            if(RelayTiOK[9] >= 1578)
  141.         {
  142.         RelayTiOK[9]=0;
  143.         RelayTime[9]--;
  144.         }       
  145.         if(RelayTime[9] ==0)
  146.         {
  147.         RelayTime[9]=0;
  148.         JDQ10 = 1;
  149.     }
  150. }  
  151. /*************************************************

  152. 函數(shù):uart_tx_string

  153. 功能:串口發(fā)送一個(gè)字符串

  154. 出口:void

  155. 入口:字符串?dāng)?shù)組

  156. *************************************************/
  157. void ser_isr() interrupt 4 using 2    //該中斷接收PC數(shù)據(jù)并返回。
  158. {      
  159.         unsigned char temp;

  160.         if(RI)   
  161.         {   
  162.                 RI=0;  
  163.                 temp = SBUF;
  164.                 SBUF = temp;
  165.                 RX_Buf[RX_Index] = temp;
  166.                 RX_Index++;
  167.         if(RX_Index >= 3)
  168.                 {
  169.                 RX_Index = 0;
  170.                 temp=0;
  171.                        
  172.         if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'J'))
  173.                 {       
  174.                 JDQA = 1;
  175.                 RX_OK = 1;
  176.                 }
  177.                 if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'J'))
  178.                 {       
  179.                 JDQA = 0;
  180.                 RX_OK = 1;
  181.                 }
  182.                 if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'A'))
  183.                 {       
  184.                 JDQ1 = 0;
  185.                 RelayTime[0] =420;// * 60 * 20;
  186.                 RX_OK = 1;
  187.                 }
  188.                 if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'A'))
  189.                 {         
  190.                 JDQ1 = 1;
  191.                 RelayTime[0] = 0;                                                                                                               
  192.                 }
  193.                 if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'B'))
  194.                 {
  195.                                 JDQ2 = 0;
  196.                                 RelayTime[1] = 420;
  197.                                 RX_OK = 1;
  198.                 }
  199.                 if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'B'))
  200.                 {         
  201.                             JDQ2 = 1;
  202.                                 RelayTime[1] = 0;
  203.                 }
  204.                 if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'C'))
  205.                 {
  206.                                 JDQ3 = 0;
  207.                                 RelayTime[2] = 420;
  208.                                 RX_OK = 1;
  209.                 }
  210.                 if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'C'))
  211.                 {         
  212.                             JDQ3 = 1;
  213.                                 RelayTime[2] = 0;
  214.                 }
  215.                 if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'D'))
  216.                 {
  217.                                 JDQ4 = 0;
  218.                                 RelayTime[3] = 420;
  219.                                 RX_OK = 1;
  220.                 }
  221.                 if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'D'))
  222.                 {         
  223.                             JDQ4 = 1;
  224.                                 RelayTime[3] = 0;
  225.                 }
  226.                 if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'E'))
  227.                 {
  228.                                 JDQ5 = 0;
  229.                                 RelayTime[4] = 420;
  230.                                 RX_OK = 1;
  231.                 }
  232.                 if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'E'))
  233.                 {         
  234.                             JDQ5 = 1;
  235.                                 RelayTime[4] = 0;
  236.             }
  237.                 if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'F'))
  238.                 {
  239.                                 JDQ6 = 0;
  240.                                 RelayTime[5] = 420;
  241.                                 RX_OK = 1;
  242.                 }
  243.                 if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'F'))
  244.             {         
  245.                             JDQ6 = 1;
  246.                                 RelayTime[5] = 0;
  247.                 }
  248.                 if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'L'))
  249.                 {
  250.                                 JDQ7 = 0;
  251.                                 RelayTime[6] = 420;
  252.                                 RX_OK = 1;
  253.                 }
  254.                 if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'L'))
  255.                 {         
  256.                             JDQ7 = 1;
  257.                                 RelayTime[6] = 0;
  258.                 }
  259.                 if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'H'))
  260.             {
  261.                                 JDQ8 = 0;
  262.                                 RelayTime[7] = 420;
  263.                                 RX_OK = 1;
  264.                 }
  265.                          if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'H'))
  266.                 {         
  267.                             JDQ8 = 1;
  268.                                 RelayTime[7] = 0;
  269.                 }
  270.                   if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'T'))
  271.             {
  272.                                 JDQ9 = 0;
  273.                                 RelayTime[8] = 420;
  274.                                 RX_OK = 1;
  275.                 }
  276.                          if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'T'))
  277.                 {         
  278.                             JDQ9 = 1;
  279.                                 RelayTime[8] = 0;
  280.                 }
  281.                  if((RX_Buf[0] == 'P')&&(RX_Buf[1] == 'K')&&(RX_Buf[2] == 'Y'))
  282.             {
  283.                                 JDQ10 = 0;
  284.                                 RelayTime[9] = 420;
  285.                                 RX_OK = 1;
  286.                 }
  287.                          if((RX_Buf[0] == 'Q')&&(RX_Buf[1] == 'G')&&(RX_Buf[2] == 'Y'))
  288.                 {         
  289.                             JDQ10 = 1;
  290.                                 RelayTime[9] = 0;
  291.                 }
  292.                         RX_Buf[0] = 0;
  293.             RX_Buf[1] = 0;
  294.                         }
  295.                         }
  296.                 if(TI)
  297.                 {
  298.                 TI = 0;
  299.                 TX_Busy = 0;
  300.             }


  301. }
  302. void Uart_SendByte(unsigned char dat)
  303. {
  304.          TX_Busy = 1;
  305.          SBUF = dat;
  306.          while(TX_Busy);
  307. }

  308. void Uart_SendString(unsigned char *s)
  309. {
  310.         while(*s != '\0')
  311.         {
  312.                 Uart_SendByte(*s++);
  313.         }
  314. }

  315. void main(void)
  316. {   
  317.         JDQA = 1;
  318.         JDQ1 = 1;
  319.         JDQ2 = 1;
  320.         JDQ3 = 1;
  321.         JDQ4 = 1;
  322.         JDQ5 = 1;
  323.         JDQ6 = 1;
  324.         JDQ7 = 1;
  325.         JDQ8 = 1;
  326.         JDQ9 = 1;
  327.         JDQ10 = 1;
  328.         TMOD=0x21;  
  329.         TH0=(65536-50000)/256;   
  330.         TL0=(65536-5000)%256;  
  331.         SCON=0x50;  
  332.         TH1=TL1=0xfd;    //波特率9600   
  333.         TR0=1;   
  334.         TR1=1;   
  335.         ET0=1;   
  336.         ES=1;   
  337.         EA=1;
  338.         RX_OK = 0;
  339.         RelayTime[0] = 0;
  340.         RelayTime[1] = 0;
  341.         RelayTime[2] = 0;
  342.         RelayTime[3] = 0;
  343.         RelayTime[4] = 0;
  344.         RelayTime[5] = 0;
  345.         RelayTime[6] = 0;
  346.         RelayTime[7] = 0;
  347.         RelayTime[8] = 0;
  348.         RelayTime[9] = 0;
  349.     RelayTiOK[0] = 0;
  350.         RelayTiOK[1] = 0;
  351.     RelayTiOK[2] = 0;
  352.         RelayTiOK[3] = 0;
  353.         RelayTiOK[4] = 0;
  354.         RelayTiOK[5] = 0;
  355.     RelayTiOK[6] = 0;
  356.         RelayTiOK[7] = 0;
  357.         RelayTiOK[8] = 0;
  358.         RelayTiOK[9] = 0;
  359.         while(1)
  360.         {
  361.                 if((RX_OK == 0)&&(Time_1S == 1))
  362.                 {
  363.                  Uart_SendString("VAT");
  364.                  Time_1S = 0;
  365.                  }
  366.                  }
  367. }
復(fù)制代碼

回復(fù)

使用道具 舉報(bào)

地板
ID:56960 發(fā)表于 2020-8-3 10:44 | 只看該作者
可以做個(gè)自動(dòng)售賣機(jī)了!
回復(fù)

使用道具 舉報(bào)

5#
ID:809724 發(fā)表于 2020-8-3 22:58 | 只看該作者
滄海一粒 發(fā)表于 2020-8-3 10:44
可以做個(gè)自動(dòng)售賣機(jī)了!

小型的售賣還可以,如果做專用的這樣就不可靠了,因?yàn)槌绦蚴潜O(jiān)控微信的頁(yè)面,檢測(cè)到有訂單代碼就會(huì)打開(kāi)相應(yīng)的繼電器,這樣雖然可以用但感覺(jué)不是很穩(wěn)妥,希望能有更好的方法!
回復(fù)

使用道具 舉報(bào)

6#
ID:690363 發(fā)表于 2020-8-5 10:28 | 只看該作者
嘗嘗鮮,學(xué)習(xí)一下,謝謝分享
回復(fù)

使用道具 舉報(bào)

7#
ID:46999 發(fā)表于 2020-8-7 09:08 | 只看該作者
服務(wù)器端的WIFI程序才是核心
回復(fù)

使用道具 舉報(bào)

8#
ID:259648 發(fā)表于 2020-8-7 10:15 | 只看該作者
沒(méi)太懂這個(gè)過(guò)程,服務(wù)端如何實(shí)現(xiàn)的??  還有就是這個(gè)是需要手機(jī)和電腦聯(lián)合工作??
回復(fù)

使用道具 舉報(bào)

9#
ID:149799 發(fā)表于 2020-8-10 11:51 | 只看該作者
還是不明白它的工作原理,好奇。
回復(fù)

使用道具 舉報(bào)

10#
ID:19998 發(fā)表于 2020-8-10 13:59 | 只看該作者
學(xué)習(xí)一下,已下載
回復(fù)

使用道具 舉報(bào)

11#
ID:809724 發(fā)表于 2020-8-13 22:04 | 只看該作者
溫存723 發(fā)表于 2020-8-7 10:15
沒(méi)太懂這個(gè)過(guò)程,服務(wù)端如何實(shí)現(xiàn)的??  還有就是這個(gè)是需要手機(jī)和電腦聯(lián)合工作??

服務(wù)端我是用一臺(tái)小電腦或者電腦棒能安裝windows系統(tǒng)的就可以,在電腦上面安裝好微信PC端并且登錄上打開(kāi)支付窗口,打開(kāi)服務(wù)端填寫好端口啟動(dòng)就OK啦
回復(fù)

使用道具 舉報(bào)

12#
ID:809724 發(fā)表于 2020-8-13 22:06 | 只看該作者
維超 發(fā)表于 2020-8-7 09:08
服務(wù)器端的WIFI程序才是核心

WIFI 沒(méi)有程序,直接購(gòu)買一個(gè)WIFI 模塊就搞定了,串口通信,模塊里面有介紹的!
回復(fù)

使用道具 舉報(bào)

13#
ID:704585 發(fā)表于 2020-8-19 10:02 | 只看該作者
有意思,學(xué)習(xí)一下。
回復(fù)

使用道具 舉報(bào)

14#
ID:448843 發(fā)表于 2020-8-20 22:00 來(lái)自手機(jī) | 只看該作者
這個(gè)應(yīng)該是通過(guò)小主機(jī)控制的吧,wifi模塊和主機(jī)是在同一個(gè)局域網(wǎng),主機(jī)收到付款信息后發(fā)送數(shù)據(jù)給wifi模塊,wifi模塊再發(fā)送數(shù)據(jù)給單片機(jī),單片機(jī)再驅(qū)動(dòng)繼電器。所以核心技術(shù)應(yīng)該在小主機(jī)上的軟件上吧
回復(fù)

使用道具 舉報(bào)

15#
ID:240034 發(fā)表于 2020-8-22 08:41 | 只看該作者
關(guān)鍵還是服務(wù)端控制
回復(fù)

使用道具 舉報(bào)

16#
ID:313857 發(fā)表于 2023-3-4 09:34 | 只看該作者
請(qǐng)問(wèn),KEY哪里填寫。。
回復(fù)

使用道具 舉報(bào)

17#
ID:71233 發(fā)表于 2023-3-5 10:35 | 只看該作者
樓主技術(shù)高超!我還是不懂得其中的道理。
回復(fù)

使用道具 舉報(bào)

18#
ID:803963 發(fā)表于 2023-6-19 20:43 | 只看該作者
后臺(tái)誰(shuí)做的?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区在线免费 | 九九国产在线观看 | 中文字幕不卡在线观看 | 亚洲精品久久久久久下一站 | 午夜精品久久久久久久星辰影院 | 99热精品在线 | 日韩电影免费在线观看中文字幕 | 亚洲欧美激情视频 | 久久精品亚洲国产奇米99 | www.亚洲一区二区三区 | 久久成人免费视频 | 色婷婷av一区二区三区软件 | 久久99国产精一区二区三区 | 欧美福利在线 | 亚洲国产精品久久久 | 在线色网站 | 亚洲成人免费视频 | 国产精品一区二区视频 | 国产精品成人久久久久 | 亚洲天堂男人的天堂 | 久久专区 | 狠狠av| 欧美大片一区二区 | 国产一区二区不卡 | 久热国产精品视频 | 久久精品亚洲一区 | 亚洲欧美日韩久久久 | 国产精品无码久久久久 | 亚洲精品自拍 | 欧美激情精品久久久久久变态 | 精品久久电影 | 国产一区二区久久久 | 成人午夜影院 | 色在线免费视频 | 欧美xxxx色视频在线观看免费 | 美女操网站 | 国产成人久久av免费高清密臂 | 雨宫琴音一区二区在线 | 日韩欧美理论片 | 2021狠狠干 | 三级视频在线观看电影 |