面向非C編碼人員的簡單物聯(lián)網(wǎng)和設(shè)備管理
如果您對使用微控制器進行家庭監(jiān)控或開發(fā)商用物聯(lián)網(wǎng)產(chǎn)品感興趣,但沒有任何經(jīng)驗c程序設(shè)計,那么這個教程就是給你的!您將學習如何使用一種叫做左上臂。通過本教程,您不需要任何C語言經(jīng)驗,并且您將能夠通過遵循一些簡單的說明來安裝現(xiàn)成的微控制器固件。此外,您將能夠以有趣和互動的方式學習微控制器編程的基礎(chǔ)知識,這將有助于您在進步的過程中培養(yǎng)技能和信心。那么為什么要等呢?今天就開始學習,朝著用微控制器創(chuàng)建激動人心的創(chuàng)新項目邁出第一步!
Lua——易于兒童學習,而且功能強大,足以開發(fā)專業(yè)的物聯(lián)網(wǎng)解決方案!
Lua語言,類似于計算機編程語言,但是比較容易學,在游戲行業(yè)很常見。例如,Roblox游戲引擎提供了一個免費的開發(fā)者環(huán)境,允許任何人用Lua創(chuàng)建游戲。游戲行業(yè)使用Lua,因為它很容易將Lua虛擬機嵌入到更大的程序中,并且該語言可以很容易地在游戲的狀態(tài)機中編程不斷增加的復(fù)雜性。
一個有經(jīng)驗的C開發(fā)人員可以將Lua C代碼交付并嵌入到一個微控制器中。也可以下載現(xiàn)成的Lua微控制器版本,如NodeMCU和e Lua。然而,stock Lua、NodeMCU或eLua都不包含任何有用的物聯(lián)網(wǎng)功能。我們需要的是一個物聯(lián)網(wǎng)庫,包括常見的物聯(lián)網(wǎng)協(xié)議,如HTTPS、MQTT、SMTP等。對于專業(yè)產(chǎn)品,還需要一個具有易于使用的安全組件的框架,如X.509證書管理。那就是梭魚應(yīng)用服務(wù)器進來了。它提供了專門為Lua開發(fā)者設(shè)計的完整物聯(lián)網(wǎng)解決方案,讓您輕松構(gòu)建滿足需求的安全可靠的物聯(lián)網(wǎng)產(chǎn)品。
這是一個使用ESP32微控制器的實踐視頻教程。固件(Lua + IoT庫)和Lua示例代碼可以從GitHub下載。
我們在視頻教程中使用的是ESP32,但是Lua可以在大多數(shù)嵌入式系統(tǒng)上運行。你可以跟隨視頻教程學習你自己的教程ESP32 WROVER如果您遵循本教程末尾的固件安裝說明。
在這個19分鐘的視頻教程中,您將了解使用Lua如何顯著加快支持物聯(lián)網(wǎng)的無頭設(shè)備的交互開發(fā)時間。無頭設(shè)備是指沒有板載圖形用戶界面的設(shè)備。為了使開發(fā)過程更快,我們將使用基于web的Lua IDE(所謂的REPL)和在微控制器上運行的Barracuda應(yīng)用服務(wù)器。這將允許我們在進行過程中快速原型化和測試我們的代碼。開發(fā)完成后,基于web的IDE將被移除,最終在Lua中實現(xiàn)的物聯(lián)網(wǎng)應(yīng)用將作為ZIP文件嵌入固件映像中。這是一種快速輕松地構(gòu)建和部署物聯(lián)網(wǎng)項目的好方法,您將能夠親眼看到Lua是多么強大和高效。
值得注意的是,在上面的視頻教程中,在創(chuàng)建最終版本之前,基于web的開發(fā)環(huán)境已從固件中移除。這是因為教程中顯示的物聯(lián)網(wǎng)示例不需要嵌入式web服務(wù)器。
然而,嵌入式web服務(wù)器對于支持物聯(lián)網(wǎng)的產(chǎn)品非常有用,因為它允許與運行在內(nèi)部網(wǎng)中的設(shè)備直接交互。下面的視頻展示了如何使用WebSockets支持的HTML應(yīng)用程序?qū)崟r控制伺服系統(tǒng)??刂扑欧凸芾鞼ebSocket通信的服務(wù)器端代碼都是用Lua編寫的。這只是Lua如何用于構(gòu)建強大的交互式物聯(lián)網(wǎng)應(yīng)用程序的一個例子,您會發(fā)現(xiàn)它是一種用于構(gòu)建各種項目的優(yōu)秀語言。
上面的視頻還展示了一個非常酷的特性,它使web服務(wù)器能夠自動獲得由Let's Encrypt簽名的可信X.509 Intranet證書。要了解這是如何工作的,請看我的DZone文章Intranet服務(wù)器的證書.
固件安裝說明
如上所述,Lua REPL由兩個主要組件組成:Barracuda應(yīng)用服務(wù)器和LSP應(yīng)用管理器。要使用Lua REPL,這兩個C代碼組件必須與Espressif物聯(lián)網(wǎng)開發(fā)框架和一些啟動代碼一起編譯。這將創(chuàng)建一個可以上傳到您的ESP32微控制器的固件映像,允許您開始在ESP32上開發(fā)Lua程序。
為Lua REPL安裝固件有兩種選擇,選擇哪一種取決于您運行命令行Linux的經(jīng)驗,比如使用Windows的Linux子系統(tǒng)。
如果您有命令行經(jīng)驗,并且希望詳細了解C代碼編譯和固件構(gòu)建過程,您可以按照Lua ESP32物聯(lián)網(wǎng)開發(fā)工具包命令行教程.
或者,您可以下載基于虛擬機的IDE這讓您可以使用基于web的UI來編譯必要的C代碼,并將生成的固件上傳到ESP32。請記住,IDE包含了許多為C程序員設(shè)計的示例,所以您應(yīng)該把重點放在為編譯和上傳LSP應(yīng)用程序管理器而設(shè)計的示例上。這將允許你盡可能快和容易地使用Lua REPL,不管你的經(jīng)驗水平如何。
這里有一個有趣的項目示例:
以下視頻中的貓頭鷹,有著眨動的眼睛和伺服控制的頭部,由Lua使用梭魚應(yīng)用服務(wù)器提供動力。該軟件運行在ESP32上,其中包括一個名為LSP應(yīng)用管理器的Lua REPL,它基于Barracuda應(yīng)用服務(wù)器。更多詳情請見視頻描述。