ESP8266开发环境搭建, 寻寻觅觅, 依然是 Mac + C
前言
这段时间有空就在写智能家居的项目,这一篇主要是针对Mac OS系统下的Esp8266环境搭建重新搞一下.
刚开始开发硬件的时候,我是基于 安信可官网 的Eclipse C++进行开发,优点就是傻瓜式撸代码,其实也不应该说撸代码,就是可能下载下来Demo,然后改改IP 改改端口什么的就可以完美运行了.虽然看是很简单,但是不太利于后期扩展,主要是Eclipse这个IDE都是一个老古董了(虽然我承认现在还是有人在用),但是说真的用起来是十分的难受....而且代码集成度太高,对于新手来说基本上代码就是一个黑盒,你不用懂实现,只管输入即可获得输出,对于后期的扩展都会造成一定的困难.
为了在Mac上开发Esp8266或者Ardunio等板子.虽然也发过 基于MacOS的ESP8266 NodeMCU开发环境搭建 这种基于MacOS 和 VScode 进行开发的,什么交叉编译环境啊,什么烧录工具啊,反正搭建起来还不如Windows舒服呢.
然后,无意间看到了PlatformIO这个vscode插件.功能强大的一匹,令我虎(shen)躯(jing)一(chou)震(chu).PlatformIO是一个支持多种硬件开发的嵌入式平台.有着比较完善的三方库管理.上手简单,不需要太多的环境搭建,对新手是非常的友好.
PlatformIO 本来是vscode的一个插件,安装起来非常方便,但是我为什么要选择是用Clion呢?主要是出于代码提醒的考虑,vscode的C++/C代码的提醒有时有点抽风(没验证过,瞎说的),而且有时候根本就不提醒,导致作为小白的我,很多函数名或者类需要手动去查找.非常的不方便,所以我就直接选择 Mac + Clion + PlatformIO 这一套组合拳来完成开发工作了.
前期准备
对于CH340的作用和驱动安装不在过多叙述, 没有安装驱动可能导致Mac不能识别开发板.具体查看 基于MacOS的ESP8266 NodeMCU开发环境搭建.
首先需要下载Clion. 破解版的话,去找找度娘就可以查到.和Idea的破解过程是一样的.稍微推荐一个吧.
Clion破解版传送门 密码:sb9d
- Python3的安装
搭建 PlatformIO 的环境,首先是Python3的搭建,Mac系统基本上起始都是Python2.7,但是 PlatformIO 内置的 esptool 烧录工具最低版本是 Python3,所以需要先更新下Python.
安装过程,这里就不过度叙述了,但是一定要注意去配置环境变量.把python
这个命令默认为是启动 python3,而不是 python2.7. 由于我是重新下载的 python3,并没有直接覆盖 python2.7. 所以我在 ~/.bash_profile 文件中添加了如下三行.具体命令如下所示.
vim ~/.bash_profile
按 i 开启编辑模式,在最后添加下面三行. 按ESC 退出编辑. 然后 :wq 回车保存文件即可.
#Python
# ${PATH}:/usr/local/Cellar/python@3.8/3.8.5/bin 这个路径根据自己实际下载位置确定.
export PATH=${PATH}:/usr/local/Cellar/python@3.8/3.8.5/bin
alias python="/usr/local/Cellar/python@3.8/3.8.5/bin/python3"
alias pip="/usr/local/Cellar/python@3.8/3.8.5/bin/pip3"
命令太多,我是小白看不懂?OK,OK,直接下面一条命令打开文件手动添加上面三行即可.
open ~/.bash_profile
接下来,我们使用下面命令使我们的配置生效.
source ~/.bash_profile
验证我们是否已经搭建好 python3 环境了.输入如下代码.
python --version
我安装的是 python3.8.5版本,所以打印的结果如下所示.
Python 3.8.5
- PlatformIO Core的安装
接下来我们就安装 PlatformIO 的环境了,我推荐使用Homebrew的形式,胜在简单.
brew install platformio
当然了,也可以查找官方的文档其他方式的安装,下面直接给出传送门.
安装完成之后,我们稍微验证一下是否安装成功.输入如下的终端命令查看一下.
platformio --version
打印如下证明安装成功.
PlatformIO, version 4.3.4
- PlatformIO插件的安装
上面我们已经配置好了环境,接下来,我们安装一下PlatformIO的Clion插件.
在启动界面找到 插件选项(Configure → Plugins) 并且打开, 如下所示.
在 Marketplace 中 搜索 PlatformIO,然后 Install, 完成之后点击OK, 重启Clion即可完成.
如上几步即可完成整体软件环境的搭建.
Helloworld
总是要写一个 Helloworld 表示我们来过.
首先我们创建一个ESP8266的开发项目,点击 New Project 创建项目. 由于我使用的是ESP8266 12E NodeMCU开发板,所以我们如下选择,如果想开发Arduino就选择对应的型号即可.如果你的列表没法加载说明你前面的环境没有配置好,需要回过头去检查一下.
第一次可能需要等几分钟构建项目.构建完成之后,我们先src目录下的 main.c → main.cpp. 然后右键 Reload CMake Project, 重构下CMake项目.(不重构可能会出现导入类错误爆红等等)
CV战士搞起来,复制如下代码到main文件中.
#include <Arduino.h>
void setup() {
Serial.begin(9600);
delay(500);
}
void loop() {
delay(500);
Serial.println("hello, world");
}
烧录程序
代码写好了,我们需要把程序烧录到我们的板子中.这就比较简单了.
首先我们需要先连接上我们的ESP8266开发板.
我们需要如图选择 PlatformIO Upload 选项,然后点击运行即可编译,自动寻找串口上传烧录.
编译过程中可能会报错.如果上述环境都没有问题的话,那么可能是如下几点原因.
- 虽然安装了Python3,但是 python命令依然是 python2.5的版本, python版本的问题,这个问题的验证很简单,只需要在 Clion的终端中输入如下命令查看python版本即可.
python --version
- 系统自动识别的串口不对.像我的有一块板子,虽然有两个串口,但只有一个是好用的.终端命名 platformio device list 即可罗列所有的端口了.
/dev/cu.wchusbserial14740 是可用的串口.
所以我们需要手动指定下上传的串口.我们打开项目中的 platformio.ini 文件,加入如下信息即可.
upload_port = /dev/cu.wchusbserial14740
当然了,platformio.ini的配置不仅仅只有这么多.后面我们稍微介绍下platformio.ini的配置问题.
PlatformIO 常用命令
PlatformIO 的命令可以去官网查找,这里说一下我比较常用的几个命令.
查看设备列表
platformio device list
串口工具(我一般使用SecureCRT做串口调试)
platformio device monitor
库文件搜索
platformio lib search xxxx
库文件导入
platformio lib install
库文件卸载
platformio lib uninstall
库文件列表
platformio lib list
platformio.ini 配置
关于platformio.ini 配置有很多,大家可以自行去看官方文档.
我现在用到的就是两个一个是上传串口的配置.
upload_port = /dev/cu.wchusbserial14740
另外一个就是三方库管理的配置.
lib_deps =
PubSubClient
ArduinoJson
添加完成之后,需要如下操作重构下项目.
结语
写到这里就结束了,如果有任何问题,欢迎大家在评论区指导批评,骚栋感谢了...