# เริ่มต้นการตรวจสอบคุณภาพผลไม้จากเซ็นเซอร์ ![ภาพรวมของบทเรียนนี้ในรูปแบบสเก็ตโน้ต](../../../../../translated_images/lesson-18.92c32ed1d354caa5a54baa4032cf0b172d4655e8e326ad5d46c558a0def15365.th.jpg) > สเก็ตโน้ตโดย [Nitya Narasimhan](https://github.com/nitya) คลิกที่ภาพเพื่อดูเวอร์ชันขนาดใหญ่ ## แบบทดสอบก่อนเริ่มบทเรียน [แบบทดสอบก่อนเริ่มบทเรียน](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/35) ## บทนำ แอปพลิเคชัน IoT ไม่ได้เป็นเพียงอุปกรณ์เดียวที่จับข้อมูลและส่งไปยังคลาวด์ แต่บ่อยครั้งจะเป็นระบบที่มีหลายอุปกรณ์ทำงานร่วมกันเพื่อจับข้อมูลจากโลกจริงผ่านเซ็นเซอร์ ตัดสินใจจากข้อมูลนั้น และโต้ตอบกลับไปยังโลกจริงผ่านแอคทูเอเตอร์หรือการแสดงผล ในบทเรียนนี้ คุณจะได้เรียนรู้เกี่ยวกับการออกแบบแอปพลิเคชัน IoT ที่ซับซ้อน รวมถึงการรวมเซ็นเซอร์หลายตัว บริการคลาวด์หลายตัวเพื่อวิเคราะห์และจัดเก็บข้อมูล และการแสดงผลตอบสนองผ่านแอคทูเอเตอร์ คุณจะได้เรียนรู้วิธีการออกแบบต้นแบบระบบควบคุมคุณภาพผลไม้ รวมถึงการใช้เซ็นเซอร์วัดระยะทางเพื่อเริ่มต้นแอปพลิเคชัน IoT และสถาปัตยกรรมของต้นแบบนี้ ในบทเรียนนี้เราจะครอบคลุม: * [ออกแบบแอปพลิเคชัน IoT ที่ซับซ้อน](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector) * [ออกแบบระบบควบคุมคุณภาพผลไม้](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector) * [เริ่มต้นการตรวจสอบคุณภาพผลไม้จากเซ็นเซอร์](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector) * [ข้อมูลที่ใช้สำหรับตัวตรวจสอบคุณภาพผลไม้](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector) * [ใช้ชุดพัฒนาเพื่อจำลองอุปกรณ์ IoT หลายตัว](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector) * [การย้ายไปสู่การผลิต](../../../../../4-manufacturing/lessons/4-trigger-fruit-detector) > 🗑 นี่คือบทเรียนสุดท้ายในโปรเจกต์นี้ ดังนั้นหลังจากที่คุณทำบทเรียนและงานมอบหมายเสร็จแล้ว อย่าลืมล้างบริการคลาวด์ของคุณ คุณจะต้องใช้บริการเหล่านี้เพื่อทำงานมอบหมายให้เสร็จ ดังนั้นอย่าลืมทำงานนั้นก่อน > > ดูคำแนะนำ [การล้างโปรเจกต์ของคุณ](../../../clean-up.md) หากจำเป็นสำหรับคำแนะนำวิธีการทำ ## ออกแบบแอปพลิเคชัน IoT ที่ซับซ้อน แอปพลิเคชัน IoT ประกอบด้วยหลายองค์ประกอบ ซึ่งรวมถึงอุปกรณ์หลากหลายชนิดและบริการอินเทอร์เน็ตหลากหลายรูปแบบ แอปพลิเคชัน IoT สามารถอธิบายได้ว่าเป็น *สิ่งต่างๆ* (อุปกรณ์) ที่ส่งข้อมูลซึ่งสร้าง *ข้อมูลเชิงลึก* ข้อมูลเชิงลึกเหล่านี้สร้าง *การกระทำ* เพื่อปรับปรุงธุรกิจหรือกระบวนการ ตัวอย่างเช่น เครื่องยนต์ (สิ่งต่างๆ) ส่งข้อมูลอุณหภูมิ ข้อมูลนี้ถูกใช้เพื่อประเมินว่าเครื่องยนต์ทำงานตามที่คาดหวังหรือไม่ (ข้อมูลเชิงลึก) ข้อมูลเชิงลึกนี้ถูกใช้เพื่อจัดลำดับความสำคัญของการบำรุงรักษาเครื่องยนต์ (การกระทำ) * สิ่งต่างๆ ต่างกันจะรวบรวมข้อมูลที่แตกต่างกัน * บริการ IoT ให้ข้อมูลเชิงลึกจากข้อมูลนั้น บางครั้งเพิ่มข้อมูลจากแหล่งอื่น * ข้อมูลเชิงลึกเหล่านี้นำไปสู่การกระทำ เช่น การควบคุมแอคทูเอเตอร์ในอุปกรณ์ หรือการแสดงผลข้อมูล ### สถาปัตยกรรม IoT อ้างอิง ![สถาปัตยกรรม IoT อ้างอิง](../../../../../translated_images/iot-reference-architecture.2278b98b55c6d4e89bde18eada3688d893861d43507641804dd2f9d3079cfaa0.th.png) ภาพด้านบนแสดงสถาปัตยกรรม IoT อ้างอิง > 🎓 *สถาปัตยกรรมอ้างอิง* คือสถาปัตยกรรมตัวอย่างที่คุณสามารถใช้เป็นแนวทางเมื่อออกแบบระบบใหม่ ในกรณีนี้ หากคุณกำลังสร้างระบบ IoT ใหม่ คุณสามารถใช้สถาปัตยกรรมอ้างอิงนี้ โดยแทนที่อุปกรณ์และบริการของคุณเองตามความเหมาะสม * **สิ่งต่างๆ** คืออุปกรณ์ที่รวบรวมข้อมูลจากเซ็นเซอร์ อาจโต้ตอบกับบริการที่ขอบเพื่อแปลความหมายข้อมูล เช่น ตัวจำแนกภาพเพื่อแปลข้อมูลภาพ ข้อมูลจากอุปกรณ์ถูกส่งไปยังบริการ IoT * **ข้อมูลเชิงลึก** มาจากแอปพลิเคชันแบบไร้เซิร์ฟเวอร์ หรือจากการวิเคราะห์ข้อมูลที่จัดเก็บไว้ * **การกระทำ** อาจเป็นคำสั่งที่ส่งไปยังอุปกรณ์ หรือการแสดงผลข้อมูลที่ช่วยให้มนุษย์ตัดสินใจ ![สถาปัตยกรรม IoT อ้างอิง](../../../../../translated_images/iot-reference-architecture-azure.0b8d2161af924cb18ae48a8558a19541cca47f27264851b5b7e56d7b8bb372ac.th.png) ภาพด้านบนแสดงองค์ประกอบและบริการบางส่วนที่ครอบคลุมในบทเรียนนี้ และวิธีการเชื่อมโยงกันในสถาปัตยกรรม IoT อ้างอิง * **สิ่งต่างๆ** - คุณได้เขียนโค้ดอุปกรณ์เพื่อจับข้อมูลจากเซ็นเซอร์ และวิเคราะห์ภาพโดยใช้ Custom Vision ทั้งในคลาวด์และบนอุปกรณ์ที่ขอบ ข้อมูลนี้ถูกส่งไปยัง IoT Hub * **ข้อมูลเชิงลึก** - คุณได้ใช้ Azure Functions เพื่อตอบสนองต่อข้อความที่ส่งไปยัง IoT Hub และจัดเก็บข้อมูลเพื่อการวิเคราะห์ในภายหลังใน Azure Storage * **การกระทำ** - คุณได้ควบคุมแอคทูเอเตอร์ตามการตัดสินใจที่ทำในคลาวด์และคำสั่งที่ส่งไปยังอุปกรณ์ และคุณได้แสดงผลข้อมูลโดยใช้ Azure Maps ✅ ลองคิดถึงอุปกรณ์ IoT อื่นๆ ที่คุณเคยใช้ เช่น เครื่องใช้ไฟฟ้าในบ้านอัจฉริยะ สิ่งต่างๆ ข้อมูลเชิงลึก และการกระทำที่เกี่ยวข้องกับอุปกรณ์และซอฟต์แวร์นั้นคืออะไร? รูปแบบนี้สามารถขยายได้ตามขนาดที่คุณต้องการ เพิ่มอุปกรณ์และบริการมากขึ้น ### ข้อมูลและความปลอดภัย เมื่อคุณกำหนดสถาปัตยกรรมของระบบ คุณต้องพิจารณาเรื่องข้อมูลและความปลอดภัยอย่างต่อเนื่อง * อุปกรณ์ของคุณส่งและรับข้อมูลอะไรบ้าง? * ข้อมูลนั้นควรได้รับการปกป้องและรักษาความปลอดภัยอย่างไร? * การเข้าถึงอุปกรณ์และบริการคลาวด์ควรควบคุมอย่างไร? ✅ ลองคิดถึงความปลอดภัยของข้อมูลในอุปกรณ์ IoT ที่คุณเป็นเจ้าของ ข้อมูลใดที่เป็นข้อมูลส่วนตัวและควรเก็บเป็นความลับ ทั้งในระหว่างการส่งหรือเมื่อจัดเก็บ? ข้อมูลใดที่ไม่ควรจัดเก็บ? ## ออกแบบระบบควบคุมคุณภาพผลไม้ ตอนนี้เรามาใช้แนวคิดของสิ่งต่างๆ ข้อมูลเชิงลึก และการกระทำกับตัวตรวจสอบคุณภาพผลไม้เพื่อออกแบบแอปพลิเคชันแบบครบวงจร ลองจินตนาการว่าคุณได้รับมอบหมายให้สร้างตัวตรวจสอบคุณภาพผลไม้เพื่อใช้ในโรงงานแปรรูป ผลไม้เดินทางบนสายพานลำเลียงที่ปัจจุบันพนักงานใช้เวลาตรวจสอบผลไม้ด้วยมือและนำผลไม้ที่ยังไม่สุกออกเมื่อมาถึง เพื่อลดต้นทุน เจ้าของโรงงานต้องการระบบอัตโนมัติ ✅ หนึ่งในแนวโน้มที่เกิดขึ้นจากการเพิ่มขึ้นของ IoT (และเทคโนโลยีโดยทั่วไป) คือการที่งานที่ทำด้วยมือถูกแทนที่ด้วยเครื่องจักร ลองค้นคว้า: มีการประมาณการว่างานจำนวนเท่าใดที่จะสูญเสียไปกับ IoT? และงานใหม่จำนวนเท่าใดที่จะถูกสร้างขึ้นจากการสร้างอุปกรณ์ IoT? คุณต้องสร้างระบบที่สามารถตรวจจับผลไม้เมื่อมาถึงสายพานลำเลียง ถ่ายภาพและตรวจสอบด้วยโมเดล AI ที่ทำงานบนอุปกรณ์ที่ขอบ ผลลัพธ์จะถูกส่งไปยังคลาวด์เพื่อจัดเก็บ และหากผลไม้ยังไม่สุก จะมีการแจ้งเตือนเพื่อให้สามารถนำผลไม้ที่ยังไม่สุกออกได้ | | | | - | - | | **สิ่งต่างๆ** | ตัวตรวจจับผลไม้ที่มาถึงสายพานลำเลียง
กล้องเพื่อถ่ายภาพและจำแนกผลไม้
อุปกรณ์ที่ขอบที่ทำงานตัวจำแนก
อุปกรณ์แจ้งเตือนผลไม้ที่ยังไม่สุก | | **ข้อมูลเชิงลึก** | ตัดสินใจตรวจสอบความสุกของผลไม้
จัดเก็บผลลัพธ์ของการจำแนกความสุก
กำหนดว่าจำเป็นต้องแจ้งเตือนเกี่ยวกับผลไม้ที่ยังไม่สุกหรือไม่ | | **การกระทำ** | ส่งคำสั่งไปยังอุปกรณ์เพื่อถ่ายภาพผลไม้และตรวจสอบด้วยตัวจำแนกภาพ
ส่งคำสั่งไปยังอุปกรณ์เพื่อแจ้งเตือนว่าผลไม้ยังไม่สุก | ### การสร้างต้นแบบแอปพลิเคชันของคุณ ![สถาปัตยกรรม IoT อ้างอิงสำหรับการตรวจสอบคุณภาพผลไม้](../../../../../translated_images/iot-reference-architecture-fruit-quality.cc705f121c3b6fa71c800d9630935ac34bc08223a04601e35f41d5e9b5dd5207.th.png) ภาพด้านบนแสดงสถาปัตยกรรมอ้างอิงสำหรับแอปพลิเคชันต้นแบบนี้ * อุปกรณ์ IoT ที่มีเซ็นเซอร์วัดระยะทางตรวจจับการมาถึงของผลไม้ และส่งข้อความไปยังคลาวด์เพื่อแจ้งว่ามีผลไม้ถูกตรวจจับ * แอปพลิเคชันแบบไร้เซิร์ฟเวอร์ในคลาวด์ส่งคำสั่งไปยังอุปกรณ์อื่นเพื่อถ่ายภาพและจำแนกภาพ * อุปกรณ์ IoT ที่มีกล้องถ่ายภาพและส่งไปยังตัวจำแนกภาพที่ทำงานบนอุปกรณ์ที่ขอบ ผลลัพธ์จะถูกส่งไปยังคลาวด์ * แอปพลิเคชันแบบไร้เซิร์ฟเวอร์ในคลาวด์จัดเก็บข้อมูลนี้เพื่อวิเคราะห์ในภายหลังเพื่อดูเปอร์เซ็นต์ของผลไม้ที่ยังไม่สุก หากผลไม้ยังไม่สุก จะส่งคำสั่งไปยังอุปกรณ์ IoT อื่นเพื่อแจ้งเตือนพนักงานในโรงงานผ่าน LED > 💁 แอปพลิเคชัน IoT ทั้งหมดนี้สามารถนำไปใช้เป็นอุปกรณ์เดียว โดยมีตรรกะทั้งหมดในการเริ่มต้นการจำแนกภาพและควบคุม LED ในตัว มันสามารถใช้ IoT Hub เพื่อติดตามจำนวนผลไม้ที่ยังไม่สุกที่ตรวจพบและกำหนดค่าอุปกรณ์ ในบทเรียนนี้มันถูกขยายเพื่อแสดงแนวคิดสำหรับแอปพลิเคชัน IoT ขนาดใหญ่ สำหรับต้นแบบ คุณจะนำไปใช้ทั้งหมดนี้บนอุปกรณ์เดียว หากคุณใช้ไมโครคอนโทรลเลอร์ คุณจะใช้แยกอุปกรณ์ที่ขอบเพื่อทำงานตัวจำแนกภาพ คุณได้เรียนรู้สิ่งที่จำเป็นส่วนใหญ่เพื่อสร้างสิ่งนี้แล้ว ## เริ่มต้นการตรวจสอบคุณภาพผลไม้จากเซ็นเซอร์ อุปกรณ์ IoT ต้องมีตัวกระตุ้นบางอย่างเพื่อบ่งบอกว่าเมื่อใดที่ผลไม้พร้อมที่จะถูกจำแนก ตัวกระตุ้นหนึ่งสำหรับสิ่งนี้คือการวัดเมื่อผลไม้อยู่ในตำแหน่งที่เหมาะสมบนสายพานลำเลียงโดยการวัดระยะทางไปยังเซ็นเซอร์ ![เซ็นเซอร์วัดระยะทางส่งลำแสงเลเซอร์ไปยังวัตถุ เช่น กล้วย และวัดเวลาที่ลำแสงสะท้อนกลับ](../../../../../translated_images/proximity-sensor.f5cd752c77fb62fea000156233b32fd24fad3707ec69b8bdd8d312b7af85156d.th.png) เซ็นเซอร์วัดระยะทางสามารถใช้วัดระยะทางจากเซ็นเซอร์ไปยังวัตถุ โดยปกติจะส่งลำแสงรังสีแม่เหล็กไฟฟ้า เช่น ลำแสงเลเซอร์หรือแสงอินฟราเรด จากนั้นตรวจจับรังสีที่สะท้อนกลับจากวัตถุ เวลาระหว่างลำแสงเลเซอร์ที่ถูกส่งและสัญญาณที่สะท้อนกลับสามารถใช้คำนวณระยะทางไปยังเซ็นเซอร์ > 💁 คุณอาจเคยใช้เซ็นเซอร์วัดระยะทางโดยไม่รู้ตัว สมาร์ทโฟนส่วนใหญ่จะปิดหน้าจอเมื่อคุณถือไว้ใกล้หูเพื่อป้องกันการกดปุ่มโดยไม่ได้ตั้งใจด้วยใบหู และสิ่งนี้ทำงานโดยใช้เซ็นเซอร์วัดระยะทางที่ตรวจจับวัตถุใกล้หน้าจอระหว่างการโทรและปิดการใช้งานการสัมผัสจนกว่าโทรศัพท์จะอยู่ห่างออกไปในระยะที่กำหนด ### งาน - เริ่มต้นการตรวจสอบคุณภาพผลไม้จากเซ็นเซอร์วัดระยะทาง ทำตามคำแนะนำที่เกี่ยวข้องเพื่อใช้เซ็นเซอร์วัดระยะทางในการตรวจจับวัตถุโดยใช้อุปกรณ์ IoT ของคุณ: * [Arduino - Wio Terminal](wio-terminal-proximity.md) * [คอมพิวเตอร์บอร์ดเดี่ยว - Raspberry Pi](pi-proximity.md) * [คอมพิวเตอร์บอร์ดเดี่ยว - อุปกรณ์เสมือน](virtual-device-proximity.md) ## ข้อมูลที่ใช้สำหรับตัวตรวจสอบคุณภาพผลไม้ ตัวตรวจสอบผลไม้ต้นแบบมีองค์ประกอบหลายตัวที่สื่อสารกัน ![องค์ประกอบที่สื่อสารกัน](../../../../../translated_images/fruit-quality-detector-message-flow.adf2a65da8fd8741ac7af11361574de89adc126785d67606bb4d2ec00467e380.th.png) * เซ็นเซอร์วัดระยะทางที่วัดระยะทางไปยังผลไม้และส่งข้อมูลนี้ไปยัง IoT Hub * คำสั่งควบคุมกล้องที่มาจาก IoT Hub ไปยังอุปกรณ์กล้อง * ผลลัพธ์ของการจำแนกภาพที่ถูกส่งไปยัง IoT Hub * คำสั่งควบคุม LED เพื่อแจ้งเตือนเมื่อผลไม้ยังไม่สุกที่ถูกส่งจาก IoT Hub ไปยังอุปกรณ์ที่มี LED การกำหนดโครงสร้างของข้อความเหล่านี้ล่วงหน้าเป็นสิ่งที่ดี ก่อนที่คุณจะสร้างแอปพลิเคชัน > 💁 นักพัฒนาที่มีประสบการณ์เกือบทุกคนเคยใช้เวลาหลายชั่วโมง หลายวัน หรือแม้แต่หลายสัปดาห์ในการแก้ไขข้อผิดพลาดที่เกิดจากความแตกต่างในข้อมูลที่ส่งเมื่อเทียบกับข้อมูลที่คาดหวัง ตัวอย่างเช่น - หากคุณกำลังส่งข้อมูลอุณหภูมิ คุณจะกำหนด JSON อย่างไร? คุณอาจมีฟิลด์ที่เรียกว่า `temperature` หรือคุณอาจใช้คำย่อที่พบได้ทั่วไป `temp` ```json { "temperature": 20.7 } ``` เมื่อเปรียบเทียบกับ: ```json { "temp": 20.7 } ``` คุณยังต้องพิจารณาหน่วย - อุณหภูมิอยู่ใน °C หรือ °F? หากคุณกำลังวัดอุณหภูมิด้วยอุปกรณ์สำหรับผู้บริโภคและพวกเขาเปลี่ยนหน่วยแสดงผล คุณต้องแน่ใจว่าหน่วยที่ส่งไปยังคลาวด์ยังคงสอดคล้องกัน ✅ ลองค้นคว้า: ปัญหาเกี่ยวกับหน่วยทำให้ Mars Climate Orbiter มูลค่า 125 ล้านดอลลาร์ตกลงมาได้อย่างไร? ลองคิดถึงข้อมูลที่ถูกส่งสำหรับตัวตรวจสอบคุณภาพผลไม้ คุณจะกำหนดข้อความแต่ละข้อความอย่างไร? คุณจะวิเคราะห์ข้อมูลและตัดสินใจเกี่ยวกับข้อมูลที่จะส่งที่ไหน? ตัวอย่างเช่น - การเริ่มต้นการจำแนกภาพโดยใช้เซ็นเซอร์วัดระยะทาง อุปกรณ์ IoT วัดระยะทาง แต่การตัดสินใจเกิดขึ้นที่ไหน? อุปกรณ์ตัดสินใจว่าผลไม้อยู่ใกล้พอและส่งข้อความไปยัง IoT Hub เพื่อเริ่มการจำแนกภาพ หรือมันส่งการวัดระยะทางและให้ IoT Hub ตัดสินใจ? คำตอบสำหรับคำถามเหล่านี้คือ - ขึ้นอยู่กับ แต่ละกรณีการใช้งานแตกต่างกัน ซึ่งเป็นเหตุผลว่าทำไมในฐานะนักพัฒนา IoT คุณต้องเข้าใจระบบที่คุณกำลังสร้าง วิธีการใช้งาน และข้อมูลที่ถูกตรวจจับ * หากการตัดสินใจเกิดขึ้นโดย IoT Hub คุณต้องส่งการวัดระยะทางหลายครั้ง * หากคุณส่งข้อความมากเกินไป จะเพิ่มต้นทุนของ IoT Hub และปริมาณแบนด์วิดท์ที่อุปกรณ์ IoT ของคุณต้องการ (โดยเฉพาะในโรงงานที่มีอุปกรณ์นับล้าน) นอกจากนี้ยังอาจทำให้อุปกรณ์ของคุณช้าลง * หากคุณตัดสินใจบนอุปกรณ์ คุณจะต้องมีวิธีการกำหนดค่าอุปกรณ์เพื่อปรับแต่งเครื่องจักร ## ใช้ชุดพัฒนาเพื่อจำลองอุปกรณ์ IoT หลายตัว เพื่อสร้างต้นแบบของคุณ คุณจะต้องใช้ชุดพัฒนา IoT ของคุณเพื่อทำหน้าที่เหมือนอุปกรณ์หลายตัว ส่งข้อมูลและตอบสนองต่อคำสั่ง ### จำลองอุปกรณ์ IoT หลายตัวบน Raspberry Pi หรือฮาร์ดแวร์ IoT เสมือน เมื่อใช้คอมพิวเตอร์บอร์ดเดี่ยว เช่น Raspberry Pi คุณสามารถ > 💁 โปรดทราบว่าอุปกรณ์บางอย่างอาจไม่ทำงานเมื่อถูกใช้งานโดยหลายแอปพลิเคชันพร้อมกัน ### การจำลองอุปกรณ์หลายตัวบนไมโครคอนโทรลเลอร์ ไมโครคอนโทรลเลอร์มีความซับซ้อนมากขึ้นเมื่อจำลองอุปกรณ์หลายตัว ไม่เหมือนกับคอมพิวเตอร์บอร์ดเดี่ยวที่สามารถรันแอปพลิเคชันหลายตัวพร้อมกันได้ คุณต้องรวมตรรกะทั้งหมดของอุปกรณ์ IoT แต่ละตัวไว้ในแอปพลิเคชันเดียว คำแนะนำบางประการเพื่อทำให้กระบวนการนี้ง่ายขึ้น: * สร้างคลาสหนึ่งหรือมากกว่าสำหรับอุปกรณ์ IoT แต่ละตัว เช่น คลาสที่ชื่อว่า `DistanceSensor`, `ClassifierCamera`, `LEDController` แต่ละคลาสสามารถมีเมธอด `setup` และ `loop` ของตัวเองที่ถูกเรียกใช้โดยฟังก์ชัน `setup` และ `loop` หลัก * จัดการคำสั่งในที่เดียว และส่งต่อไปยังคลาสอุปกรณ์ที่เกี่ยวข้องตามความจำเป็น * ในฟังก์ชัน `loop` หลัก คุณจะต้องพิจารณาเรื่องเวลาในการทำงานของอุปกรณ์แต่ละตัว ตัวอย่างเช่น หากคุณมีคลาสอุปกรณ์หนึ่งที่ต้องประมวลผลทุก 10 วินาที และอีกคลาสหนึ่งที่ต้องประมวลผลทุก 1 วินาที ในฟังก์ชัน `loop` หลักของคุณให้ใช้ดีเลย์ 1 วินาที ทุกครั้งที่เรียก `loop` จะเรียกใช้โค้ดที่เกี่ยวข้องกับอุปกรณ์ที่ต้องประมวลผลทุกวินาที และใช้ตัวนับเพื่อนับจำนวนรอบ เมื่อถึงรอบที่ 10 ให้ประมวลผลอุปกรณ์อีกตัวหนึ่ง (และรีเซ็ตตัวนับหลังจากนั้น) ## การย้ายไปสู่การผลิต ต้นแบบจะเป็นพื้นฐานของระบบการผลิตขั้นสุดท้าย ความแตกต่างบางประการเมื่อคุณย้ายไปสู่การผลิตคือ: * ส่วนประกอบที่ทนทาน - ใช้ฮาร์ดแวร์ที่ออกแบบมาเพื่อทนต่อเสียงรบกวน ความร้อน การสั่นสะเทือน และความเครียดในโรงงาน * การสื่อสารภายใน - ส่วนประกอบบางตัวจะสื่อสารกันโดยตรงเพื่อหลีกเลี่ยงการส่งข้อมูลไปยังคลาวด์ โดยจะส่งข้อมูลไปยังคลาวด์เพื่อจัดเก็บเท่านั้น วิธีการนี้ขึ้นอยู่กับการตั้งค่าโรงงาน อาจใช้การสื่อสารโดยตรง หรือรันส่วนหนึ่งของบริการ IoT บน edge โดยใช้ gateway device * ตัวเลือกการกำหนดค่า - โรงงานและกรณีการใช้งานแต่ละแห่งมีความแตกต่างกัน ดังนั้นฮาร์ดแวร์จะต้องสามารถกำหนดค่าได้ ตัวอย่างเช่น เซ็นเซอร์ตรวจจับระยะใกล้อาจต้องตรวจจับผลไม้ต่างชนิดในระยะที่ต่างกัน แทนที่จะกำหนดระยะทางเพื่อเรียกใช้การจำแนกผลไม้แบบตายตัว คุณควรทำให้สามารถกำหนดค่าได้ผ่านคลาวด์ เช่น การใช้ device twin * การกำจัดผลไม้อัตโนมัติ - แทนที่จะใช้ LED เพื่อแจ้งเตือนว่าผลไม้ยังไม่สุก อุปกรณ์อัตโนมัติจะทำการกำจัดผลไม้นั้นออกไป ✅ ลองค้นคว้าเพิ่มเติม: มีวิธีอื่นใดอีกบ้างที่อุปกรณ์สำหรับการผลิตจะแตกต่างจากชุดพัฒนาสำหรับนักพัฒนา? --- ## 🚀 ความท้าทาย ในบทเรียนนี้ คุณได้เรียนรู้แนวคิดบางประการที่จำเป็นต้องรู้เกี่ยวกับการออกแบบระบบ IoT ลองย้อนกลับไปดูโครงการก่อนหน้านี้ พิจารณาว่าโครงการเหล่านั้นเข้ากับสถาปัตยกรรมอ้างอิงที่แสดงไว้ข้างต้นอย่างไร เลือกหนึ่งในโครงการที่ผ่านมา และลองออกแบบโซลูชันที่ซับซ้อนมากขึ้น โดยรวมความสามารถหลายอย่างที่เกินกว่าที่ครอบคลุมในโครงการ วาดสถาปัตยกรรมและพิจารณาอุปกรณ์และบริการทั้งหมดที่คุณต้องการ ตัวอย่าง - อุปกรณ์ติดตามยานพาหนะที่รวม GPS กับเซ็นเซอร์เพื่อตรวจสอบสิ่งต่าง ๆ เช่น อุณหภูมิในรถบรรทุกที่มีระบบทำความเย็น เวลาเปิดและปิดเครื่องยนต์ และตัวตนของคนขับ อุปกรณ์ที่เกี่ยวข้องคืออะไร บริการที่เกี่ยวข้องคืออะไร ข้อมูลที่ถูกส่งคืออะไร และข้อควรพิจารณาเกี่ยวกับความปลอดภัยและความเป็นส่วนตัวมีอะไรบ้าง? ## แบบทดสอบหลังการบรรยาย [แบบทดสอบหลังการบรรยาย](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/36) ## ทบทวนและศึกษาด้วยตนเอง * อ่านเพิ่มเติมเกี่ยวกับสถาปัตยกรรม IoT ใน [เอกสารอ้างอิงสถาปัตยกรรม IoT ของ Azure บน Microsoft docs](https://docs.microsoft.com/azure/architecture/reference-architectures/iot?WT.mc_id=academic-17441-jabenn) * อ่านเพิ่มเติมเกี่ยวกับ device twins ใน [เอกสารการทำความเข้าใจและการใช้งาน device twins ใน IoT Hub บน Microsoft docs](https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-device-twins?WT.mc_id=academic-17441-jabenn) * อ่านเกี่ยวกับ OPC-UA ซึ่งเป็นโปรโตคอลการสื่อสารระหว่างเครื่องจักรที่ใช้ในระบบอัตโนมัติอุตสาหกรรมใน [หน้าข้อมูล OPC-UA บน Wikipedia](https://wikipedia.org/wiki/OPC_Unified_Architecture) ## งานที่ได้รับมอบหมาย [สร้างเครื่องตรวจสอบคุณภาพผลไม้](assignment.md) --- **ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาที่เป็นต้นฉบับควรถือว่าเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้