RM新时代网站-首页

電子發(fā)燒友App

硬聲App

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

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

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

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

2023-02-03 | zip | 0.46 MB | 次下載 | 免費

資料介紹

描述

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

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

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

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

控制流程框圖

下面是一個高級框圖:

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

流程圖

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

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

第一——汽車

該項目使用兩輪汽車。這些汽車的套件可從多個來源獲得。這是高級物料清單:

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

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

L298N電機驅(qū)動橋板

2 x HC-020K 編碼器模塊

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

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

無線天線

連接線

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

成品車如下:

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

1號車

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

原理圖

配置上只需要注意幾點:

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

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

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

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

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

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

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

在對 ESP8266 進行編程之前,您必須確保您使用的 Arduino IDE 已配置為執(zhí)行此類編程。Internet 上有許多文章解釋了如何執(zhí)行此操作。搜索“來自 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 提供一個選項。選擇通用 ESP8266 模塊。

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

ESP8266WiFi.h

ESP8266WebServer.h

ESP8266mDNS.h

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

以下是將 ESP8266 配置為軟接入點的相關(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
{

?

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

下面的代碼片段:

?

#include 

MDNS.begin("esp8266");

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

?

一旦客戶端連接到 ESP8266 接入點,Web 瀏覽器就可以使用 URL http://esp8266.local/ 來訪問 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 是一個子例程,當(dāng)從客戶端收到請求時執(zhí)行各種操作。

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

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

FS.h

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

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

然后按照以下任一鏈接中的說明進行操作:

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

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

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

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

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

一些解釋:

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

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

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

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

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

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

ESP8266與ATMega328通信

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

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

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

?

// 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();

?

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

把它們放在一起

以下是構(gòu)建完整項目的簡要說明:

造車

使用 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)閉)

啟動汽車

將平板電腦、智能手機或筆記本電腦無線連接到“ESP8266Network”

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

使用界面駕駛汽車

最后的話

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

可以使用像 Node MCU 這樣的單個 ESP8266 板來實現(xiàn)所有這些功能,但這將是一個單獨的項目。

?

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

評論

查看更多

下載排行

本周

  1. 1Keysight B1500A 半導(dǎo)體器件分析儀用戶手冊、說明書 (中文)
  2. 19.00 MB  |  4次下載  |  免費
  3. 2使用TL431設(shè)計電源
  4. 0.67 MB   |  2次下載  |  免費
  5. 3BT134雙向可控硅手冊
  6. 1.74 MB   |  2次下載  |  1 積分
  7. 4一種新型高效率的服務(wù)器電源系統(tǒng)
  8. 0.85 MB   |  1次下載  |  1 積分
  9. 5LabVIEW環(huán)形控件
  10. 0.01 MB   |  1次下載  |  1 積分
  11. 6PR735,使用UCC28060的600W交錯式PFC轉(zhuǎn)換器
  12. 540.03KB   |  1次下載  |  免費
  13. 751單片機核心板原理圖
  14. 0.12 MB   |  1次下載  |  5 積分
  15. 8BP2879DB支持調(diào)光調(diào)滅的非隔離低 PF LED 驅(qū)動器
  16. 1.44 MB  |  1次下載  |  免費

本月

  1. 1開關(guān)電源設(shè)計原理手冊
  2. 1.83 MB   |  54次下載  |  免費
  3. 2FS5080E 5V升壓充電兩串鋰電池充電管理IC中文手冊
  4. 8.45 MB   |  23次下載  |  免費
  5. 3DMT0660數(shù)字萬用表產(chǎn)品說明書
  6. 0.70 MB   |  13次下載  |  免費
  7. 4UC3842/3/4/5電源管理芯片中文手冊
  8. 1.75 MB   |  12次下載  |  免費
  9. 5ST7789V2單芯片控制器/驅(qū)動器英文手冊
  10. 3.07 MB   |  11次下載  |  1 積分
  11. 6TPS54202H降壓轉(zhuǎn)換器評估模塊用戶指南
  12. 1.02MB   |  8次下載  |  免費
  13. 7STM32F101x8/STM32F101xB手冊
  14. 1.69 MB   |  8次下載  |  1 積分
  15. 8基于MSP430FR6043的超聲波氣體流量計快速入門指南
  16. 2.26MB   |  7次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935119次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73807次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65987次下載  |  10 積分
RM新时代网站-首页