当前位置: 首页 > news >正文

【Arduino IDE】安装及开发环境、ESP32库

一、Arduino IDE下载
二、Arduino IDE安装
三、ESP32库
四、Arduino-ESP32库配置
五、新建ESP32-S3N15R8工程文件

乐鑫官网
Arduino官方下载地址
Arduino官方社区
Arduino中文社区

一、Arduino IDE下载

ESP-IDF、MicroPython和Arduino是三种不同的开发框架,各自适用于不同的场景和用户群体,下面我将从用户领域、优缺点等方面来详细阐述它们的区别:

ESP-IDF (Espressif IoT Development Framework)

用户领域
  • 主要面向专业开发者和工程师,特别是那些需要深度定制和优化IoT应用的人。
  • 适合于产品级开发,要求高性能、稳定性和安全性。
优点
  • 提供全面的硬件和软件支持,包括WiFi、蓝牙、安全协议等。
  • 官方维护,文档齐全,更新及时,支持多种高级特性如microROS。
  • 适合产品化,可进行深度定制和优化,满足复杂项目需求。
缺点
  • 学习曲线较陡峭,需要一定的嵌入式开发背景。
  • 资料和教程相对较少,尤其是对于初学者。
  • 工程复杂度较高,不适合快速原型开发。

MicroPython

用户领域
  • 面向希望快速开发原型和小型项目的开发者,特别是喜欢Python语言的用户。
  • 适合教育和研究领域,因其易于学习和使用。
优点
  • 使用Python语法,代码可读性强,易于学习和调试。
  • 轻量级,能够在资源受限的微控制器上运行。
  • 支持实时操作系统特性,如中断和多任务。
缺点
  • 性能和效率可能低于C/C++,尤其是在处理密集型任务时。
  • 库支持和外设驱动可能不如C/C++丰富。
  • 对于大型项目或复杂应用,可能需要更多的资源和优化。

Arduino

用户领域
  • 广泛应用于教育、DIY项目和快速原型设计。
  • 适合电子爱好者、初学者和不需要高度定制的项目。
优点
  • 易于上手,有大量的教程和社区支持。
  • 硬件和软件生态丰富,支持多种微控制器和扩展板。
  • 强大的库支持,简化了硬件交互和复杂功能的实现。
缺点
  • 与ESP-IDF相比,可能缺乏深度的硬件控制和优化。
  • 受限于Arduino IDE,可能不适合大型或复杂项目。
  • 性能可能不是最优,尤其是在处理网络或大量数据时。

结论

选择ESP-IDF、MicroPython还是Arduino主要取决于你的项目需求、个人技能和偏好。如果你需要构建一个高性能、稳定的产品,ESP-IDF可能是最佳选择;如果速度和效率不是首要考虑因素,且你更喜欢Python语言,那么MicroPython是一个很好的选择;而Arduino则非常适合快速原型制作和教育目的。

Arduino官方教程实例

二、Arduino IDE安装

安装过程没有什么特别设置的选项默认PC软件安装过程

加载完成首选项设置

弹出的驱动安装即可

三、ESP32库

Arduino-ESP32库,也称为Arduino core for ESP32,是Espressif Systems为Arduino社区提供的一个开发框架,旨在使ESP32芯片能够兼容Arduino IDE和其广泛的生态系统。这个库允许开发者使用熟悉的Arduino编程语言和IDE来开发基于ESP32的项目。

Arduino-ESP32库的特点:

  1. 兼容性

    • 它使得ESP32芯片可以像其他Arduino兼容板一样使用,这意味着你可以利用Arduino IDE中的所有功能和库。
  2. 硬件抽象层

    • 提供了硬件抽象层,使开发者能够以标准化的方式访问ESP32的硬件资源,如GPIO、ADC、DAC、SPI、I2C、UART等。
  3. 丰富的库支持

    • 包括了Arduino IDE自带的库,同时也支持第三方库的安装和使用,极大地扩展了开发者的工具箱。
  4. 网络功能

    • ESP32内置了WiFi和蓝牙功能,Arduino-ESP32库提供了相应的库来方便地使用这些无线通信功能。
  5. 易于使用

    • 通过简单的安装过程即可在Arduino IDE中使用,降低了开发门槛,使得即使是初学者也能快速上手。
  6. 性能和功能

    • ESP32芯片本身具有双核处理器、高速RAM和大量闪存,提供了比传统Arduino板更高的性能,同时Arduino-ESP32库充分利用了这些硬件资源。

安装和使用Arduino-ESP32库:

  1. 添加ESP32板的支持

    • 在Arduino IDE的“首选项”中,将ESP32的板管理器URL添加到“附加的板管理器URLs”。
  2. 安装库

    • 通过Arduino IDE的“工具”>“板”>“板管理器”,找到并安装ESP32板的库。
  3. 选择ESP32板

    • 在“工具”菜单中选择ESP32板的具体型号。
  4. 开始编程

    • 现在你可以使用Arduino IDE创建、编辑、编译和上传程序到ESP32板上。

Arduino-ESP32库极大地拓展了Arduino平台的能力,不仅保持了Arduino的易用性,还增加了ESP32的强大功能,使之成为物联网(IoT)项目、无线通信和数据采集的理想选择。

四、Arduino-ESP32库配置

资料:
https://pan.baidu.com/s/1A19N218T66hs4PgRgdTqgQ 提取码:ixmr
视频讲义:
https://pan.baidu.com/s/1f77n15_pZbNisYBbO2Dqyw 提取码:x6mj

由于GitHub上下载容易失败推荐离线安装

离线安装

GitHub相关文件

在 GitHub 下载,再安装编译
乐鑫GitHub
arduino-esp32

git branch -a
git checkout esp32-s3-surpport  分支

五、新建ESP32-S3N15R8工程文件

详细说明:

官方参数说明

在Arduino IDE中合理配置ESP32-S3运行参数

ESP32-S3 Arduino工程参数配置

运行ESP32-S3 Arduino工程

  1. 用串口线连接开发板的UART口
  2. IDE上选择对应端口号
  1. 简单编写几行代码
  2. 编译下载
  1. 查看代码运行效果

调用示例代码

相关文章:

【Arduino IDE】安装及开发环境、ESP32库

一、Arduino IDE下载 二、Arduino IDE安装 三、ESP32库 四、Arduino-ESP32库配置 五、新建ESP32-S3N15R8工程文件 乐鑫官网 Arduino官方下载地址 Arduino官方社区 Arduino中文社区 一、Arduino IDE下载 ESP-IDF、MicroPython和Arduino是三种不同的开发框架,各自适…...

【C++开源】GuiLite:超轻量UI框架-入门

开发环境说明 使用visual Studio 2022进行开发 下载源码 从如下的网址进行源码和示例代码的下载: GitHub源码网址为:idea4good/GuiLite示例代码路径为:idea4good/GuiLiteExample使用方法 GuiLite是一个仅有头文件的一个库,使用的时候直接include到自己的UIcode.cpp文件…...

SQL面试题练习 —— 查询每个用户最大连续登录天数

目录 1 题目2 建表语句3 题解 1 题目 查询每个用户最大连续登录天数 样例数据如下 login_log: 2 建表语句 --建表语句 create table if not exists login_log (user_id int comment 用户id,login_time date comment 登录时间 ); --数据插入 INSERT overwrit…...

服务器系统盘存储不够,添加数据盘并挂载(阿里云)

目录 1.获取数据盘设备名称 2.为数据盘创建分区 3.为分区创建文件系统 4.配置开机自动挂载分区 阿里云数据盘挂载说明链接:在Linux系统中初始化小于等于2 TiB的数据盘_云服务器 ECS(ECS)-阿里云帮助中心 1.获取数据盘设备名称 sudo fdisk -lu 运行结果如下所示…...

Visual Studio2022中使用.Net 8 在 Windows 下使用 Worker Service 创建守护进程

Visual Studio2022中使用.Net 8 在 Windows 下创建 Worker Service 1 什么是 .NET Core Worker Service1.1 确认Visual Studio中安装了 ASP.NET和Web开发2 创建 WorkerService项目2.1 新建一个WorkerService项目2.2 项目结构说明3 将应用转换成 Windows 服务3.1 安装Microsoft.…...

HTML5应用的安全防护策略与实践

随着HTML5及其相关技术(如CSS3和JavaScript)的普及,Web应用变得越来越强大和复杂,同时也成为黑客攻击的目标。本文将探讨HTML5应用面临的常见安全威胁,以及如何通过最佳实践和代码示例来增强应用的安全性。 HTML5安全…...

堆叠和集群

堆叠和集群 堆叠/集群:把多条/两台设备通过线缆进行连接,逻辑上组成一台设备,作为应该整体来管 理和转发流量 堆叠和集群的区别 1. 何时设备支持对贴,框式设备支持集群 2. 堆叠可以支持多台,框式只能支持两台 堆…...

【5G Sub-6GHz模块】专为IoT/eMBB应用而设计的RG520NNA、RG520FEB、RG530FNA、RG500LEU 5G模组

推出全新的5G系列模组: RG520NNADB-M28-SGASA RG520NNADA-M20-SGASA RG520FEBDE-M28-TA0AA RG530FNAEA-M28-SGASA RG530FNAEA-M28-TA0AA RG500LEUAA-M28-TA0AA ——明佳达 1、5G RG520N 系列——专为IoT/eMBB应用而设计的LGA封装模块 RG520N 系列是一款专为 IoT…...

云计算监控减少网络安全事件的五种方法

当企业没有对其IT基础设施采取足够的保护措施时,就会发生网络安全事件。网络罪犯利用其漏洞注入恶意软件或提取敏感信息。许多这样的漏洞存在于使用云计算平台进行操作的企业中。 云计算使企业在市场上更具生产力、效率和竞争力。这是因为他们的员工即使不在同一地点…...

java之 junit单元测试案例【经典版】

一 junit单元测试 1.1 单元测试作用 单元测试要满足AIR原则,即 A: automatic 自动化; I: Independent 独立性; R:Repeatable 可重复; 2.单元测试必须使用assert来验证 1.2 案例1 常规单元测试 1.…...

Golang面试题整理(持续更新...)

文章目录 Golang面试题总结一、基础知识1、defer相关2、rune 类型3、context包4、Go 竞态、内存逃逸分析5、Goroutine 和线程的区别6、Go 里面并发安全的数据类型7、Go 中常用的并发模型8、Go 中安全读写共享变量方式9、Go 面向对象是如何实现的10、make 和 new 的区别11、Go 关…...

uni-app:文字竖直排列,并且在父级view中水平竖直对齐

一、效果 二、代码 <template><view class"parent"><text class"child">这是竖直排列的文字</text></view> </template> <script>export default {data() {return {}},methods: {},}; </script> <sty…...

Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?

目录 问题 systemd Docker Service 和 Socket 警告的原因 解决方法 问题 使用如下命令停止 Docker # systemctl stop docker 执行后报的时候报了一个 warning&#xff0c;如下 Warning: Stopping docker.service, but it can still be activated by:docker.socket 这时…...

Git 用法

基本介绍 版本控制工具用处&#xff1a; 备份代码还原协同开发追溯 版本控制工具 1、集中式版本控制工具 版本库是集中存放在中央服务器的&#xff0c;team 里每个人 work 时从中央服务器下载代码&#xff0c;是必须联网才能工作&#xff0c;局域网或互联网。个人修改后然后…...

《昇思25天学习打卡营第20天|GAN图像生成》

生成对抗网络&#xff08;GAN&#xff09;是一种深度学习模型&#xff0c;用于生成逼真的图像。在手写数字识别的任务中&#xff0c;GAN 可以用来生成与真实手写数字相似的图像&#xff0c;以增强模型的训练数据集。GAN 主要由两个部分组成&#xff1a;生成器&#xff08;Gener…...

【字幕】字幕特效入门

前言 最近两周调研了一下字幕特效的底层程序逻辑&#xff0c;因为工作内容的原因&#xff0c;就分享几个自己找的链接具体细节就不分享了&#xff0c;CSDN也是我的个人笔记&#xff0c;只记录一些简单的内容用于后续自己方便查询&#xff0c;顺便帮助一下正在苦苦查阅资料入门…...

Ubuntu 24.04安装Jellyfin媒体服务器图解教程

使用 Jellyfin 等开源软件创建媒体服务器肯定能帮助您管理和跨各种设备传输媒体集合。当你有一个封闭社区时&#xff0c;这尤其有用。 什么是 Jellyfin 媒体服务器&#xff1f; Jellyfin 媒体服务器&#xff0c;顾名思义&#xff0c;是一款开源软件&#xff0c;允许用户使用本…...

css3 中的伪类和伪元素

什么是伪类&#xff0c;什么是伪元素 伪类是用来添加特殊状态的选择器,它们以冒号(:)开头。伪类可以添加到任何现有的选择器上,用来选择处于特定状态的元素。 伪元素是用来选择元素的特定部分的选择器,它们以双冒号(::)开头。伪元素可以创建出在文档树中不存在的元素。 css3 …...

人工智能导论-知识图谱

知识图谱 概述 本章首先介绍“知识与知识表示”的概念&#xff0c;然后介绍“谓词逻辑、产生式、框架、语义网络”等当前人工智能中应用广泛的知识表示方法。然后&#xff0c;简要介绍知识图谱&#xff0c;为后面介绍推理方法、专家系统等奠定基础。 概述 - 起源&#xff08…...

LabVIEW液压数据采集测试系统

液压系统是装载机的重要组成部分&#xff0c;通过液压传动和控制实现各项作业功能&#xff0c;如提升、倾斜、转向等。液压系统的性能直接影响装载机的作业效率和稳定性。为了保证装载机液压系统的正常运行和优化设计&#xff0c;需要对其进行数据采集和测试。本文介绍了一套基…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...