本文最后更新于:June 30, 2023 pm
本文作者:[wangwenhai] # 概要:本文主要讲一下使用PlatformIo,基于Arduino框架开发单片机项目。
1.背景介绍
目前玩Arduino的朋友,用得最多的也许是Arduino官方的ArduinoIDE,说实话这个IDE真不好用,甚至不如一个记事本。有时候启动速度简直不能忍受,还有包管理做的也不好。依赖都不清楚。这种情况下可能大家很想要一个友好的IDE来开发Arduino应用。刚好,PlatformIo配合Vscode可以做。
2.关于PlatformIo
PlatformIO 是开源的物联网开发生态系统。提供跨平台的代码构建器、集成开发环境(IDE),兼容 Arduino,ESP8266等。甚至说是一个框架,子啊这个框架之下我们除了可以开发Arduino,还可以开发Arm甚至是WindowsAPP。
4.PlatformIo安装
1.通过VScode安装
直接通过插件搜索【PlatformIo】即可:
2.命令行安装
因为PlatformIo是Python实现的一个库,所以可以直接用Python的Pip包管理器安装:
Py2:pip install -U platformio
Py3:pip3 install -U platformio
3.更多安装方式
除此之外还支持其他IDE或者编辑器安装,请参考这里:https://docs.platformio.org/en/latest/core/installation.html
3.Arduino初试
我们试着来新建一个Arduino项目。这里我们假设项目名字就叫:HelloWorld.首先在硬盘上新建一个目录:HelloWorld.
mkdir HelloWorld
cd HelloWorld
然后初始化项目:
platformio project init --board uno
表示我们新建了一个项目,使用了uno开发板作为基础的硬件。
如何添加依赖?首先找到platformio.ini
这个文件,其实这个文件类似Java项目中常见依赖工具的Mavel的pom.xml,或者是node项目中的package.json,都是用来统一管理依赖的。依赖文件如下所示:
[env:uno]
platform = atmelavr
framework = arduino
board = uno
表示我们使用的是atmelavr这个平台的硬件库,用了Arduino的框架来对uno开发板进行开发。然后我们在src目录下新建一个main.cpp的入口文件,下面的代码想必大家很熟悉了,这里就不做赘述。
#include "Arduino.h"
#ifndef LED_BUILTIN
#define LED_BUILTIN 13
#endif
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
到此为止,我们的项目基本结构就完成了,目录结构如下:
HelloWorld
├── lib
│ └── README
├── platformio.ini
└── src
└── main.cpp
如果你做过WEB开发,就很清楚node和maven这两个依赖管理的处理步骤,项目新建好了以后就开始构建。
platformio run
下载依赖platformio run --target upload
:编译上传platformio run --target clean
:清理编译结果platformio run -e uno
:编译指定的Profile,比如我们常见的dev,prod,test等等platformio run -e uno -t upload
:编译指定的Profile,然后上传。
在此有一个已经写好的ESP通过Mqtt传输数据的Demo项目,供给大家学习参考:https://github.com/wwhai/ezlinker_arduino_sdk
4.总结
本文主要介绍了一种全新的开发Arduino的方法,希望能有助于大家提高开发效率。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!