جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
Microsoft Azure هي خدمة سحابية توفر قوة حوسبة أكثر قوة واستقرارًا. هذه المرة حاولنا إرسال بيانات إنترنت الأشياء الخاصة بنا إليها.
الخطوة 1: الأشياء المستخدمة في هذا المشروع
مكونات الأجهزة
- جروف - مستشعر ثاني أكسيد الكربون (MH-Z16)
- جروف - مستشعر الضوء الرقمي
- جروف - جهاز استشعار الغبار (PPD42NS
- جروف - مستشعر الأكسجين (ME2-O2-Ф20)
- رطوبة التربة ومستشعر درجة الحرارة
- بوابة LoRa LoRaWAN - مجموعة 868 ميجا هرتز مع Raspberry Pi 3
- جروف - مستشعر درجة الحرارة وهومي والبارومتر (BME280)
تطبيقات البرمجيات والخدمات عبر الإنترنت
- مايكروسوفت فيجوال ستوديو 2015
- مايكروسوفت أزور
الخطوة الثانية: القصة
على جبل مينجدينج شمال شرق يان ، سيتشوان ، تمتد سلسلة التلال الجبلية من الغرب إلى الشرق في بحر أخضر. هذا مشهد مألوف للغاية بالنسبة لدنغ البالغ من العمر 36 عامًا ، وهو أحد صانعي الشاي القلائل جدًا من جيله ، بمزرعة تبلغ مساحتها 50 مترًا مكعبًا (= 3.3 هكتارًا) تقع على ارتفاع 1100 متر فوق مستوى سطح البحر. ينحدر دينغ من عائلة من صانعي الشاي ، لكن الاستمرار في إرث العائلة ليس بالمهمة السهلة. تتم زراعة أنواع الشاي لدينا على ارتفاعات عالية في بيئة عضوية لضمان جودتها الممتازة. ولكن في الوقت نفسه ، تكون كثافة النمو منخفضة ، والتكلفة مرتفعة ، والتبرعم غير متساوٍ ، مما يجعل حصاد الشاي صعبًا. هذا هو السبب في أن شاي الجبال العالية عادة ما يكون حصادًا صغيرًا ولا تنعكس قيمه في السوق. على مدار العامين الماضيين ، حاول دينغ زيادة وعي المستهلك بشاي الجبال العالية لتعزيز قيمته. وعندما التقى فان ، الذي كان يبحث عن مزرعة لتنفيذ تقنية Seeed's IoTea ، تم التوصل إلى حل مثالي.
الخطوة 3: توصيل الأجهزة
يرجى اتباع البرنامج التعليمي السابق لتوصيل أجهزتك.
الخطوة 4: تكوين السحابة
الخطوة 1. إنشاء مجموعة الموارد
انقر هنا لتسجيل الدخول إلى Microsoft Azure. وبعد ذلك ، أدخل مجموعات الموارد في القائمة الموجودة على يسار لوحة المعلومات ، وانقر فوق إضافة لإضافة مجموعة موارد.
تُستخدم مجموعة الموارد لإدارة جميع الموارد في المشروع ، بعد استخدام موارد السحابة ، وحذف مجموعة الموارد لحذف جميع الموارد لتجنب الرسوم. في الصفحة المفتوحة ، املأ اسم مجموعة الموارد (مثل iotea) ، واختر موقع مجموعة الموارد والاشتراك إذا لزم الأمر ، وانقر فوق إنشاء لإنشاء مجموعة موارد.
الخطوة 2. إنشاء Iot Hub
يمكنك الآن إنشاء مورد سحابي ، انقر فوق إنشاء مصدر على اليسار ، واختر إنترنت الأشياء - Iot Hub ، وسيفتح صفحة جديدة.
في علامة التبويب الأساسيات ، اختر مجموعة الموارد التي أنشأتها للتو ، واملأ Iot Hub Name (مثل iotea) ، واختر Subscription and Region إذا لزم الأمر ، ثم انتقل إلى علامة التبويب Size and scle.
في علامة التبويب الحجم والمقياس ، اختر F1: المستوى المجاني أو B1: المستوى الأساسي في مجموعة الأسعار ومستوى المقياس ، وستستغرق الطبقة الأساسية 10.00 دولارات أمريكية شهريًا. أخيرًا ، انتقل إلى علامة التبويب مراجعة + إنشاء تحقق من الإدخال وانقر فوق إنشاء لإنشاء Iot Hub.
الخطوة 3. تكوين LORIOT
أدخل Iot Hub الذي أنشأته للتو ، وانقر فوق سياسات الوصول المشتركة - الجهاز ، وانسخ المفتاح الأساسي في الصفحة على اليمين.
افتح نافذة متصفح جديدة (أو علامة تبويب) ، وقم بتسجيل الدخول إلى لوحة تحكم LORIOT الخاصة بك ، وانتقل إلى Application - SampleApp ، انقر فوق إخراج البيانات في مجموعة التحكم - تغيير. في مجموعة تغيير نوع الإخراج ، اختر Azure Iot Hub ، واملأ اسم Iot Hub والمفتاح الأساسي ، وانقر فوق زر تأكيد التغيير في الأسفل.
الخطوة 4. إضافة جهاز Iot
انقر فوق الأجهزة الموجودة في القائمة الموجودة على اليسار في LORIOT ، وانسخ EUI الخاص بجهازك.
العودة إلى Azure Iot Hub ، انقر فوق أجهزة Iot في القائمة الموجودة على يسار Iot Hub. انقر فوق إضافة ، واملأ Device EUI إلى معرف الجهاز في الصفحة المفتوحة.
هام: احذف كل الفاصل في DEVICE EUI ، دعه يبدو مثل 1122334455667788.
انقر فوق حفظ ، تم كل شيء.
الخطوة 5. استلام رسائل D2C (من الجهاز إلى السحابة)
يمكنك متابعة محرر مستندات Microsoft لقراءة رسائل D2C.
الخطوة 5: برمجة البرمجيات
تنقسم برمجة البرامج إلى 3 أجزاء: العقدة والبوابة والموقع الإلكتروني ، يرجى اتباع البرنامج التعليمي السابق لبرمجة جزء العقدة وجزء البوابة. الخطوات من 1 إلى 8 من جزء موقع الويب هي نفسها أيضًا البرنامج التعليمي السابق.
إذا قمت بالفعل بتكوين Microsoft Azure ، فافتح محطة ، وأدخل المجلد الجذر لموقع الويب الخاص بك ، وقم بتنشيط البيئة الافتراضية:
القرص المضغوط ~ / iotea-hb
مصدر بن / تفعيل
قم بتثبيت الوحدة النمطية Azure Event Hub عبر نقطة ، وإنشاء ملف new.py (مثل iothub_recv.py):
نقطة تثبيت azure-eventhub
المس iothub_recv.py
ثم اكتب الأكواد التي تليها:
# --------------------------------------------------------------------------------------------
# حقوق النشر (ج) شركة مايكروسوفت. كل الحقوق محفوظة. # مرخص بموجب ترخيص MIT. راجع License.txt في جذر المشروع للحصول على معلومات الترخيص. # ------------------------------------------------- ------------------------------------------- من إيفنتشوب استيراد أزور من أزور. استيراد eventhub EventData ، EventHubClient ، Offset import logger = logging.getLogger ('azure.eventhub') استيراد db ، json ، time ، datetime def get_time (): cntime = datetime.datetime.now () + datetime.timedelta (ساعات = +8) date = cntime.strftime ('٪ Y - {} - {}'). تنسيق (cntime.strftime ('٪ m'). zfill (2)، cntime.strftime ('٪ d'). zfill (2)) hour = cntime.strftime ('٪ H'). zfill (2) minutes = cntime.strftime ('٪ M'). zfill (2) second = cntime.strftime ('٪ S'). zfill (2) إرجاع [التاريخ ، الساعة ، الدقيقة ، الثانية] def get_iothub_data (): list = ['0'] * 11 client = EventHubClient.from_iothub_connection_string ('' ، debug = True) المتلقي = client.add_receiver ("$ الافتراضي"، " 3 "، العملية = '/ messages / events' ، الإزاحة = الإزاحة (datetime.datetime.utcnow ())) جرب: client.run () eh_info = client.get_eventhub_info () print (eh_info) مستلم = Receiver.receive (timeout) = 5) طباعة (مستلمة) للعنصر الوارد: أنا ssage = json.loads (str (item.message)) طباعة (رسالة) إذا كانت "البيانات" في الرسالة: data = message ['data'] air_temp = str (int (data [0: 2]، 16)) air_hum = str (int (data [2: 4]، 16)) pressure = str (int ((data [4: 8])، 16)) co2 = str (int (data [8:12]، 16)) dust = str (int (data [12:16]، 16)) الإضاءة = str (int (البيانات [16:20] ، 16)) o2 = str (round (int (data [20:22]، 16) / 10، 1)) التربة_temp = str (int (data [22:24]، 16)) seed_hum = str (int (data [24:26]، 16)) voltage = str (round (int (data [26:28]، 16) / int ('ff'، 16) * 5، 1)) خطأ = str (int (data [28:]، 16)) list = [air_temp، air_hum، pressure، co2، dust، lightening، o2، التربة_temp ، seed_hum، voltage، error] أخيرًا: client.stop () قائمة إرجاع بينما صحيح: list = get_time () + get_iothub_data () db.insert (list) print (list)
قبل تشغيل البرنامج ، قم بتغيير سلسلة الاتصال الخاصة بك في
العميل = EventHubClient.from_iothub_connection_string ('' ، التصحيح = صحيح)
يمكنك الحصول على سلسلة الاتصال الخاصة بك عن طريق النقر فوق سياسات الوصول المشتركة - iotowner في Iot Hub ، مفتاح سلسلة الاتصال الأولي في الصفحة المفتوحة هو سلسلة الاتصال.
بعد ذلك يمكنك بدء البرنامج:
gunicorn iothub_recv: app