- Microsoft Azure IoT Hub คืออะไร
- การสร้าง Azure IoT Hub
- ส่วนประกอบที่จำเป็นในการสร้างวงจรทดสอบของเราสำหรับ Azure IoT ด้วย Raspberry Pi
- Azure IoT พร้อม Raspberry Pi - Hardware Schematic
- การเขียนโปรแกรม Raspberry Pi เพื่อเผยแพร่ข้อมูลบน Azure IoT Hub
- เผยแพร่ข้อมูลบน Azure IoT Hub - การทดสอบ
Azure IoT Hub บริการคลาวด์คอมพิวติ้งโดย Microsoft ช่วยให้นักพัฒนาสามารถเชื่อมต่อตรวจสอบและจัดการอุปกรณ์ IoT หลายพันล้านเครื่องบนแพลตฟอร์มเดียว มีการใช้งานในแอปพลิเคชัน IoT ต่างๆอยู่แล้วเช่นระบบอัตโนมัติในบ้านระบบรักษาความปลอดภัยระบบเฝ้าระวังและตรวจสอบ เพื่อแสดงให้เห็นถึงความสามารถของAzure IoT hubเราจะสร้างวงจรขนาดเล็กที่มี Raspberry Pi, อุณหภูมิ DHT11 และเซ็นเซอร์ความชื้นเพื่อประมวลผลข้อมูลเซ็นเซอร์ด้วย สุดท้ายเราจะ เผยแพร่ข้อมูลเซ็นเซอร์ไปยังเซิร์ฟเวอร์ Azure IoT โดยใช้โปรโตคอล MQTT ในบทช่วยสอนนี้เราจะเรียนรู้วิธีการตั้งค่าและกำหนดค่าเซิร์ฟเวอร์ Azure และส่งข้อมูลโดยใช้ Raspberry Pi
Microsoft Azure IoT Hub คืออะไร
Azure IoT Hub คือชุดของบริการที่มีการจัดการที่สามารถเชื่อมต่อตรวจสอบและควบคุมอุปกรณ์ IoT นอกจากนี้ยังรวมถึงการสื่อสารที่ปลอดภัยสำหรับอุปกรณ์ด้วยการแสดงข้อมูลและการวิเคราะห์ที่ช่วยให้ผู้ผลิตอุปกรณ์สร้างปรับใช้และจัดการแอปพลิเคชัน IoT ด้วยความช่วยเหลือของ Azure cloud ข้อมูลการส่งข้อมูลทางไกลแบบ Device-to-Cd ของ Azure IoT Hub ช่วยให้เราทราบเกี่ยวกับสถานะของอุปกรณ์ IoT ที่เชื่อมต่อและข้อความ Cloud-to-Device ทำให้เราสามารถส่งคำสั่งและการแจ้งเตือนไปยังอุปกรณ์ที่เชื่อมต่อได้ ตัวอย่างเช่นการใช้ระบบอัตโนมัติภายในบ้านอัจฉริยะเราสามารถรวบรวมข้อมูลเซ็นเซอร์ต่างๆและส่งไปยัง Azure IoT Hub เพื่อแสดงภาพจัดเก็บและจัดการได้ นอกจากนี้เรายังสามารถควบคุมอุปกรณ์เอาต์พุตจากอินเทอร์เฟซ Azure IoT Hub
ศูนย์กลางการสื่อสารแบบสองทิศทางสำหรับแอปพลิเคชัน IoT และอุปกรณ์รองรับทั้งการสื่อสารบนอุปกรณ์คลาวด์และอุปกรณ์คลาวด์นอกจากนี้ยังรองรับรูปแบบการส่งข้อความหลายรูปแบบเช่นอุปกรณ์ไปยังระบบส่งข้อมูลบนคลาวด์การอัปโหลดไฟล์จากอุปกรณ์และวิธีการตอบกลับคำขอ เราสามารถใช้วิธีการพิสูจน์ตัวตนต่ออุปกรณ์ที่ช่วยให้แต่ละอุปกรณ์เชื่อมต่อกับ IoT Hub ได้อย่างปลอดภัย เมื่อคุณเข้าใจพื้นฐานของ Azure IoT Hub แล้วเรามาดูการตั้งค่าระบบกัน
การสร้าง Azure IoT Hub
เราพร้อมที่จะทำการตั้งค่าที่จำเป็นทั้งหมดที่จำเป็นสำหรับการตั้งค่า บริการMicrosoft Azureแต่ก่อนหน้านั้นตรวจสอบให้แน่ใจว่าคุณมีบัญชี Microsoft หากคุณยังไม่มีคุณสามารถสมัครได้ง่ายๆ หลังจากนั้นไปที่พอร์ทัล Azure โดยใช้ portal.azure.com และเข้าสู่ระบบ
เมื่อคุณเข้าสู่ระบบแล้วให้ไปที่หน้าแรกของ Azure เลือกปุ่ม สร้างทรัพยากร จากนั้นค้นหา IoT Hub ใน ฟิลด์Search the Marketplace เลือก IOT Hub จากผลการค้นหาแล้วเลือก สร้างภาพด้านล่างจะช่วยให้คุณเข้าใจกระบวนการได้ดีขึ้น
กรอกรายละเอียดที่จำเป็นเพื่อสร้าง IoT Hub
ใน ส่วนการสมัครสมาชิกคุณต้องเลือกการสมัครสมาชิกเพื่อใช้สำหรับฮับของคุณ ในกรณีที่เรามีการเลือกสำหรับบัญชีทดลองและเราได้เลือก“ ทดลองใช้ฟรี”
ถัดไปในกลุ่มทรัพยากรมาตราเลือกกลุ่มทรัพยากรของคุณ หากคุณไม่มีคุณต้องสร้างใหม่โดยคลิกที่สร้างใหม่ และป้อนชื่อของทรัพยากร
ในภูมิภาค มาตราคุณสามารถใช้เมนูแบบเลื่อนลงเพื่อเลือกภูมิภาคที่คุณต้องการ
ใน IOT Hub ชื่อส่วนที่คุณต้องอีศูนย์กลางการหมุนชื่อฮับของคุณ สิ่งนี้จะต้องไม่ซ้ำกัน การสื่อสารที่จำเป็นทั้งหมดจะเกิดขึ้นด้วยชื่อนี้
ภายใต้แท็บ “ ขนาดและมาตราส่วน”เลือก“ Free Tier ” และคลิก Next จากนั้นคลิกที่“ ตรวจสอบ + สร้าง”จะใช้เวลาไม่กี่นาทีในการสร้าง IoT Hub คลิกที่ชื่อ IoT Hub ที่คุณสร้างขึ้น จด ชื่อโฮสต์ จากหน้าต่างดังแสดงในภาพด้านล่าง จากนั้นคลิกที่ นโยบายการเข้าถึงที่ใช้ร่วมกัน ในการตั้งค่า นโยบายการเข้าถึงที่ใช้ร่วมกันจะเน้นในภาพด้านล่าง คลิกที่ ตัวเลือกiothubownerภายใต้นโยบาย จด คีย์หลัก และ คีย์หลักของสตริงการเชื่อมต่อ สำหรับการอ้างอิงในอนาคต ตอนนี้หากต้องการลงทะเบียนอุปกรณ์ใหม่ภายใต้ IoT Hub ให้คลิกที่ อุปกรณ์ IoT ในบานหน้าต่าง Device Explorer คลิกที่ เพิ่ม เพื่อเพิ่มอุปกรณ์ลงในฮับ
กรอกข้อมูลต่อไปนี้ในแท็บอุปกรณ์ใหม่
- รหัสอุปกรณ์: ป้อนรหัสสำหรับอุปกรณ์ รหัสอุปกรณ์ต้องไม่ซ้ำกัน
- Authentication Type: เลือก Symmetric Key
- สร้างคีย์อัตโนมัติ: เลือกกล่องกาเครื่องหมายนี้
- เชื่อมต่ออุปกรณ์กับ IoT Hub: คลิกเปิดใช้งาน
เมื่ออุปกรณ์ถูกสร้างขึ้นแล้วคุณจะพบอุปกรณ์ที่สร้างขึ้นใหม่ของคุณบน อุปกรณ์ Explorer ในส่วน คลิกที่ชื่ออุปกรณ์ มันจะแสดงรายละเอียดของอุปกรณ์ จด คีย์หลัก และ สตริงการเชื่อมต่อ - คีย์หลัก ของอุปกรณ์ นี่เป็นสิ่งสำคัญที่เราต้องการสำหรับการสื่อสาร
ตอนนี้เมื่อเสร็จแล้วเราสามารถไปยังด้านฮาร์ดแวร์ของสิ่งต่างๆได้
ส่วนประกอบที่จำเป็นในการสร้างวงจรทดสอบของเราสำหรับ Azure IoT ด้วย Raspberry Pi
เนื่องจากส่วนฮาร์ดแวร์ของวงจรนี้ง่ายมากความต้องการส่วนประกอบก็ง่ายมากเช่นกัน รายการส่วนประกอบที่จำเป็นแสดงอยู่ด้านล่าง
- Raspberry Pi 3B (เราสามารถใช้ Pi รุ่นอื่น ๆ ได้ด้วย)
- การ์ด Micro SD-16 GB
- DHT11 เซนเซอร์
- Micro USB 5V, 2.4A แหล่งจ่ายไฟ
Azure IoT พร้อม Raspberry Pi - Hardware Schematic
แผนภาพวงจรที่สมบูรณ์สำหรับโครงการ Azure IoT with Raspberry Pi แสดงอยู่ด้านล่างซึ่งสร้างขึ้นโดยใช้ fritzing ทำตามแผนภาพวงจรและการเชื่อมต่อเพื่อสร้างวงจรด้วยตัวคุณเอง
วงจรข้างต้นส่งข้อมูลอุณหภูมิและความชื้นไปยัง Microsoft IoT Hub ในวงจรนี้เราได้ใช้ เซ็นเซอร์DHT11เพื่อรวบรวมข้อมูล อุณหภูมิและความชื้น และเราใช้ Raspberry Pi 3B เป็นอุปกรณ์ประมวลผลข้อมูล เซ็นเซอร์ DHT11 มีสามพิน หมุด VCC และ GND ใช้เพื่อจ่าย 5V DC ให้กับเซ็นเซอร์และขาเอาต์พุตข้อมูลของ DHT11 เชื่อมต่อกับ GPIO4 ของ Raspberry Pi หากคุณต้องการเรียนรู้วิธีการเชื่อมต่อ DHT11 Temperature and Humidity Sensor ด้วย Raspberry Pi คุณสามารถตรวจสอบบทความก่อนหน้าของเราในหัวข้อ เรายังใช้เซ็นเซอร์นี้เพื่อสร้าง IoT Raspberry Pi Weather Station
การเขียนโปรแกรม Raspberry Pi เพื่อเผยแพร่ข้อมูลบน Azure IoT Hub
ก่อนที่จะเริ่มการเข้ารหัสสำหรับโครงการนี้เราต้องสร้าง Azure เมฆเปลือก (CLI) ใน พอร์ทัล Azure สิ่งนี้จะมีประโยชน์ในหลาย ๆ ด้าน จากนั้นคลิกที่ปุ่ม Azure cloud shell ในพอร์ทัลดังที่แสดงด้านล่าง จากนั้นคลิกที่ตัวเลือกสร้างที่จัดเก็บซึ่งทำเครื่องหมายด้วยสีแดง
เมื่อเสร็จแล้วคุณสามารถเปิด CLI และเรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง Azure Add-on' s ซึ่งจะถูกนำมาใช้เพื่อแสดงข้อมูลเซ็นเซอร์
az นามสกุลเพิ่ม - ชื่อ azure-cli-iot-ext
เมื่อเสร็จแล้วเราจำเป็นต้องติดตั้งการอ้างอิงบน Raspberry Pi เพื่อสื่อสารกับ เซ็นเซอร์ DHT11 และเพื่อให้กระบวนการสื่อสารเป็นเรื่องง่ายสำหรับบริการ Azure IoT สำหรับการเปิด Raspberry Pi Terminal เพื่อติดตั้งแพ็กเกจที่ใช้ในโครงการ
ขั้นแรกเราต้องดาวน์โหลดไลบรารี DHT สำหรับ Raspberry Pi จากนั้นแยกออกจากโฟลเดอร์รูทและเรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง
sudo python setup.py ติดตั้ง
หลังจากติดตั้งสำเร็จให้รันคำสั่งต่อไปนี้เพื่อติดตั้งแพ็คเกจที่ขึ้นต่อกันทั้งหมดบน Azure IoT Hub
sudo pip3 ติดตั้ง azure-iot-device sudo pip3 ติดตั้ง azure-iot-hub sudo pip3 ติดตั้ง azure-iothub-service-client sudo pip3 ติดตั้ง azure-iothub-device-client
เมื่อเราติดตั้งข้อกำหนดเบื้องต้นทั้งหมดเสร็จเรียบร้อยแล้วก็ถึงเวลาเขียนโค้ดใน Python ในการทำเช่นนั้นก่อนอื่นให้นำเข้าไลบรารีทั้งหมด:
นำเข้าแบบสุ่ม นำเข้า Adafruit_DHT เวลานำเข้า จาก azure.iot.device นำเข้า IoTHubDeviceClient ข้อความ
ในโครงการนี้เรากำลังใช้พิน 4 ของ Raspberry Pi เพื่อประมวลผลข้อมูลจากข้อมูล DHT11 ดังนั้นจึงต้องมีการประกาศดังที่แสดง
เซ็นเซอร์ = Adafruit_DHT.DHT11 พิน = 4
ต่อไปเรากำหนดสตริงการเชื่อมต่อของรหัส แทนที่ด้วยสตริงการเชื่อมต่อหลักของอุปกรณ์ที่เราบันทึกไว้ก่อนหน้านี้
CONNECTION_STRING = "HostName = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZ"
ต่อไปเราจะสร้างอาร์เรย์ที่จะใช้ในการส่งข้อมูลไปยัง Azure IoT Hub สามารถทำได้ดังภาพด้านล่าง
MSG_SND = '{{"อุณหภูมิ": {อุณหภูมิ}, "ความชื้น": {ความชื้น}}}'
ต่อไปเราได้กำหนด while loop ใน while loop ข้อมูลความชื้นและอุณหภูมิจะถูกประมวลผลโดยใช้ ฟังก์ชัน Adafruit_DHT.read_retry นอกจากนี้เรากำหนดตัวแปรพิเศษสองตัวแปรและกำหนดข้อมูลผลลัพธ์ให้กับตัวแปรเหล่านั้น
ในขณะที่ True: ความชื้นอุณหภูมิ = Adafruit_DHT.read_retry (เซ็นเซอร์พิน)
จากนั้นจะมีการเขียนฟังก์ชันเพื่อเชื่อมต่อ IoT Hub โดยใช้พารามิเตอร์การเชื่อมต่อที่เราได้กำหนดไว้ก่อนหน้านี้
def iothub_client_init (): ไคลเอ็นต์ = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) ส่งคืนไคลเอ็นต์
สุดท้ายในขั้นตอนต่อไปทั้งข้อมูลอุณหภูมิและความชื้นจะถูกส่งไปยัง Azure Hub โดยใช้รูปแบบดังที่แสดงในโค้ดด้านล่าง นอกจากนี้เรายังใช้วิธี try and catch เพื่อระบุว่ามีข้อผิดพลาดในโค้ดหรือไม่
def iothub_client_telemetry_sample_run (): ลอง: ไคลเอนต์ = iothub_client_init () พิมพ์ ("การส่งข้อมูลไปยัง IoT Hub กด Ctrl-C เพื่อออก") ในขณะที่ True: msg_txt_formatted = MSG_SND.format (อุณหภูมิ = อุณหภูมิความชื้น = ความชื้น) ข้อความ = ข้อความ (msg_txt_formatted) พิมพ์ ("การส่งข้อความ: {}". format (ข้อความ)) client.send_message (ข้อความ) พิมพ์ ("ส่งข้อความสำเร็จ") time.sleep (3)
เผยแพร่ข้อมูลบน Azure IoT Hub - การทดสอบ
หลังจากเขียนโค้ดสำเร็จแล้วให้คอมไพล์และตรวจสอบข้อผิดพลาด หากคอมไพล์บล็อกโค้ดสำเร็จให้รันโค้ด ในหน้าต่าง Terminal คุณจะเห็นข้อความว่า "ส่งข้อความสำเร็จแล้ว" ภาพหน้าจอของหน้าต่างแสดงด้านล่าง:
ตอนนี้หากต้องการดูข้อมูลใน Azure IoT Hub ให้ไปที่พอร์ทัลและคลิกที่CLI Terminalและเรียกใช้คำสั่งต่อไปนี้แทนที่ข้อมูลประจำตัวของคุณในนั้น
az iot hub monitor-events --hub-name XYZ --device-id XYZ
บันทึก:
แทนที่ XYZ ด้วยชื่อฮับและรหัสอุปกรณ์ของคุณ
หลังจากเรียกใช้คำสั่งด้านบนคุณจะได้รับข้อมูลดังที่แสดงด้านล่างบนหน้าจอ นี่คือข้อมูลเดียวกับที่ส่งจาก Raspberry Pi
นี่เป็นจุดสิ้นสุดของบทช่วยสอนนี้ฉันหวังว่าคุณจะชอบบทความนี้และได้เรียนรู้สิ่งใหม่ ๆ หากคุณมีคำถามเกี่ยวกับบทความนี้คุณสามารถฝากไว้ในส่วนความคิดเห็นด้านล่าง หรือคุณสามารถใช้ฟอรัมอิเล็กทรอนิกส์ของเราเพื่อรับคำตอบที่รวดเร็วและดียิ่งขึ้น