ESP8266开发环境搭建, 寻寻觅觅, 依然是 Mac + Clion + PlatformIO


前言


这段时间有空就在写智能家居的项目,这一篇主要是针对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 安装传送门

安装完成之后,我们稍微验证一下是否安装成功.输入如下的终端命令查看一下.

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.cmain.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 选项,然后点击运行即可编译,自动寻找串口上传烧录.

编译过程中可能会报错.如果上述环境都没有问题的话,那么可能是如下几点原因.

  1. 虽然安装了Python3,但是 python命令依然是 python2.5的版本, python版本的问题,这个问题的验证很简单,只需要在 Clion的终端中输入如下命令查看python版本即可.
python --version
  1. 系统自动识别的串口不对.像我的有一块板子,虽然有两个串口,但只有一个是好用的.终端命名 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

添加完成之后,需要如下操作重构下项目.


结语


写到这里就结束了,如果有任何问题,欢迎大家在评论区指导批评,骚栋感谢了...


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335