جدول المحتويات:

لوحة تحكم AirVisual Air Quality API: 5 خطوات
لوحة تحكم AirVisual Air Quality API: 5 خطوات

فيديو: لوحة تحكم AirVisual Air Quality API: 5 خطوات

فيديو: لوحة تحكم AirVisual Air Quality API: 5 خطوات
فيديو: Stream Air Quality with Air Visual API | GIT TECH'D 2024, يوليو
Anonim
Image
Image

AirVisual (https://www.airvisual.com) هو موقع ويب يوفر بيانات حول جودة الهواء حول العالم. لديهم واجهة برمجة تطبيقات سنستخدمها للحصول على بيانات جودة الهواء لإرسالها إلى لوحة القيادة. سنتفاعل مع واجهة برمجة التطبيقات هذه على غرار ما فعلناه مع لوحة معلومات الطقس.

هذا مشروع بسيط يعلمك كيفية استخدام API. هيا بنا نبدأ!

الخطوة الأولى: البدء

AirVisual API
AirVisual API

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

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

استنساخ git $

اضغط على Enter وستظهر لك هذه المعلومات:

استنساخ $ git https://github.com/InitialState/airvisual.git الاستنساخ في "airvisual" … بعيد: تعداد الكائنات: 13 ، تم. عن بعد: عد الأشياء: 100٪ (13/13) ، تم. جهاز التحكم عن بعد: ضغط الكائنات: 100٪ (12/12) ، تم. جهاز التحكم عن بعد: إجمالي 13 (دلتا 2) ، معاد استخدامه 0 (دلتا 0) ، إعادة استخدام الحزم 0 تفريغ كائنات: 100٪ (13/13) ، تم.

بمجرد أن ترى هذا ، تهانينا ، لقد نجحت في استنساخ GitHub Repo ولديك جميع الملفات اللازمة لإنشاء هذا المشروع. دعنا ننتقل إلى الدليل الجديد. لتغيير الدليل ، كل ما عليك فعله هو كتابة “cd” ثم كتابة اسم الدليل الذي ترغب في الذهاب إليه. في هذه الحالة ، سنكتب:

airvisual cd $

بمجرد الضغط على مفتاح الإدخال ، سترى أننا الآن في دليل airvisual. دعنا نكتب "ls" لمعرفة الملفات التي ثبتها. يجب أن تبدو شيئًا كالتالي:

LICENSE README.md airquality.py

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

الخطوة 2: AirVisual API

AirVisual API
AirVisual API
AirVisual API
AirVisual API

يحتوي AirVisual على جودة هواء (AQI) وواجهة برمجة تطبيقات للتلوث تتيح ما يصل إلى 10000 مكالمة API شهريًا مجانًا. يمكنك التسجيل في طبقة المجتمع. بمجرد التسجيل ، يمكنك الانتقال إلى My Air وعلامة التبويب API. ستجد هنا مفاتيح API ووثائقك على API.

انقر فوق الزر + مفتاح جديد لإنشاء أول مفتاح وصول لواجهة برمجة التطبيقات. بالنسبة لـ Select Plan ، استخدم القائمة المنسدلة لتحديد المجتمع وانقر فوق إنشاء. إذا سارت الأمور على ما يرام ، سترى رسالة نجاح ويمكنك العودة إلى لوحة معلومات واجهة برمجة التطبيقات للعثور على معلوماتك الرئيسية الجديدة. القيمة الأساسية (الأرقام والأحرف) هي ما ستحتاجه لهذا المشروع. إذا اطلعت على وثائق API ، فسترى أن هناك أنواعًا متعددة من استدعاءات API التي يمكنك إجراؤها. بالنسبة لهذا المشروع ، نريد الحصول على بيانات أقرب مدينة بناءً على إحداثيات GPS. لهذه المكالمة ، ستحتاج إلى خط الطول وخط العرض ومفتاح واجهة برمجة التطبيقات. أدخل هذه المعلمات في المكالمة أدناه ، وضعها في شريط العناوين في متصفحك ، واضغط على Enter.

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

سيعيد هذا بيانات أقرب مدينة بناءً على إحداثيات GPS. سيبدو شيئا من هذا القبيل:

أوصي باستخدام مُنسق JSON للحصول على عرض أفضل للبيانات. إذا كنت تستخدم ذلك ، فسيبدو قليلاً مثل هذا بدلاً من ذلك:

"الحالة": "نجاح"،

"البيانات": {"المدينة": "ناشفيل" ، "الولاية": "تينيسي" ، "البلد": "الولايات المتحدة الأمريكية" ، "الموقع": {"النوع": "النقطة" ، "الإحداثيات": [- 86.7386، 36.1767]} ، "Current": {"weather": {"ts": "2019-04-08T19: 00: 00.000Z"، "_v": 0، "createdAt": "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}، "التلوث": {"ts": "2019-04-08T18: 00: 00.000Z"، "aqius": 10، "mainus": "p2"، "aqicn": 3 ، "maincn": "p2"}

يمكننا أن نرى بسهولة الآن أن لدينا معلومات عن الموقع والطقس والتلوث. القيمتان اللتان نركز عليهما في هذا المشروع هما مؤشر جودة الهواء في الولايات المتحدة (aquis) والملوث الرئيسي (mainus). تخبرنا قيمة مؤشر جودة الهواء بقيمة جودة الهواء المحلي وكيف يرتبط ذلك بصحتك. الرسم البياني المشفر بالألوان أدناه. يخبرنا الملوث الرئيسي ما هو الملوث الرئيسي في الهواء لمنطقتك (الجسيمات ، أكسيد النيتروجين ، الأوزون ، أول أكسيد الكربون ، أكسيد الكبريت). عادة ما تكون هذه الملوثات منتجات ثانوية من مداخن الدخان أو انبعاثات المركبات.

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

الخطوة 3: الحالة الأولية

الحالة الأولية
الحالة الأولية
الحالة الأولية
الحالة الأولية

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

التسجيل للحصول على حساب الدولة الأولي

انتقل إلى https://iot.app.initialstate.com وأنشئ حسابًا جديدًا.

قم بتثبيت ISStreamer

قم بتثبيت وحدة بيثون الحالة الأولية على الكمبيوتر المحمول أو Raspberry Pi. في موجه الأوامر ، قم بتشغيل الأمر التالي:

$ / curl -sSL https://iot.app.initialstate.com -o - | سودو باش

اصنع بعض Automagic

بعد تشغيل الأمر curl ، سترى شيئًا مشابهًا للإخراج التالي على الشاشة:

$ / curl -sSL https://iot.app.initialstate.com -o - | سودو باش

كلمة المرور: بداية ISStreamer Python سهلة التثبيت! قد يستغرق هذا بضع دقائق للتثبيت ، احصل على بعض القهوة:) ولكن لا تنسَ العودة ، سأطرح أسئلة لاحقًا! Found easy_install: setuptools 1.1.6 Found pip: pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) إصدار النقطة الرئيسي: 1 pip إصدار ثانوي: تم العثور على 5 ISStreamer ، يتم تحديثه … المطلب محدث بالفعل: ISStreamer في /Library/Python/2.7/site-packages تنظيف … هل تريد الحصول تلقائيًا على مثال على البرنامج النصي؟ [y / N] أين تريد حفظ المثال؟ [افتراضي:./is_example.py] يرجى تحديد تطبيق الحالة الأولية الذي تستخدمه: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com أدخل الخيار 1 أو 2: أدخل iot.app اسم مستخدم.initialstate.com: أدخل كلمة مرور iot.app.initialstate.com:

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

مفاتيح الوصول

دعنا نلقي نظرة على مثال البرنامج النصي الذي تم إنشاؤه. $ nano is_example.py في السطر 15 ، سترى سطرًا يبدأ بـ Streamer = Streamer (bucket_…. ينشئ هذا السطر مجموعة بيانات جديدة باسم "Python Stream Example" ويرتبط بحسابك. يحدث هذا الارتباط بسبب access_key =”…” المعلمة في نفس السطر. هذه السلسلة الطويلة من الأحرف والأرقام هي مفتاح الوصول إلى حساب الولاية الأولية. إذا انتقلت إلى حساب Initial State في متصفح الويب ، فانقر فوق اسم المستخدم الخاص بك في الجزء العلوي الأيمن ، ثم انتقل إلى "إعداداتي" ، ستجد مفتاح الوصول نفسه في أسفل الصفحة ضمن "مفاتيح الوصول المتدفقة". في كل مرة تقوم فيها بإنشاء دفق بيانات ، سيقوم مفتاح الوصول هذا بتوجيه تدفق البيانات إلى حسابك (لذا لا مشاركة مفتاحك مع أي شخص).

قم بتشغيل برنامج ExampleRun التجريبي للتأكد من أنه يمكننا إنشاء دفق بيانات إلى حساب Initial State الخاص بك. قم بتشغيل ما يلي في موجه الأوامر الخاص بك:

$ python is_example.py

مثال على البيانات

ارجع إلى حساب Initial State الخاص بك في متصفح الويب الخاص بك. يجب أن تظهر مجموعة بيانات جديدة تسمى "Python Stream Example" على اليسار في رف الجرافة (قد تضطر إلى تحديث الصفحة). انقر فوق هذه المجموعة لعرض البيانات.

أنت الآن جاهز لبدء دفق البيانات الحقيقية من AirVisual API.

الخطوة 4: لوحة معلومات جودة الهواء

لوحة تحكم جودة الهواء
لوحة تحكم جودة الهواء
لوحة تحكم جودة الهواء
لوحة تحكم جودة الهواء
لوحة تحكم جودة الهواء
لوحة تحكم جودة الهواء
لوحة تحكم جودة الهواء
لوحة تحكم جودة الهواء

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

يمكنك الوصول إلى البرنامج النصي من خلال مستودع Github الذي قمنا باستنساخه سابقًا. أول شيء يتعين علينا القيام به هو التأكد من وجودنا في دليل AirVisual:

$ cd airvisual

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

نانو $ airquality.py

بمجرد فتح محرر النصوص ، سترى ما يلي بالقرب من الجزء العلوي من البرنامج النصي الخاص بك:

# --------- إعدادات المستخدم ---------

LATITUDE = "LAT" LONGITUDE = "LONG" AIRVISUAL_API_KEY = "AIR VISUAL API KEY" BUCKET_NAME = "جودة الهواء المحلي" BUCKET_KEY = "aq1" ACCESS_KEY = "مفتاح الوصول إلى الحالة المبدئية" MINUTES_READETWEEN 5 -------------------------

تحتاج إلى إدخال خط العرض وخط الطول ومفتاح AirVisual API ومفتاح الوصول الأولي للحالة. ستحدد المعلمة MINUTES_BETWEEN_READS عدد المرات التي سيقوم فيها البرنامج النصي باستقصاء AirVisual API للحصول على معلومات حول جودة الهواء. 5 دقائق من الوقت الكافي حتى لا تتجاوز حد استدعاء API البالغ 10000 لكل شهر. من أجل إجراء اختبار قصير المدى ، يمكنك ضبط هذا على 0.5 دقيقة. بمجرد إدخال المعلمات الخاصة بك ، احفظ واخرج من النص أدخل بكتابة Control + X. أنت الآن جاهز لتشغيل البرنامج النصي الخاص بك:

بيثون $ airquality.py

إذا كنت تريد ترك هذا البرنامج النصي يعمل دون انقطاع لفترة طويلة ، فيمكنك استخدام الأمر nohup (بدون توقف) على النحو التالي:

nohup python airquality.py &

بمجرد تشغيل هذا ، انتقل إلى Initial State لعرض بياناتك. يجب أن تبدو لوحة القيادة الخاصة بك مثل الصورة أدناه. لديك موقع GPS الخاص بك وقيمة مؤشر جودة الهواء والملوث الرئيسي الخاص بك.

توصيتي بتغيير قيمة AQI الخاصة بك إلى لوحة قياس. أيضًا ، حرك المربعات حولها وقم بتغيير حجمها حسب الحاجة. إذا كنت تستخدم هذا للوحة معلومات مدمجة ، فيمكنك تحريكها لتلائم حسب الحاجة.

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

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

الخطوة 5: إنشاء لوحة معلومات الطقس الكلي

إنشاء لوحة معلومات الطقس الإجمالي
إنشاء لوحة معلومات الطقس الإجمالي

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

دفق الطقس وجودة الهواء في لوحة تحكم واحدة

إذا كنت قد نفذت بالفعل مشروع DarkSky API أو Hyper-Local Weather Dashboard ، فيمكنك إضافة بيانات جودة الهواء هذه إلى لوحة التحكم الحالية. الأمر بسيط جدًا ، كل ما عليك فعله هو تغيير المعلمات الخاصة بك في البرنامج النصي لجودة الهواء ليكون لديك نفس اسم الجرافة ومفتاح الجرافة ومفتاح الوصول مثل ما استخدمته في لوحة معلومات الطقس. سيسمح هذا بإرسال البيانات إلى نفس لوحة القيادة. الآن سيكون لديك لوحة معلومات الطقس الكلي!

اطلب من ملف Python الخاص بالطقس إجراء مكالمة لتشغيل ملف Python الخاص بجودة الهواء

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

قم بإنشاء ملف واحد بجودة الطقس والجو

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

دفق معلومات إضافية من AirVisual API

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

موصى به: