將 Raspberry Pi 3 連線到遠端監視解決方案,並且使用 C 從真實感應器傳送遙測
本教學課程會示範如何使用 Raspberry Pi 3 的 Microsoft Azure IoT 入門套件來開發可與雲端通訊的溫度與溼度讀取器。 教學課程會使用:
- Raspbian OS、C 程式設計語言和 Microsoft Azure IoT SDK for C 來實作範例裝置。
- IoT 套件遠端監視預先設定解決方案作為以雲端為基礎的後端。
概觀
在本教學課程中,您會完成下列步驟:
- 將遠端監視預先設定解決方案的執行個體部署至您的 Azure 訂用帳戶。 這個步驟會自動部署並設定多個 Azure 服務。
- 設定您的裝置和感應器,以便與您的電腦和遠端監視解決方案進行通訊。
- 更新範例裝置程式碼以連線到遠端監視解決方案,並傳送您可以在解決方案儀表板上檢視的遙測。
必要條件
若要完成此教學課程,您需要一個有效的 Azure 訂用帳戶。
注意
如果您沒有帳戶,只需要幾分鐘的時間就可以建立免費試用帳戶。 如需詳細資料,請參閱 Azure 免費試用。
必要的軟體
您需要透過桌上型電腦上的 SSH 用戶端,才能從遠端存取 Raspberry Pi 上的命令列。
- Windows 不包含 SSH 用戶端。 我們建議使用 PuTTY。
- 大部分的 Linux 散發套件和 Mac OS 都包含命令列 SSH 公用程式。 如需詳細資訊,請參閱使用 Linux 或 Mac OS 的 SSH。
必要的硬體
一部桌上型電腦,可讓您從遠端連線到 Raspberry Pi 上的命令列。
適用於 Raspberry Pi 3 的 Microsoft IoT 入門套件或對等的元件。 本教學課程會使用套件中的下列項目:
- Raspberry Pi 3
- MicroSD 卡 (具有 NOOBS)
- USB Mini 連接線
- 乙太網路連接線
- BME280 感應器
- 試驗電路板
- 跳線
- 電阻器
- LED
佈建解決方案
如果您尚未在您的帳戶中佈建遠端監視預先設定的解決方案:
- 使用 Azure 帳戶認證登入 azureiotsuite.com,然後按一下 []+ 以建立解決方案。
- 按一下 [遠端監視] 圖格上的 [選取]。
- 輸入遠端監視預先設定的解決方案的 [解決方案名稱] 。
- 選取您想要用來佈建解決方案的 [區域] 和 [訂用帳戶]。
- 按一下 [建立解決方案] 開始佈建程序。 此程序通常需要數分鐘的執行時間。
等候佈建程序完成
- 按一下狀態為 佈建中 的解決方案圖格。
- 請注意, 佈建狀態 說明您的 Azure 訂用帳戶中已經佈建 Azure 服務。
- 佈建完成之後,狀態會變更為 就緒。
- 按一下圖格,就會在右邊窗格中看到解決方案的詳細資料。
注意
如果您在佈建預先設定的解決方案時遇到問題,請參閱 azureiotsuite.com 網站的權限和常見問題集。 如果問題持續發生,請在入口網站建立服務票證。
是否有您預期會看到但沒有列出的解決方案詳細資料? 請在 使用者心聲中提供功能建議給我們。
警告
遠端監視解決方案會佈建一組 Azure 訂用帳戶中的 Azure 服務。 部署會反映實際的企業架構。 若要避免不必要的 Azure 耗用量費用,當您使用完 azureiotsuite.com 中預先設定解決方案的執行個體時,請將它刪除。 如果您還需要預先設定的解決方案,可以輕鬆地將它重新建立。 如需將遠端監視解決方案執行時的耗用量降低的詳細資訊,請參閱設定 Azure IoT 套件預先設定的解決方案以供示範。
檢視解決方案儀表板
解決方案儀表板可讓您管理部署的解決方案。 例如,您可以檢視遙測、新增裝置及叫用方法。
當佈建完成且預先設定解決方案的圖格指示 [就緒] 時,選擇 [啟動] 以在新的索引標籤中開啟遠端監視解決方案入口網站。
根據預設,此解決方案入口網站會顯示儀表板。 您可以使用頁面左側的功能表,瀏覽至解決方案入口網站的其他區域。
新增裝置
對於連線到預先設定解決方案的裝置,該裝置必須使用有效的認證向 IoT 中樞識別自己。 您會從解決方案儀表板收到裝置認證。 稍後在本教學課程中,您會將您的裝置認證包含在您的用戶端應用程式中。
如果您尚未這麼做,請將自訂裝置新增至您的遠端監視解決方案。 在解決方案儀表板中完成下列步驟︰
在儀表板左下角,按一下 [新增裝置] 。
在 [自訂裝置] 面板中,按一下 [新增]。
選擇 [讓我定義自己的裝置識別碼]。 輸入 [裝置識別碼],例如 rasppi,按一下 [檢查識別碼] 以確認您尚未在解決方案中使用此名稱,然後按一下 [建立] 來佈建裝置。
記下裝置認證 (裝置標識碼、IoT 中樞 主機名和裝置密鑰) 。 Raspberry Pi 上的用戶端應用程式需要這些值,才能連線到遠端監視解決方案。 然後按一下 [完成]。
從解決方案儀表板的裝置清單中選取您的裝置。 然後,在 [裝置詳細資料] 面板中,按一下 [啟用裝置]。 裝置的狀態現在會是 [正在執行]。 遠端監視解決方案現在已可從您的裝置接收遙測資料,並在該裝置上叫用方法。
準備您的 Raspberry Pi
安裝 Raspbian
如果這是您第一次使用 Raspberry Pi,您需要使用套件內含 SD 卡上的 NOOBS 來安裝 Raspbian 作業系統。 Raspberry Pi 軟體指南說明如何在 Raspberry Pi 上安裝作業系統。 本教學課程假設您已在 Raspberry Pi 上安裝 Raspbian 作業系統。
注意
適用於 Raspberry Pi 3 的 Microsoft Azure IoT 入門套件內含的 SD 卡已安裝 NOOBS。 您可以從這張卡啟動 Raspberry Pi,並選擇安裝 Raspbian OS。
設定工具
本教學課程使用適用於 Raspberry Pi 3 的 Microsoft Azure IoT 入門套件內含的 BME280 感應器來產生遙測資料。 其使用 LED 來指出 Raspberry Pi 何時從解決方案儀表板處理方法引動過程。
試驗電路板上的元件如下︰
- 紅色 LED
- 220-Ohm 電阻器 (紅色、紅色、棕色)
- BME280 感應器
下圖顯示連接硬體的方式:
下表摘要說明如何從 Raspberry Pi 連接到試驗電路板上的元件︰
Raspberry Pi | 試驗電路板 | 色彩 |
---|---|---|
GND (針腳 14) | LED -ve 針腳 (18A) | 紫色 |
GPCLK0 (針腳 7) | 電阻器 (25A) | 橙色 |
SPI_CE0 (針腳 24) | CS (39A) | 藍色 |
SPI_SCLK (針腳 23) | SCK (36A) | 黃色 |
SPI_MISO (針腳 21) | SDO (37A) | 白色 |
SPI_MOSI (針腳 19) | SDI (38A) | 綠色 |
GND (針腳 6) | GND (35A) | 黑色 |
3.3 V (針腳 1) | 3Vo (34A) | 紅色 |
若要完成硬體設定,您需要︰
- 將 Raspberry Pi 連線至套件內含的電源供應器。
- 使用套件內含的乙太網路連接線,將 Raspberry Pi 連線至您的網路。 或者,您可以為 Raspberry Pi 設定無線連線能力。
您現在已完成 Raspberry Pi 的硬體設定。
登入及存取終端機
您有兩個選項可存取 Raspberry Pi 上的終端機環境︰
如果您的 Raspberry Pi 已連接鍵盤與監視器,您可以使用 Raspbian GUI 來存取終端機視窗。
使用 SSH 從您的桌上型電腦存取 Raspberry Pi 上的命令列。
在 GUI 中使用終端機視窗
Raspbian 的預設認證是使用者名稱 pi 和密碼 raspberry。 在 GUI 的工作列中,您可以使用看似監視器的圖示來啟動 Terminal 公用程式。
使用 SSH 登入
您可以使用命令列的 SSH 存取 Raspberry Pi。 SSH (安全殼層) 一文說明如何在 Raspberry Pi 上設定 SSH,以及如何從 Windows 或 Linux 和 Mac OS 連接。
以使用者名稱 pi 和密碼 raspberry 登入。
選擇性︰共用 Raspberry Pi 上的資料夾
選擇性地,您可能想要與您的桌上型電腦環境共用 Raspberry Pi 上的資料夾。 共用資料夾可讓您使用慣用的桌上型電腦文字編輯器 (例如 Visual Studio Code 或 Sublime Text) 來編輯 Raspberry Pi 上的檔案,而不是使用 nano
或 vi
。
若要與 Windows 共用資料夾,請在 Raspberry Pi 上設定 Samba 伺服器。 或者,使用內建 SFTP 伺服器搭配桌上型電腦上的 SFTP 用戶端。
啟用 SPI
您必須先在 Raspberry Pi 上啟用串列周邊介面 (SPI) 匯流排,才可以執行範例應用程式。 Raspberry Pi 會透過 SPI 匯流排與 BME280 感應器裝置通訊。 使用下列命令來編輯組態檔︰
sudo nano /boot/config.txt
請尋找以下這行︰
#dtparam=spi=on
若要取消註解這行,請刪除開頭的
#
。儲存您的變更 (Ctrl-O、Enter) 並結束編輯器 (Ctrl-X)。
若要啟用 SPI,請重新啟動 Raspberry Pi。 重新啟動會中斷終端機的連線,您必須在 Raspberry Pi 重新啟動時再次登入︰
sudo reboot
下載並設定範例
您現在可以在 Raspberry Pi 上將遠端監視用戶端應用程式進行下載及設定。
複製存放庫
如果您尚未這麼做,請在 Pi 上的終端機執行下列命令來複製所需的存放庫︰
cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-c-raspberrypi-getstartedkit.git
git clone --recursive https://github.com/WiringPi/WiringPi.git
更新裝置連接字串
使用下列命令,將 nano 編輯器中的範例來源檔案開啟︰
nano ~/iot-remote-monitoring-c-raspberrypi-getstartedkit/basic/remote_monitoring/remote_monitoring.c
找出下列幾行:
static const char* deviceId = "[Device Id]";
static const char* connectionString = "HostName=[IoTHub Name].azure-devices.net;DeviceId=[Device Id];SharedAccessKey=[Device Key]";
將預留位置值取代為本教學課程開頭所建立及儲存的裝置和 IoT 中樞。 儲存您的變更 (Ctrl-O、Enter) 並結束編輯器 (Ctrl-X)。
建置範例
請在 Pi 上的終端機執行下列命令,安裝 Microsoft Azure IoT Device SDK for C 的必要條件套件︰
sudo apt-get update
sudo apt-get install g++ make cmake git libcurl4-openssl-dev libssl-dev uuid-dev
您現在可以在 Raspberry Pi 上建置更新的範例解決方案︰
chmod +x ~/iot-remote-monitoring-c-raspberrypi-getstartedkit/basic/build.sh
~/iot-remote-monitoring-c-raspberrypi-getstartedkit/basic/build.sh
您現在可以在 Raspberry Pi 上執行範例程式。 輸入命令:
sudo ~/cmake/remote_monitoring/remote_monitoring
下列範例輸出是您在 Raspberry Pi 的命令提示字元所看到的輸出範例︰
按下 CTRL-C 可隨時結束程式。
檢視遙測資料
Raspberry Pi 現在會將遙測資料傳送至遠端監視解決方案。 您可以在解決方案儀表板上檢視遙測資料。 您也可以從解決方案儀表板將訊息傳送至 Raspberry Pi。
- 瀏覽至解決方案儀表板。
- 在 [要檢視的裝置] 下拉式清單中選取您的裝置。
- 來自 Raspberry Pi 的遙測資料會顯示在儀表板上。
在裝置上採取行動
從解決方案儀表板,您可以在 Raspberry Pi 上叫用方法。 當 Raspberry Pi 連線到遠端監視解決方案時,它會傳送所支援方法的相關資訊。
在解決方案儀表板中,按一下 [裝置] 以造訪 [裝置] 頁面。 在 [裝置清單] 中選取您的 Raspberry Pi。 然後選擇 [方法]:
在 [叫用方法] 頁面上,選擇 [方法] 下拉式清單中的 [LightBlink]。
選擇 [InvokeMethod]。 連接到 Raspberry Pi 的 LED 會閃爍數次。 Raspberry Pi 上的應用程式會將通知傳回解決方案儀表板︰
您可以使用 ChangeLightStatus 方法並將 LightStatusValue 設定為 1 (開啟) 或 0 (關閉),以開啟和關閉 LED。
警告
如果讓遠端監視解決方案繼續在您的 Azure 帳戶中執行,您需支付其執行期間的費用。 如需將遠端監視解決方案執行時的耗用量降低的詳細資訊,請參閱設定 Azure IoT 套件預先設定的解決方案以供示範。 使用完畢時,從您的 Azure 帳戶將預先設定的解決方案刪除。
下一步
請瀏覽 Azure IoT 開發人員中心,取得更多 Azure IoT 的相關範例和文件。