電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>通過(guò)WiFi網(wǎng)絡(luò)控制Arduino汽車

通過(guò)WiFi網(wǎng)絡(luò)控制Arduino汽車

2023-02-03 | zip | 0.46 MB | 次下載 | 免費(fèi)

資料介紹

描述

該項(xiàng)目展示了如何連接到 WiFi 網(wǎng)絡(luò)、打開 Web 瀏覽器、連接到服務(wù)器并從一個(gè)簡(jiǎn)單的界面控制您的汽車。

UNO R3 + WIFI ESP8266 + CH340G Arduino和WIFI單板

該項(xiàng)目的核心是 Arduino ESP8266 WiFi 開發(fā)板。該板在單一平臺(tái)上結(jié)合了 ATMega328 微控制器和 ESP8266 WiFi 芯片,兩者之間具有串行通信。

有關(guān)如何配置和編程該板的詳細(xì)說(shuō)明,請(qǐng)參閱我之前的一篇帖子。

控制流程框圖

下面是一個(gè)高級(jí)框圖:

blockflowdiagram_bzUtPAh7mM.png?auto=compress%2Cformat&w=740&h=555&fit=max

流程圖

ESP8266 能夠配置為軟接入點(diǎn)并啟動(dòng)自己的無(wú)線網(wǎng)絡(luò)。用戶設(shè)備連接到該網(wǎng)絡(luò),然后可以使用 ESP8266 提供的網(wǎng)頁(yè)通過(guò) ESP8266 和 ATMega328 向汽車發(fā)送命令。

這篇文章的其余部分將詳細(xì)介紹這些步驟。

第一——汽車

該項(xiàng)目使用兩輪汽車。這些汽車的套件可從多個(gè)來(lái)源獲得。這是高級(jí)物料清單:

兩輪驅(qū)動(dòng)套件,包括電機(jī)、底盤、各種螺絲和螺母、車輪和車輪編碼器。

UNO R3 + WIFI ESP8266 + CH340G Arduino和WIFI單板

L298N電機(jī)驅(qū)動(dòng)橋板

2 x HC-020K 編碼器模塊

4 x ICR16340 鋰離子電池和電池座

切換開/關(guān)開關(guān)

無(wú)線天線

連接線

本文不包括如何制造汽車的描述;互聯(lián)網(wǎng)上有很多資源可以解釋所需的步驟。

成品車如下:

img_3641_4IliUhwScq.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

1號(hào)車

img_3643_8OTJsTlsBu.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

車2

整車電路圖如下:

schematicdiagram_Gy4WnIxRhh.png?auto=compress%2Cformat&w=740&h=555&fit=max

原理圖

配置上只需要注意幾點(diǎn):

該車采用并聯(lián)/串聯(lián)配置的四節(jié) ICR16340 700 mAh 鋰離子電池。這些串聯(lián)的兩個(gè)電池在充滿電時(shí)提供大約 8 V 的電壓,這足以驅(qū)動(dòng)電機(jī)和并聯(lián)的 wifi/控制器電池可能會(huì)出現(xiàn)問題(您可以獲得循環(huán)電流),作為替代方案,ICR16340 電池的容量為 2800 mAh版本——其中兩個(gè)串聯(lián)應(yīng)該足以為汽車提供動(dòng)力。

電機(jī)控制由 L298N 橋驅(qū)動(dòng)器模塊執(zhí)行。同樣,有大量資源可以解釋它們的運(yùn)行方式以及如何連接電機(jī)和控件。

該電路使用數(shù)字引腳 5 和 6 將 PWM 輸出到 L298N 板以控制電機(jī)速度。它們連接到 L298N 板的 ENa 和 ENb。引腳 4、7、8 和 9 用于打開和關(guān)閉電機(jī)。

該電路包括兩個(gè) HC-020K 編碼器模塊。這些未在代碼中專門使用,但可用于提供速度或距離反饋。

根據(jù)您的具體接線方式,可能需要調(diào)換電機(jī)引線以獲得一致的方向。此外,HC-020K 編碼器模塊必須與軟件中的正確電機(jī)配對(duì)(如果使用)。這可以通過(guò)交換中斷 2 和 3 或調(diào)整軟件來(lái)實(shí)現(xiàn)。

ESP8266 作為接入點(diǎn)和 Web 服務(wù)器

ESP8266 可配置為無(wú)線接入點(diǎn)和網(wǎng)絡(luò)服務(wù)器。此外,它還可以設(shè)置為DNS 服務(wù)器。這允許客戶端使用本地 URL 訪問 Web 服務(wù)器。

在對(duì) ESP8266 進(jìn)行編程之前,您必須確保您使用的 Arduino IDE 已配置為執(zhí)行此類編程。Internet 上有許多文章解釋了如何執(zhí)行此操作。搜索“來(lái)自 Arduino IDE 的程序 ESP8266”將提供許多結(jié)果。

基本步驟如下:

在 File → Preferences 中,將 url 添加到 Additional Boards Manager:http ://arduino.esp8266.com/stable/package_esp8266com_index.json

在 Tools → Boards → Boards Manager 下,搜索 ESP8266 并安裝最新版本的“ESP8266 by ESP8266 Community”

完成此操作后,您應(yīng)該在 Tools→Board 下為 ESP8266 Boards 提供一個(gè)選項(xiàng)。選擇通用 ESP8266 模塊。

用于設(shè)置 Wifi、Web 服務(wù)器和 DNS 的相關(guān) Arduino 庫(kù)是:

ESP8266WiFi.h

ESP8266WebServer.h

ESP8266mDNS.h

這些是作為設(shè)置 IDE 以對(duì)上述 ESP8266 進(jìn)行編程的一部分安裝的。

以下是將 ESP8266 配置為軟接入點(diǎn)的相關(guān)代碼片段。

?

#include 
const char *ssid = "ESP8266Network"; // The name of the Wi-Fi network that will be created
const char *password = "1234567890";   // Password for WiFi network. Must be more than 8 characters

void setup() {
  WiFi.softAP(ssid, password); // Start the access point
{

?

上面的代碼會(huì)將 ESP8266 設(shè)置為接入點(diǎn),客戶端可以連接到它,但不會(huì)發(fā)生其他任何事情。首先,讓我們配置 mDNS 服務(wù)器以允許更輕松的 URL 訪問。

下面的代碼片段:

?

#include 

MDNS.begin("esp8266");

void loop() {
  MDNS.update();
}

?

一旦客戶端連接到 ESP8266 接入點(diǎn),Web 瀏覽器就可以使用 URL http://esp8266.local/ 來(lái)訪問 ESP8266。更改 begin() 指令中的參數(shù)“esp8266”將更改 URL。

設(shè)置網(wǎng)絡(luò)服務(wù)器的相關(guān)代碼片段如下:

?

#include 

ESP8266WebServer server(80);

void setup() {
  server.onNotFound(handlerRoutine);
  server.on(“URL”, handlerRoutine);
  server.begin();
}

void loop() {
  server.handleClient();
}

?

其中 handlerRoutine 是一個(gè)子例程,當(dāng)從客戶端收到請(qǐng)求時(shí)執(zhí)行各種操作。

ESP8266 板載文件系統(tǒng)

ESP8266 的另一個(gè)特點(diǎn)是它有一個(gè)板載文件系統(tǒng),串行外設(shè)接口閃存文件系統(tǒng) (SPIFFS),可用于存儲(chǔ)文件。在我們的例子中,我們可以使用它來(lái)存儲(chǔ)提供給連接的客戶端的 html 文件。此功能的相關(guān)庫(kù)是:

FS.h

要在 Arduino IDE 中啟用此功能,需要一個(gè)插件:Filesystem uploader。

首先,確保安裝了最新的 Arduino IDE,并且如前所述,您有用于 Arduino IDE 的 ESP8266 插件。

然后按照以下任一鏈接中的說(shuō)明進(jìn)行操作:

https://randomnerdtutorials.com/install-esp8266-filesystem-uploader-arduino-ide/

https://github.com/esp8266/arduino-esp8266fs-plugin

這兩個(gè)鏈接都顯示了安裝插件后如何使用文件系統(tǒng)上傳器。

現(xiàn)在——HTML 代碼

一旦將 ESP8266 設(shè)置為 Web 服務(wù)器,相關(guān)的 html 頁(yè)面必須在連接后提供給客戶端。按照慣例,此文件標(biāo)記為 index.html。要理解此文件,需要了解 html 代碼。

一些解釋:

該文件定義了一個(gè)頁(yè)面,由四個(gè)按鈕(FWD、RIGHT、LEFT、BACK)和一個(gè)速度滑塊組成。

按下按鈕會(huì)導(dǎo)致它改變顏色并向 ESP8266 網(wǎng)絡(luò)服務(wù)器發(fā)送 GET 請(qǐng)求

Web 服務(wù)器將處理 GET 請(qǐng)求并使用它與 ATMega328 通信以控制汽車

更改速度滑塊將啟動(dòng) POST 請(qǐng)求,該請(qǐng)求將用于設(shè)置速度值。

完整文件(帶注釋)可以在本文的代碼部分找到。最終頁(yè)面如下:

htmlpage_qyEt6qTHNG.png?auto=compress%2Cformat&w=740&h=555&fit=max

ESP8266與ATMega328通信

如前所示,ESP8266 和 ATMega328 之間的通信是通過(guò)串口進(jìn)行的。要啟用此通信,板載 DIP 開關(guān)必須設(shè)置如下:

將 dip 開關(guān)設(shè)置為模式 4(SW1 和 SW2 打開,所有其他關(guān)閉)

ESP8266 將 1 到 8 之間的單個(gè)字符發(fā)送到 ATMega328 以指定電機(jī)動(dòng)作。完整代碼如下:

?

// FWD Activate
    case '1':
    forwardOn();    
    break;
// FWD Stop
    case '2':
    motorsOff();
    break;
// LEFT Activate
    case '3':
    leftOn();
    break;
// LEFT Stop
    case '4':
    motorsOff();
    break;
// RIGHT Activate
    case '5':
    rightOn();
    break;
//RIGHT Stop
    case '6':
    motorsOff();
    break;
// BACK Activate
    case '7':
    backOn();
    break;
// BACK Stop
    case '8':
    motorsOff();

?

速度值作為第一個(gè)字符為“s”的字符串發(fā)送。然后代碼從字符串中去除 s 并進(jìn)行字符串到整數(shù)的轉(zhuǎn)換以設(shè)置電機(jī)速度。

把它們放在一起

以下是構(gòu)建完整項(xiàng)目的簡(jiǎn)要說(shuō)明:

造車

使用 Arduino IDE 中的 Boards Manager 選擇 Generic ESP8266 模塊

將 index.html 文件上傳到 ESP8266(DIP 開關(guān) 5、6、7 上所有其他關(guān)閉),然后重置處理器

上傳ESP8266程序

斷開電源并將 DIP 開關(guān)設(shè)置為 ATMega328(所有其他的 DIP 開關(guān) 3、4 關(guān)閉)

上傳Arduino程序(在Boards manager中選擇Arduino UNO后)

斷開電源并將 DIP 開關(guān)設(shè)置為內(nèi)部通信(DIP 開關(guān) 1、2 在所有其他關(guān)閉)

啟動(dòng)汽車

將平板電腦、智能手機(jī)或筆記本電腦無(wú)線連接到“ESP8266Network”

從連接的平板電腦、智能手機(jī)或筆記本電腦,打開 URL http://esp8266.local/

使用界面駕駛汽車

最后的話

這個(gè)項(xiàng)目匯集了一些不同的技能。希望它具有挑戰(zhàn)性。

可以使用像 Node MCU 這樣的單個(gè) ESP8266 板來(lái)實(shí)現(xiàn)所有這些功能,但這將是一個(gè)單獨(dú)的項(xiàng)目。

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)