Mundarija:

IoTea LoRa Qarori (Azure bilan, 1812 -ni yangilang): 5 qadam
IoTea LoRa Qarori (Azure bilan, 1812 -ni yangilang): 5 qadam

Video: IoTea LoRa Qarori (Azure bilan, 1812 -ni yangilang): 5 qadam

Video: IoTea LoRa Qarori (Azure bilan, 1812 -ni yangilang): 5 qadam
Video: Разрушая барьеры: женщины в ИТ — интервью с опытным ведущим разработчиком Java. 2024, Iyun
Anonim
Ko'rilgan IoTea LoRa Qarori (Azure bilan, 1812 yangilanishi)
Ko'rilgan IoTea LoRa Qarori (Azure bilan, 1812 yangilanishi)

Microsoft Azure - bulutli xizmat bo'lib, u yanada kuchli va barqaror hisoblash quvvatini beradi. Bu safar biz unga IoTea ma'lumotlarini yuborishga harakat qildik.

1 -qadam: Ushbu loyihada ishlatilgan narsalar

Uskuna komponentlari

  • Grove - karbonat angidrid sensori (MH -Z16)
  • Grove - Raqamli yorug'lik sensori
  • Grove - chang sensori (PPD42NS)
  • Grove-kislorod sensori (ME2-O2-F20)
  • Tuproq namligi va harorat sensori
  • LoRa LoRaWAN Gateway - Raspberry Pi 3 bilan 868 MGts to'plami
  • Grove - Temp va Humi va barometr sensori (BME280)

Dasturiy ta'minot va onlayn xizmatlar

  • Microsoft Visual Studio 2015
  • Microsoft Azure

2 -qadam: hikoya

Sichuan, Yaanning shimoli -sharqidagi Mengding tog'ida, tog 'tizmasi g'arbdan sharqqa yashil dengizda oqadi. Dengiz sathidan 1100 m balandlikda joylashgan 50mu (= 3,3 gektar) plantatsiyaga ega bo'lgan 36 yoshli Deng, o'z avlodining kam sonli choy ishlab chiqaruvchilardan biri uchun eng tanish manzara. Deng choy ishlab chiqaruvchilar oilasidan, lekin oilaviy merosni davom ettirish oson ish emas. Bizning choylarimiz yuqori sifatda organik muhitda o'stiriladi va uning sifatini ta'minlaydi. Shu bilan birga, o'sish zichligi past, narxi yuqori va kurtaklari notekis bo'lib, choyni yig'ib olishni qiyinlashtiradi. Shuning uchun baland tog'li choylar odatda kichik hosil bo'lib, ularning qiymati bozorda aks ettirilmaydi.”So'nggi ikki yil mobaynida Deng o'z qadrini oshirish uchun iste'molchilarning baland tog'li choy haqida xabardorligini oshirishga harakat qilmoqda. Va u Seeedning IoTea texnologiyasini amalga oshirish uchun plantatsiya qidirayotgan Fan bilan uchrashganida, yechim uchun mukammal moslik topildi.

3 -qadam: Uskuna ulanishi

Uskunani ulash uchun oldingi qo'llanmani bajaring.

4 -qadam: Bulutni sozlash

Qadam 1. Resurslar guruhini yarating

Microsoft Azure -ga kirish uchun shu erni bosing. Va keyin, asboblar paneli chap tomonidagi ro'yxatga Resurs guruhlarini kiriting, Resurslar guruhini qo'shish uchun Qo'shish -ni bosing.

Rasm
Rasm

Resurslar guruhi loyihadagi barcha resurslarni boshqarish uchun ishlatiladi, bulutli manbalardan foydalangandan so'ng, to'lovlarni oldini olish uchun barcha manbalarni o'chirish uchun resurslar guruhini o'chirib tashlang. Ochilgan sahifada Resurslar guruhining nomini (masalan, iotea) to'ldiring, agar kerak bo'lsa Obuna va Resurslar guruhining manzilini tanlang, Resurslar guruhini yaratish uchun Yaratish -ni bosing.

Qadam 2. Iot Hub yaratish

Endi siz bulutli manbani yaratishingiz mumkin, chapda Resurs yaratish -ni bosing, Internet of Things - Iot Hub -ni tanlang, u yangi sahifani ochadi.

"Asoslar" yorlig'ida siz yaratgan Resurslar guruhini tanlang va Iot Hub nomini to'ldiring (masalan, iotea), agar kerak bo'lsa "Obuna" va "Hudud" ni tanlang, so'ng "Hajmi va o'lchamlari" yorlig'iga o'ting.

Rasm
Rasm

"Hajmi va o'lchovi" yorlig'ida F1: Bepul daraja yoki B1: Narxlashning asosiy darajasi va shkalali darajali kombinatsiyani tanlang, Asosiy daraja oyiga 10,00 AQSh dollarini tashkil qiladi. Nihoyat, "Ko'rib chiqish + yaratish" yorlig'iga o'ting va kiritganingizni tekshiring va Iot Hub yaratish uchun Yaratish -ni bosing.

Rasm
Rasm

3 -qadam. LORIOT -ni sozlang

O'zingiz yaratgan Iot Hub -ga kiring, "Umumiy foydalanish siyosati - qurilma" ni bosing, o'ngdagi sahifadagi asosiy kalitni nusxalash.

Rasm
Rasm

Yangi broker oynasini (yoki yorlig'ini) oching, LORIOT boshqaruv paneliga kiring, Ilova - SampleApp -ga o'ting, Boshqarish guruhidagi Ma'lumotlar chiqishi - O'zgartirish -ni bosing. Chiqish turini o'zgartirish guruhida Azure Iot Hub -ni tanlang, Iot Hub nomi va asosiy kalitini to'ldiring va pastdagi O'zgartirishni tasdiqlash tugmasini bosing.

Rasm
Rasm

Qadam 4. Iot qurilmasini qo'shing

LORIOT -da chapdagi ro'yxatdagi qurilmalar -ni bosing, qurilmangiz EUI -ni nusxalash.

Rasm
Rasm

Azure Iot Hub -ga qaytib, Iot Hub -ning chap tomonidagi ro'yxatdagi Iot -ni bosing. Qo'shish -ni bosing, ochilgan sahifada Device EUI -ni Device ID -ga to'ldiring.

MUHIM: EUI QURILMASIDAGI BARCHA SEPRATORNI O'CHIRING, u 1122334455667788 ga o'xshaydi.

Rasm
Rasm

Saqlash -ni bosing, hammasi tayyor.

Qadam 5. D2C (Qurilmadan bulutga) xabarlarini qabul qiling

D2C xabarlarini o'qish uchun siz Microsoft Docs -ga amal qilishingiz mumkin.

5 -qadam: dasturiy ta'minot

Dasturiy ta'minotni dasturlash 3 qismga bo'linadi: tugun, shlyuz va veb -sayt, iltimos, tugun qismi va shlyuz qismini dasturlash uchun oldingi qo'llanmani o'qing. Veb -sayt qismining 1-8 bosqichlari oldingi qo'llanma bilan bir xil.

Agar siz allaqachon Microsoft Azure -ni sozlagan bo'lsangiz, terminalni oching, veb -saytingizning ildiz papkasini kiriting, virtual muhitni yoqing:

cd ~/iotea-hb

manba qutisi/faollashtirish

Azure Event Hub modulini pip orqali o'rnating va new.py faylini yarating (masalan, iothub_recv.py):

pip azure-eventhub-ni o'rnating

iothub_recv.py ga teging

va keyin quyidagi kodlarni yozing:

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

# Mualliflik huquqi (c) Microsoft korporatsiyasi. Barcha huquqlar himoyalangan. # MIT litsenziyasi ostida litsenziyalangan. Litsenziya ma'lumotlari uchun loyiha ildizidagi License.txt ga qarang. # ------------------------------------------------- ------------------------------------------- azure-dan azure import eventhub-dan. eventhub import EventData, EventHubClient, ofset import jurnali logger = logging.getLogger ('azure.eventhub') import db, json, time, datetime def get_time (): cntime = datetime.datetime.now () + datetime.timedelta (hours = +8) sana = cntime.strftime ('%Y-{}-{}'). Format (cntime.strftime ('%m'). Zfill (2), cntime.strftime ('%d'). Zfill (2)) soat = cntime.strftime ('%H').zfill (2) daqiqa = cntime.strftime ('%M').zfill (2) sekund = cntime.strftime ('%S').zfill (2)) qaytish [sana, soat, daqiqa, soniya] def get_iothub_data (): list = ['0'] * 11 client = EventHubClient.from_iothub_connection_string ('', debug = True) qabul qiluvchi = client.add_receiver ("$ default", " 3 ", operatsiya = '/xabarlar/hodisalar', ofset = Ofset (datetime.datetime.utcnow ())) harakat qilib ko'ring: client.run () eh_info = client.get_eventhub_info () chop etish (eh_info) qabul qilingan = qabul qiluvchi.qabul qilish (vaqt tugashi) = 5) qabul qilingan element uchun bosma (qabul qilingan): men ssage = json.loads (str (item.message)) chop etish (xabar) agar xabarda "ma'lumotlar" bo'lsa: ma'lumotlar = xabar ['ma'lumotlar'] air_temp = str (int (ma'lumotlar [0: 2], 16)) air_hum = str (int (ma'lumotlar [2: 4], 16)) bosim = str (int ((ma'lumotlar [4: 8]), 16)) co2 = str (int (ma'lumotlar [8:12], 16)) chang = str (int (ma'lumotlar [12:16], 16)) yoritish = str (int (ma'lumotlar [16:20], 16)) o2 = str (dumaloq (int (ma'lumotlar [20:22], 16) / 10, 1)) tuproq_temp = str (int (ma'lumotlar [22:24], 16)) tuproq_xum = str (int (ma'lumotlar [24:26], 16)) kuchlanish = str (yumaloq (int (ma'lumotlar [26:28],) 16) / int ('ff', 16) * 5, 1)) xato = str (int (ma'lumotlar [28:], 16)) ro'yxat = [air_temp, air_hum, bosim, co2, chang, yorug'lik, o2, tuproq_temp, tuproq_xum, kuchlanish, xato] nihoyat: client.stop () qaytish ro'yxati esa True: list = get_time () + get_iothub_data () db.insert (ro'yxat) chop etish (ro'yxat)

Dasturni ishga tushirishdan oldin ulanish tarmog'ini o'zgartiring

mijoz = EventHubClient.from_iothub_connection_string ("", disk raskadrovka = To'g'ri)

Iot Hub -dagi umumiy foydalanish siyosati - iotauner -ni bosish orqali siz ulanish satrini olishingiz mumkin, ochilgan sahifadagi ulanish mag'lubiyatining asosiy kaliti bu ulanish satridir.

Rasm
Rasm

Shundan so'ng siz dasturni ishga tushirishingiz mumkin:

gunicorn iothub_recv: ilova

Tavsiya: