如何使用樹莓派將DHT11傳感器數(shù)據(jù)發(fā)送到IBM沃森云平臺
掃描二維碼
隨時隨地手機(jī)看文章
我們已經(jīng)熟悉了一些流行的物聯(lián)網(wǎng)平臺,如ThingSpeak, Adafruit IO, Blynk等,并已經(jīng)使用這些平臺構(gòu)建了許多物聯(lián)網(wǎng)項目。但除了這些平臺之外,還有一些工業(yè)級物聯(lián)網(wǎng)平臺,如亞馬遜網(wǎng)絡(luò)服務(wù)、微軟Azure和IBM沃森,它們經(jīng)常被大型行業(yè)用于存儲和分析從物聯(lián)網(wǎng)設(shè)備收集的數(shù)據(jù)。這些平臺更安全,并提供許多有用的服務(wù),從獲取數(shù)據(jù)到使用機(jī)器學(xué)習(xí)算法進(jìn)行分析。
IBM Watson是一個強(qiáng)大的平臺,它為您的產(chǎn)品提供語音到文本、文本到語音、視覺識別、自然語言處理和認(rèn)知計算功能等服務(wù)。這個平臺可以幫助分析和理解你的數(shù)據(jù),這些數(shù)據(jù)可以是圖像、音頻、視頻,甚至是簡單的文本和數(shù)字。聊天機(jī)器人也可以使用這個平臺創(chuàng)建,它們可以與用戶交談。IBM Watson是一個非常強(qiáng)大的機(jī)器學(xué)習(xí)框架,可以與樹莓派一起使用來構(gòu)建更強(qiáng)大的應(yīng)用程序。該平臺兼容MQTT協(xié)議、HTTP和REST api。
在本教程中,我們將設(shè)置IBM Watson帳戶,并使用樹莓派將DHT11溫度和濕度數(shù)據(jù)發(fā)送給它。我們還將借助圖形將這些數(shù)據(jù)可視化。以前,我們使用樹莓派構(gòu)建了許多基于物聯(lián)網(wǎng)的應(yīng)用程序。
需求
?Raspberry Pi,安裝Raspbian OS。
?DHT11溫濕度傳感器
?跳線
在這里,我們將使用SSH訪問筆記本電腦上的樹莓派。如果你有顯示器,那么它將非常容易開始,但如果你沒有顯示器,那么設(shè)置樹莓派在無頭模式或使用VNC服務(wù)器獲得樹莓派桌面在筆記本電腦上。
樹莓派在構(gòu)建基于物聯(lián)網(wǎng)的項目中非常受歡迎,因為它具有對物聯(lián)網(wǎng)的所有必要支持。它是一個手掌大小的電腦,內(nèi)置Wi-Fi,藍(lán)牙,USB端口,音頻/視頻端口,HDMI端口,攝像頭端口等。你可以在這里查看所有基于樹莓派的物聯(lián)網(wǎng)項目。
線路圖
硬件只涉及樹莓派和DHT11傳感器。DHT11的信號引腳連接樹莓派的GPIO17, DHT11的Vdd和GND引腳分別連接樹莓派的5v和GND引腳。
我們之前將DHT11傳感器數(shù)據(jù)發(fā)送到許多其他物聯(lián)網(wǎng)云以建立氣象站
?基于物聯(lián)網(wǎng)的溫濕度監(jiān)測使用BLYNK, ESP8266和DHT11傳感器
?基于物聯(lián)網(wǎng)的樹莓派氣象站,使用DHT11和BMP180傳感器
?使用樹莓派和辣椒進(jìn)行云上溫度和濕度監(jiān)測
?Arduino接口與Node-RED監(jiān)測網(wǎng)頁上的溫度和濕度
?物聯(lián)網(wǎng)無線氣象站使用Arduino, ESP8266和ThingSpeak
在樹莓派上設(shè)置MQTT客戶端
在之前的ESP32和IBM Watson教程中,我們使用pubsubclient在IBM平臺上發(fā)送和接收MQTT消息。在Raspberry Pi中,我們也需要一個MQTT客戶端來發(fā)送和接收消息,因此首先我們?yōu)槠浒惭b庫。這里paho-mqtt庫與Raspberry Pi一起使用。
首先,使用sudo apt-get update更新樹莓派操作系統(tǒng)。
現(xiàn)在,運(yùn)行以下命令安裝paho mqtt客戶端庫
IBM沃森物聯(lián)網(wǎng)平臺的設(shè)置帳戶
1. 要在IBM Watson平臺上創(chuàng)建帳戶,請轉(zhuǎn)到IBM云頁面并單擊創(chuàng)建IBM帳戶。輸入您的詳細(xì)信息并單擊創(chuàng)建帳戶,如下所示。
2. 要在IBM平臺上使用任何服務(wù),我們必須為它創(chuàng)建資源。因此,使用您的憑據(jù)登錄(請注意,IBMid是您用于創(chuàng)建帳戶的電子郵件id),您將被重定向到IBM云網(wǎng)站?,F(xiàn)在,單擊Create Resource。
3. IBM Cloud提供了許多服務(wù),所有這些服務(wù)都可以在參考資料列表中看到。因為我們想要使用物聯(lián)網(wǎng)服務(wù)。點擊物聯(lián)網(wǎng),點擊物聯(lián)網(wǎng)平臺。
4. 下一頁上有一些預(yù)先填寫的信息,保留這些信息,然后單擊Create。
5. 現(xiàn)在我們已經(jīng)準(zhǔn)備好了物聯(lián)網(wǎng)資源。通過單擊Launch啟動創(chuàng)建的資源。
6. 現(xiàn)在,您將被重定向到物聯(lián)網(wǎng)頁面。在這里,添加您的設(shè)備以將其連接到物聯(lián)網(wǎng)平臺。單擊Add device。
7. 在下一頁填寫設(shè)備詳細(xì)信息。在設(shè)備類型中給出任何名稱,您的設(shè)備ID將是該設(shè)備的MAC地址。您可以使用ifconfig找到樹莓派的MAC地址,如下所示。使用不帶冒號的地址。
MAC地址將打印在串行監(jiān)視器上,復(fù)制該數(shù)字并粘貼在設(shè)備ID中。單擊Next。
8. 下一頁,有一些與設(shè)備相關(guān)的信息。保留這些信息,然后單擊下一步。Security部分也一樣,保留它不填充,然后單擊next,如圖所示。
9. 在最后一頁作為Summary,單擊Finish。
10. 現(xiàn)在,我們已經(jīng)成功創(chuàng)建了設(shè)備,設(shè)備憑據(jù)將顯示在下一頁上。復(fù)制所有憑證并將其保存在某個地方。代碼中將需要它們。
11. 點擊Devices,你會看到樹莓派已經(jīng)成功創(chuàng)建,但是還沒有連接?,F(xiàn)在,我們將通過編寫代碼將樹莓派與該平臺連接起來。
12. 要以圖形格式顯示溫度和濕度,請通過進(jìn)入設(shè)備并單擊使用概況板創(chuàng)建模板。
13. 現(xiàn)在,單擊Add New Card。在這里,您將找到要顯示的不同類型的圖形。我們將使用折線圖,所以繼續(xù)點擊折線圖。
14. 選擇我們之前創(chuàng)建的設(shè)備并單擊Next。在下一頁點擊連接新數(shù)據(jù)集。
15. 現(xiàn)在,輸入要顯示在圖上的數(shù)據(jù)。我們將在status1事件上發(fā)送溫度值(代碼中提到了status1變量)。將屬性和名稱設(shè)置為溫度,類型設(shè)置為數(shù)字,單位設(shè)置為攝氏度,然后單擊Next。
16. 選擇圖形大小,點擊下一步,然后在下一頁選擇圖形顏色,點擊提交。
17. 現(xiàn)在,您將看到如下所示的圖表。重復(fù)以上步驟制作另一個濕度圖,并將事件設(shè)為status2,屬性和名稱設(shè)為濕度,值設(shè)為Number,單位設(shè)為%。
18. 啟用IBM云和樹莓派之間的通信。轉(zhuǎn)到安全選項并單擊連接安全。
19. 在默認(rèn)規(guī)則下,選擇安全級別為TLS可選,然后單擊保存。
就是這樣。我們已經(jīng)成功地為樹莓派建立了IBM Watson物聯(lián)網(wǎng)平臺。現(xiàn)在,我們必須編寫Python代碼來將溫度和濕度的值發(fā)送到這個平臺。
代碼與說明
在繼續(xù)之前,按照以下步驟在樹莓派上安裝DHT傳感器庫:
通過運(yùn)行下面的命令從github下載DHT庫
現(xiàn)在使用cd Adafruit_Python_DHT進(jìn)入Adafruit_Python_DHT目錄,并使用以下命令安裝庫
安裝庫之后,您可以通過在同一目錄中運(yùn)行示例代碼來測試DHT傳感器。
在本教程的最后給出了完整的python代碼和工作視頻,在這里我們解釋了完整的程序,以了解項目的工作原理。
首先,導(dǎo)入時間、DHT傳感器和MQTT客戶機(jī)所需的所有庫
初始化DHT傳感器連接的引腳編號,并聲明一個變量來存儲傳感器數(shù)據(jù),然后該數(shù)據(jù)將在兩個不同的變量中共享-濕度和溫度。
然后定義在Watson平臺上添加設(shè)備時復(fù)制的所有憑據(jù),如下所示。
現(xiàn)在,提供將發(fā)布數(shù)據(jù)的服務(wù)器鏈接和主題。我們有2個主題,一個是溫度,一個是濕度,分別命名為status1和status2。將AuthMethod設(shè)置為“use-token-auth”,然后定義clientID,如下所示。
為MQTT客戶機(jī)初始化一個變量,以便使用MQTT的功能。在connect功能中設(shè)置端口號和服務(wù)器名稱。
現(xiàn)在,在while循環(huán)中,我們將每隔5秒連續(xù)向IBM云發(fā)送溫度和濕度數(shù)據(jù)。
現(xiàn)在完成了將數(shù)據(jù)發(fā)送到IBM云的Python代碼。您可以在本教程的末尾找到完整的代碼和工作視頻。
最后,如連接圖所示,將DHT傳感器與gpio17連接,并使用python filename.py命令運(yùn)行腳本。
在IBM Watson物聯(lián)網(wǎng)平臺上檢查上傳的數(shù)據(jù)
1. 現(xiàn)在,是時候檢查IBM Watson平臺上上傳的數(shù)據(jù)了。一旦您的模塊與Wi-Fi連接,您將看到IBM Watson平臺上的連接狀態(tài),如下所示。
2. 轉(zhuǎn)到Boards并單擊Usage Overview選項。
3. 這里創(chuàng)建了兩個圖表,用于查看每秒鐘更新的溫度和濕度值,如下所示。
4. 通過在儀表板中選擇適當(dāng)?shù)倪x項,可以看到不同格式的值,如圖表形式或儀表。
您還可以在Recent Events選項卡中檢查傳入數(shù)據(jù),如下所示。
IBM Watson平臺還有許多其他特性需要探索。這就是樹莓派如何將數(shù)據(jù)發(fā)送到IBM沃森物聯(lián)網(wǎng)云平臺。
本文編譯自iotdesignpro