ESP8266開發(fā)環(huán)境搭建, 尋尋覓覓, 依然是 Mac + Clion + PlatformIO


前言


這段時間有空就在寫智能家居的項目,這一篇主要是針對Mac OS系統(tǒng)下的Esp8266環(huán)境搭建重新搞一下.

剛開始開發(fā)硬件的時候,我是基于 安信可官網(wǎng) 的Eclipse C++進行開發(fā),優(yōu)點就是傻瓜式擼代碼,其實也不應(yīng)該說擼代碼,就是可能下載下來Demo,然后改改IP 改改端口什么的就可以完美運行了.雖然看是很簡單,但是不太利于后期擴展,主要是Eclipse這個IDE都是一個老古董了(雖然我承認現(xiàn)在還是有人在用),但是說真的用起來是十分的難受....而且代碼集成度太高,對于新手來說基本上代碼就是一個黑盒,你不用懂實現(xiàn),只管輸入即可獲得輸出,對于后期的擴展都會造成一定的困難.

為了在Mac上開發(fā)Esp8266或者Ardunio等板子.雖然也發(fā)過 基于MacOS的ESP8266 NodeMCU開發(fā)環(huán)境搭建 這種基于MacOS 和 VScode 進行開發(fā)的,什么交叉編譯環(huán)境啊,什么燒錄工具啊,反正搭建起來還不如Windows舒服呢.

然后,無意間看到了PlatformIO這個vscode插件.功能強大的一匹,令我虎(shen)軀(jing)一(chou)震(chu).PlatformIO是一個支持多種硬件開發(fā)的嵌入式平臺.有著比較完善的三方庫管理.上手簡單,不需要太多的環(huán)境搭建,對新手是非常的友好.

PlatformIO 本來是vscode的一個插件,安裝起來非常方便,但是我為什么要選擇是用Clion呢?主要是出于代碼提醒的考慮,vscode的C++/C代碼的提醒有時有點抽風(沒驗證過,瞎說的),而且有時候根本就不提醒,導致作為小白的我,很多函數(shù)名或者類需要手動去查找.非常的不方便,所以我就直接選擇 Mac + Clion + PlatformIO 這一套組合拳來完成開發(fā)工作了.


前期準備


對于CH340的作用和驅(qū)動安裝不在過多敘述, 沒有安裝驅(qū)動可能導致Mac不能識別開發(fā)板.具體查看 基于MacOS的ESP8266 NodeMCU開發(fā)環(huán)境搭建.

首先需要下載Clion. 破解版的話,去找找度娘就可以查到.和Idea的破解過程是一樣的.稍微推薦一個吧.

Clion破解版?zhèn)魉烷T 密碼:sb9d


  • Python3的安裝

搭建 PlatformIO 的環(huán)境,首先是Python3的搭建,Mac系統(tǒng)基本上起始都是Python2.7,但是 PlatformIO 內(nèi)置的 esptool 燒錄工具最低版本是 Python3,所以需要先更新下Python.

安裝過程,這里就不過度敘述了,但是一定要注意去配置環(huán)境變量.把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 這個路徑根據(jù)自己實際下載位置確定.
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

驗證我們是否已經(jīng)搭建好 python3 環(huán)境了.輸入如下代碼.

python --version

我安裝的是 python3.8.5版本,所以打印的結(jié)果如下所示.

Python 3.8.5


  • PlatformIO Core的安裝

接下來我們就安裝 PlatformIO 的環(huán)境了,我推薦使用Homebrew的形式,勝在簡單.

brew install platformio

當然了,也可以查找官方的文檔其他方式的安裝,下面直接給出傳送門.

PlatformIO 安裝傳送門

安裝完成之后,我們稍微驗證一下是否安裝成功.輸入如下的終端命令查看一下.

platformio --version

打印如下證明安裝成功.

PlatformIO, version 4.3.4


  • PlatformIO插件的安裝

上面我們已經(jīng)配置好了環(huán)境,接下來,我們安裝一下PlatformIO的Clion插件.

在啟動界面找到 插件選項(Configure → Plugins) 并且打開, 如下所示.

在 Marketplace 中 搜索 PlatformIO,然后 Install, 完成之后點擊OK, 重啟Clion即可完成.

如上幾步即可完成整體軟件環(huán)境的搭建.


Helloworld


總是要寫一個 Helloworld 表示我們來過.

首先我們創(chuàng)建一個ESP8266的開發(fā)項目,點擊 New Project 創(chuàng)建項目. 由于我使用的是ESP8266 12E NodeMCU開發(fā)板,所以我們?nèi)缦逻x擇,如果想開發(fā)Arduino就選擇對應(yīng)的型號即可.如果你的列表沒法加載說明你前面的環(huán)境沒有配置好,需要回過頭去檢查一下.

第一次可能需要等幾分鐘構(gòu)建項目.構(gòu)建完成之后,我們先src目錄下的 main.cmain.cpp. 然后右鍵 Reload CMake Project, 重構(gòu)下CMake項目.(不重構(gòu)可能會出現(xiàn)導入類錯誤爆紅等等)

CV戰(zhàn)士搞起來,復制如下代碼到main文件中.

#include <Arduino.h>

void setup() {
    Serial.begin(9600);
    delay(500);
}

void loop() {
    delay(500);
    Serial.println("hello, world");
}


燒錄程序


代碼寫好了,我們需要把程序燒錄到我們的板子中.這就比較簡單了.

首先我們需要先連接上我們的ESP8266開發(fā)板.

我們需要如圖選擇 PlatformIO Upload 選項,然后點擊運行即可編譯,自動尋找串口上傳燒錄.

編譯過程中可能會報錯.如果上述環(huán)境都沒有問題的話,那么可能是如下幾點原因.

  1. 雖然安裝了Python3,但是 python命令依然是 python2.5的版本, python版本的問題,這個問題的驗證很簡單,只需要在 Clion的終端中輸入如下命令查看python版本即可.
python --version
  1. 系統(tǒng)自動識別的串口不對.像我的有一塊板子,雖然有兩個串口,但只有一個是好用的.終端命名 platformio device list 即可羅列所有的端口了.

/dev/cu.wchusbserial14740 是可用的串口.

所以我們需要手動指定下上傳的串口.我們打開項目中的 platformio.ini 文件,加入如下信息即可.

upload_port = /dev/cu.wchusbserial14740

當然了,platformio.ini的配置不僅僅只有這么多.后面我們稍微介紹下platformio.ini的配置問題.


PlatformIO 常用命令


PlatformIO 的命令可以去官網(wǎng)查找,這里說一下我比較常用的幾個命令.

查看設(shè)備列表

platformio device list

串口工具(我一般使用SecureCRT做串口調(diào)試)

platformio device monitor

庫文件搜索

platformio lib search xxxx

庫文件導入

platformio lib install

庫文件卸載

platformio lib uninstall

庫文件列表

platformio lib list


platformio.ini 配置


關(guān)于platformio.ini 配置有很多,大家可以自行去看官方文檔.

官方文檔

我現(xiàn)在用到的就是兩個一個是上傳串口的配置.

upload_port = /dev/cu.wchusbserial14740

另外一個就是三方庫管理的配置.

lib_deps =
  PubSubClient
  ArduinoJson

添加完成之后,需要如下操作重構(gòu)下項目.


結(jié)語


寫到這里就結(jié)束了,如果有任何問題,歡迎大家在評論區(qū)指導批評,騷棟感謝了...


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373