فهرست مطالب:

راه حل IoTea LoRa را مشاهده کردید (با Azure ، به روز رسانی 1812): 5 مرحله
راه حل IoTea LoRa را مشاهده کردید (با Azure ، به روز رسانی 1812): 5 مرحله

تصویری: راه حل IoTea LoRa را مشاهده کردید (با Azure ، به روز رسانی 1812): 5 مرحله

تصویری: راه حل IoTea LoRa را مشاهده کردید (با Azure ، به روز رسانی 1812): 5 مرحله
تصویری: CS50 2013 - Week 9, continued 2024, نوامبر
Anonim
راه حل IoTea LoRa را مشاهده کردید (با Azure ، به روز رسانی 1812)
راه حل IoTea LoRa را مشاهده کردید (با Azure ، به روز رسانی 1812)

Microsoft Azure یک سرویس ابری است که قدرت محاسباتی قوی تر و پایداری را ارائه می دهد. این بار ما سعی کردیم داده های IoTea خود را به آن ارسال کنیم.

مرحله 1: موارد مورد استفاده در این پروژه

اجزای سخت افزاری

  • Grove - سنسور دی اکسید کربن (MH -Z16)
  • Grove - سنسور نور دیجیتال
  • Grove - Dust Sensor (PPD42NS)
  • Grove-Oxygen Sensor (ME2-O2-Ф20)
  • سنسور رطوبت و دما خاک
  • LoRa LoRaWAN Gateway - کیت 868 مگاهرتز با رزبری پای 3
  • Grove - Temp & Humi & Barometer Sensor (BME280)

برنامه های نرم افزاری و خدمات آنلاین

  • Microsoft Visual Studio 2015
  • Microsoft Azure

مرحله 2: داستان

در کوه منگدینگ در شمال شرقی یاان ، سیچوان ، خط الراس کوه در دریای سبز از غرب به شرق می گذرد. این مکان برای دنگ 36 ساله ، یکی از معدود چای سازان Mengding از نسل خود ، با مزارع 50mu (= 3.3 هکتار) در 1100 متر بالاتر از سطح دریا واقع شده است. دنگ از خانواده چای سازان می آید ، اما حفظ میراث خانوادگی کار ساده ای نیست. چای ما در ارتفاع زیاد در محیطی ارگانیک رشد می کند تا از کیفیت عالی آن اطمینان حاصل شود. اما در عین حال ، تراکم رشد کم است ، هزینه زیاد است و جوانه زدن ناهموار است ، و برداشت چای را سخت می کند. به همین دلیل است که چای های کوهستانی معمولاً محصول کمی هستند و ارزش آنها در بازار منعکس نمی شود. در دو سال گذشته ، دنگ سعی کرده است آگاهی مصرف کنندگان را از چای کوهستانی ارتقا دهد تا ارزش آنها را ارتقا دهد. و هنگامی که با فن ملاقات کرد ، که به دنبال مزارعی برای پیاده سازی فناوری Seeed’s IoTea بود ، تطبیق کاملی برای راه حل ایجاد شد.

مرحله 3: اتصال سخت افزار

لطفاً برای اتصال سخت افزار خود ، آموزش قبلی را دنبال کنید.

مرحله 4: پیکربندی ابر

مرحله 1. ایجاد گروه منابع

برای ورود به سیستم Microsoft Azure اینجا را کلیک کنید. و سپس ، گروه منابع را در لیست سمت چپ داشبورد وارد کنید ، روی Add کلیک کنید تا گروه منابع اضافه شود.

تصویر
تصویر

گروه منابع برای مدیریت همه منابع در پروژه استفاده می شود ، پس از استفاده از منابع ابری ، گروه منابع را حذف کنید تا همه منابع را حذف کنید تا از هزینه جلوگیری کنید. در صفحه باز شده ، نام گروه منابع (مانند iotea) را پر کنید ، در صورت لزوم اشتراک و محل گروه منابع را انتخاب کنید ، برای ایجاد گروه منابع ، روی ایجاد کلیک کنید.

مرحله 2. ایجاد Iot Hub

اکنون می توانید یک منبع ابری ایجاد کنید ، روی ایجاد یک منبع در سمت چپ کلیک کنید ، Internet of Things - Iot Hub را انتخاب کنید ، صفحه جدیدی باز می شود.

در برگه مبانی ، گروه منابع را که ایجاد کرده اید انتخاب کنید ، و نام Iot Hub (مانند iotea) را پر کنید ، در صورت لزوم اشتراک و منطقه را انتخاب کنید ، و سپس به برگه Size و scle بروید.

تصویر
تصویر

در برگه اندازه و مقیاس ، F1 را انتخاب کنید: ردیف رایگان یا B1: ردیف پایه در قیمت گذاری و ترازوی مقیاس ، ردیف پایه 10.00 دلار در ماه هزینه خواهد داشت. در نهایت ، به برگه Review + create بروید و ورودی خود را بررسی کنید و روی Create کلیک کنید تا یک Iot Hub ایجاد شود.

تصویر
تصویر

مرحله 3. LORIOT را پیکربندی کنید

Iot Hub را که ایجاد کرده اید وارد کنید ، روی سیاست های دسترسی مشترک کلیک کنید - دستگاه ، کلید اصلی را در صفحه سمت راست کپی کنید.

تصویر
تصویر

یک پنجره جدید مرورگر (یا برگه) باز کنید ، وارد کنترل پنل LORIOT خود شوید ، به Application - SampleApp مراجعه کنید ، روی Data output در گروه کنترل - Change کلیک کنید. در گروه تغییر نوع خروجی ، Azure Iot Hub را انتخاب کنید ، نام و کلید اصلی Iot Hub خود را پر کنید و روی دکمه تأیید تغییر در پایین کلیک کنید.

تصویر
تصویر

مرحله 4. دستگاه Iot را اضافه کنید

روی دستگاه های موجود در لیست سمت چپ در LORIOT کلیک کنید ، EUI دستگاه خود را کپی کنید.

تصویر
تصویر

به Azure Iot Hub بازگردید ، روی دستگاههای Iot در لیست سمت چپ Iot Hub کلیک کنید. در صفحه باز شده روی افزودن کلیک کنید ، Device EUI to Device ID را پر کنید.

مهم: همه SEPRATOR را در دستگاه EUI حذف کنید ، بگذارید شبیه 1122334455667788 باشد.

تصویر
تصویر

روی ذخیره کلیک کنید ، تمام شد.

مرحله 5. پیامهای D2C (Device to Cloud) را دریافت کنید

برای خواندن پیام های D2C می توانید Microsoft Docs را دنبال کنید.

مرحله 5: برنامه نویسی نرم افزار

برنامه نویسی نرم افزار به 3 قسمت تقسیم می شود: Node ، Gateway و Website ، لطفاً برای برنامه نویسی Node Part و Gateway ، آموزش قبلی را دنبال کنید. مراحل 1 تا 8 قسمت وب سایت نیز مشابه آموزش قبلی است.

اگر قبلاً Microsoft Azure را پیکربندی کرده اید ، یک ترمینال باز کنید ، پوشه اصلی وب سایت خود را وارد کنید ، محیط مجازی را فعال کنید:

cd ~/iotea-hb

منبع بن/فعال سازی

ماژول Azure Event Hub را از طریق pip نصب کنید و یک فایل new.py (مانند iothub_recv.py) ایجاد کنید:

pip install azure-eventhub

iothub_recv.py را لمس کنید

و سپس کدهای زیر را در آن بنویسید:

# --------------------------------------------------------------------------------------------

# حق چاپ (ج) شرکت مایکروسافت. همه حقوق محفوظ است. # دارای مجوز تحت مجوز MIT. برای اطلاعات مجوز License.txt را در ریشه پروژه مشاهده کنید. # ----------------------------------------------------- ----------------------------------------------- از رویداد واردات لاجوردی از لاجوردی. eventhub import EventData، EventHubClient، Offset import logging logger = logging.getLogger ('azure.eventhub') db، json، time، datetime def get_time (): cntime = datetime.datetime.now () + datetime.timedelta (ساعت = +8) date = cntime.strftime ('٪ Y-{}-{}'). format (cntime.strftime ('٪ m'). zfill (2)، cntime.strftime ('٪ d'). zfill (2)) ساعت = cntime.strftime ('٪ H'). zfill (2) دقیقه = cntime.strftime ('٪ M'). zfill (2) ثانیه = cntime.strftime ('٪ S'). zfill (2) return [date، hour، minute، second] def get_iothub_data (): list = ['0'] * 11 client = EventHubClient.from_iothub_connection_string (''، debug = True) receiver = client.add_receiver ("$ default"، " 3 "، عملیات = '/پیامها/رویدادها' ، جبران = آفست (datetime.datetime.utcnow ())) try: client.run () eh_info = client.get_eventhub_info () print (eh_info) دریافت = receiver.receive (مهلت زمانی = 5) چاپ (دریافت) برای مورد دریافت: من ssage = json.loads (str (item.message)) print (message) if 'data' in message: data = message ['data'] air_temp = str (int (data [0: 2]، 16)) air_hum = str (int (داده [2: 4] ، 16)) فشار = str (int ((داده [4: 8]) ، 16)) co2 = str (int (داده [8:12] ، 16)) گرد و غبار = str (int (data [12:16]، 16)) illumination = str (int (data [16:20]، 16)) o2 = str (round (int (data [20:22]، 16) / 10 ، 1)) axa_temp = str (int (داده [22:24] ، 16)) خاک_هوم = str (int (داده [24:26] ، 16)) ولتاژ = str (دور (int (داده [26:28] ، 16) / int ('ff'، 16) * 5، 1)) error = str (int (data [28:]، 16)) list = [temp_ air، air_hum، press، co2، dust، illumination، o2، ground_temp ، خاک_هوم ، ولتاژ ، خطا] در نهایت: client.stop () بازگشت لیست در حالی که True: list = get_time () + get_iothub_data () db.insert (list) print (list)

قبل از اجرای برنامه ، رشته اتصال خود را تغییر دهید

client = EventHubClient.from_iothub_connection_string ('' ، اشکال زدایی = درست)

می توانید رشته اتصال خود را با کلیک روی سیاست های دسترسی مشترک به دست آورید - iotowner در Iot Hub ، کلید اصلی رشته اتصال در صفحه باز شده رشته اتصال است.

تصویر
تصویر

پس از آن ، می توانید برنامه را شروع کنید:

gunicorn iothub_recv: برنامه

توصیه شده: