سيبدأ التطبيق في التشغيل ويفتح في متصفح الويب الخاص بك:


سيتم تصنيفه كـ *Disconnected*، مع إطفاء LED في الزاوية العلوية اليمنى.
@ -224,7 +224,7 @@
1. في هذه الطرفية الجديدة، قم بتشغيل ملف `app.py` كما كان من قبل. ستتغير حالة CounterFit إلى **Connected** وسيضيء LED.


> 💁 يمكنك العثور على هذا الكود في مجلد [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device).


> رسم توضيحي من [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر.
@ -38,7 +38,7 @@
تتفاعل هذه الأجهزة مع العالم المادي إما باستخدام مستشعرات لجمع البيانات من البيئة المحيطة أو عن طريق التحكم في المخرجات أو المشغلات لإحداث تغييرات مادية. المثال النموذجي على ذلك هو منظم الحرارة الذكي - جهاز يحتوي على مستشعر درجة حرارة، ووسيلة لتحديد درجة الحرارة المطلوبة مثل قرص أو شاشة تعمل باللمس، واتصال بنظام تدفئة أو تبريد يمكن تشغيله عندما تكون درجة الحرارة المكتشفة خارج النطاق المطلوب. يكتشف مستشعر درجة الحرارة أن الغرفة باردة جدًا، ويقوم المشغل بتشغيل التدفئة.


هناك مجموعة كبيرة من الأجهزة التي يمكن أن تعمل كأجهزة إنترنت الأشياء، بدءًا من الأجهزة المخصصة التي تستشعر شيئًا واحدًا، إلى الأجهزة متعددة الأغراض، وحتى هاتفك الذكي! يمكن للهاتف الذكي استخدام المستشعرات لاكتشاف العالم من حوله، والمشغلات للتفاعل مع العالم - على سبيل المثال باستخدام مستشعر GPS لاكتشاف موقعك ومكبر صوت لإعطائك تعليمات التنقل إلى وجهة.
@ -54,7 +54,7 @@
في مثال منظم الحرارة الذكي، يتصل المنظم باستخدام WiFi المنزلي بخدمة سحابية تعمل في السحابة. يرسل بيانات درجة الحرارة إلى هذه الخدمة السحابية، ومن هناك يتم كتابتها إلى قاعدة بيانات من نوع ما مما يسمح لصاحب المنزل بالتحقق من درجات الحرارة الحالية والسابقة باستخدام تطبيق الهاتف. ستعرف خدمة أخرى في السحابة درجة الحرارة التي يريدها صاحب المنزل، وترسل رسائل مرة أخرى إلى جهاز إنترنت الأشياء عبر الخدمة السحابية لإخبار نظام التدفئة بالتشغيل أو الإيقاف.


يمكن أن يكون الإصدار الأكثر ذكاءً يستخدم الذكاء الاصطناعي في السحابة مع بيانات من مستشعرات أخرى متصلة بأجهزة إنترنت الأشياء الأخرى مثل مستشعرات الإشغال التي تكتشف الغرف المستخدمة، بالإضافة إلى بيانات مثل الطقس وحتى تقويمك، لاتخاذ قرارات حول كيفية ضبط درجة الحرارة بطريقة ذكية. على سبيل المثال، يمكنه إيقاف التدفئة إذا قرأ من تقويمك أنك في إجازة، أو إيقاف التدفئة على أساس كل غرفة على حدة بناءً على الغرف التي تستخدمها، متعلمًا من البيانات ليصبح أكثر دقة بمرور الوقت.
@ -94,7 +94,7 @@
> 💁 تنفذ وحدات المعالجة المركزية البرامج باستخدام [دورة الجلب-الترجمة-التنفيذ](https://wikipedia.org/wiki/Instruction_cycle). لكل نبضة ساعة، تقوم وحدة المعالجة المركزية بجلب التعليمات التالية من الذاكرة، وترجمتها، ثم تنفيذها مثل استخدام وحدة الحساب والمنطق (ALU) لإضافة رقمين. تستغرق بعض التعليمات عدة نبضات للتنفيذ، لذا ستعمل الدورة التالية عند النبضة التالية بعد اكتمال التعليمات.


تعمل المتحكمات الدقيقة بسرعات أقل بكثير من أجهزة الكمبيوتر المكتبية أو المحمولة، أو حتى معظم الهواتف الذكية. على سبيل المثال، يحتوي Wio Terminal على وحدة معالجة مركزية تعمل بسرعة 120 ميجاهرتز أو 120,000,000 دورة في الثانية.
@ -182,7 +182,7 @@
تكتب كود الإعداد الخاص بك في وظيفة `setup`، مثل الاتصال بشبكة WiFi وخدمات السحابة أو تهيئة الدبابيس للإدخال والإخراج. يحتوي كود الحلقة الخاص بك على كود المعالجة، مثل قراءة البيانات من مستشعر وإرسال القيمة إلى السحابة. عادةً ما تضيف تأخيرًا في كل حلقة، على سبيل المثال، إذا كنت تريد إرسال بيانات المستشعر كل 10 ثوانٍ فقط، تضيف تأخيرًا لمدة 10 ثوانٍ في نهاية الحلقة حتى يتمكن المتحكم الدقيق من النوم، مما يوفر الطاقة، ثم تشغيل الحلقة مرة أخرى عند الحاجة بعد 10 ثوانٍ.


✅ تُعرف هذه البنية البرمجية باسم *حلقة الأحداث* أو *حلقة الرسائل*. تستخدم العديد من التطبيقات هذا النمط في الخلفية وهو المعيار لمعظم تطبيقات سطح المكتب التي تعمل على أنظمة تشغيل مثل Windows أو macOS أو Linux. تستمع وظيفة `loop` للرسائل من مكونات واجهة المستخدم مثل الأزرار، أو الأجهزة مثل لوحة المفاتيح، وتستجيب لها. يمكنك قراءة المزيد في [مقالة عن حلقة الأحداث](https://wikipedia.org/wiki/Event_loop).
# التفاعل مع العالم المادي باستخدام المستشعرات والمحركات


> رسم تخطيطي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر.
@ -92,7 +92,7 @@
أبسط مستشعر رقمي هو زر أو مفتاح. هذا مستشعر بحالتين، تشغيل أو إيقاف.


يمكن لدبابيس أجهزة إنترنت الأشياء مثل دبابيس GPIO قياس هذه الإشارة مباشرة كـ 0 أو 1. إذا كان الجهد المرسل هو نفسه الجهد المعاد، فإن القيمة المقروءة هي 1، وإلا فإن القيمة المقروءة هي 0. لا حاجة لتحويل الإشارة، يمكن أن تكون فقط 1 أو 0.
@ -125,7 +125,7 @@
اتبع الدليل المناسب أدناه لإضافة محرك إلى جهاز إنترنت الأشياء الخاص بك، يتم التحكم فيه بواسطة المستشعر، لبناء ضوء ليلي إنترنت الأشياء. سيقوم بجمع مستويات الضوء من مستشعر الضوء، واستخدام محرك في شكل LED لإصدار الضوء عندما يكون مستوى الضوء المكتشف منخفضًا جدًا.


المحركات التناظرية تأخذ إشارة تناظرية وتحولها إلى نوع من التفاعل، حيث يتغير التفاعل بناءً على الجهد المقدم.
أحد الأمثلة هو الضوء القابل للتعتيم، مثل تلك الموجودة في منزلك. كمية الجهد المقدم للضوء تحدد مدى سطوعه.


كما هو الحال مع المستشعرات، تعمل أجهزة إنترنت الأشياء الفعلية بالإشارات الرقمية وليس التناظرية. هذا يعني أنه لإرسال إشارة تناظرية، يحتاج جهاز إنترنت الأشياء إلى محول رقمي إلى تناظري (DAC)، إما على جهاز إنترنت الأشياء مباشرةً أو على لوحة توصيل. يقوم هذا المحول بتحويل الإشارات الرقمية (0 و 1) من جهاز إنترنت الأشياء إلى جهد تناظري يمكن للمشغل استخدامه.
@ -187,7 +187,7 @@
أحد المشغلات الرقمية البسيطة هو LED. عندما يرسل الجهاز إشارة رقمية بقيمة 1، يتم إرسال جهد مرتفع يضيء LED. وعندما يتم إرسال إشارة رقمية بقيمة 0، ينخفض الجهد إلى 0 فولت وينطفئ LED.


✅ ما هي المشغلات الأخرى ذات الحالتين البسيطة التي يمكنك التفكير فيها؟ أحد الأمثلة هو الملف اللولبي، وهو مغناطيس كهربائي يمكن تنشيطه للقيام بأشياء مثل تحريك مزلاج الباب لقفل/فتح الباب.


1. اختر مصباح LED المفضل لديك وأدخل الأرجل في الفتحتين الموجودتين على وحدة الـ LED.
@ -40,7 +40,7 @@ Otherwise
1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس الرقمي المميز بعلامة **D5** على قبعة Grove Base المثبتة على Pi. هذا المقبس هو الثاني من اليسار، في صف المقابس بجانب دبابيس GPIO.




1. أدخل أحد طرفي كابل Grove في المقبس الموجود على وحدة مستشعر الضوء. يمكن إدخاله في اتجاه واحد فقط.
1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس التناظري المسمى **A0** على قبعة قاعدة Grove المثبتة على Pi. هذا المقبس هو الثاني من اليمين، في صف المقابس بجانب دبابيس GPIO.


سيتم إنشاء مستشعر الضوء وسيظهر في قائمة المستشعرات.




> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر.
@ -47,7 +47,7 @@ MQTT هو البروتوكول الأكثر شيوعًا لأجهزة إنترن
يحتوي MQTT على وسيط واحد وعدة عملاء. يتصل جميع العملاء بالوسيط، ويقوم الوسيط بتوجيه الرسائل إلى العملاء المعنيين. يتم توجيه الرسائل باستخدام مواضيع مسماة، بدلاً من إرسالها مباشرة إلى عميل معين. يمكن للعميل النشر في موضوع معين، وأي عملاء يشتركون في هذا الموضوع سيتلقون الرسالة.


✅ قم ببعض البحث. إذا كان لديك العديد من أجهزة إنترنت الأشياء، كيف يمكنك ضمان أن وسيط MQTT يمكنه التعامل مع جميع الرسائل؟
@ -69,7 +69,7 @@ MQTT هو البروتوكول الأكثر شيوعًا لأجهزة إنترن
> 💁 هذا الوسيط التجريبي عام وغير آمن. يمكن لأي شخص الاستماع إلى ما تنشره، لذا لا ينبغي استخدامه مع أي بيانات تحتاج إلى الحفاظ على خصوصيتها.


@ -350,7 +350,7 @@ MQTT هو البروتوكول الأكثر شيوعًا لأجهزة إنترن
يجب على مصممي أجهزة IoT أيضًا التفكير فيما إذا كان يمكن استخدام جهاز IoT أثناء انقطاع الإنترنت أو فقدان الإشارة بسبب الموقع. يجب أن يكون الثرموستات الذكي قادرًا على اتخاذ بعض القرارات المحدودة للتحكم في التدفئة إذا لم يتمكن من إرسال القياسات إلى السحابة بسبب انقطاع.
[](https://twitter.com/internetofshit/status/1315736960082808832)
[](https://twitter.com/internetofshit/status/1315736960082808832)
لـ MQTT للتعامل مع فقدان الاتصال، يجب أن يكون كود الجهاز والخادم مسؤولاً عن ضمان تسليم الرسائل إذا لزم الأمر، على سبيل المثال من خلال طلب أن يتم الرد على جميع الرسائل المرسلة برسائل إضافية على موضوع رد، وإذا لم يتم ذلك، يتم وضعها في قائمة انتظار يدويًا ليتم إعادة تشغيلها لاحقًا.
@ -358,7 +358,7 @@ MQTT هو البروتوكول الأكثر شيوعًا لأجهزة إنترن
الأوامر هي رسائل يتم إرسالها من السحابة إلى الجهاز، تطلب منه القيام بشيء ما. في معظم الأحيان، يتضمن ذلك إعطاء نوع من الإخراج عبر مشغل، ولكن يمكن أن يكون تعليمات للجهاز نفسه، مثل إعادة التشغيل، أو جمع قياسات إضافية وإعادتها كاستجابة للأمر.
يمكن أن يتلقى الثرموستات أمرًا من السحابة لتشغيل التدفئة. بناءً على بيانات القياسات من جميع المستشعرات، إذا قررت خدمة السحابة أن التدفئة يجب أن تكون قيد التشغيل، فإنها ترسل الأمر المناسب.


> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر.
@ -90,7 +90,7 @@
الصيغة الكاملة لحساب GDD معقدة قليلاً، ولكن هناك معادلة مبسطة تُستخدم غالباً كتقريب جيد:


* **GDD** - هذا هو عدد أيام درجة النمو
* **T max** - هذه هي درجة الحرارة اليومية القصوى بالدرجة المئوية
@ -118,7 +118,7 @@
هذا يعطي حساباً:


حصلت الذرة على 4 GDD في ذلك اليوم. بافتراض نوع من الذرة يحتاج إلى 800 GDD للنضج، ستحتاج إلى 796 GDD إضافية للوصول إلى النضج.
@ -239,7 +239,7 @@
على سبيل المثال، إذا كانت أعلى درجة حرارة لليوم هي 25°C، وأدنى درجة حرارة هي 12°C:




1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر الرطوبة ودرجة الحرارة. يمكن إدخاله في اتجاه واحد فقط.
1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس الرقمي المسمى **D5** على قبعة Grove Base المثبتة على Raspberry Pi. هذا المقبس هو الثاني من اليسار في صف المقابس بجانب دبابيس GPIO.


سيتم إنشاء مستشعر الرطوبة وسيظهر في قائمة المستشعرات.


1. قم بإنشاء مستشعر درجة حرارة:
@ -54,11 +54,11 @@
1. انقر على زر **إضافة** لإنشاء مستشعر درجة الحرارة على الدبوس 6.


سيتم إنشاء مستشعر درجة الحرارة وسيظهر في قائمة المستشعرات.


@ -13,7 +13,7 @@ I²C يحتوي على ناقل يتكون من سلكين رئيسيين، با
| VCC | جامع الجهد المشترك | مصدر الطاقة للأجهزة. يتم توصيله بأسلاك SDA وSCL لتوفير طاقتها عبر مقاوم رفع يقوم بإيقاف الإشارة عندما لا يكون هناك جهاز يعمل كمتحكم. |


لإرسال البيانات، يقوم أحد الأجهزة بإصدار شرط البدء للإشارة إلى أنه جاهز لإرسال البيانات. بعد ذلك يصبح الجهاز متحكمًا. يقوم المتحكم بإرسال عنوان الجهاز الذي يريد التواصل معه، بالإضافة إلى ما إذا كان يريد قراءة أو كتابة البيانات. بعد نقل البيانات، يقوم المتحكم بإرسال شرط التوقف للإشارة إلى أنه انتهى. بعد ذلك يمكن لجهاز آخر أن يصبح المتحكم ويرسل أو يستقبل البيانات.


* W
- وزن التربة الرطبة
@ -29,7 +29,7 @@
على سبيل المثال، لديك عينة تربة وزنها 212 جرام وهي رطبة، و197 جرام وهي جافة.


1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر رطوبة التربة. لن يدخل إلا في اتجاه واحد.
1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس التناظري المسمى **A0** على قبعة Grove Base المثبتة على Raspberry Pi. هذا المقبس هو الثاني من اليمين، في صف المقابس بجانب دبابيس GPIO.


1. أدخل مستشعر رطوبة التربة في التربة. يحتوي المستشعر على "خط أعلى موضع" - وهو خط أبيض عبر المستشعر. أدخل المستشعر حتى هذا الخط ولكن لا تتجاوزه.
سيتم إنشاء مستشعر رطوبة التربة وسيظهر في قائمة المستشعرات.




1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر رطوبة التربة. يمكن إدخاله في اتجاه واحد فقط.


> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر.
@ -32,7 +32,7 @@
الحل هو توصيل المضخة بمصدر طاقة خارجي واستخدام مشغل لتشغيل المضخة، مشابه لكيفية تشغيل الضوء باستخدام مفتاح. يتطلب الأمر كمية صغيرة جدًا من الطاقة (على شكل طاقة في جسمك) لتحريك إصبعك لتشغيل المفتاح، وهذا يربط الضوء بالكهرباء الرئيسية التي تعمل بجهد 110 فولت/240 فولت.


> 🎓 [الكهرباء الرئيسية](https://wikipedia.org/wiki/Mains_electricity) تشير إلى الكهرباء التي يتم توصيلها إلى المنازل والأعمال عبر البنية التحتية الوطنية في العديد من أنحاء العالم.
@ -72,7 +72,7 @@
لا يحتاج المغناطيس الكهربائي إلى الكثير من الطاقة للتفعيل وسحب الذراع، يمكن التحكم فيه باستخدام خرج 3.3 فولت أو 5 فولت من مجموعة تطوير إنترنت الأشياء. يمكن لدائرة الإخراج أن تحمل طاقة أكبر بكثير، اعتمادًا على الريليه، بما في ذلك الجهد الرئيسي أو حتى مستويات طاقة أعلى للاستخدام الصناعي. بهذه الطريقة يمكن لمجموعة تطوير إنترنت الأشياء التحكم في نظام الريّ، من مضخة صغيرة لنبات واحد، وصولًا إلى نظام صناعي ضخم لمزرعة تجارية كاملة.


الصورة أعلاه تظهر ريليه Grove. دائرة التحكم تتصل بجهاز إنترنت الأشياء وتقوم بتشغيل الريليه أو إيقافه باستخدام 3.3 فولت أو 5 فولت. دائرة الإخراج تحتوي على طرفين، يمكن لأي منهما أن يكون الطاقة أو الأرض. دائرة الإخراج يمكنها التعامل مع ما يصل إلى 250 فولت عند 10 أمبير، وهو ما يكفي لمجموعة من الأجهزة التي تعمل بالطاقة الرئيسية. يمكنك الحصول على ريليه يمكنه التعامل مع مستويات طاقة أعلى.
1. أدخل أحد طرفي كابل Grove في المقبس الموجود على الريليه. لن يدخل إلا بطريقة واحدة.
1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس الرقمي المسمى **D5** على قبعة Grove Base المثبتة على Pi. هذا المقبس هو الثاني من اليسار، في صف المقابس بجانب دبابيس GPIO. اترك مستشعر رطوبة التربة متصلاً بالمقبس **A0**.


1. أدخل مستشعر رطوبة التربة في التربة، إذا لم يكن بالفعل من الدرس السابق.


> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر.
@ -46,8 +46,8 @@
غالبًا ما يُشار إلى السحابة مازحًا بأنها "حاسوب شخص آخر". كانت الفكرة الأولية بسيطة - بدلاً من شراء الحواسيب، يمكنك استئجار حاسوب شخص آخر. يقوم مزود خدمات السحابة بإدارة مراكز بيانات ضخمة. يكونون مسؤولين عن شراء وتثبيت الأجهزة، وإدارة الطاقة والتبريد، والشبكات، وأمان المباني، وتحديثات الأجهزة والبرمجيات، وكل شيء. كعميل، يمكنك استئجار الحواسيب التي تحتاجها، واستئجار المزيد عند زيادة الطلب، ثم تقليل العدد عند انخفاض الطلب. تنتشر مراكز البيانات السحابية هذه في جميع أنحاء العالم.




يمكن أن تكون هذه المراكز بمساحة عدة كيلومترات مربعة. الصور أعلاه تم التقاطها قبل بضع سنوات في مركز بيانات سحابي من مايكروسوفت، وتُظهر الحجم الأولي، إلى جانب توسعة مخططة. المنطقة المخصصة للتوسعة تزيد عن 5 كيلومترات مربعة.
@ -108,11 +108,11 @@ Azure هي السحابة المخصصة للمطورين من مايكروسو
تتصل أجهزة إنترنت الأشياء بخدمة سحابية إما باستخدام SDK خاص بالجهاز (مكتبة توفر كودًا للعمل مع ميزات الخدمة)، أو مباشرة عبر بروتوكول اتصال مثل MQTT أو HTTP. عادةً ما يكون استخدام SDK هو الطريق الأسهل لأنه يتولى كل شيء نيابة عنك، مثل معرفة المواضيع التي يجب النشر أو الاشتراك فيها، وكيفية التعامل مع الأمان.


يتواصل جهازك بعد ذلك مع أجزاء أخرى من تطبيقك عبر هذه الخدمة - مشابهة للطريقة التي أرسلت بها البيانات واستقبلت الأوامر عبر MQTT. يتم ذلك عادةً باستخدام SDK خاص بالخدمة أو مكتبة مشابهة. تصل الرسائل من جهازك إلى الخدمة حيث يمكن لأجزاء أخرى من تطبيقك قراءتها، ويمكن إرسال الرسائل مرة أخرى إلى جهازك.


تقوم هذه الخدمات بتنفيذ الأمان من خلال معرفة جميع الأجهزة التي يمكنها الاتصال وإرسال البيانات، إما عن طريق تسجيل الأجهزة مسبقًا مع الخدمة، أو من خلال إعطاء الأجهزة مفاتيح سرية أو شهادات يمكنها استخدامها لتسجيل نفسها مع الخدمة عند الاتصال لأول مرة. الأجهزة غير المعروفة لا يمكنها الاتصال، وإذا حاولت، ترفض الخدمة الاتصال وتتجاهل الرسائل المرسلة منها.
@ -124,7 +124,7 @@ Azure هي السحابة المخصصة للمطورين من مايكروسو
الآن بعد أن أصبح لديك اشتراك في Azure، يمكنك التسجيل للحصول على خدمة إنترنت الأشياء. خدمة إنترنت الأشياء من Microsoft تُسمى Azure IoT Hub.


> رسم توضيحي من [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة لعرض نسخة أكبر.
@ -28,7 +28,7 @@
الوظائف بدون خادم، أو الحوسبة بدون خادم، تتضمن إنشاء كتل صغيرة من الكود يتم تشغيلها في السحابة استجابة لأنواع مختلفة من الأحداث. عندما يحدث الحدث، يتم تشغيل الكود الخاص بك ويتم تمرير بيانات حول الحدث إليه. يمكن أن تأتي هذه الأحداث من أشياء متعددة، بما في ذلك طلبات الويب، الرسائل الموضوعة في قائمة انتظار، تغييرات البيانات في قاعدة بيانات، أو الرسائل المرسلة إلى خدمة إنترنت الأشياء من أجهزة إنترنت الأشياء.


> 💁 إذا كنت قد استخدمت مشغلات قواعد البيانات من قبل، يمكنك التفكير في هذا على أنه نفس الشيء، حيث يتم تشغيل الكود بواسطة حدث مثل إدخال صف.
@ -54,7 +54,7 @@
خدمة الحوسبة بدون خادم من مايكروسوفت تُعرف باسم Azure Functions.


> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر.
@ -52,11 +52,11 @@
عندما يتصل جهاز بخدمة إنترنت الأشياء، فإنه يستخدم معرفًا لتحديد هويته. المشكلة هي أن هذا المعرف يمكن نسخه - يمكن للقراصنة إعداد جهاز ضار يستخدم نفس المعرف كجهاز حقيقي ولكنه يرسل بيانات مزيفة.


الحل هو تحويل البيانات المرسلة إلى صيغة مشفرة باستخدام قيمة معينة معروفة فقط للجهاز والسحابة. تُعرف هذه العملية باسم *التشفير*، وتُسمى القيمة المستخدمة لتشفير البيانات *مفتاح التشفير*.


يمكن لخدمة السحابة بعد ذلك تحويل البيانات مرة أخرى إلى صيغة قابلة للقراءة باستخدام عملية تُعرف باسم *فك التشفير*، باستخدام نفس مفتاح التشفير أو *مفتاح فك التشفير*. إذا لم تتمكن الرسالة المشفرة من فك تشفيرها باستخدام المفتاح، فهذا يعني أن الجهاز قد تم اختراقه وسيتم رفض الرسالة.


> رسم توضيحي من [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر.
@ -63,13 +63,13 @@
> 💁 لا أحد يعرف السبب الأصلي لتقسيم الدوائر إلى 360 درجة. تغطي صفحة [الدرجة (زاوية) على ويكيبيديا](https://wikipedia.org/wiki/Degree_(angle)) بعض الأسباب المحتملة.


يتم قياس خطوط العرض باستخدام خطوط تدور حول الأرض وتوازي خط الاستواء، وتقسم نصفي الكرة الشمالي والجنوبي إلى 90° لكل منهما. خط الاستواء عند 0°، والقطب الشمالي عند 90°، المعروف أيضًا بـ 90° شمالًا، والقطب الجنوبي عند -90°، أو 90° جنوبًا.
يتم قياس خطوط الطول كعدد الدرجات شرقًا وغربًا. نقطة الأصل عند 0° تُعرف باسم *خط الطول الرئيسي*، وتم تحديدها في عام 1884 كخط يمتد من القطب الشمالي إلى القطب الجنوبي ويمر عبر [المرصد الملكي البريطاني في غرينتش، إنجلترا](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich).


> 🎓 خط الطول هو خط وهمي مستقيم يمتد من القطب الشمالي إلى القطب الجنوبي، مكونًا نصف دائرة.
@ -100,7 +100,7 @@
* خط عرض 47.6423109 (47.6423109 درجة شمال خط الاستواء)
* خط طول -122.1390293 (122.1390293 درجة غرب خط الطول الرئيسي).


## أنظمة تحديد المواقع العالمية (GPS)
@ -112,7 +112,7 @@
> 💁 تحتاج مستشعرات GPS إلى هوائيات لاكتشاف موجات الراديو. الهوائيات المدمجة في الشاحنات والسيارات المزودة بنظام GPS مثبتة للحصول على إشارة جيدة، عادةً على الزجاج الأمامي أو السقف. إذا كنت تستخدم نظام GPS منفصلًا، مثل هاتف ذكي أو جهاز إنترنت الأشياء، فيجب التأكد من أن الهوائي المدمج في النظام أو الهاتف لديه رؤية واضحة للسماء، مثل التثبيت على الزجاج الأمامي.


تدور أقمار GPS حول الأرض، وليست في نقطة ثابتة فوق المستشعر، لذا تتضمن بيانات الموقع الارتفاع فوق مستوى سطح البحر بالإضافة إلى خطوط العرض والطول.


1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر GPS. لن يدخل إلا في اتجاه واحد.
1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بمقبس UART المسمى **UART** على قبعة Grove Base المثبتة على Pi. يوجد هذا المقبس في الصف الأوسط، على الجانب الأقرب إلى فتحة بطاقة SD، في الطرف الآخر من منافذ USB ومقبس الإيثرنت.


1. ضع مستشعر GPS بحيث يكون الهوائي المتصل به مرئيًا للسماء - من الأفضل أن يكون بجانب نافذة مفتوحة أو في الخارج. من الأسهل الحصول على إشارة واضحة بدون وجود عوائق أمام الهوائي.


## برمجة مستشعر GPS
@ -102,17 +102,17 @@
* ضبط **المصدر** على `Lat/Lon`، وتعيين خط عرض وخط طول وعدد الأقمار الصناعية المستخدمة للحصول على تثبيت GPS. سيتم إرسال هذه القيمة مرة واحدة فقط، لذا تحقق من مربع **التكرار** لتكرار البيانات كل ثانية.


* ضبط **المصدر** على `NMEA` وإضافة بعض جمل NMEA في مربع النص. سيتم إرسال جميع هذه القيم، مع تأخير قدره ثانية واحدة قبل قراءة كل جملة GGA (تثبيت الموقع).


يمكنك استخدام أداة مثل [nmeagen.org](https://www.nmeagen.org) لإنشاء هذه الجمل عن طريق الرسم على الخريطة. سيتم إرسال هذه القيم مرة واحدة فقط، لذا تحقق من مربع **التكرار** لتكرار البيانات بعد ثانية واحدة من إرسالها جميعًا.
* ضبط **المصدر** على ملف GPX، وتحميل ملف GPX يحتوي على مواقع المسار. يمكنك تنزيل ملفات GPX من عدد من مواقع الخرائط والمشي الشهيرة، مثل [AllTrails](https://www.alltrails.com/). تحتوي هذه الملفات على مواقع GPS متعددة كمسار، وسيعيد مستشعر GPS كل موقع جديد بفاصل زمني قدره ثانية واحدة.


سيتم إرسال هذه القيم مرة واحدة فقط، لذا تحقق من مربع **التكرار** لتكرار البيانات بعد ثانية واحدة من إرسالها جميعًا.


> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر.
@ -75,7 +75,7 @@
> 💁 على الرغم من اسمها، تسمح بعض قواعد بيانات NoSQL باستخدام SQL لاستعلام البيانات.


لا تحتوي قواعد بيانات NoSQL على مخطط محدد مسبقًا يحد من كيفية تخزين البيانات، بل يمكنك إدخال أي بيانات غير مهيكلة، عادةً باستخدام وثائق JSON. يمكن تنظيم هذه الوثائق في مجلدات، مشابهة للملفات على جهاز الكمبيوتر الخاص بك. يمكن أن تحتوي كل وثيقة على حقول مختلفة عن الوثائق الأخرى - على سبيل المثال، إذا كنت تخزن بيانات إنترنت الأشياء من مركبات المزرعة، فقد تحتوي بعضها على حقول لبيانات التسارع والسرعة، وقد تحتوي أخرى على حقول لدرجة الحرارة في المقطورة. إذا كنت تريد إضافة نوع جديد من الشاحنات، مثل شاحنة مزودة بموازين مدمجة لتتبع وزن المنتجات المحملة، يمكن لجهاز إنترنت الأشياء الخاص بك إضافة هذا الحقل الجديد ويمكن تخزينه دون أي تغييرات على قاعدة البيانات.
@ -89,7 +89,7 @@
في الدرس السابق، قمت بالتقاط بيانات GPS من مستشعر GPS متصل بجهاز إنترنت الأشياء الخاص بك. لتخزين هذه البيانات في السحابة، تحتاج إلى إرسالها إلى خدمة إنترنت الأشياء. مرة أخرى، ستستخدم Azure IoT Hub، نفس خدمة إنترنت الأشياء السحابية التي استخدمتها في المشروع السابق.


بمجرد تدفق البيانات إلى IoT Hub، يمكنك كتابة بعض الكود بدون خادم للاستماع إلى الأحداث المنشورة إلى نقطة النهاية المتوافقة مع Event-Hub. هذا هو المسار الدافئ - سيتم تخزين هذه البيانات واستخدامها في الدرس التالي للتقارير عن الرحلة.


### المهمة - معالجة أحداث GPS باستخدام الكود بدون خادم
حسابات تخزين Azure هي خدمة تخزين متعددة الأغراض يمكنها تخزين البيانات بطرق متنوعة. يمكنك تخزين البيانات كـ blobs، في قوائم انتظار، في جداول، أو كملفات، وكل ذلك في نفس الوقت.
يمكن تحسين هذا المخطط بإضافة خط يشير إلى وقت تشغيل نظام الري التلقائي عند قراءة رطوبة التربة 450:


يوضح هذا المخطط بسرعة ليس فقط مستويات رطوبة التربة، ولكن أيضًا النقاط التي تم فيها تشغيل نظام الري.
@ -84,7 +84,7 @@
العمل مع الخرائط هو تمرين مثير للاهتمام، وهناك العديد من الخيارات مثل Bing Maps، وLeaflet، وOpen Street Maps، وGoogle Maps. في هذا الدرس، ستتعلم عن [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) وكيف يمكنها عرض بيانات GPS الخاصة بك.
Azure Maps هي "مجموعة من الخدمات الجغرافية المكانية وSDKs التي تستخدم بيانات خرائط حديثة لتوفير سياق جغرافي لتطبيقات الويب والجوال." يتم تزويد المطورين بأدوات لإنشاء خرائط تفاعلية وجميلة يمكنها القيام بأشياء مثل توفير مسارات المرور الموصى بها، تقديم معلومات عن حوادث المرور، التنقل الداخلي، قدرات البحث، معلومات الارتفاع، خدمات الطقس والمزيد.
@ -185,7 +185,7 @@ Azure Maps هي "مجموعة من الخدمات الجغرافية المكا
إذا فتحت صفحة `index.html` الخاصة بك في متصفح ويب، يجب أن ترى خريطة محملة ومركزة على منطقة سياتل.


✅ جرب معلمات التكبير والتوسيط لتغيير عرض الخريطة. يمكنك إضافة إحداثيات مختلفة تتوافق مع خطوط الطول والعرض لبياناتك لإعادة توسيط الخريطة.
@ -319,7 +319,7 @@ Azure Maps هي "مجموعة من الخدمات الجغرافية المكا
1. قم بتحميل صفحة HTML في متصفحك. ستقوم بتحميل الخريطة، ثم تحميل جميع بيانات GPS من التخزين وعرضها على الخريطة.


> 💁 يمكنك العثور على هذا الكود في [المجلد](../../../../../3-transport/lessons/3-visualize-location-data/code).


> رسم توضيحي من [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة لعرض نسخة أكبر.
@ -35,7 +35,7 @@
السور الجغرافي هو حدود افتراضية لمنطقة جغرافية حقيقية. يمكن أن تكون الأسوار الجغرافية دوائر محددة كنقطة ونصف قطر (على سبيل المثال دائرة بعرض 100 متر حول مبنى)، أو مضلعات تغطي منطقة مثل منطقة مدرسة، حدود مدينة، أو حرم جامعي أو مكتبي.


> 💁 ربما تكون قد استخدمت الأسوار الجغرافية بالفعل دون أن تدرك ذلك. إذا قمت بتعيين تذكير باستخدام تطبيق التذكيرات على iOS أو Google Keep بناءً على موقع، فقد استخدمت سورًا جغرافيًا. تقوم هذه التطبيقات بإنشاء سور جغرافي بناءً على الموقع المحدد وتنبهك عندما يدخل هاتفك السور الجغرافي.
@ -212,7 +212,7 @@
على سبيل المثال، تخيل قراءات GPS تظهر مركبة تسير على طريق ينتهي بجوار سور جغرافي. إذا كانت قيمة GPS واحدة غير دقيقة وتضع المركبة داخل السور الجغرافي، على الرغم من عدم وجود وصول للمركبات، فيمكن تجاهلها.


في الصورة أعلاه، هناك سياج جغرافي يغطي جزءًا من حرم مايكروسوفت. الخط الأحمر يُظهر شاحنة تسير على طول الطريق 520، مع دوائر تُظهر قراءات GPS. معظم هذه القراءات دقيقة وتقع على طول الطريق 520، باستثناء قراءة واحدة غير دقيقة داخل السياج الجغرافي. من المستحيل أن تكون هذه القراءة صحيحة - لا توجد طرق يمكن للشاحنة أن تنحرف فجأة من الطريق 520 إلى الحرم الجامعي ثم تعود إلى الطريق 520. الكود الذي يتحقق من هذا السياج الجغرافي سيحتاج إلى أخذ القراءات السابقة بعين الاعتبار قبل اتخاذ أي إجراء بناءً على نتائج اختبار السياج الجغرافي.
✅ ما البيانات الإضافية التي تحتاج إلى التحقق منها لمعرفة ما إذا كانت قراءة GPS يمكن اعتبارها صحيحة؟
@ -284,7 +284,7 @@
الإجابة هي أنه لا يمكنه ذلك! بدلاً من ذلك، يمكنك تعريف اتصالات منفصلة متعددة لقراءة الأحداث، وكل واحدة يمكنها إدارة إعادة تشغيل الرسائل غير المقروءة. تُعرف هذه باسم *مجموعات المستهلكين*. عند الاتصال بنقطة النهاية، يمكنك تحديد مجموعة المستهلكين التي تريد الاتصال بها. كل مكون من تطبيقك سيتصل بمجموعة مستهلكين مختلفة.


نظريًا، يمكن لما يصل إلى 5 تطبيقات الاتصال بكل مجموعة مستهلكين، وستتلقى جميعها الرسائل عند وصولها. من الأفضل أن يكون لكل تطبيق وصول إلى مجموعة مستهلكين واحدة فقط لتجنب معالجة الرسائل المكررة، وضمان معالجة جميع الرسائل المعلقة بشكل صحيح عند إعادة التشغيل. على سبيل المثال، إذا قمت بتشغيل تطبيق Functions الخاص بك محليًا بالإضافة إلى تشغيله في السحابة، فسيقوم كلاهما بمعالجة الرسائل، مما يؤدي إلى تخزين كتل مكررة في حساب التخزين.


> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر.
@ -38,7 +38,7 @@
مع تطور الحصاد الآلي، انتقل فرز المنتجات من الحقل إلى المصنع. كانت الأغذية تسير على أحزمة ناقلة طويلة مع فرق من الأشخاص يفرزون المنتجات ويزيلون أي شيء لا يفي بمعايير الجودة المطلوبة. أصبح الحصاد أرخص بفضل الآلات، ولكن لا تزال هناك تكلفة لفرز الطعام يدويًا.


التطور التالي كان استخدام الآلات للفرز، سواء كانت مدمجة في الحصادة أو في مصانع المعالجة. الجيل الأول من هذه الآلات استخدم مستشعرات بصرية للكشف عن الألوان، حيث تتحكم في المشغلات لدفع الطماطم الخضراء إلى سلة النفايات باستخدام أذرع أو نفثات هواء، تاركة الطماطم الحمراء لتستمر في شبكة من الأحزمة الناقلة.
@ -62,7 +62,7 @@
> 🎓 نتائج نماذج التعلم الآلي تسمى *التوقعات*


نماذج التعلم الآلي لا تعطي إجابة ثنائية، بل تعطي احتمالات. على سبيل المثال، قد يتم إعطاء نموذج صورة لموزة ويتوقع أنها `ناضجة` بنسبة 99.7% و`غير ناضجة` بنسبة 0.3%. ستقوم الكود الخاص بك باختيار أفضل توقع وتحديد أن الموزة ناضجة.
@ -90,7 +90,7 @@
الرؤية المخصصة هي أداة سحابية لتدريب مصنفي الصور. تتيح لك تدريب مصنف باستخدام عدد قليل فقط من الصور. يمكنك تحميل الصور عبر بوابة ويب، واجهة برمجة التطبيقات أو SDK، مع إعطاء كل صورة *علامة* تحتوي على تصنيف تلك الصورة. ثم تقوم بتدريب النموذج، واختباره لمعرفة مدى أدائه. بمجرد أن تكون راضيًا عن النموذج، يمكنك نشر إصدارات منه يمكن الوصول إليها عبر واجهة برمجة التطبيقات أو SDK.
> 💁 يمكنك تدريب نموذج رؤية مخصص باستخدام 5 صور فقط لكل تصنيف، ولكن المزيد أفضل. يمكنك الحصول على نتائج أفضل مع ما لا يقل عن 30 صورة.
@ -146,7 +146,7 @@
عند إنشاء مشروعك، تأكد من استخدام مورد `fruit-quality-detector-training` الذي أنشأته سابقًا. استخدم نوع مشروع *تصنيف*، نوع تصنيف *متعدد الفئات*، و*مجال الطعام*.


✅ خذ بعض الوقت لاستكشاف واجهة المستخدم للرؤية المخصصة لمصنف الصور الخاص بك.
@ -164,7 +164,7 @@
* باستخدام موزتين ناضجتين، التقط بعض الصور لكل واحدة من زوايا مختلفة، مع التقاط ما لا يقل عن 7 صور (5 للتدريب، 2 للاختبار)، ولكن يُفضل أكثر.
1. اتبع [قسم تحميل الصور ووضع العلامات في دليل البدء السريع لبناء مصنف على مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) لتحميل صور التدريب الخاصة بك. ضع علامة على الفاكهة الناضجة بـ `ripe`، وغير الناضجة بـ `unripe`.


1. اتبع [قسم تدريب المصنف في دليل البدء السريع لبناء مصنف على مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier) لتدريب مصنف الصور على الصور التي قمت بتحميلها.
@ -192,7 +192,7 @@
1. اتبع [وثائق اختبار النموذج على مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model) لاختبار مصنف الصور الخاص بك. استخدم الصور الاختبارية التي أنشأتها سابقًا، وليس أيًا من الصور التي استخدمتها للتدريب.


1. جرب جميع الصور الاختبارية التي لديك وراقب الاحتمالات.
# التحقق من جودة الفاكهة باستخدام جهاز إنترنت الأشياء


> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر.
@ -26,7 +26,7 @@
مستشعرات الكاميرا، كما يشير الاسم، هي كاميرات يمكنك توصيلها بجهاز إنترنت الأشياء الخاص بك. يمكنها التقاط صور ثابتة أو تسجيل فيديو متدفق. بعضها يعيد بيانات الصور الخام، والبعض الآخر يضغط البيانات إلى ملف صورة مثل JPEG أو PNG. عادةً ما تكون الكاميرات التي تعمل مع أجهزة إنترنت الأشياء أصغر وأقل دقة مما قد تكون معتادًا عليه، ولكن يمكنك الحصول على كاميرات عالية الدقة تنافس أفضل الهواتف. يمكنك الحصول على عدسات قابلة للتبديل، إعدادات كاميرا متعددة، كاميرات حرارية بالأشعة تحت الحمراء، أو كاميرات الأشعة فوق البنفسجية.


معظم مستشعرات الكاميرا تستخدم مستشعرات الصور حيث كل بكسل هو ديود ضوئي. تقوم العدسة بتركيز الصورة على مستشعر الصورة، وتقوم آلاف أو ملايين الديودات الضوئية بالكشف عن الضوء الساقط على كل منها وتسجيله كبيانات بكسل.
1. في مربع الحوار *نشر النموذج*، قم بتعيين *مورد التنبؤ* إلى المورد `fruit-quality-detector-prediction` الذي أنشأته في الدرس السابق. اترك الاسم كما هو `Iteration2`، واضغط على زر **النشر**.
@ -88,7 +88,7 @@
أيضًا، خذ نسخة من قيمة *مفتاح التنبؤ*. هذا مفتاح آمن يجب تمريره عند استدعاء النموذج. فقط التطبيقات التي تمرر هذا المفتاح يُسمح لها باستخدام النموذج، وأي تطبيقات أخرى يتم رفضها.


✅ عندما يتم نشر تكرار جديد، سيكون له اسم مختلف. كيف تعتقد أنه يمكنك تغيير التكرار الذي يستخدمه جهاز إنترنت الأشياء؟
@ -109,7 +109,7 @@
للحصول على أفضل النتائج لمصنف الصور، تريد تدريب النموذج باستخدام صور مشابهة قدر الإمكان للصور المستخدمة في التنبؤات. إذا كنت قد استخدمت كاميرا هاتفك لالتقاط الصور للتدريب، على سبيل المثال، فإن جودة الصورة، الحدة، والألوان ستكون مختلفة عن كاميرا متصلة بجهاز إنترنت الأشياء.


في الصورة أعلاه، الصورة على اليسار تم التقاطها باستخدام كاميرا Raspberry Pi، والصورة على اليمين تم التقاطها لنفس الموزة في نفس الموقع باستخدام iPhone. هناك فرق واضح في الجودة - صورة iPhone أكثر وضوحًا، بألوان أكثر إشراقًا وتباين أعلى.
يمكنك العثور على رسم متحرك يوضح كيفية فتح المشبك وإدخال الكابل في [وثائق Raspberry Pi للبدء باستخدام وحدة الكاميرا](https://projects.raspberrypi.org/en/projects/getting-started-with-picamera/2).


1. قم بإزالة قبعة Grove Base Hat من Raspberry Pi.
1. مرر الكابل الشريطي عبر فتحة الكاميرا في قبعة Grove Base Hat. تأكد من أن الجانب الأزرق من الكابل يواجه المنافذ التناظرية المسمّاة **A0**، **A1** وما إلى ذلك.


1. أدخل الكابل الشريطي في منفذ الكاميرا على Raspberry Pi. مرة أخرى، اسحب المشبك البلاستيكي الأسود لأعلى، أدخل الكابل، ثم ادفع المشبك إلى مكانه. يجب أن يكون الجانب الأزرق من الكابل مواجهًا لمنافذ USB والإيثرنت.


1. أعد تركيب قبعة Grove Base Hat.
@ -101,7 +101,7 @@
السطر `camera.rotation = 0` يضبط دوران الصورة. يدخل الكابل الشريطي في الجزء السفلي من الكاميرا، ولكن إذا تم تدوير الكاميرا لتسهيل توجيهها نحو العنصر الذي تريد تصنيفه، يمكنك تغيير هذا السطر إلى عدد درجات الدوران.


على سبيل المثال، إذا علقت الكابل الشريطي فوق شيء بحيث يكون في الجزء العلوي من الكاميرا، قم بضبط الدوران ليكون 180:
ستتمكن من رؤية الصورة التي تم التقاطها، وهذه القيم في علامة التبويب **Predictions** في Custom Vision.


> 💁 يمكنك العثور على هذا الكود في مجلد [code-classify/pi](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/pi) أو [code-classify/virtual-iot-device](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/virtual-iot-device).


## برمجة الكاميرا
@ -103,7 +103,7 @@
1. قم بتكوين الصورة التي ستلتقطها الكاميرا في CounterFit. يمكنك إما تعيين *المصدر* إلى *ملف*، ثم تحميل ملف صورة، أو تعيين *المصدر* إلى *كاميرا ويب*، وسيتم التقاط الصور من كاميرا الويب الخاصة بك. تأكد من اختيار زر **تعيين** بعد اختيار صورة أو تحديد كاميرا الويب.


1. سيتم التقاط صورة وحفظها كـ `image.jpg` في المجلد الحالي. سترى هذا الملف في مستكشف VS Code. اختر الملف لعرض الصورة. إذا كانت بحاجة إلى تدوير، قم بتحديث السطر `camera.rotation = 0` حسب الضرورة والتقط صورة أخرى.
1. يجب توصيل الدبابيس الموجودة في قاعدة ArduCam بدبابيس GPIO على Wio Terminal. لتسهيل العثور على الدبابيس الصحيحة، قم بتثبيت ملصق دبابيس GPIO الذي يأتي مع Wio Terminal حول الدبابيس:
@ -35,7 +35,7 @@
| SDA | 3 (I2C1_SDA) | بيانات تسلسلية I2C |
| SCL | 5 (I2C1_SCL) | ساعة تسلسلية I2C |


توفر اتصالات GND وVCC مصدر طاقة 5 فولت لـ ArduCam. تعمل الكاميرا بجهد 5 فولت، على عكس مستشعرات Grove التي تعمل بجهد 3 فولت. يأتي هذا الطاقة مباشرة من اتصال USB-C الذي يغذي الجهاز.
@ -456,7 +456,7 @@
1. قم بإيقاف تشغيل بطاقة microSD وقم بإخراجها عن طريق دفعها قليلاً وإطلاقها، وستخرج. قد تحتاج إلى استخدام أداة رفيعة للقيام بذلك. قم بتوصيل بطاقة microSD بجهاز الكمبيوتر الخاص بك لعرض الصور.


> 💁 قد يستغرق الأمر بضع صور حتى يتكيف توازن اللون الأبيض في الكاميرا. ستلاحظ ذلك بناءً على لون الصور الملتقطة، قد تبدو الصور الأولى غير متوازنة في الألوان. يمكنك دائمًا التغلب على ذلك عن طريق تعديل الكود لالتقاط بضع صور يتم تجاهلها في وظيفة `setup`.
ستتمكن من رؤية الصورة التي تم التقاطها، وهذه القيم في علامة التبويب **Predictions** في Custom Vision.


> 💁 يمكنك العثور على هذا الكود في المجلد [code-classify/wio-terminal](../../../../../4-manufacturing/lessons/2-check-fruit-from-device/code-classify/wio-terminal).


> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر.
@ -33,11 +33,11 @@
الحوسبة الطرفية تتضمن وجود أجهزة كمبيوتر تقوم بمعالجة بيانات إنترنت الأشياء بالقرب قدر الإمكان من المكان الذي يتم فيه إنشاء البيانات. بدلاً من أن تتم هذه المعالجة في السحابة، يتم نقلها إلى حافة السحابة - شبكتك الداخلية.


في الدروس السابقة، كانت لديك أجهزة تجمع البيانات وترسلها إلى السحابة لتحليلها، حيث يتم تشغيل وظائف بدون خادم أو نماذج ذكاء اصطناعي في السحابة.


الحوسبة الطرفية تتضمن نقل بعض خدمات السحابة إلى أجهزة كمبيوتر تعمل على نفس الشبكة مثل أجهزة إنترنت الأشياء، مع التواصل مع السحابة فقط عند الحاجة. على سبيل المثال، يمكنك تشغيل نماذج ذكاء اصطناعي على أجهزة الحافة لتحليل نضج الفواكه، وإرسال التحليلات فقط إلى السحابة، مثل عدد الفواكه الناضجة مقابل غير الناضجة.
Azure IoT Edge هو خدمة يمكن أن تساعدك في نقل أعباء العمل من السحابة إلى الحافة. يمكنك إعداد جهاز كجهاز طرفي، ومن السحابة يمكنك نشر التعليمات البرمجية إلى هذا الجهاز الطرفي. هذا يسمح لك بمزج قدرات السحابة والحافة.
@ -99,7 +99,7 @@ IoT Edge مدمج في IoT Hub، لذا يمكنك إدارة الأجهزة ا
IoT Edge يشغل التعليمات البرمجية من *الحاويات* - تطبيقات مستقلة يتم تشغيلها بمعزل عن باقي التطبيقات على جهاز الكمبيوتر الخاص بك. عندما تقوم بتشغيل حاوية، فإنها تعمل كجهاز كمبيوتر منفصل يعمل داخل جهاز الكمبيوتر الخاص بك، مع برمجياته وخدماته وتطبيقاته الخاصة. معظم الوقت، لا يمكن للحاويات الوصول إلى أي شيء على جهاز الكمبيوتر الخاص بك إلا إذا اخترت مشاركة أشياء مثل مجلد مع الحاوية. الحاوية بعد ذلك تعرض الخدمات عبر منفذ مفتوح يمكنك الاتصال به أو عرضه على شبكتك.


على سبيل المثال، يمكنك أن تكون لديك حاوية بها موقع ويب يعمل على المنفذ 80، وهو المنفذ الافتراضي لـ HTTP، ويمكنك بعد ذلك عرضه من جهاز الكمبيوتر الخاص بك أيضًا على المنفذ 80.


بمجرد تنزيل النموذج الخاص بك، يجب بناؤه في حاوية، ثم دفعه إلى سجل الحاويات - وهو موقع عبر الإنترنت حيث يمكنك تخزين الحاويات. يمكن لـ IoT Edge بعد ذلك تنزيل الحاوية من السجل ودفعها إلى جهازك.
سجل الحاويات الذي ستستخدمه في هذا الدرس هو Azure Container Registry. هذه ليست خدمة مجانية، لذا لتوفير المال تأكد من [تنظيف مشروعك](../../../clean-up.md) بمجرد الانتهاء.
يوضح الرسم البياني أعلاه بنية مرجعية لهذا التطبيق النموذجي.
@ -124,7 +124,7 @@
يحتوي كاشف الفاكهة النموذجي على مكونات متعددة تتواصل مع بعضها البعض.


* مستشعر القرب يقيس المسافة إلى قطعة الفاكهة ويرسلها إلى IoT Hub
* الأمر للتحكم في الكاميرا يأتي من IoT Hub إلى جهاز الكاميرا


1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر Time of Flight. لن يدخل إلا بطريقة واحدة.
سيتم إنشاء مستشعر المسافة وسيظهر في قائمة المستشعرات.




1. أدخل أحد طرفي كابل Grove في المقبس الموجود على مستشعر Time of Flight. لن يدخل إلا بطريقة واحدة.


> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر.
@ -36,7 +36,7 @@
تصنيف الصور يتعلق بتصنيف الصورة ككل - ما هي احتمالية أن تتطابق الصورة بأكملها مع كل علامة. تحصل على احتمالات لكل علامة تم استخدامها لتدريب النموذج.


في المثال أعلاه، تم تصنيف صورتين باستخدام نموذج تم تدريبه لتصنيف عبوات المكسرات أو علب معجون الطماطم. الصورة الأولى هي عبوة مكسرات، ولديها نتيجتان من مصنف الصور:
@ -60,7 +60,7 @@
> 🎓 *صناديق الإحاطة* هي الصناديق المحيطة بالكائن.


الصورة أعلاه تحتوي على عبوة مكسرات وثلاث علب من معجون الطماطم. كاشف الكائنات اكتشف المكسرات، وأعاد صندوق الإحاطة الذي يحتوي على المكسرات مع النسبة المئوية لاحتمالية أن يحتوي الصندوق على الكائن، في هذه الحالة 97.6%. كما اكتشف كاشف الكائنات ثلاث علب من معجون الطماطم، وقدم ثلاثة صناديق إحاطة منفصلة، واحد لكل علبة مكتشفة، ولكل منها نسبة مئوية لاحتمالية أن يحتوي الصندوق على علبة معجون الطماطم.
@ -111,7 +111,7 @@
عند إنشاء مشروعك، تأكد من استخدام مورد `stock-detector-training` الذي أنشأته سابقًا. استخدم نوع المشروع *كشف الكائنات*، والنطاق *المنتجات على الأرفف*.


✅ النطاق "المنتجات على الأرفف" مخصص بشكل خاص لاكتشاف المخزون على أرفف المتاجر. اقرأ المزيد عن النطاقات المختلفة في [مستندات اختيار النطاق على مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection)
@ -133,11 +133,11 @@
1. اتبع [قسم تحميل الصور ووضع العلامات في دليل البدء السريع لبناء كاشف كائنات على مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) لتحميل صور التدريب الخاصة بك. قم بإنشاء علامات ذات صلة بناءً على أنواع الكائنات التي تريد كشفها.


عند رسم صناديق الإحاطة للكائنات، اجعلها ضيقة حول الكائن. قد يستغرق الأمر بعض الوقت لتحديد جميع الصور، ولكن الأداة ستكتشف ما تعتقد أنه صناديق الإحاطة، مما يجعل العملية أسرع.


> 💁 إذا كان لديك أكثر من 15 صورة لكل كائن، يمكنك التدريب بعد 15 صورة ثم استخدام ميزة **العلامات المقترحة**. ستستخدم هذه الميزة النموذج المدرب لاكتشاف الكائنات في الصور غير الموسومة. يمكنك بعد ذلك تأكيد الكائنات المكتشفة، أو رفضها وإعادة رسم صناديق الإحاطة. يمكن أن يوفر هذا *الكثير* من الوقت.
@ -155,7 +155,7 @@
1. استخدم زر **الاختبار السريع** لتحميل صور الاختبار والتحقق من اكتشاف الكائنات. استخدم صور الاختبار التي أنشأتها سابقًا، وليس أيًا من الصور التي استخدمتها للتدريب.


1. جرب جميع صور الاختبار التي لديك وراقب الاحتمالات.
1. في مربع الحوار *Publish Model*، قم بتعيين *Prediction resource* إلى المورد `stock-detector-prediction` الذي أنشأته في الدرس السابق. اترك الاسم كما هو `Iteration2`، واضغط على زر **Publish**.
@ -76,7 +76,7 @@
قم أيضًا بنسخ قيمة *Prediction-Key*. هذه مفتاح آمن يجب تمريره عند استدعاء النموذج. فقط التطبيقات التي تمرر هذا المفتاح يُسمح لها باستخدام النموذج، وأي تطبيقات أخرى يتم رفضها.


✅ عندما يتم نشر نسخة جديدة، سيكون لها اسم مختلف. كيف تعتقد أنه يمكنك تغيير النسخة التي يستخدمها جهاز إنترنت الأشياء؟
ستتمكن من رؤية الصورة التي تم التقاطها، وهذه القيم في علامة التبويب **Predictions** في Custom Vision.


> 💁 يمكنك العثور على هذا الكود في المجلد [code-detect/pi](../../../../../5-retail/lessons/2-check-stock-device/code-detect/pi) أو [code-detect/virtual-iot-device](../../../../../5-retail/lessons/2-check-stock-device/code-detect/virtual-iot-device).
ستتمكن من رؤية الصورة التي تم التقاطها، وهذه القيم في علامة التبويب **Predictions** في Custom Vision.


> 💁 يمكنك العثور على هذا الكود في مجلد [code-detect/wio-terminal](../../../../../5-retail/lessons/2-check-stock-device/code-detect/wio-terminal).


> رسم توضيحي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). اضغط على الصورة للحصول على نسخة أكبر.
@ -51,7 +51,7 @@
الميكروفونات الديناميكية لا تحتاج إلى طاقة للعمل، حيث يتم إنشاء الإشارة الكهربائية بالكامل من الميكروفون.


* الشريطية - الميكروفونات الشريطية تشبه الميكروفونات الديناميكية، إلا أنها تحتوي على شريط معدني بدلاً من غشاء. يتحرك هذا الشريط في مجال مغناطيسي، مما يولد تيارًا كهربائيًا. مثل الميكروفونات الديناميكية، الميكروفونات الشريطية لا تحتاج إلى طاقة للعمل.
@ -59,11 +59,11 @@
* المكثفة - تحتوي الميكروفونات المكثفة على غشاء معدني رقيق ولوحة خلفية معدنية ثابتة. يتم تطبيق الكهرباء على كلاهما، وعندما يهتز الغشاء، تتغير الشحنة الساكنة بين اللوحتين، مما يولد إشارة. تحتاج الميكروفونات المكثفة إلى طاقة للعمل - تُعرف باسم *الطاقة الوهمية*.


* MEMS - أنظمة الميكروفونات الكهروميكانيكية الدقيقة، أو MEMS، هي ميكروفونات على شريحة. تحتوي على غشاء حساس للضغط محفور على شريحة سيليكون، وتعمل بشكل مشابه للميكروفون المكثف. يمكن أن تكون هذه الميكروفونات صغيرة جدًا ومتكاملة في الدوائر.


في الصورة أعلاه، الشريحة المسمى **LEFT** هي ميكروفون MEMS، مع غشاء صغير أقل من ملليمتر عرضًا.
@ -159,7 +159,7 @@
## تحويل الكلام إلى نص


تمامًا كما هو الحال مع تصنيف الصور في مشروع سابق، هناك خدمات ذكاء اصطناعي مُعدة مسبقًا يمكنها أخذ الكلام كملف صوتي وتحويله إلى نص. إحدى هذه الخدمات هي خدمة الكلام، وهي جزء من خدمات الإدراك، خدمات الذكاء الاصطناعي المُعدة مسبقًا التي يمكنك استخدامها في تطبيقاتك.
1. أدخل أحد طرفي كابل Grove في المقبس الموجود على وحدة الزر. لن يدخل إلا في اتجاه واحد.
1. مع إيقاف تشغيل Raspberry Pi، قم بتوصيل الطرف الآخر من كابل Grove بالمقبس الرقمي المسمى **D5** على قاعدة Grove Base Hat المثبتة على Pi. هذا المقبس هو الثاني من اليسار في صف المقابس بجانب دبابيس GPIO.


1. إذا كنت تستخدم ReSpeaker 2-Mics Pi HAT، يمكنك إزالة قاعدة Grove، ثم تثبيت ReSpeaker HAT مكانها.


ستحتاج إلى زر Grove لاحقًا في هذا الدرس، ولكن يوجد زر مدمج في هذا HAT، لذا لا حاجة لقاعدة Grove.
✅ اقرأ المزيد عن DMA على [صفحة الوصول المباشر للذاكرة على ويكيبيديا](https://wikipedia.org/wiki/Direct_memory_access).


يمكن لـ DMAC التقاط الصوت من ADC بفواصل زمنية ثابتة، مثل 16,000 مرة في الثانية للصوت عند 16KHz. يمكنه كتابة هذه البيانات الملتقطة إلى مخزن ذاكرة مخصص مسبقًا، وعندما يمتلئ، يصبح متاحًا للكود الخاص بك لمعالجته. استخدام هذه الذاكرة يمكن أن يؤخر التقاط الصوت، ولكن يمكنك إعداد مخازن متعددة. يكتب DMAC إلى المخزن 1، ثم عندما يمتلئ، يُعلم الكود الخاص بك بمعالجة المخزن 1، بينما يكتب DMAC إلى المخزن 2. عندما يمتلئ المخزن 2، يُعلم الكود الخاص بك، ويعود إلى الكتابة في المخزن 1. بهذه الطريقة، طالما أنك تعالج كل مخزن في وقت أقل من الوقت الذي يستغرقه ملء واحد، فلن تفقد أي بيانات.
يمكنك إنشاء نماذج لفهم اللغة باستخدام LUIS، وهي خدمة لفهم اللغة مقدمة من مايكروسوفت كجزء من خدمات Cognitive Services.
@ -169,7 +169,7 @@
1. أثناء إدخال كل مثال، سيبدأ LUIS في اكتشاف الكيانات، وسيقوم بتسطيرها ووضع تسميات عليها.




> رسم تخطيطي بواسطة [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة للحصول على نسخة أكبر.
> رسم توضيحي من [نيتيا ناراسيمهان](https://github.com/nitya). انقر على الصورة لعرض نسخة أكبر.
@ -74,7 +74,7 @@
### خدمة النطق من الخدمات الإدراكية


تحتوي خدمة النطق التي استخدمتها في الدروس السابقة على قدرات ترجمة للتعرف على الكلام. عند التعرف على الكلام، يمكنك طلب النص الخاص بالكلام ليس فقط باللغة نفسها، ولكن أيضًا بلغات أخرى.
@ -82,7 +82,7 @@
### خدمة المترجم من الخدمات الإدراكية


خدمة المترجم هي خدمة ترجمة مخصصة يمكنها ترجمة النصوص من لغة إلى لغة أو أكثر. بالإضافة إلى الترجمة، تدعم مجموعة واسعة من الميزات الإضافية بما في ذلك حجب الألفاظ النابية. كما تتيح لك تقديم ترجمة محددة لكلمة أو جملة معينة، للتعامل مع المصطلحات التي لا تريد ترجمتها، أو التي لها ترجمة معروفة محددة.
> على سبيل المثال، إذا قمت بتدريب LUIS باللغة الإنجليزية، ولكنك ترغب في استخدام الفرنسية كلغة المستخدم، يمكنك ترجمة جمل مثل "اضبط مؤقت لمدة دقيقتين و27 ثانية" من الإنجليزية إلى الفرنسية باستخدام Bing Translate، ثم استخدام زر **الاستماع إلى الترجمة** للتحدث بالترجمة إلى الميكروفون.
>
> 
> 
> على سبيل المثال، إذا قمت بتدريب LUIS باللغة الإنجليزية، ولكنك تريد استخدام الفرنسية كلغة للمستخدم، يمكنك ترجمة جمل مثل "اضبط مؤقتًا لمدة دقيقتين و27 ثانية" من الإنجليزية إلى الفرنسية باستخدام Bing Translate، ثم استخدام زر **الاستماع إلى الترجمة** للتحدث بالترجمة إلى الميكروفون.
>
> 
> 
> على سبيل المثال، إذا قمت بتدريب LUIS باللغة الإنجليزية، ولكنك تريد استخدام الفرنسية كلغة المستخدم، يمكنك ترجمة جمل مثل "اضبط مؤقتًا لمدة دقيقتين و27 ثانية" من الإنجليزية إلى الفرنسية باستخدام Bing Translate، ثم استخدام زر **Listen translation** للتحدث بالترجمة إلى الميكروفون الخاص بك.
>
> 
> 
1. أضف مفتاح API الخاص بخدمة الترجمة والموقع أسفل `SPEECH_LOCATION`:
إذا واجهت أي عوائق أو كان لديك أي أسئلة حول بناء تطبيقات الذكاء الاصطناعي. انضم إلى المتعلمين الآخرين والمطورين ذوي الخبرة في مناقشات حول MCP. هو مجتمع داعم حيث الأسئلة مرحب بها والمعرفة تُشارك بحرية.
إذا علقت أو كان لديك أي أسئلة حول بناء تطبيقات الذكاء الاصطناعي. انضم إلى المتعلمين والزملاء المطورين ذوي الخبرة في مناقشات حول MCP. إنه مجتمع داعم حيث يتم الترحيب بالأسئلة ويُشارك المعرفة بحرية.
1. **انشئ نسخة من المستودع**: اضغط على [](https://GitHub.com/microsoft/IoT-For-Beginners/fork)
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> هذا يمنحك كل ما تحتاجه لإكمال الدورة مع تنزيل أسرع بكثير.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
# إنترنت الأشياء للمبتدئين - منهج دراسي
# إنترنت الأشياء للمبتدئين - منهاج دراسي
يسعد دعاة سحابة Azure في Microsoft أن يقدموا منهجًا دراسيًا لمدة 12 أسبوعًا يتضمن 24 درسًا كلهم عن أساسيات إنترنت الأشياء. يتضمن كل درس اختبارات قبل وبعد الدرس، تعليمات مكتوبة لإكمال الدرس، حلاً، مهمة والمزيد. تتيح طريقتنا التعليمية المبنية على المشاريع التعلم أثناء البناء، وهي طريقة مثبتة لجعل المهارات الجديدة 'تثبت'.
يسعد مناصرو سحابة Azure في Microsoft أن يقدموا منهاجًا لمدة 12 أسبوعًا مكونًا من 24 درسًا حول أساسيات إنترنت الأشياء. يتضمن كل درس اختبارًا قبل وبعد الدرس وتعليمات مكتوبة لإكمال الدرس وحلًا وتمرينًا والمزيد. تسمح طرائق التعليم القائمة على المشاريع لك بالتعلم أثناء البناء، وهي طريقة مثبتة لجعل المهارات الجديدة "تثبت".
تغطي المشاريع رحلة الطعام من المزرعة إلى المائدة. وهذا يشمل الزراعة، اللوجستيات، التصنيع، البيع بالتجزئة والمستهلك - كلها مجالات صناعية شائعة لأجهزة إنترنت الأشياء.
تغطي المشاريع رحلة الطعام من المزرعة إلى المائدة. يشمل ذلك الزراعة، اللوجستيات، التصنيع، البيع بالتجزئة والمستهلك - جميعها مجالات صناعية شائعة لأجهزة إنترنت الأشياء.

> مذكرة مرسومة بواسطة [Nitya Narasimhan](https://github.com/nitya). اضغط على الصورة لرؤية نسخة أكبر.
> رسالة مرسومة بواسطة [Nitya Narasimhan](https://github.com/nitya). اضغط على الصورة لعرض أكبر.
> 🎥 اضغط على الصورة أعلاه لمشاهدة فيديو عن المشروع!
> **للمدرسين**، لقد أدرجنا [بعض الاقتراحات](for-teachers.md) حول كيفية استخدام هذا المنهج. إذا كنت ترغب بإنشاء دروسك الخاصة، أدرجنا أيضًا [قالب الدرس](lesson-template/README.md).
> **المعلمون**، لقد [أدرجنا بعض الاقتراحات](for-teachers.md) حول كيفية استخدام هذا المنهاج. إذا أردتم إنشاء دروسكم الخاصة، فقد أدرجنا أيضًا [قالب درس](lesson-template/README.md).
> **للطلبة**، لاستخدام هذا المنهج بنفسك، استنسخ المستودع كاملاً وأكمل التمارين بنفسك، ابتداءً من اختبار قبلي للمحاضرة، ثم قراءة المحاضرة وإكمال باقي الأنشطة. حاول إنشاء المشاريع من خلال فهم الدروس بدلاً من نسخ كود الحل؛ مع ذلك يتوفر الكود في مجلد /solutions في كل درس موجه نحو المشاريع. فكرة أخرى هي تكوين مجموعة دراسة مع أصدقائك ومراجعة المحتوى معًا. للدراسة الإضافية، نوصي بـ [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn).
> **الطلاب**، لاستخدام هذا المنهاج بأنفسكم، استنسخوا المستودع الكامل وأكملوا التمارين بأنفسكم، بدءًا باختبار ما قبل المحاضرة، ثم قراءة المحاضرة وإكمال بقية الأنشطة. حاولوا إنشاء المشاريع بفهم الدروس بدلاً من نسخ كود الحل؛ ومع ذلك، فإن الكود متاح في مجلدات /solutions في كل درس يركز على المشروع. فكرة أخرى هي تشكيل مجموعة دراسية مع الأصدقاء ومراجعة المحتوى معًا. لمزيد من الدراسة، نوصي بـ [Microsoft Learn](https://docs.microsoft.com/users/jimbobbennett/collections/ke2ehd351jopwr?WT.mc_id=academic-17441-jabenn).
للحصول على نظرة عامة بالفيديو عن هذه الدورة، شاهد هذا الفيديو:
> 🎥 اضغط على الصورة أعلاه لمشاهدة فيديو عن المشروع!
## الطريقة التعليمية
## منهجية التعليم
اخترنا مبدأين تعليميين أثناء بناء هذا المنهج: التأكد من كونه معتمدًا على المشاريع وأنه يتضمن اختبارات متكررة. بنهاية هذه السلسلة، سيكون الطلاب قد بنوا نظام مراقبة وري النباتات، متتبع مركبات، إعداد مصنع ذكي لتتبع وفحص الطعام، ومؤقت طهي يتحكم به الصوت، كما سيتعلمون أساسيات إنترنت الأشياء بما في ذلك كيفية كتابة كود الجهاز، الاتصال بالسحابة، تحليل قياسات البيانات وتشغيل الذكاء الاصطناعي على الحافة.
اخترنا مبدأين تربويين أثناء بناء هذا المنهاج: التأكد من أنه قائم على المشاريع ويتضمن اختبارات متكررة. بنهاية هذه السلسلة، سيكون لدى الطلاب نظام مراقبة وري النباتات، متعقب مركبة، إعداد مصنع ذكي لتتبع وفحص الطعام، ومؤقت طهي يتم التحكم به صوتيًا، وسيتعلمون أساسيات إنترنت الأشياء بما في ذلك كيفية كتابة كود الأجهزة، الاتصال بالسحابة، تحليل البيانات عن بعد وتشغيل الذكاء الاصطناعي على الحافة.
من خلال ضمان توافق المحتوى مع المشاريع، يصبح التعلم أكثر جذبًا للطلاب وتزداد فرص احتفاظهم بالمفاهيم.
من خلال ضمان توافق المحتوى مع المشاريع، يصبح التعلّم أكثر جاذبية للطلاب وستزداد القدرة على الاحتفاظ بالمفاهيم.
بالإضافة إلى ذلك، اختبار بسيط قبل الدرس يوجه نية الطالب نحو تعلم موضوع ما، في حين يضمن اختبار آخر بعد الدرس المزيد من الاحتفاظ بالمعلومات. صُمم هذا المنهج ليكون مرنًا وممتعًا ويمكن أخذه كاملاً أو جزئيًا. تبدأ المشاريع صغيرة وتزداد تعقيدًا تدريجياً بنهاية دورة الـ12 أسبوعًا.
بالإضافة إلى ذلك، يحدد اختبار منخفض المخاطر قبل الدرس نية الطالب نحو تعلم موضوع، بينما يضمن اختبار ثاني بعد الدرس المزيد من الاحتفاظ. صُمم هذا المنهاج ليكون مرنًا وممتعًا ويُمكن دراسته كليًا أو جزئيًا. تبدأ المشاريع صغيرة وتزداد تعقيدًا تدريجيًا بنهاية دورة الـ12 أسبوعًا.
يعتمد كل مشروع على أجهزة فعلية متاحة للطلاب والهواة. يركز كل مشروع على مجال المشروع المحدد، مقدمًا المعرفة الخلفية ذات الصلة. لكي تكون مطورًا ناجحًا، يساعد فهم المجال الذي تحل فيه المشكلات، وتوفير هذه المعرفة الخلفية يسمح للطلاب بالتفكير في حلول إنترنت الأشياء الخاصة بهم وتعلمها في سياق نوع المشكلة الواقعية التي قد يُطلب منهم حلها كمطور إنترنت أشياء. يتعلم الطلاب سبب الحلول التي يبنونها، ويحصلون على تقدير للمستخدم النهائي.
كل مشروع يعتمد على أجهزة مادية متاحة للطلاب وهواة التقنية. يتناول كل مشروع مجال المشروع المحدد، موفرًا المعرفة الخلفية ذات الصلة. لكي تكون مطورًا ناجحًا، من المفيد فهم المجال الذي تحل فيه المشاكل، حيث تتيح هذه المعرفة الخلفية للطلاب التفكير في حلول وإنترنت الأشياء وتعلمهم في سياق نوع المشكلة الواقعية التي قد يُطلب منهم حلها كمطور إنترنت الأشياء. يتعلم الطلاب "لماذا" لحلولهم، ويحصلون على تقدير للمستخدم النهائي.
## الأجهزة
لدينا خياران لأجهزة إنترنت الأشياء لاستخدامها في المشاريع اعتمادًا على التفضيلات الشخصية، ومعرفة لغة البرمجة أو التفضيلات، وأهداف التعلم والتوافر. كما قدمنا نسخة "أجهزة افتراضية" لأولئك الذين لا يمكنهم الوصول إلى الأجهزة، أو يرغبون في التعلم أكثر قبل الالتزام بالشراء. يمكنك قراءة المزيد والعثور على "قائمة تسوق" في [صفحة الأجهزة](./hardware.md)، بما في ذلك روابط لشراء مجموعات كاملة من أصدقائنا في Seeed Studio.
لدينا خياران لأجهزة إنترنت الأشياء لاستخدامها في المشاريع حسب التفضيل الشخصي، معرفة أو تفضيلات لغة البرمجة، أهداف التعلم والتوفر. كما وفرنا نسخة 'افتراضية' للأجهزة لأولئك الذين لا يمتلكون الأجهزة، أو يرغبون في تعلم المزيد قبل الالتزام بالشراء. يمكنك قراءة المزيد والعثور على 'قائمة تسوق' على [صفحة الأجهزة](./hardware.md)، بما في ذلك روابط لشراء مجموعات كاملة من أصدقائنا في Seeed Studio.
> 💁 ابحث عن إرشاداتنا الخاصة بـ [ميثاق السلوك](CODE_OF_CONDUCT.md)، و [المساهمة](CONTRIBUTING.md)، و [الترجمة](TRANSLATIONS.md). نحن نرحب بتعليقاتكم البناءة!
> 💁 يمكنك العثور على [مدونة السلوك](CODE_OF_CONDUCT.md)، و[كيفية المشاركة](CONTRIBUTING.md)، و[إرشادات الترجمة](TRANSLATIONS.md). نحن نرحب بتعليقاتكم البناءة!
>
> 🔧 هل تواجه مشاكل؟ اطلع على [دليل استكشاف الأخطاء وإصلاحها](TROUBLESHOOTING.md) للحصول على حلول للمشاكل الشائعة.
> 🔧 هل تواجه مشاكل؟ اطلع على [دليل استكشاف الأخطاء](TROUBLESHOOTING.md) للحصول على حلول للمشكلات الشائعة.
## تتضمن كل درس:
- ملخص مصور
- ملاحظات مرسومة يدويًا
- فيديو تكميلي اختياري
- اختبار إحماء ما قبل الدرس
- الدرس المكتوب
- للدروس القائمة على المشاريع، إرشادات خطوة بخطوة حول كيفية بناء المشروع
- اختبار تهيئة قبل الدرس
- الدرس مكتوب
- لدرُوس المشاريع، إرشادات خطوة بخطوة لبناء المشروع
- فحوصات المعرفة
- تحدي
- قراءة إضافية
- قراءة تكاملية
- واجب
- [اختبار ما بعد الدرس](https://ff-quizzes.netlify.app/en/)
- [اختبار بعد الدرس](https://ff-quizzes.netlify.app/en/)
> **ملاحظة حول الاختبارات**: جميع الاختبارات موجودة في مجلد quiz-app، بإجمالي 48 اختبارًا يحتوي كل منها على ثلاثة أسئلة. يتم الربط بينها من داخل الدروس لكن يمكن تشغيل تطبيق الاختبارات محليًا أو نشره على Azure؛ اتبع التعليمات في مجلد `quiz-app`. وهي تخضع للتوطين تدريجيًا.
> **ملاحظة عن الاختبارات**: جميع الاختبارات موجودة في مجلد quiz-app، وهناك 48 اختبارًا إجمالاً، يحتوي كل اختبار على ثلاثة أسئلة. يتم ربطها من داخل الدروس ولكن يمكن تشغيل تطبيق الاختبار محليًا أو نشره على Azure؛ اتبع التعليمات في مجلد `quiz-app`. وهي تُترجم تدريجيًا.
## الدروس
| | اسم المشروع | المفاهيم التي تُدرّس | أهداف التعلم | الدرس المرتبط |
| 01 | [البدء](./1-getting-started/README.md) | مقدمة إلى إنترنت الأشياء | تعلّم المبادئ الأساسية لإنترنت الأشياء والمكونات الأساسية لحلول إنترنت الأشياء مثل الحساسات وخدمات السحابة أثناء إعداد جهاز إنترنت الأشياء الأول الخاص بك | [مقدمة إلى إنترنت الأشياء](./1-getting-started/lessons/1-introduction-to-iot/README.md) |
| 02 | [البدء](./1-getting-started/README.md) | تعمق أكثر في إنترنت الأشياء | تعلّم المزيد عن مكونات نظام إنترنت الأشياء، بالإضافة إلى المتحكمات الدقيقة وأجهزة الكمبيوتر ذات اللوحة الواحدة | [تعمق في إنترنت الأشياء](./1-getting-started/lessons/2-deeper-dive/README.md) |
| 03 | [البدء](./1-getting-started/README.md) | التفاعل مع العالم المادي باستخدام الحساسات والمحركات الصغيرة | تعلّم عن الحساسات لجمع البيانات من العالم المادي، والمحركات لإرسال ردود فعل، أثناء بناء ضوء ليلي | [التفاعل مع العالم المادي باستخدام الحساسات والمحركات](./1-getting-started/lessons/3-sensors-and-actuators/README.md) |
| 04 | [البدء](./1-getting-started/README.md) | ربط جهازك بالإنترنت| تعلّم كيفية ربط جهاز إنترنت الأشياء بالإنترنت لإرسال واستقبال الرسائل عن طريق ربط ضوءك الليلي بوسيط MQTT | [ربط جهازك بالإنترنت](./1-getting-started/lessons/4-connect-internet/README.md) |
| 05 | [المزرعة](./2-farm/README.md) | التنبؤ بنمو النبات | تعلّم كيفية التنبؤ بنمو النبات باستخدام بيانات درجة الحرارة التي يلتقطها جهاز إنترنت الأشياء | [التنبؤ بنمو النبات](./2-farm/lessons/1-predict-plant-growth/README.md) |
| 06 | [المزرعة](./2-farm/README.md) |الكشف عن رطوبة التربة | تعلّم كيفية الكشف عن رطوبة التربة ومعايرة حساس رطوبة التربة | [الكشف عن رطوبة التربة](./2-farm/lessons/2-detect-soil-moisture/README.md) |
| 07 | [المزرعة](./2-farm/README.md) | ري النبات تلقائيًا | تعلّم كيفية أتمتة وجدولة الري باستخدام مرحل و MQTT | [ري النبات تلقائيًا](./2-farm/lessons/3-automated-plant-watering/README.md) |
| 08 | [المزرعة](./2-farm/README.md) | نقل نباتك إلى السحابة | تعلّم عن السحابة وخدمات إنترنت الأشياء المستضافة على السحابة وكيفية ربط نباتك بها بدلاً من وسيط MQTT عام | [نقل نباتك إلى السحابة](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) |
| 09 | [المزرعة](./2-farm/README.md) | نقل منطق التطبيق الخاص بك إلى السحابة | تعلّم كيفية كتابة منطق تطبيق في السحابة يستجيب لرسائل إنترنت الأشياء | [نقل منطق التطبيق إلى السحابة](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) |
| 10 | [المزرعة](./2-farm/README.md) | الحفاظ على أمان نباتك | تعلّم عن الأمان في إنترنت الأشياء وكيفية الحفاظ على أمان نباتك باستخدام المفاتيح والشهادات | [الحفاظ على أمان نباتك](./2-farm/lessons/6-keep-your-plant-secure/README.md) |
| 11 | [النقل](./3-transport/README.md) | تتبع الموقع | تعلّم عن تتبع الموقع بتقنية GPS لأجهزة إنترنت الأشياء | [تتبع الموقع](./3-transport/lessons/1-location-tracking/README.md) |
| 12 | [النقل](./3-transport/README.md) | تخزين بيانات الموقع | تعلّم كيفية تخزين بيانات إنترنت الأشياء ليتم عرضها أو تحليلها لاحقًا | [تخزين بيانات الموقع](./3-transport/lessons/2-store-location-data/README.md) |
| 13 | [النقل](./3-transport/README.md) | عرض بيانات الموقع | تعلّم عن عرض بيانات الموقع على خريطة وكيف تمثل الخرائط العالم الثلاثي الأبعاد الحقيقي في بعدين | [عرض بيانات الموقع](./3-transport/lessons/3-visualize-location-data/README.md) |
| 14 | [النقل](./3-transport/README.md) | المناطق الجغرافية المحمية | تعلّم عن المناطق الجغرافية المحمية وكيف يمكن استخدامها لتنبيهك عندما تكون المركبات في سلسلة التوريد قريبة من وجهتها | [المناطق الجغرافية المحمية](./3-transport/lessons/4-geofences/README.md) |
| 15 | [التصنيع](./4-manufacturing/README.md) | تدريب كاشف جودة الفواكه | تعلّم عن تدريب مصنف الصور في السحابة لاكتشاف جودة الفواكه | [تدريب كاشف جودة الفواكه](./4-manufacturing/lessons/1-train-fruit-detector/README.md) |
| 16 | [التصنيع](./4-manufacturing/README.md) | التحقق من جودة الفواكه من جهاز إنترنت الأشياء | تعلّم عن استخدام كاشف جودة الفواكه الخاص بك من جهاز إنترنت الأشياء | [التحقق من جودة الفواكه من جهاز](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) |
| 17 | [التصنيع](./4-manufacturing/README.md) | تشغيل كاشف الفواكه على الحافة | تعلّم عن تشغيل كاشف الفواكه الخاص بك على جهاز إنترنت الأشياء على الحافة | [تشغيل كاشف الفواكه على الحافة](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) |
| 18 | [التصنيع](./4-manufacturing/README.md) | تفعيل كشف جودة الفواكه من حساس | تعلّم عن تفعيل كشف جودة الفواكه من حساس | [تفعيل كشف جودة الفواكه من حساس](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) |
| 19 | [التجزئة](./5-retail/README.md) | تدريب كاشف المخزون | تعلّم كيفية استخدام كشف الكائنات لتدريب كاشف مخزون لعد المخزون في متجر | [تدريب كاشف المخزون](./5-retail/lessons/1-train-stock-detector/README.md) |
| 20 | [التجزئة](./5-retail/README.md) | التحقق من المخزون من جهاز إنترنت الأشياء | تعلّم كيفية التحقق من المخزون من جهاز إنترنت الأشياء باستخدام نموذج كشف الكائنات | [التحقق من المخزون من جهاز](./5-retail/lessons/2-check-stock-device/README.md) |
| 21 | [المستهلك](./6-consumer/README.md) | التعرف على الصوت باستخدام جهاز إنترنت الأشياء | تعلّم كيفية التعرف على الصوت من جهاز إنترنت الأشياء لبناء مؤقت ذكي | [التعرف على الصوت باستخدام جهاز إنترنت الأشياء](./6-consumer/lessons/1-speech-recognition/README.md) |
| 22 | [المستهلك](./6-consumer/README.md) | فهم اللغة | تعلّم كيفية فهم الجمل المنطوقة لجهاز إنترنت الأشياء | [فهم اللغة](./6-consumer/lessons/2-language-understanding/README.md) |
| 23 | [المستهلك](./6-consumer/README.md) | ضبط مؤقت وتقديم ردود صوتية | تعلّم كيفية ضبط مؤقت على جهاز إنترنت الأشياء وتقديم ردود صوتية عند ضبط المؤقت وعندما ينتهي | [ضبط مؤقت وتقديم ردود صوتية](./6-consumer/lessons/3-spoken-feedback/README.md) |
| 24 | [المستهلك](./6-consumer/README.md) | دعم عدة لغات | تعلّم كيفية دعم عدة لغات، سواء عند التحدث إلى الجهاز أو الردود من مؤقتك الذكي | [دعم عدة لغات](./6-consumer/lessons/4-multiple-language-support/README.md) |
| | اسم المشروع | المفاهيم المُعلَّمة | أهداف التعلم | الدرس المرتبط |
| 01 | [البدء](./1-getting-started/README.md) | مقدمة عن إنترنت الأشياء | تعلّم المبادئ الأساسية لإنترنت الأشياء والكتل الأساسية لحلول إنترنت الأشياء مثل المستشعرات وخدمات السحابة أثناء إعداد جهازك الأول لإنترنت الأشياء | [مقدمة عن إنترنت الأشياء](./1-getting-started/lessons/1-introduction-to-iot/README.md) |
| 02 | [البدء](./1-getting-started/README.md) | نظرة أعمق على إنترنت الأشياء | تعلّم المزيد عن مكونات نظام إنترنت الأشياء، بالإضافة إلى المتحكمات الدقيقة وأجهزة الكمبيوتر ذات اللوحات المفردة | [نظرة أعمق على إنترنت الأشياء](./1-getting-started/lessons/2-deeper-dive/README.md) |
| 03 | [البدء](./1-getting-started/README.md) | التفاعل مع العالم المادي باستخدام المستشعرات والمشغلات | تعلّم عن المستشعرات لجمع البيانات من العالم المادي، والمشغلات لإرسال الردود، أثناء بناء ضوء ليلي | [التفاعل مع العالم المادي باستخدام المستشعرات والمشغلات](./1-getting-started/lessons/3-sensors-and-actuators/README.md) |
| 04 | [البدء](./1-getting-started/README.md) | ربط جهازك بالإنترنت | تعلّم كيف تربط جهاز إنترنت الأشياء بالإنترنت لإرسال واستقبال الرسائل عن طريق ربط ضوءك الليلي بوسيط MQTT | [ربط جهازك بالإنترنت](./1-getting-started/lessons/4-connect-internet/README.md) |
| 05 | [المزرعة](./2-farm/README.md) | التنبؤ بنمو النبات | تعلّم كيفية التنبؤ بنمو النبات باستخدام بيانات درجة الحرارة التي يلتقطها جهاز إنترنت الأشياء | [التنبؤ بنمو النبات](./2-farm/lessons/1-predict-plant-growth/README.md) |
| 06 | [المزرعة](./2-farm/README.md) | اكتشاف رطوبة التربة | تعلّم كيفية اكتشاف رطوبة التربة ومعايرة حسّاس رطوبة التربة | [اكتشاف رطوبة التربة](./2-farm/lessons/2-detect-soil-moisture/README.md) |
| 07 | [المزرعة](./2-farm/README.md) | ري النباتات أوتوماتيكيًا | تعلّم كيفية أتمتة توقيت الري باستخدام مرحل و MQTT | [ري النباتات أوتوماتيكيًا](./2-farm/lessons/3-automated-plant-watering/README.md) |
| 08 | [المزرعة](./2-farm/README.md) | نقل نباتك إلى السحابة | تعلّم عن السحابة وخدمات إنترنت الأشياء المستضافة على السحابة وكيفية ربط نباتك بأحد هذهالخدمات بدلاً من وسيط MQTT عام | [نقل نباتك إلى السحابة](./2-farm/lessons/4-migrate-your-plant-to-the-cloud/README.md) |
| 09 | [المزرعة](./2-farm/README.md) | نقل منطق التطبيق إلى السحابة | تعلّم كيف يمكنك كتابة منطق التطبيق في السحابة الذي يستجيب لرسائل إنترنت الأشياء | [نقل منطق التطبيق إلى السحابة](./2-farm/lessons/5-migrate-application-to-the-cloud/README.md) |
| 10 | [المزرعة](./2-farm/README.md) | حماية نباتك | تعلّم عن الأمان مع إنترنت الأشياء وكيف تحمي نباتك باستخدام المفاتيح والشهادات | [حماية نباتك](./2-farm/lessons/6-keep-your-plant-secure/README.md) |
| 11 | [النقل](./3-transport/README.md) | تتبع الموقع | تعلّم عن تتبع الموقع عبر GPS لأجهزة إنترنت الأشياء | [تتبع الموقع](./3-transport/lessons/1-location-tracking/README.md) |
| 12 | [النقل](./3-transport/README.md) | تخزين بيانات الموقع | تعلّم كيفية تخزين بيانات إنترنت الأشياء ليتم عرضها أو تحليلها لاحقًا | [تخزين بيانات الموقع](./3-transport/lessons/2-store-location-data/README.md) |
| 13 | [النقل](./3-transport/README.md) | تصور بيانات الموقع | تعلّم عن تصور بيانات الموقع على خريطة، وكيف تمثل الخرائط العالم الحقيقي الثلاثي الأبعاد في بُعدين | [تصور بيانات الموقع](./3-transport/lessons/3-visualize-location-data/README.md) |
| 14 | [النقل](./3-transport/README.md) | الأسوار الجغرافية | تعلّم عن الأسوار الجغرافية، وكيف يمكن استخدامها لتنبيه عندما تقترب المركبات في سلسلة الإمداد من وجهتها | [الأسوار الجغرافية](./3-transport/lessons/4-geofences/README.md) |
| 15 | [التصنيع](./4-manufacturing/README.md) | تدريب كاشف جودة الفواكه | تعلّم عن تدريب مصنّف الصور في السحابة للكشف عن جودة الفواكه | [تدريب كاشف جودة الفواكه](./4-manufacturing/lessons/1-train-fruit-detector/README.md) |
| 16 | [التصنيع](./4-manufacturing/README.md) | فحص جودة الفواكه من جهاز إنترنت الأشياء | تعلّم عن استخدام كاشف جودة الفاكهة الخاص بك من جهاز إنترنت الأشياء | [فحص جودة الفواكه من جهاز إنترنت الأشياء](./4-manufacturing/lessons/2-check-fruit-from-device/README.md) |
| 17 | [التصنيع](./4-manufacturing/README.md) | تشغيل كاشف الفواكه على الحافة | تعلّم عن تشغيل كاشف الفواكه الخاص بك على جهاز إنترنت الأشياء عند الحافة | [تشغيل كاشف الفواكه على الحافة](./4-manufacturing/lessons/3-run-fruit-detector-edge/README.md) |
| 18 | [التصنيع](./4-manufacturing/README.md) | تفعيل كشف جودة الفواكه من مستشعر | تعلّم كيف تفعّل كشف جودة الفاكهة من مستشعر | [تفعيل كشف جودة الفواكه من مستشعر](./4-manufacturing/lessons/4-trigger-fruit-detector/README.md) |
| 19 | [التجزئة](./5-retail/README.md) | تدريب كاشف للمخزون | تعلّم كيفية استخدام كشف الأشياء لتدريب كاشف للمخزون لحساب المخزون في المتجر | [تدريب كاشف للمخزون](./5-retail/lessons/1-train-stock-detector/README.md) |
| 20 | [التجزئة](./5-retail/README.md) | التحقق من المخزون من جهاز إنترنت الأشياء | تعلّم كيفية التحقق من المخزون من جهاز إنترنت الأشياء باستخدام نموذج كشف الأشياء | [التحقق من المخزون من جهاز إنترنت الأشياء](./5-retail/lessons/2-check-stock-device/README.md) |
| 21 | [المستهلك](./6-consumer/README.md) | التعرف على الكلام باستخدام جهاز إنترنت الأشياء | تعلّم كيفية التعرف على الكلام من جهاز إنترنت الأشياء لبناء مؤقت ذكي | [التعرف على الكلام باستخدام جهاز إنترنت الأشياء](./6-consumer/lessons/1-speech-recognition/README.md) |
| 22 | [المستهلك](./6-consumer/README.md) | فهم اللغة | تعلّم كيفية فهم الجمل المنطوقة إلى جهاز إنترنت الأشياء | [فهم اللغة](./6-consumer/lessons/2-language-understanding/README.md) |
| 23 | [المستهلك](./6-consumer/README.md) | ضبط مؤقت وتقديم ردود كلامية | تعلّم كيفية ضبط مؤقت على جهاز إنترنت الأشياء وتقديم ردود كلامية عن وقت ضبط المؤقت ووقت انتهائه | [ضبط مؤقت وتقديم ردود كلامية](./6-consumer/lessons/3-spoken-feedback/README.md) |
| 24 | [المستهلك](./6-consumer/README.md) | دعم لغات متعددة | تعلّم كيفية دعم لغات متعددة، سواء في التحدث إليها أو الردود من مؤقتك الذكي | [دعم لغات متعددة](./6-consumer/lessons/4-multiple-language-support/README.md) |
## الوصول دون اتصال
يمكنك تشغيل هذا التوثيق دون اتصال عن طريق استخدام [Docsify](https://docsify.js.org/#/). فرّع هذا المستودع، [ثبّت Docsify](https://docsify.js.org/#/quickstart) على جهازك المحلي، ثم في المجلد الجذر لهذا المستودع، اكتب `docsify serve`. سيتم تقديم الموقع على المنفذ 3000 على جهازك المحلي: `localhost:3000`.
يمكنك تشغيل هذا التوثيق دون اتصال باستخدام [Docsify](https://docsify.js.org/#/). فرّع هذا المستودع، [ثبّت Docsify](https://docsify.js.org/#/quickstart) على جهازك المحلي، ثم في مجلد الجذر لهذا المستودع، اكتب `docsify serve`. سيتم تقديم الموقع على المنفذ 3000 على مضيفك المحلي: `localhost:3000`.
## اختبار
## الاختبار
شكرًا للمجتمع على استضافته للاختبار التفاعلي الذي يختبر معرفتك في كل فصل من الفصول. يمكنك اختبار معرفتك [هنا](https://ff-quizzes.netlify.app/en/)
شكرًا للمجتمع على استضافة الاختبار التفاعلي الذي يختبر معرفتك في كل فصل. يمكنك اختبار معرفتك [هنا](https://ff-quizzes.netlify.app/en/)
### PDF
يمكنك إنشاء ملف PDF من هذا المحتوى للوصول دون اتصال إذا لزم الأمر. للقيام بذلك، تأكد من تثبيت [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) وشغّل الأوامر التالية في المجلد الجذر لهذا المستودع:
يمكنك إنشاء ملف PDF لهذا المحتوى للاستخدام دون اتصال إذا لزم الأمر. للقيام بذلك، تأكد من أنك قمت بتثبيت [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) وشغّل الأوامر التالية في مجلد الجذر لهذا المستودع:
```sh
npm i
@ -154,60 +164,59 @@ npm run convert
### الشرائح
توجد مجموعات شرائح لبعض الدروس في مجلد [slides](../../slides).
هناك عروض شرائح لبعض الدروس في مجلد [slides](../../slides).
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
يمكنك العثور على جميع الإسنادات الخاصة بالصور المستخدمة في هذا المنهج عند الحاجة في ملف [الإسنادات](./attributions.md).
يمكنك العثور على جميع حقوق استخدام الصور المستخدمة في هذا المنهج الدراسي حيثما يلزم في [حقوق الاستخدام](./attributions.md).
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**تنويه**:
تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للحفاظ على الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار الوثيقة الأصلية بلغتها الأصلية المصدر الرسمي والمعتمد. للمعلومات الحيوية، يُنصح بالترجمة الاحترافية من قبل مترجم بشري. نحن غير مسؤولين عن أي سوء فهم أو تحريف ينشأ عن استخدام هذه الترجمة.
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار الوثيقة الأصلية بلغتها الأصلية المصدر الموثوق. بالنسبة للمعلومات الهامة، يُنصح باللجوء إلى ترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة.
**[إنترنت الأشياء للمبتدئين مع Seeed وMicrosoft - مجموعة البداية لـ Raspberry Pi 4](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)**
[](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)
[](https://www.seeedstudio.com/IoT-for-beginners-with-Seeed-and-Microsoft-Raspberry-Pi-Starter-Kit-p-5004.html)


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -203,7 +203,7 @@ Als zweiten "Hallo Welt"-Schritt starten Sie die CounterFit-App und verbinden Ih
Die App wird gestartet und in Ihrem Webbrowser geöffnet:


Sie wird als *Disconnected* (Getrennt) angezeigt, und die LED in der oberen rechten Ecke ist ausgeschaltet.
@ -224,7 +224,7 @@ Als zweiten "Hallo Welt"-Schritt starten Sie die CounterFit-App und verbinden Ih
1. Führen Sie in diesem neuen Terminal die Datei `app.py` wie zuvor aus. Der Status von CounterFit ändert sich zu **Connected**, und die LED leuchtet auf.


> 💁 Sie finden diesen Code im Ordner [code/virtual-device](../../../../../1-getting-started/lessons/1-introduction-to-iot/code/virtual-device).


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -38,7 +38,7 @@ Der **Ding**-Teil von IoT bezieht sich auf ein Gerät, das mit der physischen We
Diese Geräte interagieren mit der physischen Welt, entweder durch Sensoren, die Daten aus ihrer Umgebung sammeln, oder durch Steuerung von Ausgängen oder Aktoren, um physische Änderungen vorzunehmen. Ein typisches Beispiel hierfür ist ein intelligenter Thermostat – ein Gerät, das über einen Temperatursensor, eine Möglichkeit zur Einstellung einer gewünschten Temperatur wie ein Drehregler oder Touchscreen und eine Verbindung zu einem Heiz- oder Kühlsystem verfügt, das eingeschaltet wird, wenn die gemessene Temperatur außerhalb des gewünschten Bereichs liegt. Der Temperatursensor erkennt, dass der Raum zu kalt ist, und ein Aktor schaltet die Heizung ein.


Es gibt eine riesige Bandbreite an verschiedenen Dingen, die als IoT-Geräte fungieren können, von spezieller Hardware, die eine Sache erfasst, bis hin zu universellen Geräten, sogar Ihrem Smartphone! Ein Smartphone kann Sensoren verwenden, um die Welt um sich herum zu erkennen, und Aktoren, um mit der Welt zu interagieren – zum Beispiel mit einem GPS-Sensor, um Ihren Standort zu bestimmen, und einem Lautsprecher, um Ihnen Navigationsanweisungen zu einem Ziel zu geben.
@ -54,7 +54,7 @@ Geräte verbinden sich auch nicht immer direkt über WLAN oder kabelgebundene Ve
Im Beispiel eines intelligenten Thermostats würde sich der Thermostat über das Heim-WLAN mit einem Cloud-Dienst verbinden. Er würde die Temperaturdaten an diesen Cloud-Dienst senden, und von dort aus würden sie in einer Art Datenbank gespeichert, sodass der Hausbesitzer die aktuellen und vergangenen Temperaturen über eine Telefon-App überprüfen kann. Ein anderer Dienst in der Cloud würde wissen, welche Temperatur der Hausbesitzer wünscht, und Nachrichten über den Cloud-Dienst zurück an das IoT-Gerät senden, um dem Heizsystem mitzuteilen, ob es ein- oder ausgeschaltet werden soll.


Eine noch intelligentere Version könnte KI in der Cloud verwenden, die Daten von anderen Sensoren, die mit anderen IoT-Geräten verbunden sind, wie Belegungssensoren, die erkennen, welche Räume genutzt werden, sowie Daten wie Wetter und sogar Ihren Kalender, um Entscheidungen darüber zu treffen, wie die Temperatur intelligent eingestellt werden kann. Zum Beispiel könnte sie Ihre Heizung ausschalten, wenn sie aus Ihrem Kalender liest, dass Sie im Urlaub sind, oder die Heizung raumweise ausschalten, je nachdem, welche Räume Sie nutzen, und aus den Daten lernen, um mit der Zeit immer genauer zu werden.
@ -94,7 +94,7 @@ Je schneller der Taktzyklus, desto mehr Anweisungen können pro Sekunde verarbei
> 💁 CPUs führen Programme mit dem [Fetch-Decode-Execute-Zyklus](https://wikipedia.org/wiki/Instruction_cycle) aus. Bei jedem Taktzyklus holt die CPU die nächste Anweisung aus dem Speicher, dekodiert sie und führt sie aus, z. B. mit einer arithmetisch-logischen Einheit (ALU), um zwei Zahlen zu addieren. Einige Ausführungen benötigen mehrere Ticks, sodass der nächste Zyklus beim nächsten Tick nach Abschluss der Anweisung ausgeführt wird.


Mikrocontroller haben viel niedrigere Taktgeschwindigkeiten als Desktop- oder Laptop-Computer oder sogar die meisten Smartphones. Das Wio Terminal hat beispielsweise eine CPU, die mit 120MHz oder 120.000.000 Zyklen pro Sekunde läuft.
@ -182,7 +182,7 @@ Arduino-Boards werden in C oder C++ programmiert. Die Verwendung von C/C++ ermö
In der `setup`-Funktion schreiben Sie Ihren Initialisierungscode, wie z. B. die Verbindung mit WiFi und Cloud-Diensten oder die Initialisierung von Pins für Eingabe und Ausgabe. Ihr Code in der `loop`-Funktion enthält dann die Verarbeitung, wie das Lesen von Sensorwerten und das Senden dieser Werte in die Cloud. Normalerweise fügen Sie am Ende jeder Schleife eine Verzögerung ein, z. B. wenn Sie Sensordaten nur alle 10 Sekunden senden möchten. Dadurch kann der Mikrocontroller Energie sparen, indem er schläft, und die Schleife wird erst nach 10 Sekunden erneut ausgeführt.


✅ Diese Programmarchitektur wird als *Ereignisschleife* oder *Nachrichtenschleife* bezeichnet. Viele Anwendungen verwenden dies im Hintergrund, und es ist der Standard für die meisten Desktop-Anwendungen, die auf Betriebssystemen wie Windows, macOS oder Linux laufen. Die `loop`-Funktion lauscht auf Nachrichten von Benutzeroberflächenkomponenten wie Tasten oder Geräten wie der Tastatur und reagiert darauf. Mehr dazu können Sie in diesem [Artikel über die Ereignisschleife](https://wikipedia.org/wiki/Event_loop) lesen.
# Interaktion mit der physischen Welt durch Sensoren und Aktoren


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -92,7 +92,7 @@ Digitale Sensoren erfassen wie analoge Sensoren die Welt um sie herum durch Änd
Der einfachste digitale Sensor ist ein Knopf oder Schalter. Dies ist ein Sensor mit zwei Zuständen, ein oder aus.


Pins an IoT-Geräten wie GPIO-Pins können dieses Signal direkt als 0 oder 1 messen. Wenn die gesendete Spannung mit der zurückgegebenen Spannung übereinstimmt, wird der Wert 1 gelesen, andernfalls wird der Wert 0 gelesen. Es ist keine Umwandlung des Signals erforderlich, es kann nur 1 oder 0 sein.
@ -125,7 +125,7 @@ Einige gängige Aktoren sind:
Folgen Sie der entsprechenden Anleitung unten, um einen Aktor zu Ihrem IoT-Gerät hinzuzufügen, der durch den Sensor gesteuert wird, um ein IoT-Nachtlicht zu bauen. Es wird Lichtpegel vom Lichtsensor erfassen und einen Aktor in Form einer LED verwenden, um Licht abzugeben, wenn der erkannte Lichtpegel zu niedrig ist.


@ -140,7 +140,7 @@ Wie Sensoren sind Aktoren entweder analog oder digital.
Analoge Aktoren nehmen ein analoges Signal und wandeln es in eine Art Interaktion um, wobei sich die Interaktion je nach angelegter Spannung ändert.
Ein Beispiel ist ein dimmbares Licht, wie Sie es vielleicht in Ihrem Haus haben. Die Menge der angelegten Spannung bestimmt, wie hell es leuchtet.


Wie bei Sensoren arbeiten IoT-Geräte mit digitalen Signalen, nicht mit analogen. Das bedeutet, dass ein IoT-Gerät einen Digital-zu-Analog-Wandler (DAC) benötigt, entweder direkt im Gerät oder auf einer Anschlussplatine, um ein analoges Signal zu senden. Dieser Wandler konvertiert die 0en und 1en des IoT-Geräts in eine analoge Spannung, die der Aktuator verwenden kann.
@ -187,7 +187,7 @@ Digitale Aktuatoren, wie digitale Sensoren, haben entweder zwei Zustände, die d
Ein einfacher digitaler Aktuator ist eine LED. Wenn ein Gerät ein digitales Signal von 1 sendet, wird eine hohe Spannung gesendet, die die LED zum Leuchten bringt. Wenn ein digitales Signal von 0 gesendet wird, fällt die Spannung auf 0V und die LED erlischt.


✅ Welche anderen einfachen 2-Zustands-Aktuatoren fallen dir ein? Ein Beispiel ist ein Solenoid, ein Elektromagnet, der aktiviert werden kann, um Dinge wie das Bewegen eines Türbolzens zum Verriegeln/Entriegeln einer Tür zu erledigen.
@ -26,7 +26,7 @@ Die Grove LED wird als Modul mit einer Auswahl an LEDs geliefert, sodass du die
Verbinde die LED.


1. Wähle deine Lieblings-LED aus und stecke die Beine in die beiden Löcher des LED-Moduls.
@ -40,7 +40,7 @@ Verbinde die LED.
1. Schalte den Raspberry Pi aus und verbinde das andere Ende des Grove-Kabels mit der digitalen Buchse **D5** auf dem Grove Base Hat, der am Pi angebracht ist. Diese Buchse ist die zweite von links in der Reihe der Buchsen neben den GPIO-Pins.


1. Stecke ein Ende eines Grove-Kabels in die Buchse des Lichtsensormoduls. Es passt nur in einer Richtung.
1. Schalte den Raspberry Pi aus und verbinde das andere Ende des Grove-Kabels mit der analogen Buchse, die mit **A0** auf dem Grove Base Hat markiert ist. Diese Buchse ist die zweite von rechts in der Reihe der Buchsen neben den GPIO-Pins.


Sobald die LED erstellt wurde, kannst du die Farbe mit dem *Color*-Picker ändern. Wähle die Schaltfläche **Set**, um die Farbe zu ändern, nachdem du sie ausgewählt hast.
@ -28,11 +28,11 @@ Fügen Sie den Lichtsensor zur CounterFit-App hinzu.
1. Wählen Sie die Schaltfläche **Add**, um den Lichtsensor auf Pin 0 zu erstellen.


Der Lichtsensor wird erstellt und erscheint in der Sensorenliste.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -47,7 +47,7 @@ MQTT ist das beliebteste Kommunikationsprotokoll für IoT-Geräte und wird in di
MQTT hat einen einzigen Broker und mehrere Clients. Alle Clients verbinden sich mit dem Broker, und der Broker leitet Nachrichten an die relevanten Clients weiter. Nachrichten werden über benannte Themen (Topics) geroutet, anstatt direkt an einen einzelnen Client gesendet zu werden. Ein Client kann ein Thema veröffentlichen, und alle Clients, die dieses Thema abonniert haben, erhalten die Nachricht.


✅ Recherchieren Sie. Wenn Sie viele IoT-Geräte haben, wie können Sie sicherstellen, dass Ihr MQTT-Broker alle Nachrichten verarbeiten kann?
@ -69,7 +69,7 @@ Anstatt sich mit den Komplexitäten der Einrichtung eines MQTT-Brokers im Rahmen
> 💁 Dieser Test-Broker ist öffentlich und nicht sicher. Jeder könnte zuhören, was Sie veröffentlichen, daher sollte er nicht mit Daten verwendet werden, die privat bleiben müssen.


Folgen Sie dem entsprechenden Schritt unten, um Ihr Gerät mit dem MQTT-Broker zu verbinden:
@ -350,7 +350,7 @@ Für Maschinen möchten Sie möglicherweise die Daten behalten, insbesondere wen
IoT-Geräteentwickler sollten auch berücksichtigen, ob das IoT-Gerät während eines Internetausfalls oder eines Signalverlusts aufgrund des Standorts verwendet werden kann. Ein intelligentes Thermostat sollte in der Lage sein, einige begrenzte Entscheidungen zur Steuerung der Heizung zu treffen, wenn es aufgrund eines Ausfalls keine Telemetrie an die Cloud senden kann.
[](https://twitter.com/internetofshit/status/1315736960082808832)
[](https://twitter.com/internetofshit/status/1315736960082808832)
Damit MQTT einen Verlust der Konnektivität bewältigen kann, müssen das Geräte- und der Servercode dafür verantwortlich sein, die Nachrichtenübermittlung sicherzustellen, falls dies erforderlich ist, beispielsweise durch die Anforderung, dass alle gesendeten Nachrichten durch zusätzliche Nachrichten zu einem Antwortthema beantwortet werden, und falls nicht, werden sie manuell in eine Warteschlange gestellt, um später erneut abgespielt zu werden.
@ -358,7 +358,7 @@ Damit MQTT einen Verlust der Konnektivität bewältigen kann, müssen das Gerät
Befehle sind Nachrichten, die von der Cloud an ein Gerät gesendet werden, um es anzuweisen, etwas zu tun. Meistens geht es darum, eine Art Ausgabe über einen Aktuator zu geben, aber es kann auch eine Anweisung für das Gerät selbst sein, wie z. B. einen Neustart durchzuführen oder zusätzliche Telemetrie zu sammeln und als Antwort auf den Befehl zurückzugeben.


Ein Thermostat könnte einen Befehl von der Cloud erhalten, die Heizung einzuschalten. Basierend auf den Telemetriedaten aller Sensoren hat der Cloud-Dienst entschieden, dass die Heizung eingeschaltet werden sollte, und sendet daher den entsprechenden Befehl.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -102,7 +102,7 @@ Die Schritte, um dies manuell zu tun, sind:
Zum Beispiel, wenn die höchste Temperatur des Tages 25°C und die niedrigste 12°C beträgt:


@ -33,7 +33,7 @@ Sobald du Temperaturdaten hast, kannst du das Jupyter Notebook in diesem Reposit
Jupyter wird gestartet und öffnet das Notebook in deinem Browser. Arbeite die Anweisungen im Notebook durch, um die gemessenen Temperaturen zu visualisieren und die Growing Degree Days zu berechnen.
1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des Feuchtigkeits- und Temperatursensors. Es passt nur in einer Richtung.
1. Schalten Sie den Raspberry Pi aus und verbinden Sie das andere Ende des Grove-Kabels mit der digitalen Buchse, die mit **D5** auf dem Grove Base Hat des Pi markiert ist. Diese Buchse ist die zweite von links in der Reihe der Buchsen neben den GPIO-Pins.


@ -38,11 +38,11 @@ Fügen Sie die Feuchtigkeits- und Temperatursensoren zur CounterFit-App hinzu.
1. Wählen Sie die Schaltfläche **Add**, um den Feuchtigkeitssensor auf Pin 5 zu erstellen.


Der Feuchtigkeitssensor wird erstellt und erscheint in der Sensorenliste.
@ -54,11 +54,11 @@ Fügen Sie die Feuchtigkeits- und Temperatursensoren zur CounterFit-App hinzu.
1. Wählen Sie die Schaltfläche **Add**, um den Temperatursensor auf Pin 6 zu erstellen.


Der Temperatursensor wird erstellt und erscheint in der Sensorenliste.
@ -13,7 +13,7 @@ I²C hat einen Bus, der aus 2 Hauptleitungen sowie 2 Stromleitungen besteht:
| VCC | Versorgungsspannung | Die Stromversorgung für die Geräte. Diese ist mit den SDA- und SCL-Leitungen verbunden, um deren Stromversorgung über einen Pull-up-Widerstand bereitzustellen, der das Signal ausschaltet, wenn kein Gerät der Controller ist. |
| GND | Masse | Dies stellt eine gemeinsame Masse für den Stromkreis bereit. |


Um Daten zu senden, gibt ein Gerät eine Startbedingung aus, um anzuzeigen, dass es bereit ist, Daten zu senden. Es wird dann zum Controller. Der Controller sendet anschließend die Adresse des Geräts, mit dem er kommunizieren möchte, sowie die Information, ob er Daten lesen oder schreiben möchte. Nachdem die Daten übertragen wurden, sendet der Controller eine Stoppbedingung, um anzuzeigen, dass er fertig ist. Danach kann ein anderes Gerät zum Controller werden und Daten senden oder empfangen.
@ -20,7 +20,7 @@ Du musst diese Schritte mehrfach wiederholen, um die benötigten Messwerte zu er
Der gravimetrische Bodenfeuchtigkeitsgehalt wird wie folgt berechnet:


* W
- das Gewicht des nassen Bodens
@ -29,7 +29,7 @@ Der gravimetrische Bodenfeuchtigkeitsgehalt wird wie folgt berechnet:
Zum Beispiel: Angenommen, du hast eine Bodenprobe, die 212g nass und 197g trocken wiegt.
1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des Bodenfeuchtigkeitssensors. Es passt nur in einer Richtung.
1. Schalten Sie den Raspberry Pi aus und verbinden Sie das andere Ende des Grove-Kabels mit der analogen Buchse, die mit **A0** auf dem Grove Base Hat des Raspberry Pi markiert ist. Diese Buchse befindet sich in der zweiten Position von rechts in der Reihe der Buchsen neben den GPIO-Pins.


1. Stecken Sie den Bodenfeuchtigkeitssensor in die Erde. Der Sensor hat eine Markierung für die maximale Einstecktiefe – eine weiße Linie quer über den Sensor. Stecken Sie den Sensor bis zu dieser Linie, aber nicht darüber hinaus, in die Erde.
@ -34,11 +34,11 @@ Fügen Sie den Bodenfeuchtigkeitssensor zur CounterFit-App hinzu.
1. Wählen Sie die Schaltfläche **Add**, um den *Soil Moisture*-Sensor auf Pin 0 zu erstellen.


Der Bodenfeuchtigkeitssensor wird erstellt und erscheint in der Sensorliste.
@ -18,7 +18,7 @@ Der Grove Bodenfeuchtigkeitssensor kann an den konfigurierbaren Analog-/Digital-
Schließen Sie den Bodenfeuchtigkeitssensor an.


1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des Bodenfeuchtigkeitssensors. Es passt nur in einer Richtung hinein.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -32,7 +32,7 @@ IoT-Geräte verwenden eine niedrige Spannung. Während dies für Sensoren und Ni
Die Lösung besteht darin, eine Pumpe an eine externe Stromversorgung anzuschließen und einen Aktor zu verwenden, um die Pumpe einzuschalten, ähnlich wie Sie ein Licht einschalten würden. Es braucht nur eine winzige Menge Energie (in Form der Energie in Ihrem Körper), um mit Ihrem Finger einen Schalter umzulegen, und dieser verbindet das Licht mit dem Stromnetz, das mit 110V/240V läuft.


> 🎓 [Netzstrom](https://wikipedia.org/wiki/Mains_electricity) bezeichnet die Elektrizität, die in vielen Teilen der Welt über nationale Infrastrukturen an Haushalte und Unternehmen geliefert wird.
@ -72,7 +72,7 @@ Wenn sich der Hebel bewegt, können Sie normalerweise hören, wie er mit einem g
Der Elektromagnet benötigt nicht viel Strom, um aktiviert zu werden und den Hebel zu ziehen. Er kann mit der 3,3V- oder 5V-Ausgabe eines IoT-Entwicklungskits gesteuert werden. Der Ausgangskreis kann jedoch viel mehr Strom führen, je nach Relais, einschließlich Netzspannung oder sogar höherer Leistungsstufen für industrielle Anwendungen. So kann ein IoT-Entwicklungskit ein Bewässerungssystem steuern, von einer kleinen Pumpe für eine einzelne Pflanze bis hin zu einem riesigen industriellen System für eine ganze kommerzielle Farm.


Das obige Bild zeigt ein Grove-Relais. Der Steuerkreis wird an ein IoT-Gerät angeschlossen und schaltet das Relais mit 3,3V oder 5V ein oder aus. Der Ausgangskreis hat zwei Anschlüsse, von denen einer Strom oder Masse sein kann. Der Ausgangskreis kann bis zu 250V bei 10A handhaben, genug für eine Reihe von netzbetriebenen Geräten. Es gibt Relais, die noch höhere Leistungsstufen bewältigen können.
1. Stecke ein Ende eines Grove-Kabels in die Buchse des Relais. Es passt nur in einer Richtung hinein.
1. Schalte den Raspberry Pi aus und verbinde das andere Ende des Grove-Kabels mit der digitalen Buchse, die mit **D5** auf dem Grove Base Hat markiert ist, der am Pi angebracht ist. Diese Buchse ist die zweite von links in der Reihe der Buchsen neben den GPIO-Pins. Lass den Bodenfeuchtigkeitssensor weiterhin mit der **A0**-Buchse verbunden.


1. Stecke den Bodenfeuchtigkeitssensor in die Erde, falls er nicht bereits aus der vorherigen Lektion dort steckt.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -46,8 +46,8 @@ Das konnte sehr teuer sein, eine breite Palette von qualifizierten Mitarbeitern
Die Cloud wird oft scherzhaft als "der Computer von jemand anderem" bezeichnet. Die ursprüngliche Idee war einfach – anstatt Computer zu kaufen, mietet man die Computer von jemand anderem. Jemand anderes, ein Cloud-Computing-Anbieter, würde riesige Rechenzentren verwalten. Sie wären verantwortlich für den Kauf und die Installation der Hardware, die Verwaltung von Strom und Kühlung, Netzwerken, Gebäudesicherheit, Hardware- und Software-Updates, alles. Als Kunde mietet man die benötigten Computer, mietet mehr, wenn die Nachfrage steigt, und reduziert die Anzahl, wenn die Nachfrage sinkt. Diese Cloud-Rechenzentren befinden sich weltweit.




Diese Rechenzentren können mehrere Quadratkilometer groß sein. Die obigen Bilder wurden vor einigen Jahren in einem Microsoft Cloud-Rechenzentrum aufgenommen und zeigen die ursprüngliche Größe sowie eine geplante Erweiterung. Das für die Erweiterung geräumte Gebiet umfasst über 5 Quadratkilometer.
@ -108,11 +108,11 @@ IoT-Dienste in der Cloud lösen diese Probleme. Sie werden von großen Cloud-Anb
IoT-Geräte verbinden sich entweder über ein Geräte-SDK (eine Bibliothek, die Code für die Funktionen des Dienstes bereitstellt) oder direkt über ein Kommunikationsprotokoll wie MQTT oder HTTP mit einem Cloud-Dienst. Das Geräte-SDK ist normalerweise der einfachste Weg, da es alles für Sie erledigt, wie z. B. die Themen, die veröffentlicht oder abonniert werden sollen, und die Handhabung der Sicherheit.


Ihr Gerät kommuniziert dann mit anderen Teilen Ihrer Anwendung über diesen Dienst – ähnlich wie Sie Telemetrie gesendet und Befehle über MQTT empfangen haben. Dies geschieht normalerweise über ein Service-SDK oder eine ähnliche Bibliothek. Nachrichten kommen von Ihrem Gerät zum Dienst, wo andere Komponenten Ihrer Anwendung sie lesen können, und Nachrichten können dann zurück an Ihr Gerät gesendet werden.


Diese Dienste implementieren Sicherheit, indem sie alle Geräte kennen, die sich verbinden und Daten senden können, entweder indem die Geräte vorab beim Dienst registriert werden oder indem den Geräten geheime Schlüssel oder Zertifikate gegeben werden, die sie verwenden können, um sich beim ersten Verbindungsaufbau selbst zu registrieren. Unbekannte Geräte können sich nicht verbinden; wenn sie es versuchen, lehnt der Dienst die Verbindung ab und ignoriert die von ihnen gesendeten Nachrichten.
@ -124,7 +124,7 @@ Andere Komponenten Ihrer Anwendung können sich mit dem IoT-Dienst verbinden und
Jetzt, da Sie ein Azure-Abonnement haben, können Sie sich für einen IoT-Dienst anmelden. Der IoT-Dienst von Microsoft heißt Azure IoT Hub.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -28,7 +28,7 @@ In dieser Lektion behandeln wir:
Serverless, oder serverloses Computing, bedeutet, kleine Codeblöcke zu erstellen, die in der Cloud als Reaktion auf verschiedene Arten von Ereignissen ausgeführt werden. Wenn das Ereignis eintritt, wird Ihr Code ausgeführt und erhält Daten über das Ereignis. Diese Ereignisse können von vielen verschiedenen Quellen stammen, einschließlich Webanfragen, Nachrichten in einer Warteschlange, Änderungen an Daten in einer Datenbank oder Nachrichten, die von IoT-Geräten an einen IoT-Dienst gesendet werden.


> 💁 Wenn Sie zuvor Datenbank-Trigger verwendet haben, können Sie sich dies ähnlich vorstellen: Code wird durch ein Ereignis wie das Einfügen einer Zeile ausgelöst.
@ -54,7 +54,7 @@ Für IoT-Entwickler ist das serverlose Modell ideal. Sie können eine Funktion s
Der serverlose Computing-Dienst von Microsoft heißt Azure Functions.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -52,11 +52,11 @@ Dies sind reale Szenarien, die ständig passieren. Einige Beispiele wurden in fr
Wenn ein Gerät eine Verbindung zu einem IoT-Dienst herstellt, verwendet es eine ID, um sich zu identifizieren. Das Problem ist, dass diese ID geklont werden kann – ein Hacker könnte ein bösartiges Gerät einrichten, das dieselbe ID wie ein echtes Gerät verwendet, aber falsche Daten sendet.


Die Lösung besteht darin, die gesendeten Daten in ein verschlüsseltes Format umzuwandeln, wobei ein Wert verwendet wird, der nur dem Gerät und der Cloud bekannt ist. Dieser Prozess wird *Verschlüsselung* genannt, und der Wert, der zur Verschlüsselung der Daten verwendet wird, wird als *Verschlüsselungsschlüssel* bezeichnet.


Der Cloud-Dienst kann die Daten dann mit einem Prozess namens *Entschlüsselung* wieder in ein lesbares Format umwandeln, entweder mit demselben Verschlüsselungsschlüssel oder einem *Entschlüsselungsschlüssel*. Wenn die verschlüsselte Nachricht nicht mit dem Schlüssel entschlüsselt werden kann, wurde das Gerät gehackt und die Nachricht wird abgelehnt.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -63,13 +63,13 @@ Die Erde ist eine Kugel – ein dreidimensionaler Kreis. Aus diesem Grund werden
> 💁 Niemand weiß wirklich den ursprünglichen Grund, warum Kreise in 360 Grad unterteilt sind. Die [Wikipedia-Seite über Winkelgrad](https://wikipedia.org/wiki/Degree_(angle)) behandelt einige der möglichen Gründe.


Der Breitengrad wird mit Linien gemessen, die die Erde umkreisen und parallel zum Äquator verlaufen, wobei die nördliche und südliche Hemisphäre jeweils in 90° unterteilt wird. Der Äquator liegt bei 0°, der Nordpol bei 90°, auch bekannt als 90° Nord, und der Südpol bei -90°, oder 90° Süd.
Der Längengrad wird als Anzahl der Grad gemessen, die nach Osten und Westen gemessen werden. Der Ursprung des Längengrads bei 0° wird als *Nullmeridian* bezeichnet und wurde 1884 als eine Linie vom Nord- zum Südpol definiert, die durch das [Britische Königliche Observatorium in Greenwich, England](https://wikipedia.org/wiki/Royal_Observatory,_Greenwich) verläuft.


> 🎓 Ein Meridian ist eine imaginäre gerade Linie, die vom Nordpol zum Südpol verläuft und einen Halbkreis bildet.
@ -100,7 +100,7 @@ Koordinaten für einen Punkt werden immer als `Breitengrad, Längengrad` angegeb
* Einen Breitengrad von 47.6423109 (47.6423109 Grad nördlich des Äquators)
* Einen Längengrad von -122.1390293 (122.1390293 Grad westlich des Nullmeridians).


## Global Positioning Systems (GPS)
@ -112,7 +112,7 @@ GPS-Systeme funktionieren, indem eine Anzahl von Satelliten ein Signal mit der a
> 💁 GPS-Sensoren benötigen Antennen, um Funkwellen zu erkennen. Die Antennen, die in Lastwagen und Autos mit eingebautem GPS verwendet werden, sind so positioniert, dass sie ein gutes Signal empfangen, normalerweise an der Windschutzscheibe oder auf dem Dach. Wenn Sie ein separates GPS-System verwenden, wie ein Smartphone oder ein IoT-Gerät, müssen Sie sicherstellen, dass die Antenne im GPS-System oder Telefon eine klare Sicht auf den Himmel hat, z. B. wenn sie an der Windschutzscheibe montiert ist.


GPS-Satelliten umkreisen die Erde und befinden sich nicht an einem festen Punkt über dem Sensor, sodass Standortdaten auch die Höhe über dem Meeresspiegel sowie Breitengrad und Längengrad umfassen.
@ -18,13 +18,13 @@ Der Grove GPS-Sensor kann mit dem Raspberry Pi verbunden werden.
Schließen Sie den GPS-Sensor an.


1. Stecken Sie ein Ende eines Grove-Kabels in die Buchse des GPS-Sensors. Es passt nur in einer Richtung hinein.
1. Schalten Sie den Raspberry Pi aus und verbinden Sie das andere Ende des Grove-Kabels mit der UART-Buchse, die mit **UART** auf dem Grove Base Hat am Pi markiert ist. Diese Buchse befindet sich in der mittleren Reihe, auf der Seite in der Nähe des SD-Karten-Slots, gegenüber den USB-Ports und dem Ethernet-Anschluss.


1. Positionieren Sie den GPS-Sensor so, dass die angeschlossene Antenne Sicht zum Himmel hat – idealerweise neben einem offenen Fenster oder draußen. Es ist einfacher, ein klares Signal zu empfangen, wenn nichts die Antenne blockiert.
@ -102,17 +102,17 @@ Programmieren Sie die GPS-Sensor-App.
* Setzen Sie die **Quelle** auf `Lat/Lon` und geben Sie eine explizite Breite, Länge und die Anzahl der Satelliten ein, die für die GPS-Fixierung verwendet werden. Dieser Wert wird nur einmal gesendet, daher aktivieren Sie das Kontrollkästchen **Wiederholen**, damit die Daten jede Sekunde wiederholt werden.


* Setzen Sie die **Quelle** auf `NMEA` und fügen Sie einige NMEA-Sätze in das Textfeld ein. Alle diese Werte werden gesendet, wobei eine Verzögerung von 1 Sekunde vor jedem neuen GGA-(Positionsfixierungs-)Satz besteht.


Sie können ein Tool wie [nmeagen.org](https://www.nmeagen.org) verwenden, um diese Sätze zu generieren, indem Sie auf einer Karte zeichnen. Diese Werte werden nur einmal gesendet, daher aktivieren Sie das Kontrollkästchen **Wiederholen**, damit die Daten eine Sekunde nach dem Senden aller Werte wiederholt werden.
* Setzen Sie die **Quelle** auf GPX-Datei und laden Sie eine GPX-Datei mit Streckenpositionen hoch. Sie können GPX-Dateien von einer Reihe beliebter Karten- und Wanderseiten wie [AllTrails](https://www.alltrails.com/) herunterladen. Diese Dateien enthalten mehrere GPS-Positionen als Route, und der GPS-Sensor gibt jede neue Position in Intervallen von 1 Sekunde zurück.


Diese Werte werden nur einmal gesendet, daher aktivieren Sie das Kontrollkästchen **Wiederholen**, damit die Daten eine Sekunde nach dem Senden aller Werte wiederholt werden.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -75,7 +75,7 @@ NoSQL-Datenbanken werden als NoSQL bezeichnet, da sie nicht die gleiche starre S
> 💁 Trotz ihres Namens erlauben einige NoSQL-Datenbanken die Verwendung von SQL, um die Daten abzufragen.


NoSQL-Datenbanken haben kein vordefiniertes Schema, das einschränkt, wie Daten gespeichert werden. Stattdessen können Sie beliebige unstrukturierte Daten einfügen, normalerweise in Form von JSON-Dokumenten. Diese Dokumente können in Ordnern organisiert werden, ähnlich wie Dateien auf Ihrem Computer. Jedes Dokument kann unterschiedliche Felder im Vergleich zu anderen Dokumenten haben – wenn Sie beispielsweise IoT-Daten von Ihren landwirtschaftlichen Fahrzeugen speichern, könnten einige Felder für Beschleunigungs- und Geschwindigkeitsdaten haben, andere Felder für die Temperatur im Anhänger. Wenn Sie einen neuen Lastwagentyp hinzufügen, z. B. einen mit eingebauten Waagen zur Verfolgung des Gewichts der transportierten Produkte, könnte Ihr IoT-Gerät dieses neue Feld hinzufügen, und es könnte gespeichert werden, ohne dass Änderungen an der Datenbank erforderlich sind.
@ -89,7 +89,7 @@ In dieser Lektion werden Sie NoSQL-Speicher verwenden, um IoT-Daten zu speichern
In der letzten Lektion haben Sie GPS-Daten von einem GPS-Sensor erfasst, der mit Ihrem IoT-Gerät verbunden ist. Um diese IoT-Daten in der Cloud zu speichern, müssen Sie sie an einen IoT-Dienst senden. Sie werden erneut Azure IoT Hub verwenden, denselben IoT-Cloud-Dienst, den Sie im vorherigen Projekt verwendet haben.


### Aufgabe – GPS-Daten an einen IoT-Hub senden
@ -171,7 +171,7 @@ Kalte Pfaddaten werden in Data Warehouses gespeichert – Datenbanken, die für
Sobald Daten in Ihren IoT-Hub fließen, können Sie serverlosen Code schreiben, um auf Ereignisse zu hören, die an den Event-Hub-kompatiblen Endpunkt veröffentlicht werden. Dies ist der warme Pfad – diese Daten werden gespeichert und in der nächsten Lektion für Berichte über die Reise verwendet.


### Aufgabe – GPS-Ereignisse mit serverlosem Code verarbeiten
@ -193,7 +193,7 @@ Sobald Daten in Ihren IoT-Hub fließen, können Sie serverlosen Code schreiben,
Azure Storage Accounts ist ein universeller Speicherdienst, der Daten auf verschiedene Arten speichern kann. Sie können Daten als Blobs, in Warteschlangen, in Tabellen oder als Dateien speichern – und das alles gleichzeitig.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -64,11 +64,11 @@ Ein einfaches Beispiel: Im Farmprojekt haben Sie Bodenfeuchtigkeitswerte erfasst
Für einen Menschen ist es schwierig, diese Daten zu verstehen. Es ist eine Wand aus Zahlen ohne Bedeutung. Als erster Schritt zur Visualisierung dieser Daten können sie in einem Liniendiagramm dargestellt werden:


Dies kann weiter verbessert werden, indem eine Linie hinzugefügt wird, die anzeigt, wann das automatische Bewässerungssystem bei einem Bodenfeuchtigkeitswert von 450 eingeschaltet wurde:


Dieses Diagramm zeigt sehr schnell nicht nur die Bodenfeuchtigkeitswerte, sondern auch die Punkte, an denen das Bewässerungssystem eingeschaltet wurde.
@ -84,7 +84,7 @@ Beim Arbeiten mit GPS-Daten kann die klarste Visualisierung darin bestehen, die
Die Arbeit mit Karten ist eine interessante Übung, und es gibt viele Optionen wie Bing Maps, Leaflet, Open Street Maps und Google Maps. In dieser Lektion lernen Sie [Azure Maps](https://azure.microsoft.com/services/azure-maps/?WT.mc_id=academic-17441-jabenn) kennen und wie Sie damit Ihre GPS-Daten anzeigen können.
Azure Maps ist "eine Sammlung von Geodiensten und SDKs, die aktuelle Kartendaten verwenden, um geografischen Kontext für Web- und mobile Anwendungen bereitzustellen." Entwicklern werden Tools zur Verfügung gestellt, um schöne, interaktive Karten zu erstellen, die Dinge wie empfohlene Verkehrswege, Informationen zu Verkehrsvorfällen, Indoor-Navigation, Suchfunktionen, Höheninformationen, Wetterdienste und mehr bieten können.
@ -185,7 +185,7 @@ Nun können Sie den nächsten Schritt machen, nämlich Ihre Karte auf einer Webs
Wenn Sie Ihre `index.html`-Seite in einem Webbrowser öffnen, sollten Sie eine Karte sehen, die auf den Bereich Seattle fokussiert ist.


✅ Experimentieren Sie mit den Zoom- und Center-Parametern, um Ihre Kartendarstellung zu ändern. Sie können verschiedene Koordinaten entsprechend der Breite und Länge Ihrer Daten hinzufügen, um die Karte neu zu zentrieren.
@ -319,7 +319,7 @@ Wenn du eine Anfrage an deinen Speicher sendest, um die Daten abzurufen, könnte
1. Lade die HTML-Seite in deinem Browser. Sie wird die Karte laden, dann alle GPS-Daten aus dem Speicher abrufen und sie auf der Karte darstellen.


> 💁 Du findest diesen Code im [code](../../../../../3-transport/lessons/3-visualize-location-data/code)-Ordner.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -35,7 +35,7 @@ In dieser Lektion behandeln wir:
Ein Geofence ist ein virtueller Umkreis für eine reale geografische Region. Geofences können Kreise sein, die als Punkt und Radius definiert sind (zum Beispiel ein Kreis mit einem Durchmesser von 100 m um ein Gebäude), oder ein Polygon, das einen Bereich wie eine Schulzone, Stadtgrenzen oder einen Universitäts- oder Bürocampus abdeckt.


> 💁 Möglicherweise haben Sie bereits Geofences verwendet, ohne es zu wissen. Wenn Sie eine Erinnerung mit der iOS-Erinnerungs-App oder Google Keep basierend auf einem Standort eingerichtet haben, haben Sie einen Geofence verwendet. Diese Apps richten basierend auf dem angegebenen Standort einen Geofence ein und benachrichtigen Sie, wenn Ihr Telefon den Geofence betritt.
@ -212,7 +212,7 @@ Es ist wichtig, die Entfernung zum Rand des Geofence zu kennen und diese mit and
Zum Beispiel stellen Sie sich GPS-Messungen vor, die zeigen, dass ein Fahrzeug auf einer Straße fährt, die neben einem Geofence verläuft. Wenn ein einzelner GPS-Wert ungenau ist und das Fahrzeug innerhalb des Geofence platziert, obwohl es keinen Fahrzeugzugang gibt, kann dies ignoriert werden.


Auf dem obigen Bild ist ein Geofence über einem Teil des Microsoft-Campus zu sehen. Die rote Linie zeigt einen LKW, der entlang der 520 fährt, mit Kreisen, die die GPS-Messungen darstellen. Die meisten dieser Messungen sind genau und entlang der 520, mit einer ungenauen Messung innerhalb des Geofence. Es ist unmöglich, dass diese Messung korrekt ist – es gibt keine Straßen, auf denen der LKW plötzlich von der 520 auf den Campus abbiegen und dann wieder zurück auf die 520 fahren könnte. Der Code, der diesen Geofence überprüft, muss die vorherigen Messungen berücksichtigen, bevor er auf die Ergebnisse des Geofence-Tests reagiert.
✅ Welche zusätzlichen Daten würden Sie benötigen, um zu überprüfen, ob eine GPS-Messung als korrekt angesehen werden kann?
@ -284,7 +284,7 @@ Wie Sie sich aus früheren Lektionen erinnern, ermöglicht der IoT-Hub das Wiede
Die Antwort lautet: Er weiß es nicht! Stattdessen können Sie mehrere separate Verbindungen definieren, um Ereignisse zu lesen, und jede kann die Wiedergabe von ungelesenen Nachrichten verwalten. Diese werden *Consumer Groups* genannt. Wenn Sie sich mit dem Endpunkt verbinden, können Sie angeben, welche Consumer Group Sie verwenden möchten. Jede Komponente Ihrer Anwendung wird sich mit einer anderen Consumer Group verbinden.


Theoretisch können bis zu 5 Anwendungen mit jeder Consumer Group verbunden werden, und sie erhalten alle Nachrichten, wenn diese eintreffen. Es ist jedoch Best Practice, dass nur eine Anwendung auf jede Consumer Group zugreift, um doppelte Nachrichtenverarbeitung zu vermeiden und sicherzustellen, dass beim Neustart alle wartenden Nachrichten korrekt verarbeitet werden. Wenn Sie beispielsweise Ihre Functions-App lokal starten und gleichzeitig in der Cloud ausführen, würden beide Nachrichten verarbeiten, was zu doppelten Blobs im Speicher führt.


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -38,7 +38,7 @@ Nicht alle Ernten reifen gleichmäßig. Tomaten beispielsweise können noch grü
Der Aufstieg der automatisierten Ernte hat die Sortierung der Produkte von der Ernte in die Fabrik verlagert. Lebensmittel wurden auf langen Förderbändern transportiert, wobei Teams von Menschen die Produkte durchsuchten und alles entfernten, was nicht den Qualitätsstandards entsprach. Die Ernte wurde durch Maschinen günstiger, aber es gab immer noch Kosten für die manuelle Sortierung der Lebensmittel.


Die nächste Entwicklung war der Einsatz von Maschinen zur Sortierung, entweder in die Erntemaschinen integriert oder in den Verarbeitungsanlagen. Die erste Generation dieser Maschinen verwendete optische Sensoren, um Farben zu erkennen, und steuerte Aktuatoren, um grüne Tomaten mit Hebeln oder Luftstößen in einen Abfallbehälter zu befördern, während rote Tomaten auf einem Netzwerk von Förderbändern weitergeleitet wurden.
@ -62,7 +62,7 @@ Beispielsweise könnten Sie einem Modell Millionen von Bildern unreifer Bananen
> 🎓 Die Ergebnisse von ML-Modellen werden als *Vorhersagen* bezeichnet.


ML-Modelle geben keine binären Antworten, sondern Wahrscheinlichkeiten. Beispielsweise könnte ein Modell ein Bild einer Banane erhalten und `reif` mit 99,7% und `unreif` mit 0,3% vorhersagen. Ihr Code würde dann die beste Vorhersage auswählen und entscheiden, dass die Banane reif ist.
@ -90,7 +90,7 @@ Es gibt eine Vielzahl von Tools, die Ihnen dabei helfen können, darunter cloudb
Custom Vision ist ein cloudbasiertes Tool zum Trainieren von Bildklassifikatoren. Es ermöglicht Ihnen, einen Klassifikator mit nur einer kleinen Anzahl von Bildern zu trainieren. Sie können Bilder über ein Webportal, eine Web-API oder ein SDK hochladen und jedem Bild ein *Tag* zuweisen, das die Klassifikation dieses Bildes angibt. Anschließend trainieren Sie das Modell und testen es, um zu sehen, wie gut es funktioniert. Sobald Sie mit dem Modell zufrieden sind, können Sie Versionen davon veröffentlichen, die über eine Web-API oder ein SDK zugänglich sind.
> 💁 Sie können ein Custom Vision-Modell mit nur 5 Bildern pro Klassifikation trainieren, aber mehr ist besser. Mit mindestens 30 Bildern erzielen Sie bessere Ergebnisse.
@ -146,7 +146,7 @@ Um Custom Vision zu verwenden, müssen Sie zunächst zwei Cognitive Services-Res
Stellen Sie beim Erstellen Ihres Projekts sicher, dass Sie die zuvor erstellte Ressource `fruit-quality-detector-training` verwenden. Verwenden Sie den Projekttyp *Klassifikation*, den Klassifikationstyp *Multiklassen* und die Domäne *Lebensmittel*.


✅ Nehmen Sie sich etwas Zeit, um die Benutzeroberfläche von Custom Vision für Ihren Bildklassifikator zu erkunden.
@ -164,7 +164,7 @@ Bildklassifikatoren arbeiten mit sehr niedriger Auflösung. Zum Beispiel kann Cu
* Verwenden Sie 2 reife Bananen und machen Sie einige Bilder von jeder aus verschiedenen Blickwinkeln. Machen Sie mindestens 7 Bilder (5 zum Trainieren, 2 zum Testen), idealerweise mehr.


* Wiederholen Sie denselben Vorgang mit 2 unreifen Bananen.
@ -174,7 +174,7 @@ Bildklassifikatoren arbeiten mit sehr niedriger Auflösung. Zum Beispiel kann Cu
1. Folgen Sie dem Abschnitt [Bilder hochladen und taggen im Quickstart zum Erstellen eines Klassifikators in der Microsoft-Dokumentation](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#upload-and-tag-images), um Ihre Trainingsbilder hochzuladen. Taggen Sie die reifen Früchte als `ripe` und die unreifen Früchte als `unripe`.


1. Folgen Sie dem Abschnitt [Klassifikator trainieren im Quickstart zum Erstellen eines Klassifikators in der Microsoft-Dokumentation](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/getting-started-build-a-classifier?WT.mc_id=academic-17441-jabenn#train-the-classifier), um den Bildklassifikator mit Ihren hochgeladenen Bildern zu trainieren.
@ -192,7 +192,7 @@ Sobald Ihr Klassifikator trainiert ist, können Sie ihn testen, indem Sie ihm ei
1. Folgen Sie der [Dokumentation zum Testen Ihres Modells in der Microsoft-Dokumentation](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/test-your-model?WT.mc_id=academic-17441-jabenn#test-your-model), um Ihren Bildklassifikator zu testen. Verwenden Sie die Testbilder, die Sie zuvor erstellt haben, und nicht die Bilder, die Sie für das Training verwendet haben.


1. Testen Sie alle Testbilder, die Ihnen zur Verfügung stehen, und beobachten Sie die Wahrscheinlichkeiten.
# Überprüfung der Obstqualität mit einem IoT-Gerät


> Sketchnote von [Nitya Narasimhan](https://github.com/nitya). Klicken Sie auf das Bild für eine größere Version.
@ -26,7 +26,7 @@ In dieser Lektion behandeln wir:
Kamerasensoren sind, wie der Name schon sagt, Kameras, die Sie mit Ihrem IoT-Gerät verbinden können. Sie können Standbilder aufnehmen oder Streaming-Videos erfassen. Einige liefern Rohbilddaten, andere komprimieren die Bilddaten in eine Bilddatei wie JPEG oder PNG. Normalerweise sind die Kameras, die mit IoT-Geräten funktionieren, viel kleiner und haben eine geringere Auflösung als die, die Sie vielleicht gewohnt sind. Es gibt jedoch auch hochauflösende Kameras, die mit den besten Smartphones konkurrieren können. Sie können verschiedene Wechselobjektive, Mehrkamerasysteme, Infrarot-Wärmekameras oder UV-Kameras erhalten.


Die meisten Kamerasensoren verwenden Bildsensoren, bei denen jedes Pixel eine Fotodiode ist. Eine Linse fokussiert das Bild auf den Bildsensor, und Tausende oder Millionen von Fotodioden erfassen das Licht, das auf jede einzelne fällt, und zeichnen dies als Pixeldaten auf.
@ -74,7 +74,7 @@ Iterationen werden über das Custom Vision-Portal veröffentlicht.
1. Wählen Sie die Schaltfläche **Veröffentlichen** für die Iteration aus.
1. Legen Sie im Dialogfeld *Modell veröffentlichen* die *Vorhersageressource* auf die Ressource `fruit-quality-detector-prediction` fest, die Sie in der letzten Lektion erstellt haben. Lassen Sie den Namen als `Iteration2` und wählen Sie die Schaltfläche **Veröffentlichen** aus.
@ -88,7 +88,7 @@ Iterationen werden über das Custom Vision-Portal veröffentlicht.
Kopieren Sie auch den Wert *Vorhersage-Schlüssel*. Dies ist ein sicherer Schlüssel, den Sie übergeben müssen, wenn Sie das Modell aufrufen. Nur Anwendungen, die diesen Schlüssel übergeben, dürfen das Modell verwenden, alle anderen Anwendungen werden abgelehnt.


✅ Wenn eine neue Iteration veröffentlicht wird, hat sie einen anderen Namen. Wie würden Sie die Iteration ändern, die ein IoT-Gerät verwendet?
@ -109,7 +109,7 @@ Es kann sein, dass die Ergebnisse, die Sie mit der Kamera Ihres IoT-Geräts erha
Um die besten Ergebnisse für einen Bildklassifikator zu erzielen, sollten Sie das Modell mit Bildern trainieren, die den für Vorhersagen verwendeten Bildern so ähnlich wie möglich sind. Wenn Sie beispielsweise Ihre Handykamera verwendet haben, um Bilder für das Training aufzunehmen, werden die Bildqualität, Schärfe und Farben anders sein als bei einer Kamera, die mit einem IoT-Gerät verbunden ist.


Im obigen Bild wurde das Bananenbild links mit einer Raspberry Pi-Kamera aufgenommen, das rechts mit einem iPhone von derselben Banane am selben Ort. Es gibt einen deutlichen Unterschied in der Qualität – das iPhone-Bild ist schärfer, mit helleren Farben und mehr Kontrast.
Some files were not shown because too many files have changed in this diff
Show More