將 Raspberry Pi 3 連線到遠端監視解決方案,並且使用 Node.js 來傳送模擬遙測
本教學課程說明如何使用 Raspberry Pi 3 來模擬溫度和溼度資料,以便傳送至雲端。 教學課程會使用:
- Raspbian OS、Node.js 程式設計語言和 Microsoft Azure IoT SDK for Node.js 來實作範例裝置。
- 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 連接線
- 乙太網路連接線
佈建解決方案
如果您尚未在您的帳戶中佈建遠端監視預先設定的解決方案:
- 使用 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 連線至套件內含的電源供應器。
- 使用套件內含的乙太網路連接線,將 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 用戶端。
下載並設定範例
您現在可以在 Raspberry Pi 上將遠端監視用戶端應用程式進行下載及設定。
安裝 Node.js
如果您尚未這麼做,請在 Raspberry Pi 上安裝 Node.js。 適用於 Node.js 的 IoT SDK 需要 Node.js 0.11.5 版或更新版本。 下列步驟說明如何在 Raspberry Pi 上安裝 Node.js 6.10.2 版:
若要更新 Raspberry Pi,請使用下列命令︰
sudo apt-get update
若要將 Node.js 二進位檔下載至 Raspberry Pi,請使用下列命令︰
wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gz
使用下列命令來安裝二進位檔:
sudo tar -C /usr/local --strip-components 1 -xzf node-v6.10.2-linux-armv7l.tar.gz
若要確認您已成功安裝 Node.js 6.10.2 版,請使用下列命令︰
node --version
複製存放庫
如果您尚未這麼做,請在 Pi 上的終端機執行下列命令來複製所需的存放庫︰
cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit.git
更新裝置連接字串
使用下列命令,將 nano 編輯器中的範例來源檔案開啟︰
nano ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator/remote_monitoring.js
請尋找以下這行︰
var connectionString = 'HostName=[Your IoT hub name].azure-devices.net;DeviceId=[Your device id];SharedAccessKey=[Your device key]';
將預留位置值取代為本教學課程開頭所建立及儲存的裝置和 IoT 中樞。 儲存您的變更 (Ctrl-O、Enter) 並結束編輯器 (Ctrl-X)。
執行範例
執行下列命令來安裝範例的必要條件套件︰
cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator
npm install
您現在可以在 Raspberry Pi 上執行範例程式。 輸入命令:
sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator/remote_monitoring.js
下列範例輸出是您在 Raspberry Pi 的命令提示字元所看到的輸出範例︰
按下 CTRL-C 可隨時結束程式。
檢視遙測資料
Raspberry Pi 現在會將遙測資料傳送至遠端監視解決方案。 您可以在解決方案儀表板上檢視遙測資料。 您也可以從解決方案儀表板將訊息傳送至 Raspberry Pi。
- 瀏覽至解決方案儀表板。
- 在 [要檢視的裝置] 下拉式清單中選取您的裝置。
- 來自 Raspberry Pi 的遙測資料會顯示在儀表板上。
在裝置上採取行動
從解決方案儀表板,您可以在 Raspberry Pi 上叫用方法。 當 Raspberry Pi 連線到遠端監視解決方案時,它會傳送所支援方法的相關資訊。
在解決方案儀表板中,按一下 [裝置] 以造訪 [裝置] 頁面。 在 [裝置清單] 中選取您的 Raspberry Pi。 然後選擇 [方法]:
在 [叫用方法] 頁面上,選擇 [方法] 下拉式清單中的 [LightBlink]。
選擇 [InvokeMethod]。 模擬器會在 Raspberry Pi 的主控台中列印一則訊息。 Raspberry Pi 上的應用程式會將通知傳回解決方案儀表板︰
您可以使用 ChangeLightStatus 方法並將 LightStatusValue 設定為 1 (開啟) 或 0 (關閉),以開啟和關閉 LED。
警告
如果讓遠端監視解決方案繼續在您的 Azure 帳戶中執行,您需支付其執行期間的費用。 如需將遠端監視解決方案執行時的耗用量降低的詳細資訊,請參閱設定 Azure IoT 套件預先設定的解決方案以供示範。 使用完畢時,從您的 Azure 帳戶將預先設定的解決方案刪除。
下一步
請瀏覽 Azure IoT 開發人員中心,取得更多 Azure IoT 的相關範例和文件。