6.0 KiB
ใช้ใบรับรอง X.509 ในโค้ดอุปกรณ์ของคุณ - Virtual IoT Hardware และ Raspberry Pi
ในส่วนนี้ของบทเรียน คุณจะเชื่อมต่ออุปกรณ์ IoT เสมือนหรือ Raspberry Pi ของคุณกับ IoT Hub โดยใช้ใบรับรอง X.509
เชื่อมต่ออุปกรณ์ของคุณกับ IoT Hub
ขั้นตอนถัดไปคือการเชื่อมต่ออุปกรณ์ของคุณกับ IoT Hub โดยใช้ใบรับรอง X.509
งาน - เชื่อมต่อกับ IoT Hub
-
คัดลอกไฟล์คีย์และใบรับรองไปยังโฟลเดอร์ที่มีโค้ดอุปกรณ์ IoT ของคุณ หากคุณใช้ Raspberry Pi ผ่าน VS Code Remote SSH และสร้างคีย์บน PC หรือ Mac ของคุณ คุณสามารถลากและวางไฟล์ลงใน explorer ใน VS Code เพื่อคัดลอกไฟล์ได้
-
เปิดไฟล์
app.py
-
ในการเชื่อมต่อโดยใช้ใบรับรอง X.509 คุณจะต้องใช้ชื่อโฮสต์ของ IoT Hub และใบรับรอง X.509 เริ่มต้นด้วยการสร้างตัวแปรที่มีชื่อโฮสต์โดยเพิ่มโค้ดต่อไปนี้ก่อนการสร้าง device client:
host_name = "<host_name>"
แทนที่
<host_name>
ด้วยชื่อโฮสต์ของ IoT Hub ของคุณ คุณสามารถดูได้จากส่วนHostName
ในconnection_string
ซึ่งจะเป็นชื่อของ IoT Hub ของคุณและลงท้ายด้วย.azure-devices.net
-
ด้านล่างนี้ ให้ประกาศตัวแปรที่มี device ID:
device_id = "soil-moisture-sensor-x509"
-
คุณจะต้องมีอินสแตนซ์ของคลาส
X509
ที่มีไฟล์ใบรับรอง X.509 เพิ่มX509
ลงในรายการคลาสที่นำเข้าจากโมดูลazure.iot.device
:from azure.iot.device import IoTHubDeviceClient, Message, MethodResponse, X509
-
สร้างอินสแตนซ์ของคลาส
X509
โดยใช้ไฟล์ใบรับรองและคีย์ของคุณโดยเพิ่มโค้ดนี้ด้านล่างการประกาศhost_name
:x509 = X509("./soil-moisture-sensor-x509-cert.pem", "./soil-moisture-sensor-x509-key.pem")
โค้ดนี้จะสร้างคลาส
X509
โดยใช้ไฟล์soil-moisture-sensor-x509-cert.pem
และsoil-moisture-sensor-x509-key.pem
ที่สร้างไว้ก่อนหน้านี้ -
แทนที่บรรทัดโค้ดที่สร้าง
device_client
จาก connection string ด้วยโค้ดต่อไปนี้:device_client = IoTHubDeviceClient.create_from_x509_certificate(x509, host_name, device_id)
โค้ดนี้จะเชื่อมต่อโดยใช้ใบรับรอง X.509 แทน connection string
-
ลบบรรทัดที่มีตัวแปร
connection_string
-
รันโค้ดของคุณ ตรวจสอบข้อความที่ส่งไปยัง IoT Hub และส่งคำขอ direct method เช่นเดิม คุณจะเห็นอุปกรณ์เชื่อมต่อและส่งค่าความชื้นในดิน รวมถึงรับคำขอ direct method
💁 คุณสามารถดูโค้ดนี้ได้ในโฟลเดอร์ code/pi หรือ code/virtual-device
😀 โปรแกรมเซ็นเซอร์ความชื้นในดินของคุณเชื่อมต่อกับ IoT Hub โดยใช้ใบรับรอง X.509 แล้ว!
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้