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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17304|回復: 44
收起左側

ESP8266+51單片機WIFI控制多路遙控開關程序設計

  [復制鏈接]
ID:284357 發表于 2019-4-14 18:09 | 顯示全部樓層 |閱讀模式
這是一個基于單片機WIFI多路遙控開關設計,里面有文檔,程序,圖片等資料

制作出來的實物圖如下:
IMG_5152.JPG IMG_5144.JPG IMG_5143.JPG IMG_5142.JPG

電路原理圖如下:
0.png

Wifi開關元件清單

1)    9*15萬用板
2)    STC89C52單片機
3)    40腳IC座
4)    11.0592MHz晶振
5)    30pF瓷片電容*2
6)    10uF電解電容
7)    ESP8266模塊
8)    2*4P排母
9)    2P排母*2
10)    3.3V穩壓模塊
11)    2P接線端子*3
12)    繼電器*3
13)    3MM LED燈*3(紅、綠、藍)
14)    8550三極管*3
15)    按鍵
16)    1k電阻*6
17)    10k電阻
18)    自鎖開關
19)    DC電源插座
20)    USB電源線
21)    導線
22)    手機APP(贈送)

1、單片機是通用的無論51還是52、無論stc還是at都一樣,引腳功能都一樣。
   程序也是一樣的。
2、原理圖中的.ddb、.Bkp等格式是要用protelse打開的,沒有軟件的不要緊,
   我已幫您轉換成word格式和pdf格式的了。
3、程序中的.c文件可以用記事本(文本文檔)打開,就是程序了。其他的是寫程序是自動
   生成的,沒什么用的。
4、可以按照正面布局,不要按照實物的背面焊接,要按照原理圖焊接。

單片機多路遙控開關源程序如下:
  1. /********************************************************************/
  2. #include <REGX51.H>
  3. #define uint unsigned int
  4. #define uchar unsigned char   
  5. sbit LED0=P2^0;          //紅燈
  6. sbit LED1=P2^3;                //黃燈
  7. sbit LED2=P2^6;            //綠燈

  8. /*****************相關變量**************/
  9. uchar Receive,i,qj,yz,zz,ht;                              
  10. uint n;  
  11. uchar Recive_table[40];                  //用于接收wifi模塊反饋到MCU上的數據  

  12. /*******************************************************************
  13. 名稱:延時函數  作用:毫秒級延時,微妙級延時函數,為數據收發完成作等待.......  
  14. ********************************************************************/
  15. void ms_delay(uint t)
  16. {  
  17.         uint i,j;  
  18.         for(i=t;i>0;i--)   
  19.         for(j=110;j>0;j--);
  20. }   

  21. void us_delay(uchar t)
  22. {  
  23.         while(t--);
  24. }         

  25. void Uart_Init()                                //使用定時器1作為波特率發生器(STC89C52、STC89C51、AT89C51等均可)
  26. {  
  27.     TMOD = 0x20;
  28.     SCON = 0x50;                                 //設置串行方式
  29.     TH1 = 0xFD;                                         //波特率9600
  30.     TL1 = TH1;
  31.     PCON = 0x00;
  32.     EA = 1;                                                //總中斷打開
  33.     ES = 1;                                                //開串口中斷  
  34.     TR1 = 1;                                        //啟動定時器1
  35. }

  36. /********************************************************************
  37. 名稱:串口發送函數  功能:MCU向無線WIFI模塊ESP8266發送數據  
  38. ********************************************************************/
  39. void Send_Uart(uchar value)
  40. {  
  41.         ES=0;                                                  //關閉串口中斷  
  42.         TI=0;                                           //清發送完畢中斷請求標志位   
  43.         SBUF=value;                                 //發送  
  44.         while(TI==0);                                 //等待發送完畢   
  45.         TI=0;                                           //清發送完畢中斷請求標志位   
  46.         ES=1;                                                  //允許串口中斷  
  47. }  

  48. /********************************************************************
  49. 名稱:WIFI模塊設置函數  作用: 啟動模塊,以便可以實現無線接入和控制  
  50. ********************************************************************/

  51. void ESP8266_Set(uchar *puf)         // 數組指針*puf指向字符串數組               
  52. {   
  53.         while(*puf!='\0')                    //遇到空格跳出循環  
  54.         {   
  55.                 Send_Uart(*puf);                  //向WIFI模塊發送控制指令。   
  56.                 us_delay(5);   
  57.                 puf++;   
  58.         }  
  59.         us_delay(5);  
  60.         Send_Uart('\r');                         //回車  
  61.         us_delay(5);  
  62.         Send_Uart('\n');                           //換行  
  63. }

  64. /********************************************************************
  65. 名稱:主函數  作用:程序的執行入口  
  66. ********************************************************************/

  67. void main()
  68. {         
  69.         Uart_Init();                                                                                        //波特率發生器
  70.         ms_delay(2000);
  71.         ESP8266_Set("AT+CWMODE=2");                                                         //設置路由器模式1 station,模式2 AP,模式3 station+AP混合模式   
  72.         ms_delay(2000);
  73. //        ESP8266_Set("AT+RST");                                                                         //重新啟動wifi模塊            
  74. //  ms_delay(2000);
  75.         ESP8266_Set("AT+CWSAP=\"wifi_yuan\",\"123456789\",11,4");          //AT+CWSAP="wifi_yuan","123456789",11,4  設置模塊SSID:WIFI, PWD:密碼 及安全類型加密模式(WPA2-PSK)
  76.         ms_delay(2000);
  77.         ESP8266_Set("AT+CIPMUX=1");                                                                //開啟多連接模式,允許多個各客戶端接入
  78.         ms_delay(2000);
  79.         ESP8266_Set("AT+CIPSERVER=1,5000");                                          //啟動TCP/IP 實現基于網絡//控制         ESP8266_Set("AT+CIPSERVER=1,5000");  
  80.         ms_delay(2000);
  81.         ESP8266_Set("AT+CIPSTO=0");                                                         //永遠不超時
  82.         ES=1;                                                                                           //允許串口中斷                 
  83.         qj=1;
  84.         zz=1;
  85.         yz=1;
  86.         ht=1;
  87.         LED0=1;
  88.         LED1=1;
  89.         LED2=1;
  90.         while(1)   
  91.         {   
  92.                 if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P'))//MCU接收到的數據為+IPD時進入判斷控制0\1來使小燈亮與滅   
  93.                 {           
  94.                         if((Recive_table[9]=='G')&&(Recive_table[10]=='P'))            
  95.                         {      
  96.                                 if(Recive_table[15]=='0')      
  97.                                 {      
  98.                                         LED0=0;                         //紅燈亮                          
  99.                                 }                                
  100.                                 else
  101.                                 if (Recive_table[15]=='1')      
  102.                                 {              
  103.                                         LED0=1;                         //紅燈滅
  104.                                 }
  105.                                 else
  106.                                 if (Recive_table[15]=='2')      
  107.                                 {              
  108.                     LED1=0;            //黃燈亮           
  109.                                 }
  110.                                 else
  111.                                 if (Recive_table[15]=='3')      
  112.                                 {              
  113.                         LED1=1;                    //黃燈滅
  114.                                 }
  115.                                 else
  116.                                 if (Recive_table[15]=='4')      
  117.                                 {              
  118.                         LED2=0;                       //綠燈亮
  119.                                 }  
  120.                                 else
  121.                                 if (Recive_table[15]=='5')      
  122.                                 {              
  123.                         LED2=1;                       //綠燈滅
  124.                                 }                                                                                                                                                            
  125.                         }  
  126.                 }
  127.           }   
  128. }   

  129. /*********************************************************************  
  130. 名稱:串行通訊中斷  作用:發送或接收結束后進入該函數,對相應的標志位軟件清0,實現模塊對數據正常的收發。  
  131. ********************************************************************/

  132. void Uart_Interrupt() interrupt 4         
  133. {   
  134.         static uchar i=0;  
  135.         if(RI==1)  
  136.         {   
  137.                 RI=0;   
  138.                 Receive=SBUF;                                                        //MCU接收wifi模塊反饋回來的數據      
  139.                 Recive_table[i]=Receive;   
  140.                 if((Recive_table[i]=='\n'))
  141.                 {                     
  142.                         i=0;
  143.                 }   
  144.                 else i++;                                                                                  //遇到換行 重新裝值  
  145.         }   
  146.         else TI=0;   
  147. }  
復制代碼

所有資料51hei提供下載:
50基于單片機WIFI多路遙控開關設計.7z (2.5 MB, 下載次數: 727)

評分

參與人數 2黑幣 +55 收起 理由
mashuiyou + 5 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品亚洲一区二区三区浴池 | 亚洲天堂男人的天堂 | 一二三区视频 | 亚洲精品视频在线 | 午夜精品久久久久久久星辰影院 | 日韩精品成人 | 中文字幕在线电影观看 | 久久久久九九九九 | 狠狠操狠狠操 | 国产一区二区中文字幕 | 日韩一区二区在线免费观看 | 999久久久免费精品国产 | 国产视频第一页 | 亚洲精品888 | 午夜影院在线观看版 | 精品久久av | 国产一区二区三区精品久久久 | 国户精品久久久久久久久久久不卡 | 国产精品视频在线观看 | 午夜专区 | 成人精品一区二区户外勾搭野战 | 久久久久se | 一级一级一级毛片 | 91精品在线播放 | 成人美女免费网站视频 | 国内精品久久久久久久 | 午夜国产 | 综合色播 | 色婷婷av一区二区三区软件 | 婷婷福利视频导航 | 久久狠狠 | 一区日韩 | 日日干夜夜操天天操 | 有码一区 | 日韩天堂av | 一级黄色网页 | 日本成人中文字幕 | 精品日韩一区二区 | 99tv成人影院 | 欧美一级片在线 | 最近中文字幕第一页 |