资料介绍
描述
该项目展示了如何连接到 WiFi 网络、打开 Web 浏览器、连接到服务器并从一个简单的界面控制您的汽车。
UNO R3 + WIFI ESP8266 + CH340G Arduino和WIFI单板
该项目的核心是 Arduino ESP8266 WiFi 开发板。该板在单一平台上结合了 ATMega328 微控制器和 ESP8266 WiFi 芯片,两者之间具有串行通信。
有关如何配置和编程该板的详细说明,请参阅我之前的一篇帖子。
控制流程框图
下面是一个高级框图:
流程图
ESP8266 能够配置为软接入点并启动自己的无线网络。用户设备连接到该网络,然后可以使用 ESP8266 提供的网页通过 ESP8266 和 ATMega328 向汽车发送命令。
这篇文章的其余部分将详细介绍这些步骤。
第一——汽车
该项目使用两轮汽车。这些汽车的套件可从多个来源获得。这是高级物料清单:
两轮驱动套件,包括电机、底盘、各种螺丝和螺母、车轮和车轮编码器。
UNO R3 + WIFI ESP8266 + CH340G Arduino和WIFI单板
L298N电机驱动桥板
2 x HC-020K 编码器模块
4 x ICR16340 锂离子电池和电池座
切换开/关开关
无线天线
连接线
本文不包括如何制造汽车的描述;互联网上有很多资源可以解释所需的步骤。
成品车如下:
1号车
车2
整车电路图如下:
原理图
配置上只需要注意几点:
该车采用并联/串联配置的四节 ICR16340 700 mAh 锂离子电池。这些串联的两个电池在充满电时提供大约 8 V 的电压,这足以驱动电机和并联的 wifi/控制器电池可能会出现问题(您可以获得循环电流),作为替代方案,ICR16340 电池的容量为 2800 mAh版本——其中两个串联应该足以为汽车提供动力。
电机控制由 L298N 桥驱动器模块执行。同样,有大量资源可以解释它们的运行方式以及如何连接电机和控件。
该电路使用数字引脚 5 和 6 将 PWM 输出到 L298N 板以控制电机速度。它们连接到 L298N 板的 ENa 和 ENb。引脚 4、7、8 和 9 用于打开和关闭电机。
该电路包括两个 HC-020K 编码器模块。这些未在代码中专门使用,但可用于提供速度或距离反馈。
根据您的具体接线方式,可能需要调换电机引线以获得一致的方向。此外,HC-020K 编码器模块必须与软件中的正确电机配对(如果使用)。这可以通过交换中断 2 和 3 或调整软件来实现。
ESP8266 作为接入点和 Web 服务器
ESP8266 可配置为无线接入点和网络服务器。此外,它还可以设置为DNS 服务器。这允许客户端使用本地 URL 访问 Web 服务器。
在对 ESP8266 进行编程之前,您必须确保您使用的 Arduino IDE 已配置为执行此类编程。Internet 上有许多文章解释了如何执行此操作。搜索“来自 Arduino IDE 的程序 ESP8266”将提供许多结果。
基本步骤如下:
在 File → Preferences 中,将 url 添加到 Additional Boards Manager:http ://arduino.esp8266.com/stable/package_esp8266com_index.json
在 Tools → Boards → Boards Manager 下,搜索 ESP8266 并安装最新版本的“ESP8266 by ESP8266 Community”
完成此操作后,您应该在 Tools→Board 下为 ESP8266 Boards 提供一个选项。选择通用 ESP8266 模块。
用于设置 Wifi、Web 服务器和 DNS 的相关 Arduino 库是:
ESP8266WiFi.h
ESP8266WebServer.h
ESP8266mDNS.h
这些是作为设置 IDE 以对上述 ESP8266 进行编程的一部分安装的。
以下是将 ESP8266 配置为软接入点的相关代码片段。
#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 设置为接入点,客户端可以连接到它,但不会发生其他任何事情。首先,让我们配置 mDNS 服务器以允许更轻松的 URL 访问。
下面的代码片段:
#includeMDNS.begin("esp8266"); void loop() { MDNS.update(); }
一旦客户端连接到 ESP8266 接入点,Web 浏览器就可以使用 URL http://esp8266.local/ 来访问 ESP8266。更改 begin() 指令中的参数“esp8266”将更改 URL。
设置网络服务器的相关代码片段如下:
#includeESP8266WebServer server(80); void setup() { server.onNotFound(handlerRoutine); server.on(“URL”, handlerRoutine); server.begin(); } void loop() { server.handleClient(); }
其中 handlerRoutine 是一个子例程,当从客户端收到请求时执行各种操作。
ESP8266 板载文件系统
ESP8266 的另一个特点是它有一个板载文件系统,串行外设接口闪存文件系统 (SPIFFS),可用于存储文件。在我们的例子中,我们可以使用它来存储提供给连接的客户端的 html 文件。此功能的相关库是:
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
这两个链接都显示了安装插件后如何使用文件系统上传器。
现在——HTML 代码
一旦将 ESP8266 设置为 Web 服务器,相关的 html 页面必须在连接后提供给客户端。按照惯例,此文件标记为 index.html。要理解此文件,需要了解 html 代码。
一些解释:
该文件定义了一个页面,由四个按钮(FWD、RIGHT、LEFT、BACK)和一个速度滑块组成。
按下按钮会导致它改变颜色并向 ESP8266 网络服务器发送 GET 请求
Web 服务器将处理 GET 请求并使用它与 ATMega328 通信以控制汽车
更改速度滑块将启动 POST 请求,该请求将用于设置速度值。
完整文件(带注释)可以在本文的代码部分找到。最终页面如下:
ESP8266与ATMega328通信
如前所示,ESP8266 和 ATMega328 之间的通信是通过串口进行的。要启用此通信,板载 DIP 开关必须设置如下:
将 dip 开关设置为模式 4(SW1 和 SW2 打开,所有其他关闭)
ESP8266 将 1 到 8 之间的单个字符发送到 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”的字符串发送。然后代码从字符串中去除 s 并进行字符串到整数的转换以设置电机速度。
把它们放在一起
以下是构建完整项目的简要说明:
造车
使用 Arduino IDE 中的 Boards Manager 选择 Generic ESP8266 模块
将 index.html 文件上传到 ESP8266(DIP 开关 5、6、7 上所有其他关闭),然后重置处理器
上传ESP8266程序
断开电源并将 DIP 开关设置为 ATMega328(所有其他的 DIP 开关 3、4 关闭)
上传Arduino程序(在Boards manager中选择Arduino UNO后)
断开电源并将 DIP 开关设置为内部通信(DIP 开关 1、2 在所有其他关闭)
启动汽车
将平板电脑、智能手机或笔记本电脑无线连接到“ESP8266Network”
从连接的平板电脑、智能手机或笔记本电脑,打开 URL http://esp8266.local/
使用界面驾驶汽车
最后的话
这个项目汇集了一些不同的技能。希望它具有挑战性。
可以使用像 Node MCU 这样的单个 ESP8266 板来实现所有这些功能,但这将是一个单独的项目。
- 基于WiFi的Arduino网络控制方案
- Arduino遥控车 物联网控制遥控车方案 5次下载
- 使用Arduino MKR1000通过WiFi进行HID攻击
- 通过网络重置Arduino
- 通过WiFi使用Android设备控制机器人汽车
- 通过网络控制的机器人汽车
- 通过触摸屏和Arduino控制汽车HVAC
- 蓝牙控制的Arduino汽车
- Arduino Micro通过WiFi模块接收有关对象的信息
- 键盘控制的Arduino汽车
- 从BT到WiFi:创建WiFi控制的Arduino机器人车
- 使用Arduino通过程序控制LED灯
- 串口WiFi模块实现远程控制电饭煲的设计思路分享.pdf 75次下载
- 兼容Arduino 内测版Wido WIFI物联网节点控制器的相关介绍资料下载 0次下载
- 通过WIFI控制写字台的方案 15次下载
- 通过Python脚本实现WIFI密码的自动猜解 2531次阅读
- 如何使用Python和PinPong库控制Arduino 718次阅读
- 基于WIFI网络的车间设备监测与控制系统设计 548次阅读
- 通过Python脚本实现WIFI密码的暴力破解 6465次阅读
- 如何制作一个通过本地WiFi网络浏览器进行控制的恒温器 1873次阅读
- 使用Wii nunchuk手柄连接Arduino控制伺服电机的方法 3697次阅读
- 如何使用Arduino Nano控制红绿灯 5001次阅读
- 如何使用L298N和Arduino板控制直流电机 1w次阅读
- 如何从网页控制arduino? 3836次阅读
- dfrobot以太网络扩展板-W5200简介 1697次阅读
- arduino如何控制舵机及详细步骤 16.3w次阅读
- 远程控制通讯--基于Arduino + ESP8266控制LED灯 3.9w次阅读
- arduino连接显示屏方法详解 4.7w次阅读
- 通信网络大PK:LTE与WiFi技术的对比 3762次阅读
- 结合WiFi技术的情境LED灯走俏 1790次阅读
下载排行
本周
- 1使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2Keysight B1500A 半导体器件分析仪用户手册、说明书 (中文)
- 19.00 MB | 4次下载 | 免费
- 3BT134双向可控硅手册
- 1.74 MB | 2次下载 | 1 积分
- 4一种新型高效率的服务器电源系统
- 0.85 MB | 1次下载 | 1 积分
- 5PR735,使用UCC28060的600W交错式PFC转换器
- 540.03KB | 1次下载 | 免费
- 6WTS-100(1.1) UWB 信标定位系统 彩页
- 540.48 KB | 1次下载 | 免费
- 7DV2004S1/ES1/HS1快速充电开发系统
- 2.08MB | 1次下载 | 免费
- 8MATLAB绘图合集
- 27.12 MB | 1次下载 | 5 积分
本月
- 1使用单片机实现七人表决器的程序和仿真资料免费下载
- 2.96 MB | 44次下载 | 免费
- 2UC3842/3/4/5电源管理芯片中文手册
- 1.75 MB | 15次下载 | 免费
- 3DMT0660数字万用表产品说明书
- 0.70 MB | 13次下载 | 免费
- 4ST7789V2单芯片控制器/驱动器英文手册
- 3.07 MB | 11次下载 | 1 积分
- 5TPS54202H降压转换器评估模块用户指南
- 1.02MB | 8次下载 | 免费
- 6STM32F101x8/STM32F101xB手册
- 1.69 MB | 8次下载 | 1 积分
- 7TPS92682-Q1帧定义和示例
- 891.71KB | 6次下载 | 免费
- 8HY12P65/HY12P66数字万用表芯片规格书
- 0.69 MB | 6次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935119次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191367次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183335次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73807次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65987次下载 | 10 积分
评论
查看更多