esp8266無(wú)線小車

項(xiàng)目簡(jiǎn)介
本項(xiàng)目是基于esp8266
實(shí)現(xiàn)的無(wú)線小車控制,核心的原理是通過(guò)js
與esp8266
進(jìn)行websocket
通信,前端頁(yè)面模擬操作搖桿,生成操作數(shù)據(jù),然后通過(guò)websocket
通信將控制數(shù)據(jù)發(fā)送至esp8266
,實(shí)現(xiàn)小車的無(wú)線控制
準(zhǔn)備工作
硬件材料
用到的材料如下:
esp8266開(kāi)發(fā)板
L9110電機(jī)驅(qū)動(dòng)板
雙馬達(dá)小車
電腦 & 手機(jī):有條件的話,
nginx
跑前端頁(yè)面更好充電寶:主要是給開(kāi)發(fā)板工單,如果有其他電源也可以,電流可以稍微高一點(diǎn),不然驅(qū)動(dòng)電機(jī)比較吃力,或者驅(qū)動(dòng)板單獨(dú)供電
接線
本項(xiàng)目的接線非常簡(jiǎn)單,你只需要連接好L9110
的四根控制線即可,當(dāng)然L9110
的電源需要5v
,小了驅(qū)動(dòng)不了電機(jī),節(jié)點(diǎn)線圖我這里就不展示了,對(duì)應(yīng)關(guān)系如下:
序號(hào)esp8266L9110備注1GPIO02 (D4)IA連接電機(jī)的一端2GPIO00 (D3)IB連接電機(jī)的一端3GPIO13 (D7)IIA連接電機(jī)的一端4GPIO12 (D6)IIB連接電機(jī)的一端
電機(jī)的轉(zhuǎn)向,可以根據(jù)實(shí)際測(cè)試結(jié)果調(diào)整接線
代碼
esp8266
首先是esp8266
的代碼,這里我偷了個(gè)懶,直接復(fù)制oled
屏幕的代碼,而且后面考慮將屏幕集成到小車上,所以代碼里面也沒(méi)有刪除:
記得修改wifi
信息
控制端
這里的代碼我就不展開(kāi)講了,只說(shuō)核心的代碼,如果沒(méi)有任何前端基礎(chǔ),只是想控制小車的小伙伴,只需要將index.html
中script
中的ip
和端口換成自己的即可:
192.168.0.100
就是你的esp8266
的ip
,串口監(jiān)視器會(huì)打印,端口代碼默認(rèn)寫(xiě)的是80
,可以根據(jù)自己的需要調(diào)整。
有技術(shù)基礎(chǔ)和條件的小伙伴可以把項(xiàng)目部署起來(lái)跑,沒(méi)條件的小伙伴打開(kāi)index.html
也能操作,如果不知道如何使用nginx
,大家可以試下這個(gè)輕量級(jí)的文件服務(wù)器webd
,服務(wù)器本身只有94kb
,還支持多生態(tài),局域網(wǎng)傳文件也很方便:
https://gwgw.ga/fidx.html#/webd/

頁(yè)面也很簡(jiǎn)潔:

需要注意的是,這個(gè)工具需要簡(jiǎn)單配置用戶名和密碼:


用戶名前面的是權(quán)限,權(quán)限的描述配置文件里面有注釋,感興趣的小伙伴自己研究。需要說(shuō)明的是,服務(wù)器默認(rèn)端口是9212
,所以我們的訪問(wèn)地址是電腦的ip
加9212
端口,之后輸入我們的用戶名和密碼進(jìn)行登錄。
以win
環(huán)境為例,下載之后解壓,配置完之后,直接雙擊webd.exe
雙擊運(yùn)行即可,之后將我們的控制代碼的文件夾phone-control
拖到web
目錄下,之后通過(guò)瀏覽器訪問(wèn)就可以看到我們的頁(yè)面,點(diǎn)擊index.html
進(jìn)行訪問(wèn)即可:


至此,這個(gè)項(xiàng)目就算結(jié)束了,其實(shí)在完成這個(gè)簡(jiǎn)單的示例之后,我是有考慮更高效的webRTC
通信的,奈何js
層面需要nodejs
加持,我覺(jué)得太復(fù)雜,最終放棄了,后面打算試下無(wú)線模塊和esp32
,性能應(yīng)該會(huì)比esp8266
好一點(diǎn)。
好了,今天的內(nèi)容就到這里吧,感謝大家的支持,比心,有疑問(wèn)可以評(píng)論區(qū)溝通喲