前言
這段時間有空就在寫智能家居的項目,這一篇主要是針對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 --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.c → main.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)境都沒有問題的話,那么可能是如下幾點原因.
- 雖然安裝了Python3,但是 python命令依然是 python2.5的版本, python版本的問題,這個問題的驗證很簡單,只需要在 Clion的終端中輸入如下命令查看python版本即可.
python --version
- 系統(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ū)指導批評,騷棟感謝了...