Hacklab WebIDE在線調(diào)試ESP32筆記
掃描二維碼
隨時隨地手機(jī)看文章
1.什么是Hacklab WebIDE1.1 優(yōu)勢1.2 趨勢2. 使用方法2.1 功能介紹2.2 編譯第一個程序2.3 搭建esp32的開發(fā)環(huán)境2.4 建立開發(fā)板與云平臺的連接M5Stack串口驅(qū)動Device Agent簡介遠(yuǎn)程串口打印3.優(yōu)勢與特點
1.什么是Hacklab WebIDE
Hacklab WebIDE是阿里云物聯(lián)網(wǎng)云端開發(fā)環(huán)境,Hacklab WebIDE提供遠(yuǎn)程的Linux服務(wù),并預(yù)先安裝了物聯(lián)網(wǎng)開發(fā)需要的環(huán)境,能實現(xiàn)AliOS Things的云端編譯,本地?zé)浀墓δ?。簡單的說,就是一款集成了編譯環(huán)境,永不掉線并且只要有網(wǎng)可以隨時開發(fā)工程的在線IDE。網(wǎng)址為https://hacklab.aliyun.com。

1.1 優(yōu)勢
對于阿里云這款hacklab的編譯器來說,從我個人使用的角度來看,優(yōu)勢主要有以下幾點
-
不用安裝環(huán)境,直接遠(yuǎn)程開發(fā)。
-
不需要很高的電腦配置,只要裝上瀏覽器就可以開發(fā),編譯速度不受電腦性能限制。
-
不用帶電腦,只要有自己的賬號,就可以實現(xiàn)辦公室,家里或者其他外出環(huán)境下進(jìn)行開發(fā)。
-
工程用git進(jìn)行管理,可進(jìn)行協(xié)調(diào)開發(fā)工作。
-
可實現(xiàn)在線調(diào)試,在線下載的功能。
-
可直接對接阿里云物聯(lián)網(wǎng)平臺,方便設(shè)備與云的聯(lián)調(diào),節(jié)省嵌入式開發(fā)調(diào)試時間。
1.2 趨勢
隨著物聯(lián)網(wǎng)與網(wǎng)絡(luò)技術(shù)的快速發(fā)展,越來越多的工具層出不窮,嵌入式開發(fā)必然會走向快速產(chǎn)品成型的道路。當(dāng)芯片的性能越來越強(qiáng)大,這時就不用再考慮內(nèi)存和性能的問題,可以用Arduino將產(chǎn)品快速成型,直接很快的推向市場。這才是物聯(lián)網(wǎng)與嵌入式的快速開發(fā)模式。有市場就有需求,有需求就有產(chǎn)品,我認(rèn)為WebIDE是一種很好的嵌入式開發(fā)模式,這樣的開發(fā)方式加快產(chǎn)品的成型速度,借助阿里云物聯(lián)網(wǎng)平臺,就算是幾個人也能做出很不錯的物聯(lián)網(wǎng)產(chǎn)品。
2. 使用方法
由于Hacklab WebIDE還是在不斷完善和功能擴(kuò)展的階段,所以在使用時文檔信息并不是很全面,需要自己摸索的地方很多。下面一步一步的嘗試使用,并且實現(xiàn)在我們自己的esp32開發(fā)板上的聯(lián)調(diào)工作。
2.1 功能介紹
注冊和進(jìn)入阿里云物聯(lián)網(wǎng)平臺,然后通過自己的阿里云平臺賬號和密碼進(jìn)入https://hacklab.aliyun.com。

通過查看文件列表,可以看到這是一個標(biāo)準(zhǔn)的Linux操作系統(tǒng),直接看一下這臺電腦的性能

CPU是Platinum(鉑金) 8163,采用的是intel的至強(qiáng)處理器。
這是阿里云第四代服務(wù)器采用的CPU,Skylake架構(gòu),主頻2.5GHz,計算性能問題。8163這款型號在intel官網(wǎng)上并沒有相關(guān)信息,應(yīng)該是阿里云向阿里云定制的,與之相近的Intel Xeon Platinum 8168,價格是$5890,約合¥38900元。
此類服務(wù)器提供的ECS實例族包括通用型實例g5、計算型實例c5、內(nèi)存型實例r5、本地 SSD 型實例 i2、突發(fā)性能實例 t5、超級計算集群計算型實例規(guī)格族 scc、通用型神龍云服務(wù)器規(guī)格族 ebmg5等。
所以對于開發(fā)及編譯來說,根本沒有問題。
查看一下Linux的版本信息
采用的是Ubuntu16.04。
2.2 編譯第一個程序
既然是已經(jīng)集成好的Linux開發(fā)環(huán)境,那么直接可以編譯運行一個測試程序。下面我們直接從gcc來進(jìn)行程序的編譯。內(nèi)部已經(jīng)集成好了arm-Linux的編譯環(huán)境。
然后,簡單測試一下編譯和運行。
在工程目錄下新建一個文件夾
編寫一個Hallo Hacklab的C語言程序
#include #include int main() { printf("hello Hacklab!\n");
}
在命令行輸入
gcc test.c -o test
編譯完成后,直接運行即可看到結(jié)果
2.3 搭建esp32的開發(fā)環(huán)境
以上測試了WebIDE的簡單使用方法,下面來連接esp32的硬件設(shè)備進(jìn)行開發(fā)測試。
可以通過搜索庫來進(jìn)行。例如我們使用的開發(fā)板類型是M5Stack。

直接進(jìn)去搜索我們需要的庫進(jìn)行開發(fā)。
第一步:選擇創(chuàng)建工程

第二步:填寫工程相關(guān)的信息

可以看到工程配置完成

接著編寫測試代碼。這里編寫一個在LCD上顯示圖形的程序
#include // the setup routine runs once when M5Stack starts up void setup() { // initialize the M5Stack object M5.begin(); // Lcd display M5.Lcd.fillScreen(WHITE);
delay(500);
M5.Lcd.fillScreen(RED);
delay(500);
M5.Lcd.fillScreen(GREEN);
delay(500);
M5.Lcd.fillScreen(BLUE);
delay(500);
M5.Lcd.fillScreen(BLACK);
delay(500); // text print M5.Lcd.fillScreen(BLACK);
M5.Lcd.setCursor(10, 10);
M5.Lcd.setTextColor(WHITE);
M5.Lcd.setTextSize(1);
M5.Lcd.printf("Display Test!"); // draw graphic delay(1000);
M5.Lcd.drawRect(100, 100, 50, 50, BLUE);
delay(1000);
M5.Lcd.fillRect(100, 100, 50, 50, BLUE);
delay(1000);
M5.Lcd.drawCircle(100, 100, 50, RED);
delay(1000);
M5.Lcd.fillCircle(100, 100, 50, RED);
delay(1000);
M5.Lcd.drawTriangle(30, 30, 180, 100, 80, 150, YELLOW);
delay(1000);
M5.Lcd.fillTriangle(30, 30, 180, 100, 80, 150, YELLOW);
} // the loop routine runs over and over again forever void loop(){ //rand draw M5.Lcd.fillTriangle(random(M5.Lcd.width()-1), random(M5.Lcd.height()-1), random(M5.Lcd.width()-1), random(M5.Lcd.height()-1), random(M5.Lcd.width()-1), random(M5.Lcd.height()-1), random(0xfffe));
M5.update();
}
點擊編譯,發(fā)現(xiàn)有錯誤。選擇編譯開始進(jìn)行編譯


這是因為沒有找到頭文件,因為我們沒有安裝M5Stack的庫。

選擇相應(yīng)的庫

然后再做編譯就可以了。
編譯過程中,會出現(xiàn)兩個錯誤。直接屏蔽掉就好了,目前暫時不做詳細(xì)說明。

編譯完成后,可以看到如下的效果

固件及環(huán)境已經(jīng)搭建完成。
2.4 建立開發(fā)板與云平臺的連接
由于esp32用的是串口進(jìn)行下載,所以需要一個串口代理,將串口設(shè)備轉(zhuǎn)移到遠(yuǎn)程WebIDE上。阿里云的Hacklab就提供了這樣一個工具。

M5Stack串口驅(qū)動
要建立連接,需要開發(fā)板與電腦的串口進(jìn)行連接。串口驅(qū)動型號是CP210x系列

解壓后直接安裝即可。
Device Agent簡介
Hacklab IDE device agent是一個運行在本地開發(fā)機(jī)、將物理開發(fā)板通過瀏覽器連接到云端IDE開發(fā)環(huán)境的后臺程序,接下來文檔中的device agent就是指這個后臺程序。

上圖是云端IDE、Device Agent和設(shè)備之間運行時的關(guān)系示意,Device Agent和設(shè)備通過設(shè)備的串口進(jìn)行通訊。Device Agent內(nèi)置連接認(rèn)證機(jī)制,確保每個用戶的Device Agent只能連接到自己的云端IDE工作空間。
我們提供了可運行在64位Windows, Mac以及Linux上的Device Agent程序。接下來就介紹如何快速在本地機(jī)器上快速運行 Device Agent.
下載后解壓壓縮包

然后就可以看到串口代理了。

可以看到有兩個設(shè)備在線,由于電腦上插入兩個設(shè)備,可以看到兩個,點擊下面一個可以看到設(shè)備信息。
遠(yuǎn)程串口打印
可以通過遠(yuǎn)程串口進(jìn)行信息打印。程序進(jìn)行稍微修改
編譯后,點擊下載程序

運行后,通過串口打印,就可以看到信息了

此時,可以看到串口打印信息,同時,也可以看到M5Stack上顯示圖形畫面。

可以確定,代碼已經(jīng)正常的下載進(jìn)去。
3.優(yōu)勢與特點
通過Hacklab WebIDE進(jìn)行遠(yuǎn)程調(diào)試ESP32,建立ESP32的開發(fā)環(huán)境,類似的建立esp8266開發(fā)環(huán)境也是如此。通過建立在線開發(fā)環(huán)境,遠(yuǎn)程服務(wù)器可以永不關(guān)機(jī),下次環(huán)境直接用。同時節(jié)省了環(huán)境搭建的麻煩。
其實通過Hacklab WebIDE還有其他的優(yōu)勢,比如可以很方便的與阿里云物聯(lián)網(wǎng)平臺進(jìn)行聯(lián)調(diào),這一塊后面再慢慢涉及。
總之,工欲善其事必先利其器,有了好的工具和裝備,才能更好的,更加高效的完成工作。