|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago | |
assignment.md | 4 weeks ago | |
single-board-computer-connect-hub.md | 4 weeks ago | |
wio-terminal-connect-hub.md | 4 weeks ago |
README.md
انقل نباتك إلى السحابة
رسم توضيحي بواسطة نيتيا ناراسيمهان. انقر على الصورة للحصول على نسخة أكبر.
تم تقديم هذا الدرس كجزء من مشروع إنترنت الأشياء للمبتدئين - سلسلة الزراعة الرقمية من Microsoft Reactor.
اختبار ما قبل المحاضرة
المقدمة
في الدرس السابق، تعلمت كيفية توصيل نباتك بوسيط MQTT والتحكم في مرحل باستخدام كود خادم يعمل محليًا. هذا يشكل جوهر نظام الري الآلي المتصل بالإنترنت، والذي يُستخدم من النباتات الفردية في المنازل إلى المزارع التجارية.
تواصل جهاز إنترنت الأشياء مع وسيط MQTT عام كطريقة لتوضيح المبادئ، ولكن هذه ليست الطريقة الأكثر موثوقية أو أمانًا. في هذا الدرس، ستتعلم عن السحابة وقدرات إنترنت الأشياء التي توفرها خدمات السحابة العامة. كما ستتعلم كيفية نقل نباتك إلى إحدى هذه الخدمات السحابية بدلاً من وسيط MQTT العام.
في هذا الدرس سنتناول:
- ما هي السحابة؟
- إنشاء اشتراك سحابي
- خدمات إنترنت الأشياء السحابية
- إنشاء خدمة إنترنت الأشياء في السحابة
- التواصل مع IoT Hub
- توصيل جهازك بخدمة إنترنت الأشياء
ما هي السحابة؟
قبل ظهور السحابة، عندما كانت الشركات ترغب في تقديم خدمات لموظفيها (مثل قواعد البيانات أو تخزين الملفات) أو للجمهور (مثل المواقع الإلكترونية)، كانت تبني وتدير مركز بيانات. قد يكون هذا المركز غرفة تحتوي على عدد قليل من الحواسيب أو مبنى يحتوي على العديد منها. وكانت الشركة تدير كل شيء، بما في ذلك:
- شراء الحواسيب
- صيانة الأجهزة
- الطاقة والتبريد
- الشبكات
- الأمان، بما في ذلك تأمين المبنى وتأمين البرمجيات على الحواسيب
- تثبيت البرمجيات وتحديثها
كان هذا مكلفًا للغاية، ويتطلب مجموعة واسعة من الموظفين المهرة، وكان بطيئًا في التغيير عند الحاجة. على سبيل المثال، إذا احتاج متجر إلكتروني إلى التخطيط لموسم عطلات مزدحم، كان عليه التخطيط قبل أشهر لشراء المزيد من الأجهزة، وتكوينها، وتثبيت البرمجيات اللازمة لتشغيل عملية البيع. وبعد انتهاء موسم العطلات وانخفاض المبيعات، كانت الأجهزة التي تم شراؤها تظل غير مستخدمة حتى الموسم المزدحم التالي.
✅ هل تعتقد أن هذا يسمح للشركات بالتحرك بسرعة؟ إذا أصبح متجر ملابس إلكتروني مشهورًا فجأة بسبب ارتداء أحد المشاهير لملابسهم، هل سيكون بإمكانهم زيادة قدرتهم الحاسوبية بسرعة كافية لدعم التدفق المفاجئ للطلبات؟
حاسوب شخص آخر
غالبًا ما يُشار إلى السحابة مازحًا بأنها "حاسوب شخص آخر". كانت الفكرة الأولية بسيطة - بدلاً من شراء الحواسيب، يمكنك استئجار حاسوب شخص آخر. يقوم مزود خدمات السحابة بإدارة مراكز بيانات ضخمة. يكونون مسؤولين عن شراء وتثبيت الأجهزة، وإدارة الطاقة والتبريد، والشبكات، وأمان المباني، وتحديثات الأجهزة والبرمجيات، وكل شيء. كعميل، يمكنك استئجار الحواسيب التي تحتاجها، واستئجار المزيد عند زيادة الطلب، ثم تقليل العدد عند انخفاض الطلب. تنتشر مراكز البيانات السحابية هذه في جميع أنحاء العالم.
يمكن أن تكون هذه المراكز بمساحة عدة كيلومترات مربعة. الصور أعلاه تم التقاطها قبل بضع سنوات في مركز بيانات سحابي من مايكروسوفت، وتُظهر الحجم الأولي، إلى جانب توسعة مخططة. المنطقة المخصصة للتوسعة تزيد عن 5 كيلومترات مربعة.
💁 تتطلب هذه المراكز كميات كبيرة من الطاقة لدرجة أن بعضها يمتلك محطات طاقة خاصة به. وبسبب حجمها ومستوى الاستثمار من مزودي السحابة، تكون عادة صديقة للبيئة. فهي أكثر كفاءة من عدد كبير من مراكز البيانات الصغيرة، وتعمل في الغالب على الطاقة المتجددة، ويعمل مزودو السحابة بجد لتقليل النفايات، وخفض استهلاك المياه، وإعادة زراعة الغابات لتعويض تلك التي تم قطعها لتوفير مساحة لبناء مراكز البيانات. يمكنك قراءة المزيد عن كيفية عمل أحد مزودي السحابة على الاستدامة على موقع استدامة Azure.
✅ قم ببعض البحث: اقرأ عن السحابات الرئيسية مثل Azure من مايكروسوفت أو GCP من جوجل. كم عدد مراكز البيانات التي لديهم، وأين تقع في العالم؟
استخدام السحابة يقلل التكاليف على الشركات، ويسمح لها بالتركيز على ما تفعله بشكل أفضل، مع ترك خبرة الحوسبة السحابية في أيدي المزود. لم تعد الشركات بحاجة إلى استئجار أو شراء مساحة في مراكز البيانات، أو دفع تكاليف الاتصال والطاقة لمزودين مختلفين، أو توظيف خبراء. بدلاً من ذلك، يمكنهم دفع فاتورة شهرية واحدة لمزود السحابة لتولي كل شيء.
يمكن لمزود السحابة بعد ذلك استخدام اقتصاديات الحجم لتقليل التكاليف، وشراء الحواسيب بالجملة بأسعار أقل، والاستثمار في الأدوات لتقليل عبء العمل الخاص بالصيانة، وحتى تصميم وبناء أجهزتهم الخاصة لتحسين عروض السحابة.
مايكروسوفت أزور
Azure هي السحابة المخصصة للمطورين من مايكروسوفت، وهي السحابة التي ستستخدمها في هذه الدروس. الفيديو أدناه يقدم نظرة عامة قصيرة عن Azure:
إنشاء اشتراك سحابي
لاستخدام الخدمات في السحابة، ستحتاج إلى الاشتراك مع مزود سحابي. في هذا الدرس، ستقوم بالتسجيل للحصول على اشتراك في مايكروسوفت أزور. إذا كان لديك بالفعل اشتراك في Azure، يمكنك تخطي هذه المهمة. التفاصيل الموضحة هنا صحيحة وقت كتابة هذا النص، ولكن قد تتغير.
💁 إذا كنت تصل إلى هذه الدروس من خلال مدرستك، قد يكون لديك بالفعل اشتراك في Azure متاح لك. تحقق مع معلمك.
هناك نوعان مختلفان من الاشتراكات المجانية في Azure التي يمكنك التسجيل فيها:
-
Azure للطلاب - هذا اشتراك مصمم للطلاب الذين تبلغ أعمارهم 18 عامًا أو أكثر. لا تحتاج إلى بطاقة ائتمان للتسجيل، وتستخدم بريدك الإلكتروني المدرسي للتحقق من أنك طالب. عند التسجيل، تحصل على 100 دولار أمريكي لاستخدامها في موارد السحابة، بالإضافة إلى خدمات مجانية بما في ذلك نسخة مجانية من خدمة إنترنت الأشياء. يستمر هذا لمدة 12 شهرًا، ويمكنك تجديده كل عام طالما كنت طالبًا.
-
اشتراك Azure المجاني - هذا اشتراك لأي شخص ليس طالبًا. ستحتاج إلى بطاقة ائتمان للتسجيل، ولكن لن يتم خصم أي مبلغ من بطاقتك، حيث تُستخدم فقط للتحقق من أنك إنسان حقيقي، وليس روبوتًا. تحصل على 200 دولار من الرصيد لاستخدامها في أول 30 يومًا على أي خدمة، بالإضافة إلى مستويات مجانية من خدمات Azure. بمجرد استنفاد رصيدك، لن يتم خصم أي مبلغ من بطاقتك إلا إذا قمت بتحويل الاشتراك إلى اشتراك مدفوع حسب الاستخدام.
💁 تقدم مايكروسوفت أيضًا اشتراك Azure للطلاب المبتدئين للطلاب الذين تقل أعمارهم عن 18 عامًا، ولكن في وقت كتابة هذا النص، لا يدعم هذا الاشتراك أي خدمات إنترنت الأشياء.
المهمة - التسجيل للحصول على اشتراك سحابي مجاني
إذا كنت طالبًا يبلغ من العمر 18 عامًا أو أكثر، يمكنك التسجيل للحصول على اشتراك Azure للطلاب. ستحتاج إلى التحقق باستخدام بريدك الإلكتروني المدرسي. يمكنك القيام بذلك بإحدى طريقتين:
-
التسجيل للحصول على حزمة مطور الطلاب من GitHub على education.github.com/pack. تمنحك هذه الحزمة الوصول إلى مجموعة من الأدوات والعروض، بما في ذلك GitHub وMicrosoft Azure. بمجرد التسجيل في حزمة المطور، يمكنك تفعيل عرض Azure للطلاب.
-
التسجيل مباشرة للحصول على حساب Azure للطلاب على azure.microsoft.com/free/students.
⚠️ إذا لم يتم التعرف على بريدك الإلكتروني المدرسي، قم بفتح مشكلة في هذا المستودع وسنرى ما إذا كان يمكن إضافته إلى قائمة السماح في Azure للطلاب.
إذا لم تكن طالبًا، أو لم يكن لديك بريد إلكتروني مدرسي صالح، يمكنك التسجيل للحصول على اشتراك Azure المجاني.
- قم بالتسجيل للحصول على اشتراك Azure المجاني على azure.microsoft.com/free
خدمات إنترنت الأشياء السحابية
وسيط MQTT العام الذي كنت تستخدمه هو أداة رائعة عند التعلم، ولكنه يحتوي على عدد من العيوب كأداة للاستخدام في بيئة تجارية:
- الموثوقية - إنه خدمة مجانية بدون ضمانات، ويمكن إيقافها في أي وقت
- الأمان - إنه عام، مما يعني أن أي شخص يمكنه الاستماع إلى بياناتك أو إرسال أوامر للتحكم في أجهزتك
- الأداء - مصمم فقط لعدد قليل من الرسائل التجريبية، لذلك لن يتحمل عددًا كبيرًا من الرسائل
- الاكتشاف - لا توجد طريقة لمعرفة الأجهزة المتصلة
خدمات إنترنت الأشياء السحابية تحل هذه المشكلات. يتم صيانتها بواسطة مزودي السحابة الكبار الذين يستثمرون بكثافة في الموثوقية ويكونون على استعداد لإصلاح أي مشكلات قد تنشأ. لديهم أمان مدمج لمنع المتسللين من قراءة بياناتك أو إرسال أوامر خبيثة. كما أنها عالية الأداء، قادرة على التعامل مع ملايين الرسائل يوميًا، مستفيدة من السحابة للتوسع حسب الحاجة.
💁 على الرغم من أنك تدفع مقابل هذه المزايا برسوم شهرية، فإن معظم مزودي السحابة يقدمون نسخة مجانية من خدمات إنترنت الأشياء الخاصة بهم مع عدد محدود من الرسائل يوميًا أو الأجهزة التي يمكنها الاتصال. هذه النسخة المجانية عادة ما تكون أكثر من كافية للمطور لتعلم الخدمة. في هذا الدرس، ستستخدم النسخة المجانية.
تتصل أجهزة إنترنت الأشياء بخدمة سحابية إما باستخدام SDK خاص بالجهاز (مكتبة توفر كودًا للعمل مع ميزات الخدمة)، أو مباشرة عبر بروتوكول اتصال مثل MQTT أو HTTP. عادةً ما يكون استخدام SDK هو الطريق الأسهل لأنه يتولى كل شيء نيابة عنك، مثل معرفة المواضيع التي يجب النشر أو الاشتراك فيها، وكيفية التعامل مع الأمان.
يتواصل جهازك بعد ذلك مع أجزاء أخرى من تطبيقك عبر هذه الخدمة - مشابهة للطريقة التي أرسلت بها البيانات واستقبلت الأوامر عبر MQTT. يتم ذلك عادةً باستخدام SDK خاص بالخدمة أو مكتبة مشابهة. تصل الرسائل من جهازك إلى الخدمة حيث يمكن لأجزاء أخرى من تطبيقك قراءتها، ويمكن إرسال الرسائل مرة أخرى إلى جهازك.
تقوم هذه الخدمات بتنفيذ الأمان من خلال معرفة جميع الأجهزة التي يمكنها الاتصال وإرسال البيانات، إما عن طريق تسجيل الأجهزة مسبقًا مع الخدمة، أو من خلال إعطاء الأجهزة مفاتيح سرية أو شهادات يمكنها استخدامها لتسجيل نفسها مع الخدمة عند الاتصال لأول مرة. الأجهزة غير المعروفة لا يمكنها الاتصال، وإذا حاولت، ترفض الخدمة الاتصال وتتجاهل الرسائل المرسلة منها.
✅ قم ببعض البحث: ما هو الجانب السلبي لوجود خدمة إنترنت الأشياء مفتوحة حيث يمكن لأي جهاز أو كود الاتصال؟ هل يمكنك العثور على أمثلة محددة لمتسللين استغلوا هذا؟
يمكن لأجزاء أخرى من تطبيقك الاتصال بخدمة إنترنت الأشياء ومعرفة جميع الأجهزة المتصلة أو المسجلة، والتواصل معها مباشرة بشكل فردي أو جماعي. 💁 خدمات إنترنت الأشياء (IoT) توفر أيضًا قدرات إضافية، كما أن مزودي الخدمات السحابية يقدمون خدمات وتطبيقات إضافية يمكن ربطها بالخدمة. على سبيل المثال، إذا كنت ترغب في تخزين جميع رسائل القياس عن بُعد التي ترسلها جميع الأجهزة في قاعدة بيانات، فعادةً ما يتطلب الأمر بضع نقرات فقط في أداة إعدادات مزود الخدمة السحابية لربط الخدمة بقاعدة البيانات وبث البيانات إليها.
إنشاء خدمة إنترنت الأشياء (IoT) في السحابة
الآن بعد أن أصبح لديك اشتراك في Azure، يمكنك التسجيل للحصول على خدمة إنترنت الأشياء. خدمة إنترنت الأشياء من Microsoft تُسمى Azure IoT Hub.
الفيديو أدناه يقدم نظرة عامة قصيرة عن Azure IoT Hub:
🎥 انقر على الصورة أعلاه لمشاهدة الفيديو
✅ خذ لحظة للبحث وقراءة نظرة عامة عن IoT Hub في وثائق Microsoft IoT Hub.
الخدمات السحابية المتوفرة في Azure يمكن إعدادها من خلال بوابة ويب أو عبر واجهة سطر الأوامر (CLI). في هذه المهمة، ستستخدم CLI.
المهمة - تثبيت Azure CLI
لاستخدام Azure CLI، يجب أولاً تثبيته على جهاز الكمبيوتر أو جهاز Mac الخاص بك.
-
اتبع التعليمات في وثائق Azure CLI لتثبيت CLI.
-
يدعم Azure CLI عددًا من الإضافات التي تضيف قدرات لإدارة مجموعة واسعة من خدمات Azure. قم بتثبيت إضافة IoT عن طريق تشغيل الأمر التالي من سطر الأوامر أو الطرفية:
az extension add --name azure-iot
-
من سطر الأوامر أو الطرفية، قم بتشغيل الأمر التالي لتسجيل الدخول إلى اشتراك Azure الخاص بك من خلال Azure CLI.
az login
سيتم فتح صفحة ويب في المتصفح الافتراضي الخاص بك. قم بتسجيل الدخول باستخدام الحساب الذي استخدمته للتسجيل في اشتراك Azure الخاص بك. بمجرد تسجيل الدخول، يمكنك إغلاق علامة التبويب في المتصفح.
-
إذا كان لديك اشتراكات 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>
بمعرف الاشتراك الذي تريد استخدامه. بعد تشغيل هذا الأمر، أعد تشغيل الأمر لعرض حساباتك. سترى أن العمودIsDefault
تم تعيينه إلىTrue
للاشتراك الذي قمت بتحديده للتو.
المهمة - إنشاء مجموعة موارد
خدمات Azure، مثل مثيلات IoT Hub، الآلات الافتراضية، قواعد البيانات، أو خدمات الذكاء الاصطناعي، تُعرف باسم الموارد. كل مورد يجب أن يكون داخل مجموعة موارد، وهي مجموعة منطقية تحتوي على مورد واحد أو أكثر.
💁 استخدام مجموعات الموارد يعني أنه يمكنك إدارة خدمات متعددة دفعة واحدة. على سبيل المثال، بمجرد الانتهاء من جميع الدروس لهذا المشروع، يمكنك حذف مجموعة الموارد، وسيتم حذف جميع الموارد الموجودة فيها تلقائيًا.
-
هناك العديد من مراكز بيانات 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. -
قم بتشغيل الأمر التالي لإنشاء مجموعة موارد باسم
soil-moisture-sensor
. يجب أن تكون أسماء مجموعات الموارد فريدة في اشتراكك.az group create --name soil-moisture-sensor \ --location <location>
استبدل
<location>
بالموقع الذي اخترته في الخطوة السابقة.
المهمة - إنشاء IoT Hub
يمكنك الآن إنشاء مورد IoT Hub في مجموعة الموارد الخاصة بك.
-
استخدم الأمر التالي لإنشاء مورد 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 تُعرف بالطبقات. كل طبقة لها تكلفة مختلفة وتوفر ميزات أو أحجام بيانات مختلفة.
💁 إذا كنت تريد معرفة المزيد عن التسعير، يمكنك الاطلاع على دليل تسعير Azure IoT Hub.
الخيار
--partition-count 2
يحدد عدد تدفقات البيانات التي يدعمها IoT Hub. المزيد من الأقسام يقلل من حجب البيانات عندما تقرأ وتكتب أشياء متعددة من IoT Hub. الأقسام خارج نطاق هذه الدروس، ولكن يجب تعيين هذه القيمة لإنشاء IoT Hub بطبقة مجانية.💁 يمكنك فقط الحصول على IoT Hub واحد بطبقة مجانية لكل اشتراك.
سيتم إنشاء IoT Hub. قد يستغرق ذلك دقيقة أو نحو ذلك لإكماله.
التواصل مع IoT Hub
في الدرس السابق، استخدمت MQTT وأرسلت رسائل ذهابًا وإيابًا على مواضيع مختلفة، مع وجود أغراض مختلفة لكل موضوع. بدلاً من إرسال الرسائل عبر مواضيع مختلفة، يوفر IoT Hub طرقًا محددة للتواصل بين الجهاز والمحور، أو بين المحور والجهاز.
💁 في الخلفية، يمكن أن يتم هذا التواصل بين IoT Hub وجهازك باستخدام MQTT أو HTTPS أو AMQP.
-
رسائل من الجهاز إلى السحابة (D2C) - هذه رسائل تُرسل من الجهاز إلى IoT Hub، مثل بيانات القياس عن بُعد. يمكن بعد ذلك قراءتها من IoT Hub بواسطة كود التطبيق الخاص بك.
🎓 في الخلفية، يستخدم IoT Hub خدمة Azure تُسمى Event Hubs. عندما تكتب كودًا لقراءة الرسائل المرسلة إلى المحور، غالبًا ما تُسمى هذه الرسائل بالأحداث.
-
رسائل من السحابة إلى الجهاز (C2D) - هذه رسائل تُرسل من كود التطبيق، عبر IoT Hub إلى جهاز IoT.
-
طلبات الطرق المباشرة - هذه رسائل تُرسل من كود التطبيق عبر IoT Hub إلى جهاز IoT لطلب تنفيذ شيء ما، مثل التحكم في مشغل. تتطلب هذه الرسائل استجابة حتى يتمكن كود التطبيق من معرفة ما إذا تمت معالجتها بنجاح.
-
التوائم الرقمية للأجهزة - هذه مستندات JSON تُحافظ على التزامن بين الجهاز وIoT Hub، وتُستخدم لتخزين الإعدادات أو الخصائص الأخرى التي يُبلغ عنها الجهاز، أو التي يجب تعيينها على الجهاز (المعروفة بالرغبات) بواسطة IoT Hub.
يمكن لـ IoT Hub تخزين الرسائل وطلبات الطرق المباشرة لفترة زمنية قابلة للتكوين (الافتراضي يوم واحد)، لذلك إذا فقد الجهاز أو كود التطبيق الاتصال، يمكنه استرداد الرسائل المرسلة أثناء انقطاع الاتصال بمجرد إعادة الاتصال. يتم الاحتفاظ بالتوائم الرقمية للأجهزة بشكل دائم في IoT Hub، لذلك في أي وقت يمكن للجهاز إعادة الاتصال والحصول على أحدث توأم رقمي.
✅ قم ببعض البحث: اقرأ المزيد عن أنواع الرسائل هذه في إرشادات الاتصال من الجهاز إلى السحابة، وإرشادات الاتصال من السحابة إلى الجهاز في وثائق IoT Hub.
توصيل جهازك بخدمة IoT
بمجرد إنشاء المحور، يمكن لجهاز IoT الخاص بك الاتصال به. فقط الأجهزة المسجلة يمكنها الاتصال بالخدمة، لذلك ستحتاج إلى تسجيل جهازك أولاً. عند التسجيل، يمكنك الحصول على سلسلة اتصال يمكن للجهاز استخدامها للاتصال. سلسلة الاتصال هذه خاصة بالجهاز، وتحتوي على معلومات حول IoT Hub، والجهاز، ومفتاح سري يسمح لهذا الجهاز بالاتصال.
🎓 سلسلة الاتصال هي مصطلح عام يشير إلى نص يحتوي على تفاصيل الاتصال. تُستخدم عند الاتصال بـ IoT Hubs، قواعد البيانات، والعديد من الخدمات الأخرى. تتكون عادةً من معرف للخدمة، مثل عنوان URL، ومعلومات أمان مثل مفتاح سري. يتم تمريرها إلى SDKs للاتصال بالخدمة.
⚠️ يجب الحفاظ على سرية سلاسل الاتصال! سيتم تناول الأمان بمزيد من التفاصيل في درس مستقبلي.
المهمة - تسجيل جهاز IoT الخاص بك
يمكن تسجيل جهاز IoT الخاص بك مع IoT Hub باستخدام Azure CLI.
-
قم بتشغيل الأمر التالي لتسجيل جهاز:
az iot hub device-identity create --device-id soil-moisture-sensor \ --hub-name <hub_name>
استبدل
<hub_name>
بالاسم الذي استخدمته لـ IoT Hub الخاص بك.سيؤدي ذلك إلى إنشاء جهاز بمعرف
soil-moisture-sensor
. -
عندما يتصل جهاز 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 الخاص بك. -
قم بحفظ سلسلة الاتصال التي تظهر في المخرجات حيث ستحتاج إليها لاحقًا.
المهمة - توصيل جهاز IoT الخاص بك بالسحابة
اعمل من خلال الدليل المناسب لتوصيل جهاز IoT الخاص بك بالسحابة:
المهمة - مراقبة الأحداث
في الوقت الحالي، لن تقوم بتحديث كود الخادم الخاص بك. بدلاً من ذلك، يمكنك استخدام Azure CLI لمراقبة الأحداث من جهاز IoT الخاص بك.
-
تأكد من أن جهاز IoT الخاص بك يعمل ويرسل قيم قياس رطوبة التربة.
-
قم بتشغيل الأمر التالي في موجه الأوامر أو الطرفية لمراقبة الرسائل المرسلة إلى 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 لـ Visual Studio Code. -
تحتوي هذه الرسائل على عدد من الخصائص المرفقة بها تلقائيًا، مثل الطابع الزمني الذي أُرسلت فيه. تُعرف هذه الخصائص بـ التعليقات التوضيحية. لعرض جميع التعليقات التوضيحية للرسائل، استخدم الأمر التالي:
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}" } }
القيم الزمنية في التعليقات التوضيحية تكون بتنسيق UNIX time، الذي يمثل عدد الثواني منذ منتصف الليل في 1 يناير 1970.
اخرج من مراقب الأحداث عندما تنتهي.
المهمة - التحكم في جهاز IoT الخاص بك
يمكنك أيضًا استخدام Azure CLI لاستدعاء الطرق المباشرة على جهاز IoT الخاص بك.
-
قم بتشغيل الأمر التالي في موجه الأوامر أو الطرفية لاستدعاء طريقة
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
. يمكن أن تحتوي الطرق المباشرة على حمولة بيانات للطريقة، ويمكن تحديد ذلك في معلمةmethod-payload
كـ JSON.سترى تشغيل المرحل، والمخرجات المقابلة من جهاز IoT الخاص بك:
Direct method received - relay_on
-
كرر الخطوة السابقة، ولكن قم بتعيين
--method-name
إلىrelay_off
. سترى إيقاف المرحل والمخرجات المقابلة من جهاز IoT الخاص بك.
🚀 التحدي
الطبقة المجانية من IoT Hub تسمح بـ 8,000 رسالة يوميًا. الكود الذي كتبته يرسل رسائل التتبع كل 10 ثوانٍ. كم عدد الرسائل يوميًا إذا كانت الرسالة تُرسل كل 10 ثوانٍ؟
فكر في عدد المرات التي يجب إرسال قياسات رطوبة التربة؟ كيف يمكنك تعديل الكود الخاص بك للبقاء ضمن الطبقة المجانية والتحقق بالقدر المطلوب ولكن ليس بشكل مفرط؟ ماذا لو أردت إضافة جهاز ثانٍ؟
اختبار ما بعد المحاضرة
المراجعة والدراسة الذاتية
SDK الخاص بـ IoT Hub مفتوح المصدر لكل من Arduino و Python. في مستودعات الكود على GitHub، هناك عدد من الأمثلة التي تظهر كيفية العمل مع ميزات مختلفة لـ IoT Hub.
- إذا كنت تستخدم Wio Terminal، تحقق من أمثلة Arduino على GitHub
- إذا كنت تستخدم Raspberry Pi أو جهاز افتراضي، تحقق من أمثلة Python على GitHub
الواجب
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.