本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
首要步驟
重要
此頁面是指已棄用的 Amazon-FreeRTOS 儲存庫。我們建議您在建立新專案時從這裡開始。如果您已經有以現在已棄用的 Amazon-FreeRTOS 儲存庫為基礎的現有 FreeRTOS 專案,請參閱 Amazon-FreeRTOS Github 儲存庫遷移指南。 FreeRTOS
若要開始使用 FreeRTOSAWS IoT,您必須擁有 AWS帳戶、具有存取許可的使用者,AWS IoT以及 FreeRTOS 雲端服務。您還必須下載 FreeRTOS 並設定主機板的 FreeRTOS 示範專案來使用AWS IoT。以下章節將逐步引導您完成這些要求。
注意
-
如果您使用的是 Espressif ESP32-DevKitC、ESP-WROVER-KIT 或 ESP32-WROOM-32SE,請略過這些步驟並前往Espressif ESP32-DevKitC 和 ESP-WROVER-KIT 入門。
-
如果您使用的是 Nordic nRF52840-DK,請略過這些步驟並前往Nordic nRF52840-DK 入門。
設定AWS您的帳戶和許可
註冊 AWS 帳戶
如果您沒有 AWS 帳戶,請完成下列步驟來建立一個。
註冊 AWS 帳戶
請遵循線上指示進行。
部分註冊程序需接收來電或簡訊,並在電話鍵盤輸入驗證碼。
當您註冊 時AWS 帳戶,AWS 帳戶根使用者會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務,請將管理存取權指派給使用者,並且僅使用根使用者來執行需要根使用者存取權的任務。
AWS會在註冊程序完成後傳送確認電子郵件給您。您可以隨時登錄 https://aws.amazon.com/
建立具有管理存取權的使用者
註冊 後AWS 帳戶,請保護AWS 帳戶根使用者、啟用AWS IAM Identity Center和建立管理使用者,以免將根使用者用於日常任務。
保護您的AWS 帳戶根使用者
-
選擇根使用者並輸入AWS 帳戶您的電子郵件地址,以帳戶擁有者AWS 管理主控台
身分登入 。在下一頁中,輸入您的密碼。 如需使用根使用者登入的說明,請參閱 AWS 登入 使用者指南中的以根使用者身分登入。
-
若要在您的根使用者帳戶上啟用多重要素驗證 (MFA)。
如需說明,請參閱《IAM 使用者指南》中的為您的AWS 帳戶根使用者 (主控台) 啟用虛擬 MFA 裝置。
建立具有管理存取權的使用者
-
啟用 IAM Identity Center。
如需指示,請參閱《AWS IAM Identity Center 使用者指南》中的啟用 AWS IAM Identity Center。
-
在 IAM Identity Center 中,將管理存取權授予使用者。
如需使用 IAM Identity Center 目錄做為身分來源的教學課程,請參閱AWS IAM Identity Center《 使用者指南》中的使用預設值設定使用者存取權IAM Identity Center 目錄。
以具有管理存取權的使用者身分登入
-
若要使用您的 IAM Identity Center 使用者簽署,請使用建立 IAM Identity Center 使用者時傳送至您電子郵件地址的簽署 URL。
如需使用 IAM Identity Center 使用者登入的說明,請參閱AWS 登入《 使用者指南》中的登入AWS存取入口網站。
指派存取權給其他使用者
若要提供存取權,請新增權限至您的使用者、群組或角色:
-
中的使用者和群組AWS IAM Identity Center:
建立權限合集。請按照《AWS IAM Identity Center 使用者指南》中的建立權限合集說明進行操作。
-
透過身分提供者在 IAM 中管理的使用者:
建立聯合身分的角色。遵循《IAM 使用者指南》的為第三方身分提供者 (聯合) 建立角色中的指示。
-
IAM 使用者:
-
建立您的使用者可擔任的角色。請按照《IAM 使用者指南》的為 IAM 使用者建立角色中的指示。
-
(不建議) 將政策直接附加至使用者,或將使用者新增至使用者群組。請遵循《IAM 使用者指南》的新增許可到使用者 (主控台) 中的指示。
-
向 註冊您的 MCU 電路板AWS IoT
您的電路板必須向 註冊AWS IoT,才能與 AWS雲端通訊。若要向 註冊您的電路板AWS IoT,您必須擁有:
- AWS IoT政策
-
AWS IoT政策會授予您的裝置存取 AWS IoT資源的許可。它存放在 AWS雲端。
- AWS IoT實物
-
物件AWS IoT可讓您在 中管理裝置AWS IoT。它存放在 AWS雲端。
- 私密金鑰和 X.509 憑證
-
私有金鑰和憑證可讓您的裝置進行身分驗證AWS IoT。
若要註冊您的電路板,請遵循下列程序。
建立 AWS IoT政策
-
若要建立 IAM 政策,您必須知道您AWS的區域和AWS帳戶號碼。
若要尋找AWS您的帳戶號碼,請開啟 AWS管理主控台
,找到並展開右上角您帳戶名稱下方的選單,然後選擇我的帳戶。您的帳戶 ID 會顯示在 Account Settings (帳戶設定) 下方。 若要尋找AWS帳戶的 AWS區域,請使用 AWS Command Line Interface。若要安裝 AWS CLI,請遵循 AWS Command Line Interface使用者指南中的指示。安裝 之後AWS CLI,請開啟命令提示視窗,然後輸入下列命令:
aws iot describe-endpoint --endpoint-type=iot:Data-ATS輸出應如下所示:
{ "endpointAddress": "xxxxxxxxxxxxxx-ats.iot.us-west-2.amazonaws.com" }在此範例中,區域為
us-west-2。注意
我們建議使用 ATS 端點,如範例所示。
-
瀏覽至 AWS IoT 主控台
。 -
在導覽窗格中,選擇安全,選擇政策,然後選擇建立。
-
輸入可識別政策的名稱。
-
在 Add statements (新增陳述式) 區段中,選擇 Advanced mode (進階模式)。將下列 JSON 複製並貼入政策編輯器視窗。將
和 取代aws-region為您的AWS區域和帳戶 ID。aws-account此政策可授予下列許可:
iot:Connect-
授予您的裝置許可,以使用任何用戶端 ID 連線至AWS IoT訊息中介裝置。
iot:Publish-
授予裝置能發佈任何 MQTT 主題之 MQTT 訊息的許可。
iot:Subscribe-
授予裝置能訂閱任何 MQTT 主題篩選條件的許可。
iot:Receive-
授予裝置能接收 AWS IoT 訊息中介裝置中任何 MQTT 主題訊息的許可。
-
選擇建立。
為裝置建立 IoT 實物、私有金鑰和憑證
-
瀏覽至 AWS IoT 主控台
。 -
在導覽窗格中,選擇 Manage (管理),然後選擇 Things (實物)。
-
如果您的帳戶中尚未註冊任何 IoT 實物,則會顯示 You don't have any things yet (尚無任何實物) 頁面。如果您看到此頁面,請選擇 Register a thing (註冊實物)。否則,請選擇 Create (建立)。
-
在建立AWS IoT物件頁面上,選擇建立單一物件。
-
在 Add your device to the thing registry (將您的裝置新增至物件登錄檔) 頁面中,輸入物件的名稱,然後選擇 Next (下一步)。
-
在 Add a certificate for your thing (新增物件的憑證) 頁面中,選擇 One-click certificate creation (按一下建立憑證) 下方的 Create certificate (建立憑證)。
-
選擇各個項目的 Download (下載) 連結,下載您的私有金鑰和憑證。
-
選擇 Activate (啟用) 以啟用您的憑證。需先啟用憑證才可開始使用。
-
選擇連接政策,將政策連接至您的憑證,以授予裝置存取 AWS IoT操作的權限。
-
選擇您剛建立的政策,然後選擇 Register thing (註冊實物)。
向 註冊電路板後AWS IoT,您可以繼續 下載 FreeRTOS。
下載 FreeRTOS
您可以從 FreeRTOS GitHub 儲存庫下載 FreeRTOS
下載 FreeRTOS 之後,您可以繼續 設定 FreeRTOS 示範。
設定 FreeRTOS 示範
您必須先編輯 FreeRTOS 目錄中的一些組態檔案,才能在電路板上編譯和執行任何示範。
設定您的AWS IoT端點
您必須將AWS IoT端點提供給 FreeRTOS,以便在電路板上執行的應用程式才能將請求傳送至正確的端點。
-
瀏覽至 AWS IoT 主控台
。 -
在左側的導覽窗格中,選擇設定。
您的AWS IoT端點會顯示在 裝置資料端點中。它看起來應該會像這樣:
。記下此端點。1234567890123-ats.iot.us-east-1.amazonaws.com -
在導覽窗格中,選擇 Manage (管理),然後選擇 Things (實物)。
您的裝置應該有AWS IoT物件名稱。記下此名稱。
-
打開
demos/include/aws_clientcredential.h。 -
指定以下常數的值:
-
#define clientcredentialMQTT_BROKER_ENDPOINT "YourAWS IoTendpoint"; -
#define clientcredentialIOT_THING_NAME "TheAWS IoTthing name of your board"
-
設定您的 Wi-Fi
如果您的主機板透過 Wi-Fi 連線連線至網際網路,您必須向 FreeRTOS 提供 Wi-Fi 登入資料,才能連線至網路。如果您的主機板不支援 Wi-Fi,您可以略過這些步驟。
-
demos/include/aws_clientcredential.h. -
指定以下
#define常數的值:-
#define clientcredentialWIFI_SSID "The SSID for your Wi-Fi network" -
#define clientcredentialWIFI_PASSWORD "The password for your Wi-Fi network" -
#define clientcredentialWIFI_SECURITYWi-Fi 網路的安全類型有效安全類型為:
-
eWiFiSecurityOpen(開放,不具安全性) -
eWiFiSecurityWEP(WEP 安全性) -
eWiFiSecurityWPA(WPA 安全性) -
eWiFiSecurityWPA2(WPA2 安全性)
-
-
格式化您的AWS IoT登入資料
FreeRTOS 必須擁有與您的已註冊物件相關聯的AWS IoT憑證和私有金鑰及其許可政策,才能AWS IoT代表您的裝置成功與 通訊。
注意
若要設定登入AWS IoT資料,您必須擁有註冊裝置時從AWS IoT主控台下載的私有金鑰和憑證。將裝置註冊為AWS IoT物件後,您可以從AWS IoT主控台擷取裝置憑證,但無法擷取私有金鑰。
FreeRTOS 是 C 語言專案,憑證和私有金鑰必須經過特殊格式,才能新增至專案。
-
在瀏覽器視窗中,開啟
tools/certificate_configuration/CertificateConfigurator.html。 -
在 Certificate PEM file (憑證 PEM 檔案) 下方,選擇您從 AWS IoT 主控台下載的
。ID-certificate.pem.crt -
在 Private Key PEM file (私有金鑰 PEM 檔案) 下方,選擇您從 AWS IoT 主控台下載的
。ID-private.pem.key -
選擇 Generate and save aws_clientcredential_keys.h (產生並儲存 aws_clientcredential_keys.h),並將檔案儲存到
demos/include中。這會覆寫目錄中現有的檔案。注意
將憑證和私有金鑰硬式編碼,僅作示範用途。生產層級應用程式必須將這些檔案存放在安全的位置。
設定 FreeRTOS 之後,您可以繼續參閱主機板入門指南,以設定平台的硬體及其軟體開發環境,然後在主機板上編譯並執行示範。如需主機板特定的指示,請參閱主機板特定的入門指南。入門教學中使用的示範應用程式是 coreMQTT 相互身分驗證示範,位於 demos/coreMQTT/mqtt_demo_mutual_auth.c。