You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/th/2-farm/lessons/4-migrate-your-plant-to-the...
co-op-translator[bot] 2f4dff5e89
🌐 Update translations via Co-op Translator (#546)
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator (#546) 4 weeks ago
assignment.md 🌐 Update translations via Co-op Translator (#546) 4 weeks ago
single-board-computer-connect-hub.md 🌐 Update translations via Co-op Translator (#546) 4 weeks ago
wio-terminal-connect-hub.md 🌐 Update translations via Co-op Translator (#546) 4 weeks ago

README.md

ย้ายต้นไม้ของคุณไปยังคลาวด์

ภาพสเก็ตโน้ตของบทเรียนนี้

สเก็ตโน้ตโดย Nitya Narasimhan คลิกที่ภาพเพื่อดูขนาดใหญ่ขึ้น

บทเรียนนี้เป็นส่วนหนึ่งของ IoT for Beginners Project 2 - Digital Agriculture series จาก Microsoft Reactor

เชื่อมต่ออุปกรณ์ของคุณกับคลาวด์ด้วย Azure IoT Hub

แบบทดสอบก่อนเรียน

แบบทดสอบก่อนเรียน

บทนำ

ในบทเรียนที่ผ่านมา คุณได้เรียนรู้วิธีเชื่อมต่อพืชของคุณกับ MQTT broker และควบคุมรีเลย์จากโค้ดเซิร์ฟเวอร์ที่รันอยู่ในเครื่องของคุณเอง นี่เป็นแกนหลักของระบบรดน้ำอัตโนมัติที่เชื่อมต่ออินเทอร์เน็ต ซึ่งสามารถใช้ได้ตั้งแต่ต้นไม้ในบ้านไปจนถึงฟาร์มเชิงพาณิชย์

อุปกรณ์ IoT สื่อสารกับ MQTT broker สาธารณะเพื่อแสดงหลักการทำงาน แต่การใช้งานแบบนี้ไม่ใช่วิธีที่น่าเชื่อถือหรือปลอดภัยที่สุด ในบทเรียนนี้ คุณจะได้เรียนรู้เกี่ยวกับคลาวด์และความสามารถของ IoT ที่ให้บริการโดยผู้ให้บริการคลาวด์สาธารณะ รวมถึงวิธีการย้ายพืชของคุณไปยังบริการคลาวด์เหล่านี้จาก MQTT broker สาธารณะ

ในบทเรียนนี้เราจะครอบคลุม:

คลาวด์คืออะไร?

ก่อนที่จะมีคลาวด์ เมื่อบริษัทต้องการให้บริการแก่พนักงาน (เช่น ฐานข้อมูลหรือการจัดเก็บไฟล์) หรือแก่สาธารณะ (เช่น เว็บไซต์) พวกเขาจะต้องสร้างและจัดการศูนย์ข้อมูลเอง ซึ่งอาจมีตั้งแต่ห้องที่มีคอมพิวเตอร์ไม่กี่เครื่องไปจนถึงอาคารที่มีคอมพิวเตอร์จำนวนมาก บริษัทจะต้องจัดการทุกอย่าง รวมถึง:

  • การซื้อคอมพิวเตอร์
  • การบำรุงรักษาฮาร์ดแวร์
  • การจัดการพลังงานและการระบายความร้อน
  • การเชื่อมต่อเครือข่าย
  • ความปลอดภัย ทั้งในแง่ของอาคารและซอฟต์แวร์
  • การติดตั้งและอัปเดตซอฟต์แวร์

สิ่งนี้อาจมีค่าใช้จ่ายสูง ต้องการพนักงานที่มีทักษะหลากหลาย และเปลี่ยนแปลงได้ช้า ตัวอย่างเช่น หากร้านค้าออนไลน์ต้องการเตรียมตัวสำหรับฤดูการขายที่คึกคัก พวกเขาจะต้องวางแผนล่วงหน้าเป็นเดือนเพื่อซื้อฮาร์ดแวร์เพิ่มเติม ตั้งค่า ติดตั้ง และติดตั้งซอฟต์แวร์เพื่อรองรับกระบวนการขาย หลังจากฤดูการขายสิ้นสุดลงและยอดขายลดลง พวกเขาจะเหลือคอมพิวเตอร์ที่ไม่ได้ใช้งานจนกว่าจะถึงฤดูการขายถัดไป

คุณคิดว่าสิ่งนี้จะช่วยให้บริษัทเคลื่อนไหวได้รวดเร็วหรือไม่? หากร้านค้าเสื้อผ้าออนไลน์ได้รับความนิยมอย่างรวดเร็วเพราะคนดังสวมใส่เสื้อผ้าของพวกเขา พวกเขาจะสามารถเพิ่มกำลังการประมวลผลได้เร็วพอที่จะรองรับคำสั่งซื้อที่เพิ่มขึ้นอย่างรวดเร็วหรือไม่?

คอมพิวเตอร์ของคนอื่น

คลาวด์มักถูกล้อเลียนว่าเป็น 'คอมพิวเตอร์ของคนอื่น' แนวคิดเริ่มต้นนั้นง่ายมาก - แทนที่จะซื้อคอมพิวเตอร์ คุณเช่าคอมพิวเตอร์ของคนอื่น ผู้ให้บริการคลาวด์จะจัดการศูนย์ข้อมูลขนาดใหญ่ พวกเขาจะรับผิดชอบการซื้อและติดตั้งฮาร์ดแวร์ การจัดการพลังงานและการระบายความร้อน การเชื่อมต่อเครือข่าย ความปลอดภัยของอาคาร การอัปเดตฮาร์ดแวร์และซอฟต์แวร์ ทุกอย่าง ในฐานะลูกค้า คุณจะเช่าคอมพิวเตอร์ที่คุณต้องการ เช่าเพิ่มเมื่อความต้องการเพิ่มขึ้น และลดจำนวนที่เช่าเมื่อความต้องการลดลง ศูนย์ข้อมูลคลาวด์เหล่านี้มีอยู่ทั่วโลก

ศูนย์ข้อมูลคลาวด์ของ Microsoft การขยายศูนย์ข้อมูลคลาวด์ของ Microsoft

ศูนย์ข้อมูลเหล่านี้อาจมีขนาดหลายตารางกิโลเมตร ภาพด้านบนถ่ายเมื่อไม่กี่ปีก่อนที่ศูนย์ข้อมูลคลาวด์ของ Microsoft และแสดงขนาดเริ่มต้นพร้อมกับการขยายที่วางแผนไว้ พื้นที่ที่ถูกเคลียร์สำหรับการขยายมีขนาดมากกว่า 5 ตารางกิโลเมตร

💁 ศูนย์ข้อมูลเหล่านี้ต้องการพลังงานจำนวนมากจนบางแห่งมีสถานีไฟฟ้าของตัวเอง เนื่องจากขนาดและการลงทุนจากผู้ให้บริการคลาวด์ พวกเขามักจะเป็นมิตรต่อสิ่งแวดล้อมมากกว่า พวกเขามีประสิทธิภาพมากกว่าศูนย์ข้อมูลขนาดเล็กจำนวนมาก ใช้พลังงานหมุนเวียนเป็นหลัก และผู้ให้บริการคลาวด์ทำงานอย่างหนักเพื่อลดของเสีย ลดการใช้น้ำ และปลูกป่าทดแทนพื้นที่ที่ถูกตัดเพื่อสร้างศูนย์ข้อมูล คุณสามารถอ่านเพิ่มเติมเกี่ยวกับความยั่งยืนของผู้ให้บริการคลาวด์ได้ที่ Azure sustainability site

ทำการค้นคว้า: อ่านเกี่ยวกับคลาวด์หลัก ๆ เช่น Azure จาก Microsoft หรือ GCP จาก Google พวกเขามีศูนย์ข้อมูลกี่แห่ง และตั้งอยู่ที่ไหนในโลก?

การใช้คลาวด์ช่วยลดต้นทุนสำหรับบริษัท และช่วยให้พวกเขามุ่งเน้นในสิ่งที่พวกเขาทำได้ดีที่สุด โดยปล่อยให้ความเชี่ยวชาญด้านคลาวด์เป็นหน้าที่ของผู้ให้บริการ บริษัทไม่จำเป็นต้องเช่าหรือซื้อพื้นที่ศูนย์ข้อมูล จ่ายเงินให้ผู้ให้บริการหลายรายสำหรับการเชื่อมต่อและพลังงาน หรือจ้างผู้เชี่ยวชาญอีกต่อไป แต่สามารถจ่ายบิลรายเดือนให้ผู้ให้บริการคลาวด์เพื่อดูแลทุกอย่างแทน

ผู้ให้บริการคลาวด์สามารถใช้ประโยชน์จากขนาดเศรษฐกิจเพื่อลดต้นทุน เช่น การซื้อคอมพิวเตอร์ในปริมาณมากในราคาที่ต่ำกว่า การลงทุนในเครื่องมือเพื่อลดภาระงานในการบำรุงรักษา หรือแม้กระทั่งการออกแบบและสร้างฮาร์ดแวร์ของตัวเองเพื่อปรับปรุงข้อเสนอคลาวด์ของพวกเขา

Microsoft Azure

Azure เป็นคลาวด์สำหรับนักพัฒนาจาก Microsoft และเป็นคลาวด์ที่คุณจะใช้ในบทเรียนนี้ วิดีโอด้านล่างให้ภาพรวมสั้น ๆ เกี่ยวกับ Azure:

วิดีโอภาพรวมของ Azure

สร้างการสมัครใช้งานคลาวด์

ในการใช้บริการบนคลาวด์ คุณจะต้องสมัครใช้งานกับผู้ให้บริการคลาวด์ สำหรับบทเรียนนี้ คุณจะสมัครใช้งาน Microsoft Azure หากคุณมีการสมัครใช้งาน Azure อยู่แล้ว คุณสามารถข้ามงานนี้ได้ รายละเอียดการสมัครใช้งานที่อธิบายไว้ที่นี่ถูกต้องในขณะที่เขียน แต่สามารถเปลี่ยนแปลงได้

💁 หากคุณเข้าถึงบทเรียนเหล่านี้ผ่านโรงเรียนของคุณ คุณอาจมีการสมัครใช้งาน Azure อยู่แล้ว ตรวจสอบกับครูของคุณ

มีการสมัครใช้งาน Azure ฟรีสองประเภทที่คุณสามารถสมัครได้:

  • Azure for Students - การสมัครใช้งานนี้ออกแบบมาสำหรับนักเรียนอายุ 18 ปีขึ้นไป คุณไม่จำเป็นต้องใช้บัตรเครดิตในการสมัคร และใช้ที่อยู่อีเมลของโรงเรียนเพื่อยืนยันว่าคุณเป็นนักเรียน เมื่อคุณสมัคร คุณจะได้รับเครดิตมูลค่า 100 ดอลลาร์สหรัฐฯ สำหรับใช้ในทรัพยากรคลาวด์ พร้อมบริการฟรี รวมถึงเวอร์ชันฟรีของบริการ IoT การสมัครนี้มีอายุ 12 เดือน และสามารถต่ออายุได้ทุกปีที่คุณยังคงเป็นนักเรียน

  • Azure free subscription - การสมัครใช้งานนี้สำหรับทุกคนที่ไม่ใช่นักเรียน คุณจะต้องใช้บัตรเครดิตในการสมัคร แต่บัตรของคุณจะไม่ถูกเรียกเก็บเงิน ใช้เพียงเพื่อยืนยันว่าคุณเป็นมนุษย์จริง ๆ ไม่ใช่บอท คุณจะได้รับเครดิตมูลค่า 200 ดอลลาร์สหรัฐฯ สำหรับใช้ใน 30 วันแรกในบริการใด ๆ พร้อมกับระดับฟรีของบริการ Azure เมื่อเครดิตของคุณหมด บัตรของคุณจะไม่ถูกเรียกเก็บเงิน เว้นแต่คุณจะเปลี่ยนเป็นการสมัครใช้งานแบบจ่ายตามการใช้งาน

💁 Microsoft มีการสมัครใช้งาน Azure for Students Starter สำหรับนักเรียนที่อายุต่ำกว่า 18 ปี แต่ในขณะที่เขียนนี้ยังไม่รองรับบริการ IoT ใด ๆ

งาน - สมัครใช้งานคลาวด์ฟรี

หากคุณเป็นนักเรียนอายุ 18 ปีขึ้นไป คุณสามารถสมัครใช้งาน Azure for Students ได้ คุณจะต้องยืนยันด้วยที่อยู่อีเมลของโรงเรียน คุณสามารถทำได้สองวิธี:

  • สมัครใช้งาน GitHub student developer pack ที่ education.github.com/pack สิ่งนี้จะให้คุณเข้าถึงเครื่องมือและข้อเสนอหลากหลาย รวมถึง GitHub และ Microsoft Azure เมื่อคุณสมัครใช้งาน developer pack คุณสามารถเปิดใช้งานข้อเสนอ Azure for Students ได้

  • สมัครใช้งานบัญชี Azure for Students โดยตรงที่ azure.microsoft.com/free/students

⚠️ หากที่อยู่อีเมลของโรงเรียนของคุณไม่ได้รับการยอมรับ ให้แจ้ง ปัญหาใน repo นี้ และเราจะดูว่ามันสามารถเพิ่มในรายการอนุญาตของ Azure for Students ได้หรือไม่

หากคุณไม่ใช่นักเรียน หรือไม่มีที่อยู่อีเมลของโรงเรียนที่ถูกต้อง คุณสามารถสมัครใช้งาน Azure Free subscription ได้

บริการ IoT บนคลาวด์

MQTT broker สาธารณะที่คุณใช้งานเป็นเครื่องมือที่ดีสำหรับการเรียนรู้ แต่มีข้อเสียหลายประการเมื่อใช้ในเชิงพาณิชย์:

  • ความน่าเชื่อถือ - เป็นบริการฟรีที่ไม่มีการรับประกัน และอาจถูกปิดได้ทุกเมื่อ
  • ความปลอดภัย - เป็นสาธารณะ ดังนั้นใคร ๆ ก็สามารถฟังข้อมูลของคุณหรือส่งคำสั่งเพื่อควบคุมฮาร์ดแวร์ของคุณได้
  • ประสิทธิภาพ - ออกแบบมาสำหรับข้อความทดสอบเพียงไม่กี่ข้อความ จึงไม่สามารถรองรับข้อความจำนวนมากได้
  • การค้นพบ - ไม่มีวิธีที่จะรู้ว่าอุปกรณ์ใดเชื่อมต่ออยู่

บริการ IoT บนคลาวด์ช่วยแก้ปัญหาเหล่านี้ พวกเขาได้รับการดูแลโดยผู้ให้บริการคลาวด์รายใหญ่ที่ลงทุนอย่างหนักในความน่าเชื่อถือและพร้อมที่จะแก้ไขปัญหาที่อาจเกิดขึ้น พวกเขามีความปลอดภัยในตัวเพื่อป้องกันแฮกเกอร์จากการอ่านข้อมูลของคุณหรือส่งคำสั่งที่ไม่พึงประสงค์ นอกจากนี้ยังมีประสิทธิภาพสูง สามารถจัดการข้อความหลายล้านข้อความต่อวัน โดยใช้ประโยชน์จากคลาวด์เพื่อปรับขนาดตามความต้องการ

💁 แม้ว่าคุณจะต้องจ่ายค่าบริการเหล่านี้เป็นรายเดือน แต่ผู้ให้บริการคลาวด์ส่วนใหญ่มีเวอร์ชันฟรีของบริการ IoT ที่มีข้อจำกัด เช่น จำนวนข้อความต่อวันหรือจำนวนอุปกรณ์ที่สามารถเชื่อมต่อได้ เวอร์ชันฟรีนี้มักเพียงพอสำหรับนักพัฒนาในการเรียนรู้เกี่ยวกับบริการ ในบทเรียนนี้คุณจะใช้เวอร์ชันฟรี

อุปกรณ์ IoT เชื่อมต่อกับบริการคลาวด์โดยใช้ device SDK (ไลบรารีที่ให้โค้ดสำหรับทำงานร่วมกับฟีเจอร์ของบริการ) หรือโดยตรงผ่านโปรโตคอลการสื่อสาร เช่น MQTT หรือ HTTP โดยปกติ device SDK จะเป็นเส้นทางที่ง่ายที่สุด เนื่องจากจัดการทุกอย่างให้คุณ เช่น การรู้ว่าควรเผยแพร่หรือสมัครสมาชิกหัวข้อใด และวิธีจัดการความปลอดภัย

อุปกรณ์เชื่อมต่อกับบริการโดยใช้ device SDK โค้ดเซิร์ฟเวอร์ยังเชื่อมต่อกับบริการผ่าน SDK

จากนั้นอุปกรณ์ของคุณจะสื่อสารกับส่วนอื่น ๆ ของแอปพลิเคชันของคุณผ่านบริการนี้ - คล้ายกับที่คุณส่งข้อมูลและรับคำสั่งผ่าน MQTT โดยปกติจะใช้ service SDK หรือไลบรารีที่คล้ายกัน ข้อความจะมาจากอุปกรณ์ของคุณไปยังบริการ ซึ่งส่วนประกอบอื่น ๆ ของแอปพลิเคชันของคุณสามารถอ่านได้ จากนั้นข้อความสามารถส่งกลับไปยังอุปกรณ์ของคุณได้

อุปกรณ์ที่ไม่มีคีย์ลับที่ถูกต้องไม่สามารถเชื่อมต่อกับบริการ IoT ได้

บริการเหล่านี้มีการรักษาความปลอดภัยโดยการรู้จักอุปกรณ์ทั้งหมดที่สามารถเชื่อมต่อและส่งข้อมูลได้ ไม่ว่าจะโดยการลงทะเบียนอุปกรณ์ล่วงหน้ากับบริการ หรือโดยการให้อุปกรณ์มีคีย์ลับหรือใบรับรองที่สามารถใช้ลงทะเบียนตัวเองกับบริการได้เมื่อเชื่อมต่อครั้งแรก อุปกรณ์ที่ไม่รู้จักจะไม่สามารถเชื่อมต่อได้ หากพยายาม บริการจะปฏิเสธการเชื่อมต่อและเพิกเฉยต่อข้อความที่ส่งมา

ทำการค้นคว้า: ข้อเสียของการมีบริการ IoT แบบเปิดที่อุปกรณ์หรือโค้ดใด ๆ สามารถเชื่อมต่อได้คืออะไร? คุณสามารถหาตัวอย่างเฉพาะของแฮกเกอร์ที่ใช้ประโยชน์จากสิ่งนี้ได้หรือไม่?

ส่วนประกอบอื่น ๆ ของแอปพลิเคชันของคุณสามารถเชื่อมต่อกับบริการ IoT และเรียนรู้เกี่ยวกับอุปกรณ์ทั้งหมดที่เชื่อมต่อหรือที่ลงทะเบียนไว้ และสื่อสารกับพวกเขาได้โดยตรงทั้งแบบกลุ่มหรือแบบรายบุคคล 💁 บริการ IoT ยังมีความสามารถเพิ่มเติม และผู้ให้บริการคลาวด์ก็มีบริการและแอปพลิเคชันเพิ่มเติมที่สามารถเชื่อมต่อกับบริการได้เช่นกัน ตัวอย่างเช่น หากคุณต้องการจัดเก็บข้อความเทเลเมทรีทั้งหมดที่ส่งมาจากอุปกรณ์ทั้งหมดในฐานข้อมูล โดยปกติแล้วจะใช้เพียงไม่กี่คลิกในเครื่องมือการตั้งค่าของผู้ให้บริการคลาวด์เพื่อเชื่อมต่อบริการกับฐานข้อมูลและสตรีมข้อมูลเข้าไป

สร้างบริการ IoT บนคลาวด์

เมื่อคุณมีการสมัครใช้งาน Azure แล้ว คุณสามารถลงทะเบียนเพื่อใช้งานบริการ IoT ได้ บริการ IoT จาก Microsoft เรียกว่า Azure IoT Hub

โลโก้ Azure IoT Hub

วิดีโอด้านล่างนี้ให้ภาพรวมสั้น ๆ เกี่ยวกับ Azure IoT Hub:

วิดีโอภาพรวม Azure IoT Hub

🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอ

ใช้เวลาสักครู่เพื่อค้นคว้าและอ่านภาพรวมของ IoT Hub ใน เอกสาร Microsoft IoT Hub

บริการคลาวด์ที่มีอยู่ใน Azure สามารถกำหนดค่าได้ผ่านพอร์ทัลบนเว็บ หรือผ่านอินเทอร์เฟซบรรทัดคำสั่ง (CLI) สำหรับงานนี้ คุณจะใช้ CLI

งาน - ติดตั้ง Azure CLI

ในการใช้ Azure CLI คุณต้องติดตั้ง CLI บน PC หรือ Mac ของคุณก่อน

  1. ทำตามคำแนะนำใน เอกสาร Azure CLI เพื่อทำการติดตั้ง CLI

  2. Azure CLI รองรับส่วนขยายหลายตัวที่เพิ่มความสามารถในการจัดการบริการ Azure หลากหลายประเภท ติดตั้งส่วนขยาย IoT โดยรันคำสั่งต่อไปนี้จากบรรทัดคำสั่งหรือเทอร์มินัลของคุณ:

    az extension add --name azure-iot
    
  3. จากบรรทัดคำสั่งหรือเทอร์มินัลของคุณ รันคำสั่งต่อไปนี้เพื่อเข้าสู่ระบบการสมัครใช้งาน Azure ของคุณจาก Azure CLI

    az login
    

    หน้าต่างเว็บจะเปิดขึ้นในเบราว์เซอร์เริ่มต้นของคุณ เข้าสู่ระบบโดยใช้บัญชีที่คุณใช้สมัครใช้งาน Azure เมื่อคุณเข้าสู่ระบบแล้ว คุณสามารถปิดแท็บเบราว์เซอร์ได้

  4. หากคุณมีการสมัครใช้งาน Azure หลายรายการ เช่น การสมัครที่โรงเรียนจัดหาให้ และการสมัคร Azure for Students ของคุณเอง คุณจะต้องเลือกการสมัครที่คุณต้องการใช้ รันคำสั่งต่อไปนี้เพื่อแสดงรายการการสมัครทั้งหมดที่คุณสามารถเข้าถึงได้:

    az account list --output table
    

    ในผลลัพธ์ คุณจะเห็นชื่อของแต่ละการสมัครพร้อมกับ SubscriptionId

    ➜  ~ az account list --output table
    Name                    CloudName    SubscriptionId                        State    IsDefault
    ----------------------  -----------  ------------------------------------  -------  -----------
    School-subscription     AzureCloud   cb30cde9-814a-42f0-a111-754cb788e4e1  Enabled  True
    Azure for Students      AzureCloud   fa51c31b-162c-4599-add6-781def2e1fbf  Enabled  False
    

    เพื่อเลือกการสมัครที่คุณต้องการใช้ ใช้คำสั่งต่อไปนี้:

    az account set --subscription <SubscriptionId>
    

    แทนที่ <SubscriptionId> ด้วย Id ของการสมัครที่คุณต้องการใช้ หลังจากรันคำสั่งนี้ ให้รันคำสั่งเพื่อแสดงรายการบัญชีของคุณอีกครั้ง คุณจะเห็นคอลัมน์ IsDefault ถูกทำเครื่องหมายเป็น True สำหรับการสมัครที่คุณเพิ่งตั้งค่า

งาน - สร้างกลุ่มทรัพยากร

บริการ Azure เช่น อินสแตนซ์ IoT Hub, เครื่องเสมือน, ฐานข้อมูล หรือบริการ AI ถูกเรียกว่า ทรัพยากร ทุกทรัพยากรต้องอยู่ภายใน กลุ่มทรัพยากร ซึ่งเป็นการจัดกลุ่มเชิงตรรกะของทรัพยากรหนึ่งหรือมากกว่า

💁 การใช้กลุ่มทรัพยากรหมายความว่าคุณสามารถจัดการบริการหลายตัวพร้อมกันได้ ตัวอย่างเช่น เมื่อคุณเรียนจบทุกบทเรียนสำหรับโปรเจกต์นี้ คุณสามารถลบกลุ่มทรัพยากร และทรัพยากรทั้งหมดในนั้นจะถูกลบโดยอัตโนมัติ

  1. มีศูนย์ข้อมูล Azure หลายแห่งทั่วโลก แบ่งออกเป็นภูมิภาค เมื่อคุณสร้างทรัพยากรหรือกลุ่มทรัพยากรใน Azure คุณต้องระบุว่าคุณต้องการสร้างที่ไหน รันคำสั่งต่อไปนี้เพื่อรับรายการตำแหน่งที่ตั้ง:

    az account list-locations --output table
    

    คุณจะเห็นรายการตำแหน่งที่ตั้ง รายการนี้จะยาว

    💁 ณ เวลาที่เขียน มี 65 ตำแหน่งที่คุณสามารถปรับใช้ได้

        ➜  ~ az account list-locations --output table
    DisplayName               Name                 RegionalDisplayName
    ------------------------  -------------------  -------------------------------------
    East US                   eastus               (US) East US
    East US 2                 eastus2              (US) East US 2
    South Central US          southcentralus       (US) South Central US
    ...
    

    จดค่าจากคอลัมน์ Name ของภูมิภาคที่ใกล้คุณที่สุด คุณสามารถค้นหาภูมิภาคบนแผนที่ใน หน้าภูมิศาสตร์ Azure

  2. รันคำสั่งต่อไปนี้เพื่อสร้างกลุ่มทรัพยากรชื่อ soil-moisture-sensor ชื่อกลุ่มทรัพยากรต้องไม่ซ้ำกันในบัญชีของคุณ

    az group create --name soil-moisture-sensor \
                    --location <location>
    

    แทนที่ <location> ด้วยตำแหน่งที่คุณเลือกในขั้นตอนก่อนหน้า

งาน - สร้าง IoT Hub

ตอนนี้คุณสามารถสร้างทรัพยากร IoT Hub ในกลุ่มทรัพยากรของคุณได้แล้ว

  1. ใช้คำสั่งต่อไปนี้เพื่อสร้างทรัพยากร IoT Hub ของคุณ:

    az iot hub create --resource-group soil-moisture-sensor \
                      --sku F1 \
                      --partition-count 2 \
                      --name <hub_name>
    

    แทนที่ <hub_name> ด้วยชื่อสำหรับฮับของคุณ ชื่อนี้ต้องไม่ซ้ำกันทั่วโลก - นั่นคือไม่มี IoT Hub อื่นที่สร้างโดยใครก็ตามที่สามารถมีชื่อเดียวกันได้ ชื่อนี้ใช้ใน URL ที่ชี้ไปยังฮับ ดังนั้นต้องไม่ซ้ำกัน ใช้บางอย่างเช่น soil-moisture-sensor- และเพิ่มตัวระบุที่ไม่ซ้ำกัน เช่น คำสุ่มหรือชื่อของคุณ

    ตัวเลือก --sku F1 บอกให้ใช้ระดับฟรี ระดับฟรีรองรับข้อความ 8,000 ข้อความต่อวันพร้อมกับฟีเจอร์ส่วนใหญ่ของระดับที่มีค่าใช้จ่ายเต็มราคา

    🎓 ระดับราคาต่าง ๆ ของบริการ Azure เรียกว่า tiers แต่ละ tier มีค่าใช้จ่ายต่างกันและให้ฟีเจอร์หรือปริมาณข้อมูลที่แตกต่างกัน

    💁 หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการกำหนดราคา คุณสามารถตรวจสอบ คู่มือการกำหนดราคา Azure IoT Hub

    ตัวเลือก --partition-count 2 กำหนดจำนวนสตรีมข้อมูลที่ IoT Hub รองรับ พาร์ติชันมากขึ้นช่วยลดการบล็อกข้อมูลเมื่อมีหลายสิ่งอ่านและเขียนจาก IoT Hub พาร์ติชันอยู่นอกขอบเขตของบทเรียนเหล่านี้ แต่ค่านี้ต้องถูกตั้งค่าเพื่อสร้าง IoT Hub ระดับฟรี

    💁 คุณสามารถมี IoT Hub ระดับฟรีได้เพียงหนึ่งตัวต่อการสมัคร

IoT Hub จะถูกสร้างขึ้น อาจใช้เวลาสักครู่เพื่อให้เสร็จสมบูรณ์

สื่อสารกับ IoT Hub

ในบทเรียนก่อนหน้านี้ คุณใช้ MQTT และส่งข้อความไปกลับในหัวข้อที่แตกต่างกัน โดยหัวข้อที่แตกต่างกันมีวัตถุประสงค์ที่แตกต่างกัน แทนที่จะส่งข้อความผ่านหัวข้อที่แตกต่างกัน IoT Hub มีวิธีการที่กำหนดไว้หลายวิธีสำหรับอุปกรณ์ในการสื่อสารกับ Hub หรือสำหรับ Hub ในการสื่อสารกับอุปกรณ์

💁 เบื้องหลังการสื่อสารระหว่าง IoT Hub และอุปกรณ์ของคุณสามารถใช้ MQTT, HTTPS หรือ AMQP

  • ข้อความจากอุปกรณ์ไปยังคลาวด์ (D2C) - ข้อความเหล่านี้ถูกส่งจากอุปกรณ์ไปยัง IoT Hub เช่น ข้อมูลเทเลเมทรี ข้อความเหล่านี้สามารถอ่านออกจาก IoT Hub โดยโค้ดแอปพลิเคชันของคุณ

    🎓 เบื้องหลัง IoT Hub ใช้บริการ Azure ที่เรียกว่า Event Hubs เมื่อคุณเขียนโค้ดเพื่ออ่านข้อความที่ส่งไปยังฮับ ข้อความเหล่านี้มักถูกเรียกว่า events

  • ข้อความจากคลาวด์ไปยังอุปกรณ์ (C2D) - ข้อความเหล่านี้ถูกส่งจากโค้ดแอปพลิเคชัน ผ่าน IoT Hub ไปยังอุปกรณ์ IoT

  • คำขอวิธีการโดยตรง - ข้อความเหล่านี้ถูกส่งจากโค้ดแอปพลิเคชันผ่าน IoT Hub ไปยังอุปกรณ์ IoT เพื่อขอให้อุปกรณ์ทำบางสิ่ง เช่น ควบคุม actuator ข้อความเหล่านี้ต้องการการตอบกลับเพื่อให้โค้ดแอปพลิเคชันของคุณทราบว่ามันถูกประมวลผลสำเร็จหรือไม่

  • Device twins - เอกสาร JSON เหล่านี้ถูกเก็บไว้ให้สอดคล้องกันระหว่างอุปกรณ์และ IoT Hub และใช้เพื่อเก็บการตั้งค่าหรือคุณสมบัติอื่น ๆ ที่รายงานโดยอุปกรณ์ หรือควรตั้งค่าในอุปกรณ์ (เรียกว่า desired) โดย IoT Hub

IoT Hub สามารถเก็บข้อความและคำขอวิธีการโดยตรงไว้ในระยะเวลาที่กำหนดค่าได้ (ค่าเริ่มต้นคือหนึ่งวัน) ดังนั้นหากอุปกรณ์หรือโค้ดแอปพลิเคชันสูญเสียการเชื่อมต่อ มันยังสามารถดึงข้อความที่ส่งในขณะที่มันออฟไลน์หลังจากที่มันเชื่อมต่อใหม่ Device twins จะถูกเก็บไว้ถาวรใน IoT Hub ดังนั้นในทุกเวลาอุปกรณ์สามารถเชื่อมต่อใหม่และรับ device twin ล่าสุดได้

ทำการค้นคว้า: อ่านเพิ่มเติมเกี่ยวกับประเภทข้อความเหล่านี้ใน คำแนะนำการสื่อสารจากอุปกรณ์ไปยังคลาวด์ และ คำแนะนำการสื่อสารจากคลาวด์ไปยังอุปกรณ์ ในเอกสาร IoT Hub

เชื่อมต่ออุปกรณ์ของคุณกับบริการ IoT

เมื่อฮับถูกสร้างขึ้น อุปกรณ์ IoT ของคุณสามารถเชื่อมต่อกับมันได้ เฉพาะอุปกรณ์ที่ลงทะเบียนแล้วเท่านั้นที่สามารถเชื่อมต่อกับบริการได้ ดังนั้นคุณจะต้องลงทะเบียนอุปกรณ์ของคุณก่อน เมื่อคุณลงทะเบียน คุณจะได้รับสตริงการเชื่อมต่อที่อุปกรณ์สามารถใช้เพื่อเชื่อมต่อ สตริงการเชื่อมต่อนี้เป็นแบบเฉพาะอุปกรณ์ และมีข้อมูลเกี่ยวกับ IoT Hub, อุปกรณ์ และคีย์ลับที่อนุญาตให้อุปกรณ์นี้เชื่อมต่อ

🎓 สตริงการเชื่อมต่อเป็นคำทั่วไปสำหรับข้อความที่มีรายละเอียดการเชื่อมต่อ ข้อความเหล่านี้ถูกใช้เมื่อเชื่อมต่อกับ IoT Hubs, ฐานข้อมูล และบริการอื่น ๆ อีกมากมาย โดยปกติจะประกอบด้วยตัวระบุสำหรับบริการ เช่น URL และข้อมูลความปลอดภัย เช่น คีย์ลับ ข้อความเหล่านี้ถูกส่งไปยัง SDK เพื่อเชื่อมต่อกับบริการ

⚠️ สตริงการเชื่อมต่อควรเก็บไว้ให้ปลอดภัย! ความปลอดภัยจะถูกกล่าวถึงในรายละเอียดเพิ่มเติมในบทเรียนถัดไป

งาน - ลงทะเบียนอุปกรณ์ IoT ของคุณ

อุปกรณ์ IoT สามารถลงทะเบียนกับ IoT Hub ของคุณโดยใช้ Azure CLI

  1. รันคำสั่งต่อไปนี้เพื่อลงทะเบียนอุปกรณ์:

    az iot hub device-identity create --device-id soil-moisture-sensor \
                                      --hub-name <hub_name>
    

    แทนที่ <hub_name> ด้วยชื่อที่คุณใช้สำหรับ IoT Hub ของคุณ

    สิ่งนี้จะสร้างอุปกรณ์ที่มี ID เป็น soil-moisture-sensor

  2. เมื่ออุปกรณ์ IoT ของคุณเชื่อมต่อกับ IoT Hub โดยใช้ SDK มันต้องใช้สตริงการเชื่อมต่อที่ให้ URL ของฮับ พร้อมกับคีย์ลับ รันคำสั่งต่อไปนี้เพื่อรับสตริงการเชื่อมต่อ:

    az iot hub device-identity connection-string show --device-id soil-moisture-sensor \
                                                      --output table \
                                                      --hub-name <hub_name>
    

    แทนที่ <hub_name> ด้วยชื่อที่คุณใช้สำหรับ IoT Hub ของคุณ

  3. เก็บสตริงการเชื่อมต่อที่แสดงในผลลัพธ์ไว้ เพราะคุณจะต้องใช้มันในภายหลัง

งาน - เชื่อมต่ออุปกรณ์ IoT ของคุณกับคลาวด์

ทำตามคู่มือที่เกี่ยวข้องเพื่อเชื่อมต่ออุปกรณ์ IoT ของคุณกับคลาวด์:

งาน - ตรวจสอบเหตุการณ์

สำหรับตอนนี้ คุณจะยังไม่อัปเดตโค้ดเซิร์ฟเวอร์ของคุณ แต่คุณสามารถใช้ Azure CLI เพื่อตรวจสอบเหตุการณ์จากอุปกรณ์ IoT ของคุณได้

  1. ตรวจสอบให้อุปกรณ์ IoT ของคุณกำลังทำงานและส่งค่าความชื้นในดิน

  2. รันคำสั่งต่อไปนี้ในพรอมต์คำสั่งหรือเทอร์มินัลของคุณเพื่อตรวจสอบข้อความที่ส่งไปยัง IoT Hub ของคุณ:

    az iot hub monitor-events --hub-name <hub_name>
    

    แทนที่ <hub_name> ด้วยชื่อที่คุณใช้สำหรับ IoT Hub ของคุณ

    คุณจะเห็นข้อความปรากฏในผลลัพธ์คอนโซลเมื่อมันถูกส่งโดยอุปกรณ์ IoT ของคุณ

    Starting event monitor, use ctrl-c to stop...
    {
        "event": {
            "origin": "soil-moisture-sensor",
            "module": "",
            "interface": "",
            "component": "",
            "payload": "{\"soil_moisture\": 376}"
        }
    },
    {
        "event": {
            "origin": "soil-moisture-sensor",
            "module": "",
            "interface": "",
            "component": "",
            "payload": "{\"soil_moisture\": 381}"
        }
    }
    

    เนื้อหาของ payload จะตรงกับข้อความที่ส่งโดยอุปกรณ์ IoT ของคุณ

    ณ เวลาที่เขียน ส่วนขยาย az iot ยังไม่ทำงานเต็มรูปแบบบน Apple Silicon หากคุณใช้อุปกรณ์ Apple Silicon คุณจะต้องตรวจสอบข้อความด้วยวิธีอื่น เช่น ใช้ Azure IoT Tools สำหรับ Visual Studio Code

  3. ข้อความเหล่านี้มีคุณสมบัติจำนวนหนึ่งที่แนบมาด้วยโดยอัตโนมัติ เช่น เวลาที่ส่ง คุณสมบัติเหล่านี้เรียกว่า annotations เพื่อดู annotations ของข้อความทั้งหมด ใช้คำสั่งต่อไปนี้:

    az iot hub monitor-events --properties anno --hub-name <hub_name>
    

    แทนที่ <hub_name> ด้วยชื่อที่คุณใช้สำหรับ IoT Hub ของคุณ

    คุณจะเห็นข้อความปรากฏในผลลัพธ์คอนโซลเมื่อมันถูกส่งโดยอุปกรณ์ IoT ของคุณ

    Starting event monitor, use ctrl-c to stop...
    {
        "event": {
            "origin": "soil-moisture-sensor",
            "module": "",
            "interface": "",
            "component": "",
            "properties": {},
            "annotations": {
                "iothub-connection-device-id": "soil-moisture-sensor",
                "iothub-connection-auth-method": "{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
                "iothub-connection-auth-generation-id": "637553997165220462",
                "iothub-enqueuedtime": 1619976150288,
                "iothub-message-source": "Telemetry",
                "x-opt-sequence-number": 1379,
                "x-opt-offset": "550576",
                "x-opt-enqueued-time": 1619976150277
            },
            "payload": "{\"soil_moisture\": 381}"
        }
    }
    

    ค่าของเวลาใน annotations อยู่ใน UNIX time ซึ่งแสดงจำนวนวินาทีตั้งแต่เที่ยงคืนวันที่ 1 มกราคม 1970

    ออกจากตัวตรวจสอบเหตุการณ์เมื่อคุณทำเสร็จแล้ว

งาน - ควบคุมอุปกรณ์ IoT ของคุณ

คุณยังสามารถใช้ Azure CLI เพื่อเรียกใช้วิธีการโดยตรงบนอุปกรณ์ IoT ของคุณได้

  1. รันคำสั่งต่อไปนี้ในพรอมต์คำสั่งหรือเทอร์มินัลของคุณเพื่อเรียกใช้วิธีการ relay_on บนอุปกรณ์ IoT:

    az iot hub invoke-device-method --device-id soil-moisture-sensor \
                                    --method-name relay_on \
                                    --method-payload '{}' \
                                    --hub-name <hub_name>
    

    แทนที่ <hub_name>ด้วยชื่อที่คุณใช้สำหรับ IoT Hub ของคุณ`

    สิ่งนี้จะส่งคำขอวิธีการโดยตรงสำหรับวิธีการที่ระบุโดย method-name วิธีการโดยตรงสามารถรับข้อมูลที่ส่งมาในรูปแบบ payload ซึ่งสามารถระบุได้ในพารามิเตอร์ method-payload เป็น JSON

    คุณจะเห็นรีเลย์เปิด และผลลัพธ์ที่สอดคล้องกันจากอุปกรณ์ IoT ของคุณ:

    Direct method received -  relay_on
    
  2. ทำซ้ำขั้นตอนด้านบน แต่ตั้งค่า --method-name เป็น relay_off คุณจะเห็นรีเลย์ปิด และผลลัพธ์ที่สอดคล้องกันจากอุปกรณ์ IoT


🚀 ความท้าทาย

ระดับฟรีของ IoT Hub อนุญาตให้ส่งข้อความได้ 8,000 ข้อความต่อวัน โค้ดที่คุณเขียนส่งข้อความเทเลเมทรีทุกๆ 10 วินาที หนึ่งข้อความทุกๆ 10 วินาทีจะเท่ากับกี่ข้อความต่อวัน?

ลองคิดดูว่าควรส่งการวัดความชื้นในดินบ่อยแค่ไหน? คุณจะเปลี่ยนโค้ดของคุณอย่างไรเพื่อให้อยู่ในระดับฟรีและตรวจสอบได้บ่อยเท่าที่จำเป็นแต่ไม่บ่อยเกินไป? แล้วถ้าคุณต้องการเพิ่มอุปกรณ์ตัวที่สองล่ะ?

แบบทดสอบหลังการบรรยาย

แบบทดสอบหลังการบรรยาย

ทบทวนและศึกษาด้วยตนเอง

IoT Hub SDK เป็นโอเพ่นซอร์สสำหรับทั้ง Arduino และ Python ในที่เก็บโค้ดบน GitHub มีตัวอย่างจำนวนมากที่แสดงวิธีการทำงานกับฟีเจอร์ต่างๆ ของ IoT Hub

งานที่ได้รับมอบหมาย

เรียนรู้เกี่ยวกับบริการคลาวด์


ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้