電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>如何使用W5100S EVB Pico連接到Azure IoT Central

如何使用W5100S EVB Pico連接到Azure IoT Central

2023-06-14 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

使用 WIZnet 的 W5100S-EVB-Pico 板,我將總結(jié)使用 X.509 證書連接到 Azure IoT Central 的內(nèi)容。

W5100S-EVB-Pico 是一款基于 Raspberry Pi 最近發(fā)布的 RP2040 微控制器芯片和 WIZnet 以太網(wǎng)芯片 W5100S 的評估板。

可以和樹莓派Pico平臺在同一個環(huán)境下開發(fā),通過W5100S可以使用以太網(wǎng)。您可以參考下面的鏈接了解設(shè)備信息。

硬件設(shè)置

硬件設(shè)置很簡單。

只需連接微型 5 針電纜即可為 W5100S-EVB-Pico 供電。

此外,為了使用網(wǎng)絡(luò),我使用以太網(wǎng)電纜連接到支持 DHCP 服務(wù)器的 AP。

pYYBAGNY5xGAJ45qAAaEA9LoYvE147.jpg
?

開發(fā)環(huán)境(Windows 10、VS Code)

有關(guān)設(shè)置開發(fā)環(huán)境的信息在官方文檔(入門指南)中。

我參考了文檔的 Windows 和 Visual Studio Code 環(huán)境部分。

可以在下面的鏈接中找到該文檔。

開發(fā)環(huán)境配置在指南中有很好的描述,大家可以根據(jù)自己的開發(fā)環(huán)境進行操作。

要檢查的一件事是安裝和使用 Visual Studio 2019 的構(gòu)建工具。如果通過 VS 命令提示符運行 VS Code,則可以使用相關(guān)工具。

起初,我嘗試在不檢查這部分的情況下進行構(gòu)建,但它一直失敗,所以我再次閱讀指南并應(yīng)用了內(nèi)容。

必須先安裝 Visual Studio 構(gòu)建工具。

使用開發(fā)人員命令提示符運行 VS Code

要使用 Visual Studio 的構(gòu)建環(huán)境,請通過Developer Command Prompt for VS 2019以下方式運行 VS Code:

這將打開設(shè)置了所有正確環(huán)境變量的 Visual Studio Code,以便正確配置工具鏈。
?
pYYBAGNY5xOANm8JAABMAXVO4Pw411.png
?

VS 代碼設(shè)置

要構(gòu)建 VS Code 設(shè)置,CMake 和 Pico SDK 路徑設(shè)置如下。

"cmake.cmakePath": "C:\\Program Files\\CMake\\bin\\cmake.exe",
"cmake.configureSettings": {
    "PICO_SDK_PATH": "D:\\_RaspberryPi_Pico\\pico-sdk"
},

Github 存儲庫

代碼使用了WIZnet提供的RP2040-HAT-AZURE-C項目。

使用 git 命令將項目克隆到本地 PC。

git clone https://github.com/Wiznet/RP2040-HAT-AZURE-C

通過 Developer Command Prompt 運行 VS code,然后通過 Open Folder 菜單打開項目目錄。

?
poYBAGNY5xaAYmr3AAAgGgsf8lM662.png
?

IoT Central 應(yīng)用程序設(shè)置

借助 IoT Central 試用計劃(7 天),您無需訂閱 Azure 即可創(chuàng)建和使用應(yīng)用程序。

7 天后需要 Azure 訂閱。

有關(guān)詳細信息,請參閱 MS Azure 指南。

使用 OpenSSL 創(chuàng)建證書

生成用于設(shè)備身份驗證的 X.509 證書。我使用了 OpenSSL,請參閱下面的指南。

我將在下面生成證書并將它們輸入到 IoT Central 應(yīng)用程序和設(shè)備代碼中。

為了使用 OpenSSL 命令,我使用了 WSL(Linux 的 Windows 子系統(tǒng))環(huán)境。

用于創(chuàng)建根 CA 和子 CA 的 .conf 文件按原樣使用指南中的內(nèi)容,僅更改了名稱。

  • 根 CA
  • 從屬 CA
  • 設(shè)備證書

根 CA 設(shè)置和創(chuàng)建

  • 創(chuàng)建根 CA 目錄結(jié)構(gòu)
  • 創(chuàng)建 rootca.conf 文件
  • 生成證書
~$ mkdir rootca
~$ cd rootca/
~/rootca$ mkdir certs db private
~/rootca$ touch db/index
~/rootca$ openssl rand -hex 16 > db/serial
~/rootca$ echo 1001 > db/crlnumber
*# Change certificate name (commonName)**
~/subca$ vi rootca.conf
~/rootca$ openssl req -new -config rootca.conf -out rootca.csr -keyout private/rootca.key
~/rootca$ openssl ca -selfsign -config rootca.conf -in rootca.csr -out rootca.crt -extensions ca_ext

子證書設(shè)置和創(chuàng)建

  • 創(chuàng)建子 CA 目錄結(jié)構(gòu)
  • 創(chuàng)建 subca.conf 文件
  • 生成證書
~/rootca$ cd ..
~$ ls
~$ mkdir subca
~$ cd subca/
~/subca$ mkdir certs db private
~/subca$ touch db/index
~/subca$ openssl rand -hex 16 > db/serial
~/subca$ echo 1001 > db/crlnumber
# Change certificate name (modify commonName value)
~/subca$ vi subca.conf
~/subca$ openssl rand -hex 16 > ../rootca/db/serial
~/subca$ openssl req -new -config subca.conf -out subca.csr -keyout private/subca.key
~/subca$ openssl ca -config ../rootca/rootca.conf -in subca.csr -out subca.crt -extensions sub_ca_ext

占有證明(驗證證書)

之前在 IoT Central 中創(chuàng)建的注冊。subca.crt

注冊 IoT Central 組

單擊新建按鈕 → 創(chuàng)建新的注冊組

  • 名稱:指定一個可識別的名稱
  • 證明類型:證書 (X.509)

如果單擊“保存”按鈕進行保存,注冊證書的屏幕將出現(xiàn)在底部。

?
poYBAGNY5xuAIh7ZAACsfqfpL98841.png
?

單擊“管理主要”按鈕后,單擊文件夾形狀的圖標以上傳證書。

上傳subca.crt

點擊生成驗證碼按鈕生成并復制驗證碼。

使用 OpenSSL 生成經(jīng)過驗證的證書。此時輸入生成的驗證碼。

~/subca$ openssl genpkey -out pop.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048
~/subca$ openssl req -new -key pop.key -out pop.csr
****Paste the verification code into Common Name**

~/subca$ openssl ca -config subca.conf -in pop.csr -out pop.crt -extensions client_ext

單擊驗證按鈕后,從出現(xiàn)的文件選擇彈出窗口中選擇生成的驗證證書。

?
poYBAGNY5x6APh6lAABPT7ew798034.png
?

(如果看不到文件,請選擇查看所有文件的選項)

pYYBAGNY5yCAOhy2AACe3Bf_gso452.png
?

所有權(quán)證明完成后,狀態(tài)將更改為已驗證,如上面的屏幕所示。

現(xiàn)在組注冊已完成,將創(chuàng)建要在設(shè)備上使用的證書。

設(shè)備證書

  • 生成設(shè)備證書。
  • 輸入在輸入通用名稱時要使用的設(shè)備 ID。
$ openssl genpkey -out device.key -algorithm RSA -pkeyopt rsa_keygen_bits:2048
$ openssl req -new -key device.key -out device.csr
==> Common Name (e.g. server FQDN or YOUR name) []: Enter w5100s-evb-pico-01

$ openssl req -text -in device.csr -noout
$ openssl ca -config subca.conf -in device.csr -out device.crt -extensions client_ext

在代碼編寫過程中,將創(chuàng)建設(shè)備證書文件并將其添加為變量。

構(gòu)建并運行

修改并執(zhí)行一些應(yīng)用程序代碼。

修改主代碼

設(shè)置要在主代碼中使用的示例應(yīng)用程序。

由于我們將使用 X.509 證書進行配置,因此我們將其定義為APP_PROV_X509.

// The application you wish to use should be uncommented
//
//#define APP_TELEMETRY
//#define APP_C2D
//#define APP_CLI_X509
#define APP_PROV_X509

修改 sample_certs 代碼

生成的設(shè)備證書必須作為變量添加到 sample_certs.c。

用于連接 IoT Central X.509 證書身份驗證的變量如下。

pYYBAGNY5yKAekUxAAAu7Ck_ocQ934.png
?
對于 pico_az_COMMON_NAME,使用與創(chuàng)建設(shè)備證書時寫入的 Common Name 相同的值。

?

將證書文件轉(zhuǎn)換為變量(使用 Bash shell)

要將證書值作為變量添加到設(shè)備源代碼中,必須將值轉(zhuǎn)換為變量形式。

可以用VS Code打開文件直接編輯,但是每次都編輯文件比較麻煩,所以我使用了MS Guide提供的腳本。

詳細信息可以在下面的鏈接中找到。

一旦將腳本中的輸入更改為目標文件名并將其按原樣粘貼到 shell 中,就會以變量的形式輸出結(jié)果值。要更改參數(shù)的路徑,只需更改輸入部分。

用 Vim 創(chuàng)建一個腳本文件 (.sh) 并使用它。

創(chuàng)建證書轉(zhuǎn)換腳本

$ vi convert_cert.sh
input=$1
bContinue=true
prev=
while $bContinue; do
    if read -r next; then
        if [ -n "$prev" ]; then
            echo ""$prev\\n""
        fi
        prev=$next
    else
        echo ""$prev";"
        bContinue=false
    fi
done < "$input"

運行腳本

$ chmod +x convert_cert.sh
$ ./convert_cert.sh 

密鑰文件也可以用同樣的方法進行轉(zhuǎn)換。

將證書更新為代碼

將相應(yīng)的值放入sample_cert.c文件中。

const char pico_az_id_scope[] = "";
const char pico_az_COMMON_NAME[] = "w5100s-evb-pico-01";
const char pico_az_CERTIFICATE[] =
"-----BEGIN CERTIFICATE-----\n"
"MIIDQDCCAiigAwIBAgIPAoh1JOyCoN2l8TasygP2MA0GCSqGSIb3DQEBCwUAMCUx\n"
...
"3agwSktbbJYEpQt2sZrdgIf5V3RsZH2/wZtLBBiVFismcVVEgY2qnBQXNxyQcc0z\n"
"9Vz3OITjhrWKTMkF0l/TNiy4eEU=\n"
"-----END CERTIFICATE-----";
const char pico_az_PRIVATE_KEY[] =
"-----BEGIN PRIVATE KEY-----\n"
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDpHayE/0vdXbp2\n"
...
"W10KeONpLN+MyMr0fDgsHb6Bc5Re/S4s+CgprfvxiHLgQSFlb1wfCXG3xvuqgJk+\n"
"vrEySFLI2uifS0f64HLVtAPe\n"
"-----END PRIVATE KEY-----";

建造

單擊 VS Code 底部的 Build 按鈕或按快捷鍵 **F7** 進行構(gòu)建。

第一次構(gòu)建可能需要幾分鐘才能完成。

?
pYYBAGNY5yeAekl2AAAXzzmAT_k344.png
?
[main] Building folder: RP2040-HAT-AZURE-C
[build] Starting build
[proc] Executing command: "C:\Program Files\CMake\bin\cmake.exe" --build d:/_RaspberryPi_Pico/RP2040-HAT-AZURE-C/build --config Debug --target all -j 10 --
[build] Warning: NMake does not support parallel builds. Ignoring parallel build command line option.
[build] [  0%] Built target bs2_default
[build] [  1%] Built target bs2_default_padded_checksummed_asm
[build] [ 12%] Built target mbedcrypto
...
...
[build] [ 97%] Built target LOOPBACK_FILES
[build] [ 97%] Built target FTPSERVER_FILES
[build] [ 98%] Built target HTTPSERVER_FILES
[build] [100%] Built target MQTT_FILES
[build] Build finished with exit code 0

使用 W5100S-EVB-Pico 運行

構(gòu)建成功完成后,將在構(gòu)建目錄中創(chuàng)建輸出。

W5100S-EVB-Pico 中使用的固件是 main.uf2 文件。

上傳固件

通過以下步驟將固件復制到設(shè)備。

在按下 W5100S-EVB-Pico 的BOOTSEL 按鈕的同時,通電使其進入存儲模式。

main.uf2文件復制到驅(qū)動器的頂級路徑。

  • 設(shè)備將自動重啟。

檢查在 IoT Central 中創(chuàng)建的設(shè)備

確認設(shè)備創(chuàng)建

?
poYBAGNY5ymAXu4lAAA9LeVOqGI349.png
?

檢查示例代碼發(fā)送的示例數(shù)據(jù)

?
pYYBAGNY5yyAXdQzAACPlqcQCwk241.png
?

設(shè)備監(jiān)控

可以使用 Terra Term 或 Putty 等終端程序監(jiān)控設(shè)備運行狀態(tài)。

在Windows設(shè)備管理器中查看W5100S-EVB-Pico對應(yīng)的COM端口號,在終端程序中設(shè)置對應(yīng)的端口進行連接。

在 Terra Term 的情況下,您可以通過如下設(shè)置進行連接。

pYYBAGNY5y-AbBXfAAA--7aK0-w120.png
?
?
pYYBAGNY5zKAX1o-AAO1YpYemN0733.png
?

分享

推特 臉書 領(lǐng)英

發(fā)表評論


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費