資料介紹
描述
使用 WIZnet 的 W5100S-EVB-Pico 板,我將總結使用 X.509 證書連接到 Azure IoT Central 的內容。
W5100S-EVB-Pico 是一款基于 Raspberry Pi 最近發布的 RP2040 微控制器芯片和 WIZnet 以太網芯片 W5100S 的評估板。
可以和樹莓派Pico平臺在同一個環境下開發,通過W5100S可以使用以太網。您可以參考下面的鏈接了解設備信息。
硬件設置
硬件設置很簡單。
只需連接微型 5 針電纜即可為 W5100S-EVB-Pico 供電。
此外,為了使用網絡,我使用以太網電纜連接到支持 DHCP 服務器的 AP。
開發環境(Windows 10、VS Code)
有關設置開發環境的信息在官方文檔(入門指南)中。
我參考了文檔的 Windows 和 Visual Studio Code 環境部分。
可以在下面的鏈接中找到該文檔。
開發環境配置在指南中有很好的描述,大家可以根據自己的開發環境進行操作。
要檢查的一件事是安裝和使用 Visual Studio 2019 的構建工具。如果通過 VS 命令提示符運行 VS Code,則可以使用相關工具。
起初,我嘗試在不檢查這部分的情況下進行構建,但它一直失敗,所以我再次閱讀指南并應用了內容。
必須先安裝 Visual Studio 構建工具。
使用開發人員命令提示符運行 VS Code
要使用 Visual Studio 的構建環境,請通過Developer Command Prompt for VS 2019
以下方式運行 VS Code:
這將打開設置了所有正確環境變量的 Visual Studio Code,以便正確配置工具鏈。
VS 代碼設置
要構建 VS Code 設置,CMake 和 Pico SDK 路徑設置如下。
"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 菜單打開項目目錄。
IoT Central 應用程序設置
借助 IoT Central 試用計劃(7 天),您無需訂閱 Azure 即可創建和使用應用程序。
7 天后需要 Azure 訂閱。
有關詳細信息,請參閱 MS Azure 指南。
使用 OpenSSL 創建證書
生成用于設備身份驗證的 X.509 證書。我使用了 OpenSSL,請參閱下面的指南。
我將在下面生成證書并將它們輸入到 IoT Central 應用程序和設備代碼中。
為了使用 OpenSSL 命令,我使用了 WSL(Linux 的 Windows 子系統)環境。
用于創建根 CA 和子 CA 的 .conf 文件按原樣使用指南中的內容,僅更改了名稱。
- 根 CA
- 從屬 CA
- 設備證書
根 CA 設置和創建
- 創建根 CA 目錄結構
- 創建 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
子證書設置和創建
- 創建子 CA 目錄結構
- 創建 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 中創建的注冊。subca.crt
注冊 IoT Central 組
單擊新建按鈕 → 創建新的注冊組
- 名稱:指定一個可識別的名稱
- 證明類型:證書 (X.509)
如果單擊“保存”按鈕進行保存,注冊證書的屏幕將出現在底部。
單擊“管理主要”按鈕后,單擊文件夾形狀的圖標以上傳證書。
上傳subca.crt
點擊生成驗證碼按鈕生成并復制驗證碼。
使用 OpenSSL 生成經過驗證的證書。此時輸入生成的驗證碼。
~/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
單擊驗證按鈕后,從出現的文件選擇彈出窗口中選擇生成的驗證證書。
(如果看不到文件,請選擇查看所有文件的選項)
所有權證明完成后,狀態將更改為已驗證,如上面的屏幕所示。
現在組注冊已完成,將創建要在設備上使用的證書。
設備證書
- 生成設備證書。
- 輸入在輸入通用名稱時要使用的設備 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
在代碼編寫過程中,將創建設備證書文件并將其添加為變量。
構建并運行
修改并執行一些應用程序代碼。
修改主代碼
設置要在主代碼中使用的示例應用程序。
由于我們將使用 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 代碼
生成的設備證書必須作為變量添加到 sample_certs.c。
用于連接 IoT Central X.509 證書身份驗證的變量如下。
對于 pico_az_COMMON_NAME,使用與創建設備證書時寫入的 Common Name 相同的值。
?
將證書文件轉換為變量(使用 Bash shell)
要將證書值作為變量添加到設備源代碼中,必須將值轉換為變量形式。
可以用VS Code打開文件直接編輯,但是每次都編輯文件比較麻煩,所以我使用了MS Guide提供的腳本。
詳細信息可以在下面的鏈接中找到。
一旦將腳本中的輸入更改為目標文件名并將其按原樣粘貼到 shell 中,就會以變量的形式輸出結果值。要更改參數的路徑,只需更改輸入部分。
用 Vim 創建一個腳本文件 (.sh) 并使用它。
創建證書轉換腳本
$ 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
密鑰文件也可以用同樣的方法進行轉換。
將證書更新為代碼
將相應的值放入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** 進行構建。
第一次構建可能需要幾分鐘才能完成。
[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 運行
構建成功完成后,將在構建目錄中創建輸出。
W5100S-EVB-Pico 中使用的固件是 main.uf2 文件。
上傳固件
通過以下步驟將固件復制到設備。
在按下 W5100S-EVB-Pico 的BOOTSEL 按鈕的同時,通電使其進入存儲模式。
- W5100S-EVB-Pico 引腳:https ://docs.wiznet.io/Product/iEthernet/W5100S/w5100s-evb-pico#pin-out
- 如果您進入存儲模式,則會出現名為 RPI-RP2 的設備驅動器。(Windows 環境)
將main.uf2
文件復制到驅動器的頂級路徑。
- 設備將自動重啟。
檢查在 IoT Central 中創建的設備
確認設備創建
檢查示例代碼發送的示例數據
設備監控
可以使用 Terra Term 或 Putty 等終端程序監控設備運行狀態。
在Windows設備管理器中查看W5100S-EVB-Pico對應的COM端口號,在終端程序中設置對應的端口進行連接。
在 Terra Term 的情況下,您可以通過如下設置進行連接。
分享
發表評論
- Arduino Raspberry Pi Pico/RP2040以太網:W5100S EVB Pico
- W5100S EVB Pico與Node RED開源
- 將W5100S作為3線SPI連接到Pico
- 將WizFi360 EVB Pico連接到Azure IoT Cloud
- 使用RP2040和W5100S的無套接字功能
- 與Azure IoT Central的分布式網格集成
- 使用Azure MT3620和Azure IoT Central的風車監視器
- RaspberryPi Pico Web服務器w5100S(W5500)
- 如何將手機連接到Azure IoT Central
- 制作測試Wiznet模(W5500 io/W5100S io)的測試夾具
- 在W5100S EVB Pico上使用Micropython連接到Azure IoTHub
- W5100與MCU的連接方式
- 基于Si5100-EVB光收發器的參考設計
- 傳承自W5100全部優點的W5100S 43次下載
- W5100 Arduino W5100 Test 43次下載
- 使用SPI驅動wiznet的網絡接口芯片W5xxx 2435次閱讀
- 樹莓派Pico文件系統應用:數據記錄器 1431次閱讀
- 使用Raspberry Pi Pico W和MicroPython開發物聯網應用 2180次閱讀
- Pico W的無線功能 1085次閱讀
- 使用MM32F3270基于Azure RTOS定時器組的應用 1751次閱讀
- 如何用RaspberryPi Pico來控制直流電機? 4160次閱讀
- IoT系統架構和網絡類別 3705次閱讀
- dfrobotEthernet W5100擴展板簡介 2393次閱讀
- W5100與MCU三種連接方法 5661次閱讀
- W5100學習之電氣規格 1337次閱讀
- W5100學習之應用資料 2999次閱讀
- W5100學習之功能描述 3895次閱讀
- W5100學習之W5100寄存器 2308次閱讀
- W5100學習之引腳定義、引腳布局 4510次閱讀
- W5100單片網絡接口芯片簡單介紹 8411次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多