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

Ubuntu:Arduino IDE 开发环境配置【保姆级】

物联网开发学习笔记——目录索引

本章主要介绍在Ubuntu系统搭建Arduino IDE 开发环境,windows系统请移步:Windows:Arduino IDE 开发环境配置【保姆级】

参考官网:Arduino - Home

有关更多详细信息,请参阅 Arduino IDE 2.0 文档。Arduino IDE 是开源的,其源代码托管在GitHub上。

我本人大部分时间都是直接使用Ubuntu系统,如您不想直接安装ubuntu系统,请先参考使用VirtualBox安装Ubuntu系统【保姆级】。

工欲善其事必先利其器,下面开始Ubuntu系统Arduino IDE 开发环境配置之路。

备注:此文档使用的Ubuntu系统为Ubuntu 20.04 LTS

一、Arduino IDE 下载

点击【SOFTWATE】

点击【Linux】软件版本下载

点击【JUST DOWNLOAD】下载

考虑到国内访问比较慢,我已经把软件上传到百度网盘

链接:百度网盘 请输入提取码
提取码:test  目录:IOT-IDE -> Arduino-IDE -> linux

文件:arduino-ide_2.2.1_Linux_64bit.zip  和 arduino-ide_2.2.1_Linux_64bit.AppImage

二、Arduino IDE 安装

有两种方式:

1. 使用 arduino-ide_2.2.1_Linux_64bit.zip 安装

先解压:

$ unzip arduino-ide_2.2.1_Linux_64bit.zip

执行:./arduino-ide

$ cd arduino-ide_2.2.1_Linux_64bit
$ ./arduino-ide

 启动Arduino-IDE, 在这个界面,请耐心等待

启动完成,进入如下界面:

2. 使用arduino-ide_2.2.1_Linux_64bit.AppImage安装

给arduino-ide_2.2.1_Linux_64bit.AppImage文件可执行权限

$ chmod a+x arduino-ide_2.2.1_Linux_64bit.AppImage

然后直接执行./arduino-ide_2.2.1_Linux_64bit.AppImage

 ./arduino-ide_2.2.1_Linux_64bit.AppImage

在如下窗口,点击【Agree】 

3. 其他arduino版本安装方法

注意:其他版本安装方式可能会有一些不一样,如arduino-1.8.19-linux64.tar.xz

1. xz -d xxx.tar.xz 解压成 xxx.tar 格式文件
$ xz -d arduino-1.8.19-linux64.tar.xz2. 然后再 tar -xvf xxx.tar 解压文件
$ tar -xvf arduino-1.8.19-linux64.tar

解压后

1. 进入arduino-1.8.19/
$ cd arduino-1.8.19/2. 执行./install.sh 安装
$ $ sudo ./install.sh

安装完成后,直接命令行输入arduino运行

$ arduino 

运行界面:
 

4. 语言配置,可以根据自己喜好配置。

三、Arduino IDE 中安装开发板

这部分和

从 1.6.4 开始,Arduino 允许使用 Boards Manager 安装第三方平台软件包。

这个小结介绍在Arduino IDE中添加开发板,我目前手上有esp8266和esp32开发板,所有我就已添加esp8266/esp32开发板为例,进行详细的介绍。

1. 安装esp8266开发板

参考:GitHub - esp8266/Arduino:Arduino 的ESP8266核心

首先介绍esp8266开发板的安装,打开Arduino IDE “首选项”

英文:点击【File】-> 【Preferences】

中文:点击【文件】-> 【首选项】

在Arduino IDE的“首选项”对话框中找到“其他开发板管理地址” 

英文:点击【Additional boards manager URLs】

中文:点击【其他开发板管理地址

将以下网址复制并且黏贴到到Additional boards manager URLs”/“其他开发板管理地址” 栏中,并点击OK

http://arduino.esp8266.com/stable/package_esp8266com_index.json

 点击【OK】后,会提示“正在下载package_esp8266com_index.json索引”等待下载完成,打开Arduino IDE的“开发板管理器”

英文:点击【Tools】-> 【Board】-【boards manager 】

中文:点击【工具】-> 【开发板】->【开发板管理器】

在“开发板管理器”的搜索栏中输入“esp8266”

 

确认是否成功安装“esp8266”开发板,如果提示【已安装】表示已经安装成功

英文界面:

中文界面:

 2. 安装esp32系列开发板

参考:Welcome to ESP32 Arduino Core’s documentation — Arduino-ESP32 2.0.6 documentation

基本和【1. 安装esp8266开发板】类似,在Arduino IDE的“首选项”对话框中找到“其他开发板管理地址” 并添加如下地址

  • 稳定版发布链接:

    https://espressif.github.io/arduino-esp32/package_esp32_index.json
    
  • 开发发布链接:

    https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json

    四、Arduino IDE 运行示例程序

    在测试之前,请确保您已完成以下准备工作:

  1. 您已经在电脑里成功安装好Arduino IDE

  2. 使用USB数据线将开发板与电脑连接好

  3. 开发板驱动程序已成功安装。

在Arduino IDE的开发板菜单中找到您的开发板,如我使用的esp8266开发板是【NodeMCU 1.0 (ESP-12E module)】,您需要根据自己所使用开发板的实际情况选择。

设置Arduino IDE的开发板端口,您需要根据自己所使用开发板的实际情况选择。

假如您不知道如何查看开发板连接的端口号,请看备注查看开发板端口号

打开Blink示例程序

将Blink示例程序编译上传给esp8266【NodeMCU 1.0 (ESP-12E module)】开发板

注意:如上传的时候arduino出现Permission denied: '/dev/ttyUSB0'错误

主要错误信息:

SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
Cannot connect to Arduino!

解决方案:

打开终端并执行以下命令:
sudo usermod -a -G dialout $USER

然后重新插拔usb或重新启动Arduino IDE,再次运行上传。

 确认开发板上LED开始闪烁 
程序上传完毕,如果看到开发板上的LED开始闪烁说明Blink示例程序编译上传成功。恭喜您现在可以用Arduino IDE为开发板编写控制程序了。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

备注

查看开发板端口号

1. 首先电脑和开发板使用usb数据线相连

2. 查看开发板连接的端口号

Ubuntu 20.04 LTS系统默认自动usb转串口驱动程序,使用如下命令参考端口号

$ ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 10月 15 15:45 /dev/ttyUSB0

参考资料

Arduino官网:Arduino - Home

GitHub - esp8266/Arduino: ESP8266 core for Arduino

乐鑫官网:Getting Started — Arduino-ESP32 2.0.6 documentation

物联网开发学习笔记——目录索引

相关文章:

Ubuntu:Arduino IDE 开发环境配置【保姆级】

物联网开发学习笔记——目录索引 本章主要介绍在Ubuntu系统搭建Arduino IDE 开发环境,windows系统请移步:Windows:Arduino IDE 开发环境配置【保姆级】 参考官网:Arduino - Home 有关更多详细信息,请参阅 Arduino I…...

Kafka 开启SASL/SCRAM认证 及 ACL授权(三)验证

Kafka 开启SASL/SCRAM认证 及 ACL授权(三)验证。 官网地址:https://kafka.apache.org/ 本文说明如何做client验证ACL是否生效,我们之前开启了无acl信息不允许访问的配置。涉及的client有以下几个场景:shell脚本、python脚本、java应用、flink流。 kafka shell script验证…...

Pycharm 2023 设置远程调试

pycharm 版本 : 2023.2.1 整体流程参考:https://blog.csdn.net/xuanhaolaile/article/details/128293254 首先确定远程服务器上已经安装好 requirements.txt 中所需的依赖包。 1、SSH Configurations 添加远程服务器 2、Python Interpreter 注意&…...

asp.net core在其他程序集获取HttpContext

首先在Program.cs中,注册 builder.Services.AddHttpContextAccessor();Program.cs完整代码: using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.CodeAnalysis.CSharp.Syntax; using System.Text.Encodings.Web; using System.Text.Unicode; us…...

UWB NI框架嵌入式实现——Qorvo示例

在Qorvo提供的DW3000示例代码中,实现了与Apple的NI框架的互通的示例,本文中针对其示例程序进行简要的分析。测试中使用Qorvo提供的模块,该模块为nRF52833DW3000的架构。 1. Qorvo相关库文件 Qorvo在提供示例时,仅提供了相关的库文…...

Linux OS源的问题记录

场景 安装了一台Linux虚拟机充当服务器,准备搭建一个elk环境,我使用命令安装docker的时候,报错提示 YumRepo Error: All mirror URLs are not using ftp, http[s] or file.Eg. Invalid release/repo/arch combination/ removing mirrorlist…...

数据库:Hive转Presto(五)

此篇将所有代码都补充完了,之前发现有的代码写错了,以这篇为准,以下为完整代码,如果发现我有什么考虑不周的地方,可以评论提建议,感谢。代码是想哪写哪,可能比较繁琐,还需要优化。 …...

SQL中for xml path 的用法

1. 用法 是一种将查询结果转换为 XML 格式的方法。它可以将查询结果中的每一行转换为一个 XML 元素,并且可以指定元素的名称和属性。 2. 应用示例 有一张学生选修课程的表,如下图所示 希望整合成下图所示效果 --建表 if object_id(StudentInfo,u) is…...

【TensorFlow2 之014】在 TF 2.0 中实现 LeNet-5

一、说明 在这篇文章中,我们将展示如何在 TensorFlow 中实现像 \(LeNet-5\) 这样的基础卷积神经网络。LeNet-5 架构由 Yann LeCun 于 1998 年发明,是第一个卷积神经网络。 数据黑客变种rs 深度学习 机器学习 TensorFlow 2020 年 2 月 29 日 | 0 …...

【2023】redis-stream配合spring的data-redis详细使用(包括广播和组接收)

目录 一、简介1、介绍2、对比 二、整合spring的data-redis实现1、使用依赖2、配置类2.1、配置RedisTemplate bean2.2、异常类 3、实体类3.1、User3.2、Book 4、发送消息4.1、RedisStreamUtil工具类4.2、通过延时队列线程池模拟发送消息4.3、通过http主动发送消息 5、&#x1f3…...

飞书应用机器人文件上传

背景: 接上一篇 flask_apscheduler实现定时推送飞书消息,当检查出的异常结果比较多的时候,群里会有很多推送消息,一条条检查工作量会比较大,且容易出现遗漏。   现在需要将定时任务执行的结果记录到文件,…...

高版本Mac系统如何打开低版本的Xcode

这里写目录标题 前言解决方案 前言 大家偶尔也碰见过更新Mac系统后经常发现低版本的Xcode用不了的情况吧.基本每年大版本更新之后都可以在各个开发群里碰见问这个问题的. 解决方案 打开访达->应用程序->选中打不开的那个版本的Xcode并且右键显示包内容->Contents-…...

测试H5需要注意的交互测试用例点

H5(HTML5)是一种用于构建网页的标准,可以实现丰富的交互和功能。测试H5交互通常涉及到验证网页在各种情况下的行为,包括用户输入、按钮点击、页面加载等等。以下是一些可能的H5交互测试用例: 页面加载: 验…...

1014蓝桥算法双周赛,学习算法技巧,助力蓝桥杯

家人们,我来免费给大家送福利了!!! 【1014蓝桥算法双周赛 】 背景 蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心举办的全国性IT学科赛事。参赛高校超过1200余所,累计参赛人数超过40万人。该…...

C语言之通讯录的实现篇

目录 test.c 主菜单menu 创建通讯录con 初始化通讯录InitContact 增加个人信息AddContact 展示个人信息ShowContact 删除个人信息DelContact 查找个人信息SearchContact 修改个人信息ModifyContact test.c总代码 contact.h 头文件包含 PeoInfo_个人信息的设置声…...

如何降低海康、大华等网络摄像头调用的高延迟问题(二)

目录 1.RTSP介绍 2.解决办法1 3.解决办法2 1.RTSP介绍 RTSP(Real-time Streaming Protocol)是一种用于实时流媒体传输的网络协议。它被设计用于在服务器和客户端之间传输音频、视频以及其他流媒体数据。 RTSP协议允许客户端通过与服务器建立RTSP会话…...

centos清理日志和缓存

今天使用redmine修改密码,修改报错,再去试试创建用户,创建用户的页面直接报错显示不出来。然后看了一下服务器,发现服务器磁盘空间全部占满了。 CentOS系统也会在使用很长一段时间后出现硬盘空间开始不够的情况,而这并…...

排序算法的稳定性

什么是排序算法的稳定性? 排序算法的稳定性: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i] r[j],且 r[i…...

kafka属性说明

kafka中关于一些字段说明 groupId :标识消费者分组id,如果多个消费者id相同,就表示这几个消费者是一组,当一组多个消费者消费同一个topic时,一组中只会有一个成功消费 代码如下 这时只会有一条消息被消费...

STM32F4使用ucosii时操作浮点数卡死的问题

STM32F4使用ucosii时操作浮点数卡死的问题_stm32 fpu float 程序跑不起来_shou撕代码的博客-CSDN博客...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

SpringCloudGateway 自定义局部过滤器

场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐)​​ 在 save_images 方法中,​​删除或注释掉所有与 metadata …...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...