电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>通过WiFi网络控制Arduino汽车

通过WiFi网络控制Arduino汽车

2023-02-03 | zip | 0.46 MB | 次下载 | 免费

资料介绍

描述

该项目展示了如何连接到 WiFi 网络、打开 Web 浏览器、连接到服务器并从一个简单的界面控制您的汽车。

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

该项目的核心是 Arduino ESP8266 WiFi 开发板。该板在单一平台上结合了 ATMega328 微控制器和 ESP8266 WiFi 芯片,两者之间具有串行通信。

有关如何配置和编程该板的详细说明,请参阅我之前的一篇帖子。

控制流程框图

下面是一个高级框图:

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

流程图

ESP8266 能够配置为软接入点并启动自己的无线网络。用户设备连接到该网络,然后可以使用 ESP8266 提供的网页通过 ESP8266 和 ATMega328 向汽车发送命令。

这篇文章的其余部分将详细介绍这些步骤。

第一——汽车

该项目使用两轮汽车。这些汽车的套件可从多个来源获得。这是高级物料清单:

两轮驱动套件,包括电机、底盘、各种螺丝和螺母、车轮和车轮编码器。

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

L298N电机驱动桥板

2 x HC-020K 编码器模块

4 x ICR16340 锂离子电池和电池座

切换开/关开关

无线天线

连接线

本文不包括如何制造汽车的描述;互联网上有很多资源可以解释所需的步骤。

成品车如下:

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

原理图

配置上只需要注意几点:

该车采用并联/串联配置的四节 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 访问。

下面的代码片段:

 

#include 

MDNS.begin("esp8266");

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

 

一旦客户端连接到 ESP8266 接入点,Web 浏览器就可以使用 URL http://esp8266.local/ 来访问 ESP8266。更改 begin() 指令中的参数“esp8266”将更改 URL。

设置网络服务器的相关代码片段如下:

 

#include 

ESP8266WebServer 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 请求,该请求将用于设置速度值。

完整文件(带注释)可以在本文的代码部分找到。最终页面如下:

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

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 板来实现所有这些功能,但这将是一个单独的项目。

 

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1使用单片机实现七人表决器的程序和仿真资料免费下载
  2. 2.96 MB   |  44次下载  |  免费
  3. 2Keysight B1500A 半导体器件分析仪用户手册、说明书 (中文)
  4. 19.00 MB  |  4次下载  |  免费
  5. 3BT134双向可控硅手册
  6. 1.74 MB   |  2次下载  |  1 积分
  7. 4一种新型高效率的服务器电源系统
  8. 0.85 MB   |  1次下载  |  1 积分
  9. 5PR735,使用UCC28060的600W交错式PFC转换器
  10. 540.03KB   |  1次下载  |  免费
  11. 6WTS-100(1.1) UWB 信标定位系统 彩页
  12. 540.48 KB  |  1次下载  |  免费
  13. 7DV2004S1/ES1/HS1快速充电开发系统
  14. 2.08MB   |  1次下载  |  免费
  15. 8MATLAB绘图合集
  16. 27.12 MB   |  1次下载  |  5 积分

本月

  1. 1使用单片机实现七人表决器的程序和仿真资料免费下载
  2. 2.96 MB   |  44次下载  |  免费
  3. 2UC3842/3/4/5电源管理芯片中文手册
  4. 1.75 MB   |  15次下载  |  免费
  5. 3DMT0660数字万用表产品说明书
  6. 0.70 MB   |  13次下载  |  免费
  7. 4ST7789V2单芯片控制器/驱动器英文手册
  8. 3.07 MB   |  11次下载  |  1 积分
  9. 5TPS54202H降压转换器评估模块用户指南
  10. 1.02MB   |  8次下载  |  免费
  11. 6STM32F101x8/STM32F101xB手册
  12. 1.69 MB   |  8次下载  |  1 积分
  13. 7TPS92682-Q1帧定义和示例
  14. 891.71KB   |  6次下载  |  免费
  15. 8HY12P65/HY12P66数字万用表芯片规格书
  16. 0.69 MB   |  6次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935119次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420061次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233084次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191367次下载  |  10 积分
  9. 5十天学会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 积分