【ArduinoOTA无线(OTA)更新的EASY指南】

【ArduinoOTA无线(OTA)更新的EASY指南】

  • 1. 前言
  • 2. 了解 ESP32 的 ArduinoOTA
  • 3. 无线更新案例
  • 4. ArduinoOTA入门
  • 5. 安装必备组件
  • 6. 设置硬件
  • 7. ESP32 OTA 的最低代码
  • 8. 按照我们的流程学习Arduino编程➜
  • 9. 这对OTA来说非常重要
  • 10. 通过无线方式将草图上传到 ESP32 Arduino 开发板
  • 11. OTA还有更多吗?
  • 12. 尝试自己的挑战
  • 13. 结语

1. 前言

无线 (OTA) 更新允许您将代码上传到您的电子项目,而无需将其物理连接到计算机。

在本课中,我们将引导您使用 ArduinoOTA 库将草图无线上传到 ESP32 开发板。

在这里插入图片描述

本指南将重点介绍实际获得无线 (OTA) 更新所需的最低限度的东西。

您将了解使 OTA 超级简单 (ArduinoOTA) 所需的关键 Arduino 库,此外,我们还将详细说明您需要使用的确切功能!

电缆?我们要去的地方,我们不需要电缆!

2. 了解 ESP32 的 ArduinoOTA

在我们深入探讨实际细节之前,让我们先强调一下 ArduinoOTA 是什么,以及它是如何专门针对 ESP32 工作的。

ArduinoOTA(Over-The-Air)是一个轻量级库,可通过 WiFi 连接将草图无线上传到基于 ESP32 的 Arduino 开发板。

通过在Arduino项目中使用此库,您可以远程更新草图,无需USB电缆或任何其他有线连接,并在无线部署项目时提供更大的灵活性。

3. 无线更新案例

使用 ESP32 进行 OTA 编程的优势很多。

它允许您将基于 ESP32 的项目部署在难以到达的位置,或者在安装后将它们嵌入到无法访问的设备中。

此外,OTA 编程可以快速部署更新,从而节省宝贵的时间和精力。

4. ArduinoOTA入门

要踏上 ArduinoOTA 之旅,您需要安装所需的库并设置硬件以实现无缝过程。

在继续操作之前,请确保您拥有 ESP32 开发板、Arduino IDE 和稳定的 WiFi 连接。

一切准备就绪后,让我们继续进行下一个Arduino IDE设置。

5. 安装必备组件

开始安装 ArduinoOTA 库并为 ESP32 开发板设置 Arduino IDE(如果您尚未这样做)。

首先,我们来安装 ESP32 开发板包:

  • 打开Arduino IDE。
  • 导航到侧边栏中的 Board Manager。
  • 搜索“ESP32”,选择乐鑫的 esp32。
  1. Arduino IDE:下载并安装 Arduino IDE;
  2. ESP32 开发板库:在 Arduino IDE 中添加 ESP32 支持;
    参考博客:【esp32c3配置arduino IDE教程】
    为安装过程留出一些时间,具体时间可能因您的互联网连接而异。
    在这里插入图片描述

CP2102驱动端口配置,去官网下载:https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads
在这里插入图片描述
大家根据自己的系统类型选择安装,通过设备管理器查看匹配端口
在这里插入图片描述

  1. 完成后,您将在开发板管理器中找到 ESP32 开发板选项。
    现在,让我们安装 ArduinoOTA 库。

  2. 转到Arduino IDE中的库管理器。

  3. 搜索 ArduinoOTA,然后安装库。
    在这里插入图片描述
    安装成功如下
    在这里插入图片描述

有了先决条件,我们就可以设置硬件并建立初始连接了,如下一节所述。

6. 设置硬件

安装 ESP32 开发板后,使用 USB 数据线将其连接到计算机。确保开发板已通电并被Arduino IDE检测到。

等等,什么?我们还需要物理连接?!

此时,您可能想知道是否仍然需要物理连接。答案很简单:虽然初始配置需要物理连接,但后续的无线更新可以通过本地网络无线实现。

现在我们已经介绍了硬件设置,让我们继续讨论激动人心的部分——为 OTA 功能配置草图。

7. ESP32 OTA 的最低代码

以下是使用 ESP32 启用无线更新的近乎绝对的最小代码。

我们将暂时浏览此代码的每一行。

#include <WiFi.h>        // For connecting ESP32 to WiFi
#include <ArduinoOTA.h>  // For enabling over-the-air updatesconst char* ssid = "Your SSID";  // Change to your WiFi Network name
const char* password = "You Password";  // Change to your passwordvoid setup() {WiFi.begin(ssid, password);  // Connect to WiFi - defaults to WiFi Station mode// Ensure WiFi is connectedwhile (WiFi.status() != WL_CONNECTED) {delay(500);}ArduinoOTA.begin();  // Starts OTA
}void loop() {ArduinoOTA.handle();  // Handles a code update request// All loop you're code goes here.
}

在这里插入图片描述

8. 按照我们的流程学习Arduino编程➜

了解更多信息

OTA 代码的逐行代码演练
在这个草图中,我们做的第一件事是包含必要的库:

#include <ArduinoOTA.h>  // For enabling over-the-air updates
#include <WiFi.h>        // For connecting ESP32 to WiFiconst char* ssid = "Your SSID";         // Change to your WiFi Network name
const char* password = "Your Password";  // Change to your password

为了使用无线更新,您需要连接到 WiFi,因此需要 WiFi.h 库、ssid 和密码字符常量。

下一段代码在 setup() 函数中:

void setup() {WiFi.begin(ssid, password);  // Connect to WiFi - defaults to WiFi Station mode// Ensure WiFi is connectedwhile (WiFi.status() != WL_CONNECTED) {delay(500);}ArduinoOTA.begin();  // Starts OTA
}

我们要做的第一件事是使用我们的凭据启动 wifi 连接,然后等待以确保我们已连接。您可能会跳过等待部分 - OTA不需要等待,但通常的做法是确保您确实连接到WiFi,然后再继续该程序。

设置的最后一部分是使用 ArduinoOTA.begin() 函数开始无线功能。

循环甚至更简单:

void loop() {ArduinoOTA.handle();  // Handles a code update request// All loop your code goes here.
}

你看我们在循环中只有一行代码,ArduinoOTA.handle()。这是将处理传入的无线更新请求的函数。

在此代码之后,您可以编写自己的代码来执行您希望 ESP32 执行的任何操作,例如读取传感器、闪烁 LED、接管世界等…

这就是为 ESP32 设置 OTA 所需的全部代码!但是有一件非常重要的事情要记住…

9. 这对OTA来说非常重要

每次使用此 OTA 流程将代码上传到开发板时,您的新草图必须至少包含上面显示的最低 OTA 代码——否则您的新草图将无法使用 OTA!

这是交易…这个 OTA 代码不是作为 ESP32 的“后台”进程运行的特殊东西。这不是您在 ESP32 中“启用”的东西。

代码本身就是使 OTA 成为可能的原因。如果您以无线方式上传到 ESP32 的程序中不包含此最低 OTA 代码,则在使用 USB 数据线将其物理连接到计算机并上传包含最低 OTS 代码的新草图之前,您无法对该开发板进行无线更新。

10. 通过无线方式将草图上传到 ESP32 Arduino 开发板

那么,如何将新草图上传到运行了 OTA 代码的电路板呢?

事实证明,这非常简单。(一定要爱上Arduino!

首先,您需要使用一台连接到与您的 ESP32 相同的 WiFi 网络的计算机(还记得我们执行 WiFi.begin() 的代码吗?您的计算机需要连接到同一个 WiFi 网络)。

接下来,只需打开Arduino IDE(我们正在使用Arduino IDE 2.x进行演示,但Arduino IDE 1.x也可以正常工作。

现在,转到“工具>端口”,您应该会在“网络端口”下看到一个新端口。
在这里插入图片描述

这个网络端口代表与运行 OTA 代码的 ESP32 的连接,现在只需选择端口,您就可以将代码上传到它,就像它连接到 USB 一样!

请记住在您的新草图中包含最低限度的 OTA 代码 😀

Arduino IDE下拉列表,选择网络端口进行无线更新
如果您使用的是 Arduino IDE 1.x,则可能需要关闭并重新打开 IDE 才能看到列出的网络端口。

在Arduino IDE 2.x中选择网络端口的另一种方法是只需单击左上角“验证”和“上传”按钮旁边的板和端口下拉列表即可。您应该会看到网络端口前面有一个 WiFi 符号。

Arduino IDE 2.x 开发板和端口下拉列表显示列出的网络端口。该端口来自使用 ArduinoOTA 的板

11. OTA还有更多吗?

我们在这里演示的代码是让 OTA 正常工作所需的绝对最低限度。

我想让它保持裸露的骨架,以确保涵盖基础知识。但是,如果您想查看更多功能,请查看 Arduino IDE 中提供的 ArduinoOTA 示例。

为此,请转到 File>Examples>ArduinoOTA>BasicOTA。当你打开草图时,你很快就会意识到还有很多事情要做——但这些都是好东西,如果你有兴趣,绝对值得探索。

12. 尝试自己的挑战

读一堂课是一回事,完全靠自己做这件事又是另一回事。尝试其中的几个挑战,看看这是否已经击中了家。

创建一个新的草图,并自己写出 OTA 的最小代码。上传此…你能看到你的网络端口吗?
以及连接到其中一个 ESP32 引脚的简单 LED 电路。现在修改您的最小 OTA 草图,使循环中的 LED 闪烁。上传此新代码…您看到 LED 闪烁吗?

#include <WiFi.h>        // For connecting ESP32 to WiFi
#include <ArduinoOTA.h>  // For enabling over-the-air updates
#define LED_BUILTIN 2
const char* ssid = "J09 502";  // Change to your WiFi Network name
const char* password = "qwertyuiop111";  // Change to your password
int i = 0;
void setup() {WiFi.begin(ssid, password);  // Connect to WiFi - defaults to WiFi Station modepinMode(LED_BUILTIN, OUTPUT);// Ensure WiFi is connectedwhile (WiFi.status() != WL_CONNECTED) {delay(500);}Serial.begin(9600);ArduinoOTA.begin();  // Starts OTA
}void loop() {ArduinoOTA.handle();  // Handles a code update requestdigitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)delay(1000);                      // wait for a seconddigitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOWdelay(1000); Serial.println(i++);// All loop you're code goes here.
}

在这里插入图片描述
在这里插入图片描述
上传成功
在这里插入图片描述
切换端口,打印计数,并且闪烁LED端口GPIO02

在这里插入图片描述

通过调整 LED 闪烁的延迟时间再次修改草图。上传此新代码 - 您能直观地确

13. 结语

🥳🥳🥳现在,我们讨论了使用 Arduino ArduinoOTA 库和 Arduino IDE 以无线方式将草图上传到 ESP32 开发板。🛹🛹🛹从而实现对外部世界进行感知,充分认识这个有机与无机的环境,🥳🥳🥳科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣
希望这篇文章对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言讨论。

参考文献:
【esp32c3配置arduino IDE教程】

The EASY Guide To Over-The-Air (OTA) Updates With ArduinoOTA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/241091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

携手河南恩坤德,共创养殖新篇章

在这个充满机遇与挑战的时代&#xff0c;养殖业正在经历一场前所未有的变革。作为养殖户&#xff0c;您需要一个能够与您共同应对变革、共创未来的合作伙伴。河南恩坤德农业正是这样一个值得信赖的伙伴&#xff0c;我们携手共创养殖新篇章。 河南恩坤德农业以客户需求为导向&am…

Ai图片处理

Ai也可以直接导入PS文件&#xff0c;只不过需要进行一个相关的选择&#xff0c;一般来说是将图层转化为对象 第二个为图层拼合为单个图像&#xff08;不常用&#xff09; 第三个则是将隐藏的图片也进行显示 如果你觉得图片的信息的过少好想插入其他的图片&#xff0c;可以选择…

【mongoose】 Model.create() no longer accepts a callback 报错解决

在最新版的 mongoose 操作 MongoDB 数据库的时候&#xff0c;当我们插入一条数据时候&#xff0c;会报错 &#xff1a;Model.create() no longer accepts a callback&#xff0c;看了很多文章都说是&#xff0c;版本太高&#xff0c;都妥协选择了降低回旧版本&#xff0c;但我就…

消息队列之关于如何实现延时队列

一、延时队列的应用 1.1 什么是延时队列&#xff1f; 顾名思义&#xff1a;首先它要具有队列的特性&#xff0c;再给它附加一个延迟消费队列消息的功能&#xff0c;也就是说可以指定队列中的消息在哪个时间点被消费。 延时队列在项目中的应用还是比较多的&#xff0c;尤其像…

【matlab】绘制竖状单组渐变柱状图

【matlab】绘制竖状单组渐变柱状图 % matlab绘制渐变柱状图 clear;clc;close all; x1:100; a[]; for i1:length(x) if mod(i,2)0 i-i; end a[a i]; end close all; b0.8; for nm3:69 cmapload([‘D:\m…

机器学习笔记 - Swish激活函数的定义和优势

一、Swish激活函数简述 首先,Swish 是像 ReLU、sigmoid 和 tanh 一样的非线性函数,使神经网络能够对输入和输出之间的复杂关系进行建模。非线性函数对于深度学习的工作至关重要,因为它们能够捕获和表示复杂的模式。 与 ReLU 等其他常用激活函数相比,Swish 具有独特的形状。…

C# 判断两个时间段是否重叠

public static bool IsOverlap(DateTime startTime1, DateTime endTime1, DateTime startTime2, DateTime endTime2){// 判断两个时间段是否有重叠return !(endTime1 < startTime2 || startTime1 > endTime2);//根据德摩根定律&#xff0c;等效为&#xff1a;endTime1 &g…

leetcode 268. 丢失的数字(优质解法)

链接&#xff1a;268. 丢失的数字 代码: class Solution {public int missingNumber(int[] nums) {int result0;for(int i0;i<nums.length;i){result^i;}for(int i0;i<nums.length;i){result^nums[i];}return result;} } 题解&#xff1a; 本题是比较简单的题&#xff…

天文观测与计算机技术:粉丝的视角

天文观测与计算机技术&#xff1a;粉丝的视角 在浩瀚无垠的宇宙中&#xff0c;每一颗星星都像是神秘的密码&#xff0c;等待我们去破译。作为天文观测的粉丝&#xff0c;我深知每一个美丽的星图背后都离不开计算机技术的支持。在这篇文章中&#xff0c;我将分享我对天文观测与…

ei论文会被scopus检索吗

scopus数据库能检索的专业范围是比较广泛的&#xff0c;涵盖了医学&#xff0c;地球环境科学&#xff0c;化学&#xff0c;数学&#xff0c;工程学&#xff0c;物理&#xff0c;生物科学等领域&#xff0c;也收录了很多会议论文&#xff0c;那么ei论文被其检索吗?其实严格说来…

最小二乘法简介

最小二乘法简介 1、背景描述2、最小二乘法2.1、最小二乘准则2.2、最小二乘法 3、最小二乘法与线性回归3.1、最小二乘法与线性回归3.2、最小二乘法与最大似然估计 4、正态分布&#xff08;高斯分布&#xff09; 1、背景描述 在工程应用中&#xff0c;我们通常会用一组观测数据去…

基于javaWeb的高校后勤报修系统的设计与实现论文

基于JavaWeb的高校后勤报修系统的设计与实现 摘 要 当下&#xff0c;正处于信息化的时代&#xff0c;许多行业顺应时代的变化&#xff0c;结合使用计算机技术向数字化、信息化建设迈进。以前学校对于后勤报修信息的管理和控制&#xff0c;采用人工登记的方式保存相关数据&…

如何查看内存卡使用记录-查看的设备有:U盘、移动硬盘、MP3、SD卡等-供大家学习研究参考

主要功能 USB Viewer&#xff08;USB移动存储设备使用记录查看器&#xff09;可用于查看本机的USB移动存储设备使用记录。可查看的设备有&#xff1a;U盘、移动硬盘、MP3、SD卡……等。   可用于兵器、航空、航天、政府、军队等对保密要求较高的单位&#xff0c;可在计算机保…

快手ID商品详情API:电商的新机遇

快手ID商品详情API&#xff1a;电商的新机遇 随着互联网的普及和科技的飞速发展&#xff0c;短视频已经成为人们日常生活中不可或缺的一部分。作为国内领先的短视频平台&#xff0c;快手一直致力于为用户提供优质的内容和服务。近年来&#xff0c;快手推出了ID商品详情API&…

Jmeter实现性能测试--高频率(高吞吐量)

高频率场景通常涉及系统需要在极短时间内处理大量请求或事件。这些场景可能要求系统在短时间内执行多次操作&#xff0c;例如高频率的数据更新、传感器数据采集、金融交易、实时监控等。以下是一些高频率场景的示例&#xff1a; 金融交易&#xff1a; 高频交易系统需要在极短时…

银河麒麟v10 二进制安装包 安装mysql 8.35

银河麒麟v10 二进制安装包 安装mysql 8.35 1、卸载mariadb2、下载Mysql安装包3、安装Mysql 8.353.1、安装依赖包3.2、安装Mysql3.3、安装后配置 1、卸载mariadb 由于银河麒麟v10系统默认安装了mariadb 会与Mysql相冲突&#xff0c;因此首先需要卸载系统自带的mariadb 查看系统…

一个简单的获取显示器长宽和显示器分辨的代码

最近在做大屏显示&#xff0c;在现显示的时候有些显示器是不规则的&#xff0c;投到大屏上显示效果不好&#xff0c;可以直接获取显示器的分辨率&#xff0c;本地调整好&#xff0c;再直接部署。 <!DOCTYPE html> <html lang"en"> <head><meta …

Java LocalDateTime转Json报错处理

在项目中LocalDateTime 进行json转换时&#xff0c;抛出序列化异常&#xff0c;查找解决方案&#xff0c;记录下来&#xff0c;方便备查。 报错信息 Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type java.time.LocalDateT…

HarmonyOS的装饰器之BuilderParam 理解

BuilderParam 装饰器 使用时间&#xff1a;当定义了一个子组件&#xff0c;并且子组件的build()中有一个布局在不同的父组件&#xff0c;实现效果不一样的时候&#xff0c;可以在子组件中用这个BuilderParam装饰器&#xff0c; 在父组件用Builder 装饰器进行实现&#xff0c;然…

IDEA——IDEA中文件内容对比功能的使用,如何快速定位看文件内容是否产生变化!!!

文件内容对比 一、对比磁盘中的某一文件二、直接对比两个文件 总结 本篇文章介绍一下如何在IDEA中对比两个文件的内容是否相同。 一、对比磁盘中的某一文件 选中一个文件&#xff0c;右键->点击Compare With 选择要对比的文件即可 二、直接对比两个文件 同时选中两个文…