文章目錄
前言 本文編輯:孫韶輝,如有侵權,請聯系V18149072101
一、文章內容: 二、實作思路 三、實作教程 1:ESP8266和PC串口助手連接 2.下載串口助手,連接ESP8266 3、配置ESP8266(通過PC機下發配置指令)
4. 51單片機代替PC串口助手發送指令 5. 手機控制單片機執行任務
前言
本文編輯:孫韶輝,如有侵權,請聯系V18149072101
一、文章內容:
Esp8266和51單片機連接,實作無線控制燈開關及其他動作
二、實作思路
<style>#mermaid-svg-lAlZsJrxvNdDr1fe .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .label text{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .node rect,#mermaid-svg-lAlZsJrxvNdDr1fe .node circle,#mermaid-svg-lAlZsJrxvNdDr1fe .node ellipse,#mermaid-svg-lAlZsJrxvNdDr1fe .node polygon,#mermaid-svg-lAlZsJrxvNdDr1fe .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-lAlZsJrxvNdDr1fe .node .label{text-align:center;fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .node.clickable{cursor:pointer}#mermaid-svg-lAlZsJrxvNdDr1fe .arrowheadPath{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-lAlZsJrxvNdDr1fe .flowchart-link{stroke:#333;fill:none}#mermaid-svg-lAlZsJrxvNdDr1fe .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-lAlZsJrxvNdDr1fe .edgeLabel rect{opacity:0.9}#mermaid-svg-lAlZsJrxvNdDr1fe .edgeLabel span{color:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-lAlZsJrxvNdDr1fe .cluster text{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-lAlZsJrxvNdDr1fe .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-lAlZsJrxvNdDr1fe text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-lAlZsJrxvNdDr1fe .actor-line{stroke:grey}#mermaid-svg-lAlZsJrxvNdDr1fe .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-lAlZsJrxvNdDr1fe #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .sequenceNumber{fill:#fff}#mermaid-svg-lAlZsJrxvNdDr1fe #sequencenumber{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe #crosshead path{fill:#333;stroke:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .messageText{fill:#333;stroke:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-lAlZsJrxvNdDr1fe .labelText,#mermaid-svg-lAlZsJrxvNdDr1fe .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-lAlZsJrxvNdDr1fe .loopText,#mermaid-svg-lAlZsJrxvNdDr1fe .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-lAlZsJrxvNdDr1fe .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-lAlZsJrxvNdDr1fe .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-lAlZsJrxvNdDr1fe .noteText,#mermaid-svg-lAlZsJrxvNdDr1fe .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-lAlZsJrxvNdDr1fe .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-lAlZsJrxvNdDr1fe .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-lAlZsJrxvNdDr1fe .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-lAlZsJrxvNdDr1fe .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe .section{stroke:none;opacity:0.2}#mermaid-svg-lAlZsJrxvNdDr1fe .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-lAlZsJrxvNdDr1fe .section2{fill:#fff400}#mermaid-svg-lAlZsJrxvNdDr1fe .section1,#mermaid-svg-lAlZsJrxvNdDr1fe .section3{fill:#fff;opacity:0.2}#mermaid-svg-lAlZsJrxvNdDr1fe .sectionTitle0{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .sectionTitle1{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .sectionTitle2{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .sectionTitle3{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-lAlZsJrxvNdDr1fe .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe .grid path{stroke-width:0}#mermaid-svg-lAlZsJrxvNdDr1fe .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-lAlZsJrxvNdDr1fe .task{stroke-width:2}#mermaid-svg-lAlZsJrxvNdDr1fe .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe .taskText:not([font-size]){font-size:11px}#mermaid-svg-lAlZsJrxvNdDr1fe .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-lAlZsJrxvNdDr1fe .task.clickable{cursor:pointer}#mermaid-svg-lAlZsJrxvNdDr1fe .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-lAlZsJrxvNdDr1fe .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-lAlZsJrxvNdDr1fe .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-lAlZsJrxvNdDr1fe .taskText0,#mermaid-svg-lAlZsJrxvNdDr1fe .taskText1,#mermaid-svg-lAlZsJrxvNdDr1fe .taskText2,#mermaid-svg-lAlZsJrxvNdDr1fe .taskText3{fill:#fff}#mermaid-svg-lAlZsJrxvNdDr1fe .task0,#mermaid-svg-lAlZsJrxvNdDr1fe .task1,#mermaid-svg-lAlZsJrxvNdDr1fe .task2,#mermaid-svg-lAlZsJrxvNdDr1fe .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-lAlZsJrxvNdDr1fe .taskTextOutside0,#mermaid-svg-lAlZsJrxvNdDr1fe .taskTextOutside2{fill:#000}#mermaid-svg-lAlZsJrxvNdDr1fe .taskTextOutside1,#mermaid-svg-lAlZsJrxvNdDr1fe .taskTextOutside3{fill:#000}#mermaid-svg-lAlZsJrxvNdDr1fe .active0,#mermaid-svg-lAlZsJrxvNdDr1fe .active1,#mermaid-svg-lAlZsJrxvNdDr1fe .active2,#mermaid-svg-lAlZsJrxvNdDr1fe .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-lAlZsJrxvNdDr1fe .activeText0,#mermaid-svg-lAlZsJrxvNdDr1fe .activeText1,#mermaid-svg-lAlZsJrxvNdDr1fe .activeText2,#mermaid-svg-lAlZsJrxvNdDr1fe .activeText3{fill:#000 !important}#mermaid-svg-lAlZsJrxvNdDr1fe .done0,#mermaid-svg-lAlZsJrxvNdDr1fe .done1,#mermaid-svg-lAlZsJrxvNdDr1fe .done2,#mermaid-svg-lAlZsJrxvNdDr1fe .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-lAlZsJrxvNdDr1fe .doneText0,#mermaid-svg-lAlZsJrxvNdDr1fe .doneText1,#mermaid-svg-lAlZsJrxvNdDr1fe .doneText2,#mermaid-svg-lAlZsJrxvNdDr1fe .doneText3{fill:#000 !important}#mermaid-svg-lAlZsJrxvNdDr1fe .crit0,#mermaid-svg-lAlZsJrxvNdDr1fe .crit1,#mermaid-svg-lAlZsJrxvNdDr1fe .crit2,#mermaid-svg-lAlZsJrxvNdDr1fe .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-lAlZsJrxvNdDr1fe .activeCrit0,#mermaid-svg-lAlZsJrxvNdDr1fe .activeCrit1,#mermaid-svg-lAlZsJrxvNdDr1fe .activeCrit2,#mermaid-svg-lAlZsJrxvNdDr1fe .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-lAlZsJrxvNdDr1fe .doneCrit0,#mermaid-svg-lAlZsJrxvNdDr1fe .doneCrit1,#mermaid-svg-lAlZsJrxvNdDr1fe .doneCrit2,#mermaid-svg-lAlZsJrxvNdDr1fe .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-lAlZsJrxvNdDr1fe .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-lAlZsJrxvNdDr1fe .milestoneText{font-style:italic}#mermaid-svg-lAlZsJrxvNdDr1fe .doneCritText0,#mermaid-svg-lAlZsJrxvNdDr1fe .doneCritText1,#mermaid-svg-lAlZsJrxvNdDr1fe .doneCritText2,#mermaid-svg-lAlZsJrxvNdDr1fe .doneCritText3{fill:#000 !important}#mermaid-svg-lAlZsJrxvNdDr1fe .activeCritText0,#mermaid-svg-lAlZsJrxvNdDr1fe .activeCritText1,#mermaid-svg-lAlZsJrxvNdDr1fe .activeCritText2,#mermaid-svg-lAlZsJrxvNdDr1fe .activeCritText3{fill:#000 !important}#mermaid-svg-lAlZsJrxvNdDr1fe .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-lAlZsJrxvNdDr1fe g.classGroup text .title{font-weight:bolder}#mermaid-svg-lAlZsJrxvNdDr1fe g.clickable{cursor:pointer}#mermaid-svg-lAlZsJrxvNdDr1fe g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-lAlZsJrxvNdDr1fe g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-lAlZsJrxvNdDr1fe .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-lAlZsJrxvNdDr1fe .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-lAlZsJrxvNdDr1fe .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-lAlZsJrxvNdDr1fe .dashed-line{stroke-dasharray:3}#mermaid-svg-lAlZsJrxvNdDr1fe #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lAlZsJrxvNdDr1fe #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lAlZsJrxvNdDr1fe #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-lAlZsJrxvNdDr1fe #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-lAlZsJrxvNdDr1fe #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lAlZsJrxvNdDr1fe #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lAlZsJrxvNdDr1fe #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lAlZsJrxvNdDr1fe #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-lAlZsJrxvNdDr1fe .commit-id,#mermaid-svg-lAlZsJrxvNdDr1fe .commit-msg,#mermaid-svg-lAlZsJrxvNdDr1fe .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-lAlZsJrxvNdDr1fe g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-lAlZsJrxvNdDr1fe g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-lAlZsJrxvNdDr1fe g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-lAlZsJrxvNdDr1fe .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-lAlZsJrxvNdDr1fe .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-lAlZsJrxvNdDr1fe .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-lAlZsJrxvNdDr1fe .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-lAlZsJrxvNdDr1fe .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-lAlZsJrxvNdDr1fe .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-lAlZsJrxvNdDr1fe .edgeLabel text{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-lAlZsJrxvNdDr1fe .node circle.state-start{fill:black;stroke:black}#mermaid-svg-lAlZsJrxvNdDr1fe .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-lAlZsJrxvNdDr1fe #statediagram-barbEnd{fill:#9370db}#mermaid-svg-lAlZsJrxvNdDr1fe .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-lAlZsJrxvNdDr1fe .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-lAlZsJrxvNdDr1fe .statediagram-state .divider{stroke:#9370db}#mermaid-svg-lAlZsJrxvNdDr1fe .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-lAlZsJrxvNdDr1fe .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-lAlZsJrxvNdDr1fe .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-lAlZsJrxvNdDr1fe .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-lAlZsJrxvNdDr1fe .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-lAlZsJrxvNdDr1fe .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-lAlZsJrxvNdDr1fe .note-edge{stroke-dasharray:5}#mermaid-svg-lAlZsJrxvNdDr1fe .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-lAlZsJrxvNdDr1fe .error-icon{fill:#522}#mermaid-svg-lAlZsJrxvNdDr1fe .error-text{fill:#522;stroke:#522}#mermaid-svg-lAlZsJrxvNdDr1fe .edge-thickness-normal{stroke-width:2px}#mermaid-svg-lAlZsJrxvNdDr1fe .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-lAlZsJrxvNdDr1fe .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-lAlZsJrxvNdDr1fe .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-lAlZsJrxvNdDr1fe .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-lAlZsJrxvNdDr1fe .marker{fill:#333}#mermaid-svg-lAlZsJrxvNdDr1fe .marker.cross{stroke:#333}
:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}</style>
<style>#mermaid-svg-lAlZsJrxvNdDr1fe {
color: rgba(0, 0, 0, 0.75);
font: ;
}</style>
TXD RXD
下發AT指令建立熱點
TXD RXD下發AT指令
通過wifi下發指令
TXDRXD
第一步
Esp8266
PC串口助手
Esp8266
第二步
51單片機代替PC串口助手
Esp8266建立熱點
手機WIFI連接
第三步
手機WIFI連接
Esp8266
51單片機
三、實作教程
1:ESP8266和PC串口助手連接
把ESP8266模塊的VCC, GND, CH_PD, UTXD, URXD 口分別接USB轉TTL模塊的3.3v, 地, 3.3v, RXD, TXD,不可接到5V,
2.下載串口助手,連接ESP8266
串口除錯助手下載鏈接
提取碼:3tz5 1:將串口助手波特率調節為115200,這是ESP8266初始狀態波特率, 2:打開串口 3:在串口輸入指令“AT”發送,回傳OK,說明連接成功,如果亂碼,查看波特率是否真確
3、配置ESP8266(通過PC機下發配置指令)
3.1 指令介紹
AT+CIOBAUD=X 改模塊的波特率, X 為要改成的波特率 AT+CIOBAUD=X AT+CWMODE=X(設定作業模式指令, X 可以是 1、 2、 3,具體如下: 1: Station 模式 //作為客戶端 2: AP 模式 //作為熱點 3: Station+AP 模式 //混合模式 Station 可理解為讓 wifi 模塊去連接路由器或熱點,此時模塊作為客戶端 AP 模式可理解為模塊本身是一個熱點,手機或電腦可以連接這個熱點,此時模塊作為服務器, 這里用的是 AP 模式 AT+RST(重啟指令,設定新的作業模式后需重啟才能生效, 發送完這條指令后再發送其它指令可能會顯示串口無效,需要退出串口除錯助手再重新進入 ) AT+CWSAP?(可以查看當前 AP 模式下模塊熱點的具體資訊) AT+CIFSR( 查看 IP 地址) AT+CIPMUX=1 AT+CIPSERVER=1, X( 1 表示開啟服務器, X 為自己設定的埠號) AT+CWLAP //顯示無線串列 AT+CWJAP=“WIFI名稱” ,“密碼” 注意:6和7指令掉電要重新配置
3.2 演示
發送‘AT’,回傳OK; 發送‘AT+CWMODE=2’,設定模式為熱點AP模式 AT+CWSAP=“ESP8266”,“0123456789”,11,3//建立自身WIFI熱點 發送‘AT+RST’;,回復OK,熱點建立完畢 AT+CIPMUX=1 AT+CIPSERVER=1,6666//配置埠號 這兩條掉電需要重新配置 AT+CIFSR //獲取IP地址 現在熱點已經建立完畢,可以用手機WIF搜索到ESP8266,并且連接 ,安卓手機端可以下載 TCP連接軟體, 打開軟體的界面 將剛查詢到的IP地址還有自己設定的埠號輸入進去,就可以與手機連接,這里我的單片機不在身邊,就不做演示 軟體界面,這些東西可以自定義設定 將ESP8266波特率設定和51波特率相同,因為51用的是12M晶振,所以這里設定為4800, AT+CIOBAUD=X,X為需要改的波特率, 發送AT+RST,重啟設備, 然后將PC串口助手波特率設定為剛才改的波特率, 發送AT,如果回傳OK,設定完成
這里不要高興太早,我們只是手工完成了單片機該做的事,要完成自動連接,就必須往51單片機里寫入我們剛才的流程,讓他代替手動,第一步完成
4. 51單片機代替PC串口助手發送指令
現在51單片機波特率和ESP8266波特率已經相同,可以通訊了,然后就來寫程式,代替手動,這里只寫入關鍵程式
//51發送指令程式建立熱點
uchar code table[ ] = "AT+CIPMUX=1\r\n" ; //游標移置行首,變行
uchar code table1[ ] = "AT+CIPSERVER=1,6666\r\n" ; //波特率為6666
/*-----------------------------------------------------*/
void usart ( ) //串口初始化函式// 波特率4800
{
TMOD = 0x20 ;
TH1 = 0xF3 ;
TL1 = 0xf3 ;
PCON = 0x00 ;
TR1 = 1 ;
SCON = 0x50 ;
EA = 1 ;
ES = 1 ;
}
/*-----------------------------------------*/
void Esp8266Init ( )
{
uchar a= 0 , b= 0 ;
while ( table[ a] != '\0' )
{
SBUF= table[ a] ;
while ( ! TI) ;
TI= 0 ;
a++ ;
}
shortdelay ( 500 ) ;
shortdelay ( 500 ) ;
shortdelay ( 500 ) ;
shortdelay ( 500 ) ;
shortdelay ( 500 ) ; //這里用了多個延時,測驗,如果太快了,熱點無法建立
while ( table1[ b] != '\0' )
{
SBUF= table1[ b] ;
while ( ! TI) ;
TI= 0 ;
b++ ;
}
}
到此處51已經控制8266熱點建立完畢,可以連接WIFI了
5. 手機控制單片機執行任務
到這里,手機已經和8266連接,現在只需要寫入單片機控制命令和服務程式就可以了
//串口終端來臨,單片機接受指令,并存入緩沖區
void usart_ ( ) interrupt 4
{
temp= SBUF; //取出接收到的資料
RI= 0 ; //清除接收中斷標志位
if ( temp== ':' || i> 0 )
{
receive[ i] = temp;
i++ ;
if ( temp== '\n' )
{
i= 0 ;
}
}
}
//控制服務程式
while ( 1 )
{
if ( receive[ 1 ] == '1' )
{
index++ ;
if ( index>= 99 )
index= 0 ;
}
if ( receive[ 1 ] == '0' )
{
index-- ;
if ( index>= 0 )
index= 99 ;
}
if ( receive[ 1 ] == '3' )
{ //收到1點亮所有LED
P0= 0XFF ;
}
if ( receive[ 1 ] == '4' ) //否則熄滅所有LED
{
P0= 0X00 ;
}
}
Motor_dec ( ) ; //電機轉動方向程式順時針
Motor_add ( ) ; //逆時針
}
}
將前后程式寫入51,就可以完成控制,第三步完成, 本內容只為新手能快速入門,如有錯誤,請指正!
【手機控制51單片機-嗶哩嗶哩】https://b23.tv/GlFwyj