如何連接ESP32與IBM沃森云平臺(tái)
根據(jù)一份報(bào)告,到2020年,全球?qū)⒂谐^(guò)204億個(gè)聯(lián)網(wǎng)設(shè)備。物聯(lián)網(wǎng)平臺(tái)是互聯(lián)設(shè)備增長(zhǎng)的主要推動(dòng)者。為了將設(shè)備連接到互聯(lián)網(wǎng),它們提供許多集成服務(wù)和基礎(chǔ)設(shè)施,如數(shù)據(jù)存儲(chǔ)、連接、顯示、控制等。因此,它們減少了部署物聯(lián)網(wǎng)解決方案所需的工作量和投資,這是一些最成功的物聯(lián)網(wǎng)解決方案背后的主要原因之一。
我們已經(jīng)熟悉了一些流行的物聯(lián)網(wǎng)平臺(tái),如ThingSpeak, Adafruit IO, Blynk等,并已經(jīng)使用這些平臺(tái)構(gòu)建了許多物聯(lián)網(wǎng)項(xiàng)目。但除了這些平臺(tái)之外,還有一些工業(yè)級(jí)物聯(lián)網(wǎng)平臺(tái),如亞馬遜網(wǎng)絡(luò)服務(wù)、微軟Azure和IBM沃森,它們經(jīng)常被大型行業(yè)用于存儲(chǔ)和分析從物聯(lián)網(wǎng)設(shè)備收集的數(shù)據(jù)。這些平臺(tái)更安全,并提供許多有用的服務(wù),從獲取數(shù)據(jù)到使用機(jī)器學(xué)習(xí)算法進(jìn)行分析。
在本教程中,我們將學(xué)習(xí)IBM Watson平臺(tái),它是在安全性和兼容性方面最好的物聯(lián)網(wǎng)平臺(tái)之一。IBM Watson或Bluemix是一個(gè)云平臺(tái),支持許多產(chǎn)品和服務(wù),如計(jì)算基礎(chǔ)設(shè)施和服務(wù)、物聯(lián)網(wǎng)、數(shù)據(jù)分析、移動(dòng)應(yīng)用服務(wù)、存儲(chǔ)等。該平臺(tái)兼容MQTT協(xié)議、HTTP和REST api。對(duì)于初學(xué)者來(lái)說(shuō),可能很難使用這個(gè)平臺(tái)。
在本教程中,我們將設(shè)置IBM Watson帳戶,并使用ESP32模塊將DHT11溫度和濕度數(shù)據(jù)發(fā)送給它。我們還將借助圖形將這些數(shù)據(jù)可視化。以前我們使用ESP32來(lái)構(gòu)建許多基于物聯(lián)網(wǎng)的應(yīng)用程序,如果您是ESP32新手,請(qǐng)開(kāi)始使用ESP32教程。
所需的材料
?ESP32董事會(huì)
?DHT11溫濕度傳感器
?公母線
線路圖
硬件只涉及ESP32和DHT11傳感器。DHT11信號(hào)引腳接D4, DHT11的Vdd和GND引腳分別接ESP32的3.3v和GND引腳。
我們之前將DHT11傳感器數(shù)據(jù)發(fā)送到許多其他物聯(lián)網(wǎng)云以建立氣象站
?基于物聯(lián)網(wǎng)的溫濕度監(jiān)測(cè)使用BLYNK, ESP8266和DHT11傳感器
?基于物聯(lián)網(wǎng)的樹(shù)莓派氣象站,使用DHT11和BMP180傳感器
?使用樹(shù)莓派和辣椒進(jìn)行云上溫度和濕度監(jiān)測(cè)
?Arduino接口與Node-RED監(jiān)測(cè)網(wǎng)頁(yè)上的溫度和濕度
?物聯(lián)網(wǎng)無(wú)線氣象站使用Arduino, ESP8266和ThingSpeak
IBM沃森物聯(lián)網(wǎng)平臺(tái)的設(shè)置帳戶
要在IBM Watson平臺(tái)上創(chuàng)建帳戶,請(qǐng)轉(zhuǎn)到IBM云頁(yè)面并單擊創(chuàng)建IBM帳戶。輸入您的詳細(xì)信息并單擊創(chuàng)建帳戶,如下所示。
2. 要在IBM平臺(tái)上使用任何服務(wù),我們必須為它創(chuàng)建資源。因此,使用您的憑據(jù)登錄(請(qǐng)注意,IBMid是您用于創(chuàng)建帳戶的電子郵件id),您將被重定向到IBM云網(wǎng)站?,F(xiàn)在,單擊Create Resource。
3. IBM Cloud提供了許多服務(wù),所有這些服務(wù)都可以在參考資料列表中看到。因?yàn)槲覀兿胍褂梦锫?lián)網(wǎng)服務(wù)。點(diǎn)擊物聯(lián)網(wǎng),點(diǎn)擊物聯(lián)網(wǎng)平臺(tái)。
4. 下一頁(yè)上有一些預(yù)先填寫(xiě)的信息,保留這些信息,然后單擊Create。
5. 現(xiàn)在我們已經(jīng)準(zhǔn)備好了物聯(lián)網(wǎng)資源。通過(guò)單擊Launch啟動(dòng)創(chuàng)建的資源。
6. 現(xiàn)在,您將被重定向到物聯(lián)網(wǎng)頁(yè)面。在這里,添加您的設(shè)備以將其連接到物聯(lián)網(wǎng)平臺(tái)。單擊Add device。
7. 在下一頁(yè)填寫(xiě)設(shè)備詳細(xì)信息。在設(shè)備類型中給出名稱,設(shè)備ID將是該設(shè)備的MAC地址。您可以使用下面的代碼找到ESP32的MAC地址
MAC地址將打印在串行監(jiān)視器上,復(fù)制該數(shù)字并粘貼在設(shè)備ID中。單擊Next。
8. 下一頁(yè),有一些與設(shè)備相關(guān)的信息。保留這些信息,然后單擊下一步。Security部分也一樣,保留它不填充,然后單擊next,如圖所示。
9. 在最后一頁(yè)作為Summary,單擊Finish。
10. 現(xiàn)在,我們已經(jīng)成功創(chuàng)建了設(shè)備,設(shè)備憑據(jù)將顯示在下一頁(yè)上。復(fù)制所有憑證并將其保存在某個(gè)地方。代碼中將需要它們。
11. 單擊Devices,您將看到ESP32已成功創(chuàng)建,但未連接。現(xiàn)在,我們將通過(guò)編寫(xiě)代碼將ESP32與該平臺(tái)連接起來(lái)。
12. 要以圖形格式顯示溫度和濕度,請(qǐng)通過(guò)進(jìn)入設(shè)備并單擊使用概況板創(chuàng)建模板。
13. 現(xiàn)在,單擊Add New Card。在這里,您將找到要顯示的不同類型的圖形。我們將使用折線圖,所以繼續(xù)點(diǎn)擊折線圖。
14. 選擇我們之前創(chuàng)建的設(shè)備并單擊Next。在下一頁(yè)點(diǎn)擊連接新數(shù)據(jù)集。
15. 現(xiàn)在,輸入要顯示在圖上的數(shù)據(jù)。我們將在status1事件上發(fā)送溫度值(代碼中提到了status1變量)。將屬性和名稱設(shè)置為溫度,類型設(shè)置為數(shù)字,單位設(shè)置為攝氏度,然后單擊Next。
16. 選擇圖形大小,點(diǎn)擊下一步,然后在下一頁(yè)選擇圖形顏色,點(diǎn)擊提交。
17. 現(xiàn)在,您將看到如下所示的圖表。重復(fù)以上步驟制作另一個(gè)濕度圖,并將事件設(shè)為status2,屬性和名稱設(shè)為濕度,值設(shè)為Number,單位設(shè)為%。
18. 實(shí)現(xiàn)IBM云和ESP32之間的通信。轉(zhuǎn)到安全選項(xiàng)并單擊連接安全。
19. 在默認(rèn)規(guī)則下,選擇安全級(jí)別為T(mén)LS可選,然后單擊保存。
就是這樣。我們已經(jīng)成功地為ESP32建立了IBM沃森物聯(lián)網(wǎng)平臺(tái)。現(xiàn)在,我們需要編寫(xiě)將溫度和濕度值發(fā)送到該平臺(tái)的代碼。
代碼與說(shuō)明
在繼續(xù)之前,請(qǐng)確保您已經(jīng)安裝了ESP32板文件,如果您沒(méi)有板文件,請(qǐng)按照我們之前關(guān)于ESP32的教程了解如何安裝板文件。
現(xiàn)在,為DHT傳感器和PubSub客戶機(jī)安裝庫(kù)。去sketch ->包括庫(kù)->管理庫(kù)。然后搜索DHT和PubSubClient庫(kù),然后安裝它。
在這里我們解釋了完整的程序,以了解項(xiàng)目的工作原理。
首先,包括Wi-Fi、PubSubClient和DHT的庫(kù)。因?yàn)槲覀兪褂肕QTT協(xié)議來(lái)發(fā)送和接收消息,所以我們需要PubSubClient。該庫(kù)使用MQTT協(xié)議訂閱和發(fā)布數(shù)據(jù)。
定義dhtpin和DHT傳感器類型的一些變量。此外,我們需要定義在Watson平臺(tái)上添加設(shè)備時(shí)復(fù)制的所有憑據(jù),如下所示。
在字符變量中添加Wi-Fi憑據(jù)作為SSID和密碼。
現(xiàn)在,提供我們將發(fā)布數(shù)據(jù)的鏈接。此外,提供我們將發(fā)布數(shù)據(jù)的主題。我們有2個(gè)主題,一個(gè)是溫度,另一個(gè)是濕度,分別命名為status1和status2。給出驗(yàn)證方法為“use-token-auth”,然后定義clientID,如下所示。
在void Setup函數(shù)中,使用.begin()函數(shù)初始化串行監(jiān)視器,DHT傳感器和Wi-Fi。然后將模塊與Wi-Fi連接。建立連接后,使用給定的憑據(jù)將模塊連接到IBM Watson平臺(tái)。
在void loop函數(shù)中,從DHT傳感器獲取溫度和濕度數(shù)據(jù)并存儲(chǔ)在兩個(gè)不同的變量中。然后將此有效負(fù)載作為字符串發(fā)送。我們需要?jiǎng)?chuàng)建兩個(gè)字符串,一個(gè)用于溫度,另一個(gè)用于濕度,每秒鐘發(fā)送一次數(shù)據(jù)。
類似地,為濕度創(chuàng)建一個(gè)字符串。
現(xiàn)在我們已經(jīng)完成了編碼部分。您可以在本教程的末尾找到完整的代碼和演示視頻。
從ESP32上傳數(shù)據(jù)到IBM沃森物聯(lián)網(wǎng)云
最后根據(jù)接線圖將DHT傳感器與數(shù)字引腳4連接,并在工具菜單中選擇ESP32 Dev模塊上傳代碼。
檢查IBM Watson上傳的數(shù)據(jù)
現(xiàn)在,是時(shí)候檢查IBM Watson平臺(tái)上上傳的數(shù)據(jù)了。一旦您的模塊與Wi-Fi連接,您將看到IBM Watson平臺(tái)上的連接狀態(tài),如下所示。
1. 轉(zhuǎn)到Boards并單擊Usage Overview選項(xiàng)。
2. 這里創(chuàng)建了兩個(gè)圖表,用于查看每秒鐘更新的溫度和濕度值,如下所示。
3. 通過(guò)在儀表板中選擇適當(dāng)?shù)倪x項(xiàng),可以看到不同格式的值,如圖表形式或儀表。
IBM Watson平臺(tái)還有許多其他特性需要探索。這就是ESP32如何將數(shù)據(jù)發(fā)送到IBM沃森云平臺(tái)
本文編譯自iotdesignpro