Mundarija:

AirVisual Air Quality API boshqaruv paneli: 5 qadam
AirVisual Air Quality API boshqaruv paneli: 5 qadam

Video: AirVisual Air Quality API boshqaruv paneli: 5 qadam

Video: AirVisual Air Quality API boshqaruv paneli: 5 qadam
Video: IQAir AirVisual Pro 2024, Iyul
Anonim
Image
Image

AirVisual (https://www.airvisual.com) - bu butun dunyo bo'ylab havo sifati to'g'risida ma'lumot beruvchi veb -sayt. Ularda API bor, biz uni asboblar paneliga yuborish uchun havo sifati to'g'risidagi ma'lumotlarni olish uchun ishlatamiz. Biz ushbu API bilan ob -havo asboblar panelidagi kabi ishlaymiz.

Bu sizga API -dan qanday foydalanishni o'rgatadigan oddiy loyihadir. Qani boshladik!

1 -qadam: Ishga kirishish

AirVisual API
AirVisual API

Biz allaqachon kodning ko'p qismini birlashtirganmiz, lekin siz yo'lda bir nechta o'zgartirishlar kiritishingiz kerak bo'ladi. Biz qilgan ishlarimizni kengaytirish uchun juda ko'p imkoniyatlar mavjud.

Biz tayyorlagan barcha narsalarni olish uchun siz GitHub -dan omborni klonlashingiz kerak bo'ladi. GitHub - bu shunday loyihalarni saqlash, qayta ko'rib chiqish va boshqarish imkonini beradigan ajoyib xizmat. Siz ushbu skriptni maxsus qurilmada ishlatishni xohlaysiz. Siz noutbuk, Raspberry Pi yoki boshqa bitta kompyuterdan foydalanishingiz mumkin. Ma'lumotlar omborini klonlash uchun biz kompyuter yoki Pi terminaliga kiramiz va quyidagi buyruqni yozamiz:

$ git klon

Enter ni bosing va siz ushbu ma'lumotlarni ko'rasiz:

$ git clone https://github.com/InitialState/airvisual.git "Airvisual" ga masofadan boshqarish … masofadan boshqarish: ob'ektlarni sanash: 13, bajarildi. masofadan boshqarish: ob'ektlarni sanash: 100% (13/13), bajarildi. masofadan boshqarish: ob'ektlarni siqish: 100% (12/12), bajarildi. uzoqdan: Hammasi bo'lib 13 (delta 2), qayta ishlatilgan 0 (delta 0), qayta ishlatilgan 0 Ob'ektlarni ochish: 100% (13/13), bajarildi.

Buni ko'rganingizdan so'ng, tabriklaymiz, siz GitHub Repo -ni muvaffaqiyatli klonladingiz va ushbu loyihani yaratish uchun barcha kerakli fayllarga ega bo'ldingiz. Keling, yangi katalogga o'tamiz. Katalogni o'zgartirish uchun sizga faqat "cd" yozib, keyin kerakli katalog nomini yozish kifoya. Bunday holda, biz yozamiz:

$ CD havo kemasi

Kirish tugmachasini bosganimizda, biz hozir havo vizual katalogida ekanligimizni ko'rasiz. Qaysi fayllarni o'rnatganimizni bilish uchun "ls" yozamiz. Siz quyidagicha ko'rinishingiz kerak:

Litsenziyani o'qish.md airquality.py

Kodni tahrir qilishdan oldin bizga boshqa narsalar kerak, shuning uchun keling, Air Quality API ni ko'rib chiqaylik.

2 -qadam: AirVisual API

AirVisual API
AirVisual API
AirVisual API
AirVisual API

AirVisual -da havo sifati (AQI) va ifloslanish API mavjud, bu oyiga 10 000 API qo'ng'iroqlarini bepul amalga oshirish imkonini beradi. Siz hamjamiyat darajasiga yozilishingiz mumkin. Ro'yxatdan o'tgandan so'ng, siz "Mening havoim" va "API" yorlig'iga o'tishingiz mumkin. Bu erda siz API kalitlari va hujjatlarini API -da topasiz.

Birinchi API kirish kalitini yaratish uchun +Yangi kalit tugmasini bosing. Tanlash rejasi uchun ochiladigan menyudan foydalanib, Hamjamiyat -ni tanlang va Yaratish -ni bosing. Agar hamma narsa yaxshi bo'lsa, siz muvaffaqiyatli xabarni ko'rasiz va siz yangi kalit ma'lumotlarini topish uchun API boshqaruv paneliga qaytishingiz mumkin. Asosiy qiymat (raqamlar va belgilar) - bu loyiha uchun sizga kerak bo'lgan narsa. Agar siz API hujjatlarini ko'rib chiqsangiz, siz qo'ng'iroq qilishingiz mumkin bo'lgan bir nechta API qo'ng'iroqlarini ko'rasiz. Ushbu loyiha uchun biz GPS koordinatalariga asoslangan eng yaqin shahar ma'lumotlarini olishni xohlaymiz. Bu qo'ng'iroq uchun sizga uzunlik, kenglik va API kaliti kerak bo'ladi. Quyidagi qo'ng'iroqqa ushbu parametrlarni kiriting, brauzeringiz manzil satriga qo'ying va Enter ni bosing.

api.airvisual.com/v2/nearest_city?lat={{LATITUDE}}&lon={{LONGITUDE}}&key={{YOUR_API_KEY}}

Bu GPS koordinatalariga asoslangan eng yaqin shahar ma'lumotlarini qaytaradi. Bu shunday ko'rinadi:

Ma'lumotni yaxshiroq ko'rish uchun JSON formatlagichidan foydalanishni tavsiya qilaman. Agar siz undan foydalansangiz, u biroz shunday ko'rinadi:

"status": "muvaffaqiyat", "ma'lumotlar": {"shahar": "Nashvil", "shtat": "Tennessi", "mamlakat": "AQSh", "manzil": {"tip": "nuqta", "koordinatalar": [-86.7386, 36.1767]}, "hozirgi": {"ob-havo": {"ts": "2019-04-08T19: 00: 00.000Z", "_v": 0, "yaratilganAt": "2019-04-08T19: 04: 18.662Z "," hu ": 88," ic ":" 04d "," pr ": 1012," tp ": 18," updatedAt ":" 2019-04-08T19: 46: 53.140Z "," wd ": 90, "ws": 3.1}, "ifloslanish": {"ts": "2019-04-08T18: 00: 00.000Z", "aqius": 10, "mainus": "p2", "aqicn": 3, "maincn": "p2"}

Hozir biz manzil, ob -havo va ifloslanish haqida ma'lumotga ega ekanligimizni osongina ko'rishimiz mumkin. Biz ushbu loyiha uchun e'tibor qaratadigan ikkita qiymat - havo sifati indeksi AQSh (aquis) va asosiy ifloslantiruvchi (mainus). Havo sifati indeksining qiymati bizga mahalliy havo sifati nima ekanligini va bu sizning sog'lig'ingizga qanday aloqasi borligini aytadi. Rang kodli jadval quyida keltirilgan. Asosiy ifloslantiruvchi sizning hududingiz uchun havodagi asosiy ifloslantiruvchi nima ekanligini aytadi (zarrachalar, azot oksidi, ozon, uglerod oksidi, oltingugurt oksidi). Bu ifloslantiruvchi moddalar odatda tutun chiqindilari yoki avtomobil chiqindilarining yon mahsulotidir.

Endi Air Visual API -dan qanday foydalanishni bilganimizdan so'ng, bizga kerak bo'ladigan yana bir narsa bu ma'lumotlarni ko'rsatish uchun boshqaruv paneli.

3 -qadam: dastlabki holat

Boshlang'ich davlat
Boshlang'ich davlat
Boshlang'ich davlat
Boshlang'ich davlat

Biz barcha ob -havo ma'lumotlarini bulutli xizmatga o'tkazmoqchimiz va bu xizmat ma'lumotlarimizni yaxshi boshqaruv paneliga aylantirishini xohlaymiz. Bizning ma'lumotlar manzilga muhtoj, shuning uchun biz boshlang'ich shtatni o'sha manzil sifatida ishlatamiz.

Boshlang'ich davlat hisobini ro'yxatdan o'tkazish

Https://iot.app.initialstate.com saytiga o'ting va yangi hisob yarating.

ISStreamer -ni o'rnating

Boshlang'ich holat Python modulini noutbukga yoki Raspberry Pi -ga o'rnating. Buyruq satrida quyidagi buyruqni bajaring:

$ / curl -sSL https://iot.app.initialstate.com -o -| sudo bash

Bir oz avtomat qiling

Curl buyrug'ini bajarganingizdan so'ng, siz ekranda quyidagi chiqishga o'xshash narsani ko'rasiz:

$ / curl -sSL https://iot.app.initialstate.com -o -| sudo bash

Parol: ISStreamer Python -ni o'rnatish oson! Bu o'rnatish uchun bir necha daqiqa vaqt ketishi mumkin, qahva oling:) Lekin qaytib kelishni unutmang, keyinroq savollarim bor! Easy_install topildi: setuptools 1.1.6 pip topildi: pip 1.5.6 dan /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip asosiy versiyasi: 1 pip kichik versiyasi: 5 ISStreamer topildi, yangilanmoqda … Talab allaqachon yangilangan: /Library/Python/2.7/site-packages-da ISStreamer tozalanmoqda… Siz avtomatik tarzda misol skriptini olishni xohlaysizmi? [y/N] Misolni qayerda saqlamoqchisiz? [standart:./is_example.py] Iltimos, qaysi shtat dasturidan foydalanayotganingizni tanlang: 1. app.initialstate.com 2. [YANGI!] iot.app.initialstate.com 1 yoki 2 -variantni kiriting: iot.app -ga kiring..initialstate.com foydalanuvchi nomi: iot.app.initialstate.com parolini kiriting:

Misol skriptini avtomatik ravishda olish so'ralganda, y yozing. Bu biz ma'lumotni dastlabki holatga uzatishni ta'minlash uchun ishga tushirishimiz mumkin bo'lgan test skriptini yaratadi. Keyingi ko'rsatma misol faylini qayerda saqlamoqchi ekanligingizni so'raydi. Odatiy joyni qabul qilish uchun siz maxsus mahalliy yo'lni yozishingiz yoki Enter tugmasini bosishingiz mumkin. Nihoyat, sizdan qaysi boshlang'ich davlat dasturidan foydalanayotganingiz so'raladi. Agar siz yaqinda hisob yaratgan bo'lsangiz, 2 -variantni tanlang, so'ng foydalanuvchi nomi va parolni kiriting. Shundan so'ng, o'rnatish tugallanadi.

Kirish kalitlari

Keling, yaratilgan skript namunasini ko'rib chiqaylik. $ nano is_example.py 15 -satrda siz streamer = Streamer (bucket_ …) bilan boshlanadigan qatorni ko'rasiz. Bu satrlar "Python Stream Example" nomli yangi ma'lumotlar paketini yaratadi va sizning hisobingiz bilan bog'lanadi. o'sha satrda access_key =”…” parametri. Harflar va raqamlarning uzun qatori sizning boshlang'ich shtat hisob qaydnomangizga kirish kalitidir. Agar siz veb -brauzeringizda Boshlang'ich davlat hisobingizga kirsangiz, yuqori o'ngdagi foydalanuvchi nomingizni bosing va keyin o'ting. "Mening sozlamalarim" ga kirsangiz, sahifaning pastki qismida "Kirish kalitlari oqimi" ostida o'sha kirish kalitini topasiz. Har safar ma'lumotlar oqimini yaratganingizda, bu kirish kaliti bu ma'lumot oqimini sizning hisobingizga yo'naltiradi. kalitingizni kimgadir ulashing).

ExampleRun -ni ishga tushiring, shunda biz sizning dastlabki holatingizga ma'lumotlar oqimini yaratishimiz mumkin. Buyruq satrida quyidagilarni bajaring:

$ python is_example.py

Misol ma'lumotlari

Veb -brauzerda boshlang'ich davlat hisobingizga qayting. Chap tokchangizning chap tomonida "Python oqimining namunasi" deb nomlangan yangi ma'lumotlar to'plami paydo bo'lishi kerak edi (ehtimol siz sahifani yangilashingiz kerak bo'ladi). Ma'lumotni ko'rish uchun bu chelakni bosing.

Siz hozir AirVisual API -dan haqiqiy ma'lumotlarni uzatishni boshlashga tayyormiz.

4 -qadam: Havo sifati asboblar paneli

Havo sifatining boshqaruv paneli
Havo sifatining boshqaruv paneli
Havo sifatining boshqaruv paneli
Havo sifatining boshqaruv paneli
Havo sifatining boshqaruv paneli
Havo sifatining boshqaruv paneli
Havo sifatining boshqaruv paneli
Havo sifatining boshqaruv paneli

Endi qiziqarli qism uchun. Biz AirVisual API -dan foydalanishni boshlashimiz va havoning sifatini nazorat qilish panelini yaratishimiz va havoning ifloslanishi haqidagi ma'lumotlarni biz xohlagan joydan olishimiz mumkin. Bu airquality.py skript sizning API kalitingiz yordamida AirVisual API -ni chaqiradi va havoning ifloslanishi haqidagi joriy ma'lumotlarni oladi. Shuningdek, u sizning ma'lumotlaringizni boshlang'ich shtatingizga uzatadi, bu sizga havo sifatini nazorat qilish panelini yaratishga imkon beradi.

Siz skriptga biz ilgari klonlagan Github ombori orqali kirishingiz mumkin. Biz qilishimiz kerak bo'lgan birinchi narsa - AirVisual katalogida ekanligimizga ishonch hosil qilish.

$ CD havo kemasi

Bu erdan siz havo sifati boshqaruv panelini yaratish uchun biz ishlatadigan python fayliga kira olasiz. Faylni ishga tushirishdan oldin unga ba'zi o'zgartirishlar kiritishimiz kerak. Python faylini ochish uchun matn muharririni ochish uchun nano buyrug'idan foydalaning:

$ nano airquality.py

Matn muharriri ochilgach, skriptning yuqori qismida siz quyidagilarni ko'rasiz:

# --------- Foydalanuvchi sozlamalari ---------

LATITUDE = "LAT" LONGITUDE = "LONG" AIRVISUAL_API_KEY = "AIR VISUAL API KEY" BUCKET_NAME = "Mahalliy havo sifati" BUCKET_KEY = "aq1" ACCESS_KEY = "BOSHLIK DAVLAT KELISHI" MINUTES_ETSI-5- # -------------------------

Siz kenglik, uzunlik, AirVisual API kalitini va dastlabki holatga kirish kalitini kiritishingiz kerak. MINUTES_BETWEEN_READS parametri sizning skriptingiz havo sifati haqida ma'lumot olish uchun AirVisual API -ni qanchalik tez -tez so'rab turishini belgilaydi. Etarli 5 daqiqa vaqt, shunda siz oyiga 10 000 API qo'ng'irog'idan oshib ketmaysiz. Qisqa muddatli testlar uchun siz buni 0,5 daqiqaga qo'yishingiz mumkin. Parametrlar kiritilgandan so'ng, Control+X tugmalar birikmasini bosib matnni saqlang va chiqing. Endi siz skriptni ishga tushirishga tayyormiz:

$ python airquality.py

Agar siz ushbu skriptni uzoq vaqt davomida uzluksiz ishlashini xohlasangiz, nohup buyrug'idan (o'chirilmasligi) quyidagicha foydalanishingiz mumkin:

$ nohup python airquality.py &

Bu ishga tushgandan so'ng, ma'lumotlarni ko'rish uchun boshlang'ich holatiga o'ting. Sizning boshqaruv paneli quyidagi rasmga o'xshash bo'lishi kerak. Sizda GPS joylashuvi, havo sifati indeksi qiymati va asosiy ifloslantiruvchi moddangiz bor.

Mening tavsiyam AQI qiymatini o'lchagichga o'zgartiradi. Bundan tashqari, plitkalarni aylantiring va kerak bo'lganda o'lchamlarini o'zgartiring. Agar siz uni o'rnatilgan boshqaruv paneli uchun ishlatayotgan bo'lsangiz, ularni kerakli joyga mos ravishda siljitishingiz mumkin.

Agar siz AQI qiymatini o'lchagichga aylantirishga qaror qilsangiz, rang chegarasini havo sifati ko'rsatkichlari jadvaliga o'xshash qilib belgilashingiz mumkin. Bu sizga asboblar panelini tekshirganda AQI qiymati jadvalda qayerga tushishi haqida darhol ma'lumot beradi. Siz ko'proq kontekst berish uchun boshqaruv paneliga fon tasvirini qo'shishingiz mumkin.

Shunday qilib, sizda havo sifatini nazorat qilish panelini yaratish uchun kerak bo'lgan hamma narsa bor. Ammo, agar siz buni allaqachon yaratgan ob -havo asboblar paneliga qo'shishni xohlasangiz nima bo'ladi? Agar shunday bo'lsa, o'qishni davom ettiring!

5 -qadam: Ob -havoning umumiy boshqaruv panelini yarating

Ob -havoning umumiy boshqaruv panelini yarating
Ob -havoning umumiy boshqaruv panelini yarating

Siz uchun havo sifati haqidagi ma'lumotlar etarli emasmi? Boshqaruv paneliga qo'shimcha qo'shish yoki bu ma'lumotni ob -havo asboblar paneliga o'tkazish uchun ko'plab variantlar mavjud!

Ob -havo va havo sifatini bitta boshqaruv paneliga o'tkazing

Agar siz allaqachon DarkSky API yoki Hyper-Local Weather Dashboard loyihasini amalga oshirgan bo'lsangiz, ushbu havo sifati haqidagi ma'lumotlarni mavjud boshqaruv paneliga qo'shishingiz mumkin. Bu juda oddiy, sizga havo sifati skriptidagi parametrlarni o'zgartirish, ob -havo asboblar panelida ishlatilgan chelak nomi, chelak kaliti va kirish kaliti bo'lishi kerak. Bu ma'lumotni xuddi shu boshqaruv paneliga yuborish imkonini beradi. Endi sizda ob -havoning umumiy boshqaruv paneli bo'ladi!

Python -da ob -havo ma'lumotingiz bor, havo sifati Python faylini ishga tushiring

Agar siz ikkita alohida dasturni ishlatishni xohlamasangiz, boshqa variant - havo sifati python faylini ob -havo loyihalari katalogiga joylashtirish. Ob -havo loyihasi python fayli ob -havo fayli ishlayotgan vaqtda ishlashi uchun havo sifati faylini chaqirsin. Shunga qaramay, xuddi shu paqir nomini, chelak kalitini va kirish kalitini bir xil asboblar paneliga o'tishi uchun qo'yganingizga ishonch hosil qiling.

Ob -havo va havo sifati bilan bitta fayl yarating

Va agar siz o'zingizni juda jasur his qilsangiz, havo sifati kodining bir qismini ob -havo python skriptingizga kiritishingiz va faqat bitta skriptni ishga tushirishingiz mumkin. Boshqa ikkita variantga qaraganda biroz ko'proq kodlash talab qilinadi, lekin bu soddalashtirilgan dasturni yaratadi.

AirVisual API -dan qo'shimcha ma'lumotlarni uzating

AirVisual API -ga qo'ng'iroq qilganimizda ko'rganingizdek, u havo sifatidan ko'ra ko'proq ma'lumotga ega. Shuningdek, u harorat, namlik, shamol tezligi, shamol yo'nalishi va atmosfera bosimini ta'minlaydi. Biz bu ma'lumotni havo sifat indeksining qiymati va asosiy ifloslantiruvchi moddalarni yuborganimizdek, Bosh shtatga yuborishimiz mumkin. Buning uchun faqat bir nechta if bayonotlarini yozish kerak.

Tavsiya: