資料介紹
描述
該項目展示了如何連接到 WiFi 網(wǎng)絡(luò)、打開 Web 瀏覽器、連接到服務(wù)器并從一個簡單的界面控制您的汽車。
UNO R3 + WIFI ESP8266 + CH340G Arduino和WIFI單板
該項目的核心是 Arduino ESP8266 WiFi 開發(fā)板。該板在單一平臺上結(jié)合了 ATMega328 微控制器和 ESP8266 WiFi 芯片,兩者之間具有串行通信。
有關(guān)如何配置和編程該板的詳細說明,請參閱我之前的一篇帖子。
控制流程框圖
下面是一個高級框圖:
流程圖
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)上有很多資源可以解釋所需的步驟。
成品車如下:
1號車
車2
整車電路圖如下:
原理圖
配置上只需要注意幾點:
該車采用并聯(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 訪問。
下面的代碼片段:
?
#includeMDNS.begin("esp8266"); void loop() { MDNS.update(); }
?
一旦客戶端連接到 ESP8266 接入點,Web 瀏覽器就可以使用 URL http://esp8266.local/ 來訪問 ESP8266。更改 begin() 指令中的參數(shù)“esp8266”將更改 URL。
設(shè)置網(wǎng)絡(luò)服務(wù)器的相關(guān)代碼片段如下:
?
#includeESP8266WebServer 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è)置速度值。
完整文件(帶注釋)可以在本文的代碼部分找到。最終頁面如下:
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)所有這些功能,但這將是一個單獨的項目。
?
- 基于WiFi的Arduino網(wǎng)絡(luò)控制方案
- Arduino遙控車 物聯(lián)網(wǎng)控制遙控車方案 5次下載
- 使用Arduino MKR1000通過WiFi進行HID攻擊
- 通過網(wǎng)絡(luò)重置Arduino
- 通過WiFi使用Android設(shè)備控制機器人汽車
- 通過網(wǎng)絡(luò)控制的機器人汽車
- 通過觸摸屏和Arduino控制汽車HVAC
- 藍牙控制的Arduino汽車
- Arduino Micro通過WiFi模塊接收有關(guān)對象的信息
- 鍵盤控制的Arduino汽車
- 從BT到WiFi:創(chuàng)建WiFi控制的Arduino機器人車
- 使用Arduino通過程序控制LED燈
- 串口WiFi模塊實現(xiàn)遠程控制電飯煲的設(shè)計思路分享.pdf 75次下載
- 兼容Arduino 內(nèi)測版Wido WIFI物聯(lián)網(wǎng)節(jié)點控制器的相關(guān)介紹資料下載 0次下載
- 通過WIFI控制寫字臺的方案 15次下載
- 通過Python腳本實現(xiàn)WIFI密碼的自動猜解 2531次閱讀
- 如何使用Python和PinPong庫控制Arduino 718次閱讀
- 基于WIFI網(wǎng)絡(luò)的車間設(shè)備監(jiān)測與控制系統(tǒng)設(shè)計 548次閱讀
- 通過Python腳本實現(xiàn)WIFI密碼的暴力破解 6465次閱讀
- 如何制作一個通過本地WiFi網(wǎng)絡(luò)瀏覽器進行控制的恒溫器 1873次閱讀
- 使用Wii nunchuk手柄連接Arduino控制伺服電機的方法 3697次閱讀
- 如何使用Arduino Nano控制紅綠燈 5001次閱讀
- 如何使用L298N和Arduino板控制直流電機 1w次閱讀
- 如何從網(wǎng)頁控制arduino? 3836次閱讀
- dfrobot以太網(wǎng)絡(luò)擴展板-W5200簡介 1697次閱讀
- arduino如何控制舵機及詳細步驟 16.3w次閱讀
- 遠程控制通訊--基于Arduino + ESP8266控制LED燈 3.9w次閱讀
- arduino連接顯示屏方法詳解 4.7w次閱讀
- 通信網(wǎng)絡(luò)大PK:LTE與WiFi技術(shù)的對比 3762次閱讀
- 結(jié)合WiFi技術(shù)的情境LED燈走俏 1790次閱讀
下載排行
本周
- 1Keysight B1500A 半導(dǎo)體器件分析儀用戶手冊、說明書 (中文)
- 19.00 MB | 4次下載 | 免費
- 2使用TL431設(shè)計電源
- 0.67 MB | 2次下載 | 免費
- 3BT134雙向可控硅手冊
- 1.74 MB | 2次下載 | 1 積分
- 4一種新型高效率的服務(wù)器電源系統(tǒng)
- 0.85 MB | 1次下載 | 1 積分
- 5LabVIEW環(huán)形控件
- 0.01 MB | 1次下載 | 1 積分
- 6PR735,使用UCC28060的600W交錯式PFC轉(zhuǎn)換器
- 540.03KB | 1次下載 | 免費
- 751單片機核心板原理圖
- 0.12 MB | 1次下載 | 5 積分
- 8BP2879DB支持調(diào)光調(diào)滅的非隔離低 PF LED 驅(qū)動器
- 1.44 MB | 1次下載 | 免費
本月
- 1開關(guān)電源設(shè)計原理手冊
- 1.83 MB | 54次下載 | 免費
- 2FS5080E 5V升壓充電兩串鋰電池充電管理IC中文手冊
- 8.45 MB | 23次下載 | 免費
- 3DMT0660數(shù)字萬用表產(chǎn)品說明書
- 0.70 MB | 13次下載 | 免費
- 4UC3842/3/4/5電源管理芯片中文手冊
- 1.75 MB | 12次下載 | 免費
- 5ST7789V2單芯片控制器/驅(qū)動器英文手冊
- 3.07 MB | 11次下載 | 1 積分
- 6TPS54202H降壓轉(zhuǎn)換器評估模塊用戶指南
- 1.02MB | 8次下載 | 免費
- 7STM32F101x8/STM32F101xB手冊
- 1.69 MB | 8次下載 | 1 積分
- 8基于MSP430FR6043的超聲波氣體流量計快速入門指南
- 2.26MB | 7次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多