ESP Rainmaker入門使用ESP32ESP
RainMaker是pressif為ESP芯片提供的端到端解決方案。它使用戶能夠使用ESP32基于所有類型的AIoT解決方案構(gòu)建無線控制和遠(yuǎn)程監(jiān)控設(shè)備,只需單擊部署。該平臺(tái)提供便捷的訪問功能,免費(fèi)集成Alexa和Google Assistant,免費(fèi)云部署,以及通過二維碼提供WIFI。開發(fā)人員可以編寫固件,并通過手機(jī)應(yīng)用程序或語音助手立即與之交互,而無需在云或手機(jī)應(yīng)用程序中進(jìn)行任何編碼。這使得制造商可以專注于固件開發(fā),而不必?fù)?dān)心應(yīng)用程序或云集成以及其他基礎(chǔ)設(shè)施。
這個(gè)解決方案的必要組成部分是:
聲明服務(wù)(獲取云連接憑據(jù))
RainMaker代理(即RainMaker repo,開發(fā)固件)
RainMaker Cloud(后端,提供遠(yuǎn)程連接)
RainMaker手機(jī)App/CLI(遠(yuǎn)程訪問的客戶端實(shí)用程序)
在這個(gè)項(xiàng)目中,我們將控制一個(gè)led連接到ESP32使用ESP Rainmaker應(yīng)用程序從我們的移動(dòng)云。ESP32板和智能手機(jī)都需要連接到穩(wěn)定的互聯(lián)網(wǎng),才能順利工作。
ESP RainMaker工作流程
讓我們看看應(yīng)用程序如何連接和配置ESP32,并使其能夠與物聯(lián)網(wǎng)云平臺(tái)通信。
首先,用ESP Rainmaker固件對(duì)ESP32板進(jìn)行編程,上傳成功后,生成QR碼并顯示在串行監(jiān)視器上(不要忘記設(shè)置正確的波特率)。
一旦應(yīng)用程序掃描QR碼,它將啟動(dòng)與ESP32板的BLE通信。
ESP32通過藍(lán)牙通信接收網(wǎng)絡(luò)證書,使其能夠連接到WIFI信號(hào),并與ESP Rainmaker云建立連接。
所有傳感器數(shù)據(jù)將被傳送到ESP造雨者云,我們可以通過云服務(wù)或移動(dòng)應(yīng)用程序訪問。
ESP RainMaker所需組件
ESP32董事會(huì)
Led燈泡(5v)
電路試驗(yàn)板
ESP32接口電路圖
現(xiàn)在讓我們從連接ESP32的led開始。我們將引線的正極連接到GPIO引腳15,另一端連接到ESP32的GND。至于開關(guān),我們將使用板載啟動(dòng)開關(guān)。
基于Arduino IDE的ESP32編程
讓我們看看如何使用Arduino IDE將ESP造雨器固件安裝到ESP32板。為此,我們需要安裝ESP32板包2.0版本,該版本支持ESP Rainmaker。如果您安裝了較舊的軟件包,請(qǐng)將其升級(jí)到v2.0。
打開Arduino IDE,然后轉(zhuǎn)到文件>首選項(xiàng)。現(xiàn)在將以下鏈接粘貼到Additional Boards Manager url中,然后按Ok。
打開Arduino IDE并導(dǎo)航到Board Manager。安裝最新版本的ESP32。
選擇ESP32 Dev Module作為板,選擇合適的flash大小和RainMaker分區(qū)方案。此外,啟用在草圖上傳之前擦除所有Flash。
復(fù)制并編譯下面提供的示例代碼。
將編譯后的代碼上傳到ESP32開發(fā)板上,選擇正確的端口。
上傳代碼成功后,打開串口監(jiān)視器,將波特率設(shè)置為115200。
現(xiàn)在按ESP32上的啟用按鈕。現(xiàn)在一個(gè)QR碼被生成并顯示在串行監(jiān)視器上。
如上圖所示,QR碼不正確,復(fù)制串口監(jiān)視器底部的URL并粘貼到任何瀏覽器。瀏覽器現(xiàn)在將顯示正確且整潔的QR碼。這是QR碼,我們將掃描我們的ESP RainMaker應(yīng)用程序來配置它。
ESP Rainmaker應(yīng)用配置
下載ESP RainMaker應(yīng)用程序并將其安裝在您的智能手機(jī)上。打開應(yīng)用程序并登錄。
如果你之前沒有添加任何設(shè)備,應(yīng)用程序?qū)@示主屏幕與添加設(shè)備按鈕。
現(xiàn)在,打開你智能手機(jī)的藍(lán)牙。點(diǎn)擊“添加設(shè)備”,掃描瀏覽器中顯示的二維碼。
現(xiàn)在應(yīng)用程序嘗試與ESP32板建立BLE通信。一旦連接上,應(yīng)用程序?qū)@示一個(gè)屏幕來選擇WIFI連接。
如果你的手機(jī)在應(yīng)用程序中沒有顯示任何Wi-Fi網(wǎng)絡(luò),你可以通過點(diǎn)擊加入其他網(wǎng)絡(luò)選項(xiàng)手動(dòng)輸入WIFI憑據(jù)。
現(xiàn)在開始配置過程。它由幾個(gè)步驟組成,在成功添加設(shè)備之前進(jìn)行驗(yàn)證。勾選所有步驟后單擊done。
設(shè)置過程完成后,ESP將連接到WIFI網(wǎng)絡(luò),并在應(yīng)用程序主屏幕上以名為“Switch”的新設(shè)備出現(xiàn)。然后可以使用應(yīng)用程序中的開關(guān)按鈕控制LED。
Arduino代碼說明
首先,我們必須包含成功執(zhí)行代碼所需的所有庫。庫僅包括RMaker.h、Wifi.h和wifi prove .h。
由于ESP32與藍(lán)牙通信,因此我們使用指針service_name和pop定義了藍(lán)牙憑據(jù),這將在配置時(shí)使用。
然后我們定義了用于LED和開關(guān)的GPIO引腳。我們還創(chuàng)建了一個(gè)名為switch_state的布爾變量來存儲(chǔ)開關(guān)狀態(tài)。
sysProvEvent()函數(shù)獲取Wi-Fi憑據(jù),并將ESP32連接到路由器,用于系統(tǒng)發(fā)放事件。
write_callback()函數(shù)檢查發(fā)送數(shù)據(jù)的設(shè)備并調(diào)整其參數(shù)。它是專門為器件LED設(shè)計(jì)的,根據(jù)LED引腳的狀態(tài)來確定LED是否應(yīng)該打開或關(guān)閉。如果設(shè)備為“LED”,參數(shù)為“Power”,則如果電源為高,則打開LED,如果電源為低,則關(guān)閉LED。
在setup()函數(shù)中,我們?cè)?15200波特打開串行通信,并使用pinMode()函數(shù)配置復(fù)位和LED引腳,GPIO引腳作為第一個(gè)參數(shù),模式作為第二個(gè)參數(shù)。復(fù)位引腳設(shè)為輸入引腳,LED引腳設(shè)為輸出引腳。LED引腳初始設(shè)置為L(zhǎng)OW狀態(tài)。
然后我們將聲明一個(gè)名為“ESP RainMaker node”的節(jié)點(diǎn)。后來我們宣布了開關(guān)裝置。我們還聲明了交換設(shè)備的回調(diào)功能,并啟用了時(shí)區(qū)服務(wù)。后來我們用Rmaker組建了RainMaker樂隊(duì)。start函數(shù),然后調(diào)用sysProEvent函數(shù)進(jìn)行配置。
環(huán)路監(jiān)視GPIO 0并相應(yīng)地更新switch_state參數(shù)。此外,它還將狀態(tài)變化打印到串行監(jiān)視器,以便調(diào)試。
ESP RainMaker項(xiàng)目的工作
點(diǎn)擊Rainmaker App上的開關(guān)按鈕
本文編譯自iotdesignpro