กลับไปหน้ารวมไฟล์
arduino-nb-1500-azure-iot-hub-cellular.md

การเชื่อมต่อ Arduino NB 1500 เข้ากับ Azure IoT Hub อย่างปลอดภัย

การเข้ารหัสข้อมูลระดับองค์กรบนเครือข่ายเซลลูลาร์: Arduino NB 1500 สู่ Azure

การส่งค่าตัวแปรไปยัง Raspberry Pi ในพื้นที่ผ่าน Wi-Fi ทั่วไปคือการเชื่อมต่อเครือข่ายมาตรฐาน แต่การส่งค่าตัวแปรนั้นจากกลางทะเลทราย ที่อยู่นอกระยะ Wi-Fi อย่างสิ้นเชิง อย่างปลอดภัยเข้าสู่ Microsoft Azure Cloud Infrastructure มูลค่าล้านล้านดอลลาร์ ต้องอาศัยวิศวกรรมระดับองค์กรชั้นนำ การเชื่อมต่อ Arduino NB 1500 อย่างปลอดภัย ใช้ประโยชน์โดยเฉพาะจากเครือข่ายเซลลูลาร์ Narrowband IoT (NB-IoT/LTE-M) ที่ทันสมัยที่สุด ด้วยการคำนวณ Shared Access Signatures (crypto tokens) ในเครื่อง Arduino เองอย่างเข้มข้น เพื่อยืนยันตัวตนทั่วโลก!

stock_counter_lcd_setup_1772706693516.png

การคอมไพล์การเข้ารหัส SAS Token (HMAC-SHA256)

Azure IoT Hub ไม่รองรับรหัสผ่านแบบง่ายๆ แต่ต้องการชุดการคำนวณทางคณิตศาสตร์การเข้ารหัสที่ซับซ้อนอย่าง Shared Access Signatures (SAS) เป็นพื้นฐาน

  1. โทเค็นมีวันหมดอายุ ตัว Arduino MKR NB 1500 ขนาดเล็กต้องคำนวณเวลา UNIX Epoch ที่แน่นอน ผสมเข้ากับ Azure Primary Validation Key ขนาดใหญ่ที่ซ่อนอยู่ของคุณ และทำการแฮชทางคณิตศาสตร์โดยใช้ <SHA256> ให้เป็นสตริงยาวน่ากลัวที่เข้ารหัสแบบ base-64!
  2. SharedAccessSignature sr=YOUR_HUB.azure-devices.net%2Fdevices%2FArduinoNB1500&sig=XyaP2...&se=1672531200
  3. การดำเนินการเชื่อมต่อที่ปลอดภัย (ECC508 CryptoAuthentication): แทนที่จะบังคับให้โปรเซสเซอร์ที่อ่อนแอคำนวณทางคณิตศาสตร์ MKR 1500 มีชิปเข้ารหัสฮาร์ดแวร์จริง (ATECC508A)! การคำนวณจะถูกจัดการโดยฮาร์ดแวร์โดยตรง ซึ่งช่วยปกป้อง Private Key จากแฮกเกอร์แม้ว่าพวกเขาจะงัดแงะบอร์ดออกมาก็ตาม!

การส่ง MQTT JSON String Payload

เมื่อ Cellular Modem สร้างการเชื่อมต่อ (handshakes) ได้อย่างปลอดภัยโดยใช้ AT-Commands มาตรฐาน การส่งข้อมูล MQTT ก็จะเริ่มต้นขึ้น

  • คุณไม่สามารถใช้ Serial.println("Temp: 25") ได้ Azure ต้องการ JSON Arrays ที่เข้มงวด!
  • ไลบรารี <ArduinoJson.h>:
// Construct the explicit JSON Document Object!
StaticJsonDocument<200> doc;
doc["messageId"] = ++messageCount;
doc["deviceId"] = "MKR_1500_Desert_Node";
doc["temperature"] = readAnalogTemp();
doc["humidity"] = 55.4;

char jsonBuffer[512];
serializeJson(doc, jsonBuffer); // Collapse the object violently into a standard string payload!

// Send the massive packet natively out into the LTE cellular stratosphere!
mqttClient.beginMessage("devices/ArduinoNB1500/messages/events/");
mqttClient.print(jsonBuffer);
mqttClient.endMessage();

องค์ประกอบโครงสร้างพื้นฐาน LTE ระดับโลก

  • Arduino MKR NB 1500 (บอร์ดระดับองค์กรขนาดใหญ่ ที่มี Cellular Modem แบบ U-Blox SARA-R410M-02B NB-IoT/LTE-M และ Cryptographic Co-processor ATECC508A ที่จำเป็น)
  • SIM Card สำหรับ Cellular Narrowband จริง (เช่น Hologram, Twilio หรือ Vodafone IoT M2M SIMs ที่เฉพาะเจาะจง!)
  • บัญชี Microsoft Azure IoT Hub Enterprise ที่ใช้งานอยู่
  • แบตเตอรี่ LiPo 3.7V ขนาดใหญ่ (Cellular Modem ของ U-Blox จะดึงกระแสไฟสูงถึง 500mA เป็นช่วงๆ อย่างรุนแรงเมื่อมีการ Ping เสาสัญญาณเซลลูลาร์! การเชื่อมต่อผ่านไฟ USB เพียงอย่างเดียวจะทำให้โปรเซสเซอร์ทั้งหมดหยุดทำงานทันที!)

ข้อมูล Frontmatter ดั้งเดิม

title: "Securely Connecting an Arduino NB 1500 to Azure IoT Hub"
description: "Global LTE cryptography! Completely abandon standard local Wi-Fi and execute horrifyingly complex SAS Token generation natively on the MKR 1500, violently tunneling raw MQTT JSON telemetry natively into Microsoft Azure enterprise cellular silos."
category: "Wireless & IoT"
difficulty: "Advanced"