สารบัญ:

AirVisual Air Quality API Dashboard: 5 ขั้นตอน
AirVisual Air Quality API Dashboard: 5 ขั้นตอน

วีดีโอ: AirVisual Air Quality API Dashboard: 5 ขั้นตอน

วีดีโอ: AirVisual Air Quality API Dashboard: 5 ขั้นตอน
วีดีโอ: #iMoD แนะนำแอปดูคุณภาพอากาศ ค่าฝุ่น PM 2.5 บน iPhone, Apple Watch 2024, พฤศจิกายน
Anonim
Image
Image

AirVisual (https://www.airvisual.com) เป็นเว็บไซต์ที่ให้ข้อมูลเกี่ยวกับคุณภาพอากาศทั่วโลก พวกเขามี API ที่เราจะใช้เพื่อรับข้อมูลคุณภาพอากาศเพื่อส่งไปยังแดชบอร์ด เราจะโต้ตอบกับ API นี้เหมือนกับที่เราทำกับแดชบอร์ดสภาพอากาศ

นี่เป็นโครงการง่ายๆ ที่สอนวิธีใช้ API มาเริ่มกันเลย!

ขั้นตอนที่ 1: เริ่มต้น

AirVisual API
AirVisual API

เราได้รวบรวมโค้ดส่วนใหญ่ไว้ด้วยกันแล้ว แต่คุณจะต้องทำการปรับเปลี่ยนเล็กน้อยระหว่างทาง มีโอกาสมากมายในการขยายสิ่งที่เราได้ทำไปแล้วเช่นกัน

ในการดึงข้อมูลทั้งหมดที่เราเตรียมไว้ให้คุณ คุณจะต้องโคลนที่เก็บจาก GitHub GitHub เป็นบริการที่ยอดเยี่ยมที่ช่วยให้เราสามารถจัดเก็บ แก้ไข และจัดการโครงการในลักษณะนี้ คุณจะต้องเรียกใช้สคริปต์นี้บนอุปกรณ์เฉพาะ คุณสามารถใช้แล็ปท็อป Raspberry Pi หรือคอมพิวเตอร์บอร์ดเดี่ยวอื่นๆ ในการโคลนที่เก็บ ทั้งหมดที่เราต้องทำคือเข้าไปในเทอร์มินัลของคอมพิวเตอร์หรือของ Pi แล้วพิมพ์คำสั่งนี้:

$ git clone

กด Enter แล้วคุณจะเห็นข้อมูลนี้:

$ git clone 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" จากนั้นพิมพ์ชื่อไดเร็กทอรีที่คุณต้องการไป ในกรณีนี้ เราจะพิมพ์ว่า

$ cd airvisual

เมื่อเรากด Enter คุณจะเห็นว่าตอนนี้เราอยู่ในไดเร็กทอรี airvisual ให้พิมพ์ "ls" เพื่อดูว่าเราติดตั้งไฟล์ใดบ้าง คุณควรมีลักษณะดังนี้:

ใบอนุญาต README.md airquality.py

เราต้องการรายการอื่นๆ ก่อนที่เราจะสามารถแก้ไขโค้ดได้ มาดู Air Quality API กันต่อไป

ขั้นตอนที่ 2: AirVisual API

AirVisual API
AirVisual API
AirVisual API
AirVisual API

AirVisual มีคุณภาพอากาศ (AQI) และ API มลพิษที่อนุญาตให้เรียกใช้ API ได้สูงสุด 10,000 ครั้งต่อเดือนโดยไม่เสียค่าใช้จ่าย คุณสามารถลงทะเบียนสำหรับระดับชุมชน เมื่อคุณสมัครใช้งานแล้ว คุณสามารถไปที่ My Air และแท็บ API ที่นี่คุณจะพบคีย์ API และเอกสารประกอบเกี่ยวกับ API

คลิกปุ่ม +คีย์ใหม่ เพื่อสร้างคีย์การเข้าถึง API แรกของเรา สำหรับ Select Plan ใช้ดรอปดาวน์เพื่อเลือก Community แล้วคลิก Create หากทุกอย่างเป็นไปด้วยดี คุณจะเห็นข้อความแสดงความสำเร็จ และคุณสามารถกลับไปที่แดชบอร์ด API เพื่อค้นหาข้อมูลสำคัญใหม่ของคุณ ค่าคีย์ (ตัวเลขและอักขระ) คือสิ่งที่คุณต้องการสำหรับโครงการนี้ หากคุณอ่านเอกสาร API คุณจะเห็นว่าคุณสามารถเรียก API ได้หลายประเภท สำหรับโครงการนี้ เราต้องการรับข้อมูลเมืองที่ใกล้ที่สุดตามพิกัด GPS สำหรับการโทรนี้ คุณจะต้องใช้คีย์ลองจิจูด ละติจูด และ API ป้อนพารามิเตอร์เหล่านั้นลงในการโทรด้านล่าง ใส่ลงในแถบที่อยู่ในเบราว์เซอร์ของคุณ แล้วกด Enter

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

การดำเนินการนี้จะส่งคืนข้อมูลของเมืองที่ใกล้ที่สุดตามพิกัด GPS มันจะมีลักษณะดังนี้:

ฉันแนะนำให้ใช้ตัวจัดรูปแบบ JSON เพื่อดูข้อมูลที่ดีขึ้น หากคุณใช้มันจะมีลักษณะเช่นนี้แทน:

"สถานะ": "ความสำเร็จ", ข้อมูล 36.1767]} "ปัจจุบัน":{ "สภาพอากาศ":{ "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}, "pollution":{ "ts":"2019-04-08T18:00:00.000Z", "aqius":10, "mainus":"p2", "aqicn": 3, "maincn":"p2"}

ตอนนี้เรามองเห็นข้อมูลสถานที่ สภาพอากาศ และมลพิษได้ง่ายแล้ว ค่าสองค่าที่เรามุ่งเน้นสำหรับโครงการนี้คือดัชนีคุณภาพอากาศของสหรัฐอเมริกา (aquis) และมลพิษหลัก (mainus) ค่าดัชนีคุณภาพอากาศบอกเราว่าค่าคุณภาพอากาศในท้องถิ่นคืออะไรและเกี่ยวข้องกับสุขภาพของคุณอย่างไร แผนภูมิรหัสสีอยู่ด้านล่าง มลพิษหลักบอกเราว่าอะไรคือมลพิษหลักในอากาศสำหรับพื้นที่ของคุณ (ฝุ่นละออง ไนโตรเจนออกไซด์ โอโซน คาร์บอนมอนอกไซด์ ซัลเฟอร์ออกไซด์) มลพิษเหล่านี้มักเป็นผลพลอยได้จากปล่องควันหรือการปล่อยยานพาหนะ

ตอนนี้เรารู้วิธีใช้ Air Visual API แล้ว สิ่งต่อไปที่เราต้องการคือแพลตฟอร์มแดชบอร์ดเพื่อแสดงข้อมูล

ขั้นตอนที่ 3: สถานะเริ่มต้น

สถานะเริ่มต้น
สถานะเริ่มต้น
สถานะเริ่มต้น
สถานะเริ่มต้น

เราต้องการสตรีมข้อมูลสภาพอากาศทั้งหมดของเราไปยังบริการคลาวด์ และให้บริการนั้นเปลี่ยนข้อมูลของเราให้เป็นแดชบอร์ดที่ดี ข้อมูลของเราต้องการปลายทาง ดังนั้นเราจะใช้ Initial State เป็นปลายทางนั้น

ลงทะเบียนบัญชีสถานะเริ่มต้น

ไปที่ https://iot.app.initialstate.com และสร้างบัญชีใหม่

ติดตั้ง ISStreamer

ติดตั้งโมดูล Initial State Python ลงในแล็ปท็อปหรือ Raspberry Pi ที่พรอมต์คำสั่ง เรียกใช้คำสั่งต่อไปนี้:

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

ทำ Automagic บ้าง

หลังจากที่คุณรันคำสั่ง curl คุณจะเห็นบางสิ่งที่คล้ายกับผลลัพธ์ต่อไปนี้ที่หน้าจอ:

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

รหัสผ่าน: เริ่มต้น ISStreamer Python ติดตั้งง่าย! อาจใช้เวลาสองสามนาทีในการติดตั้ง หยิบกาแฟ:) แต่อย่าลืมกลับมา ฉันจะมีคำถามในภายหลัง! พบ easy_install: setuptools 1.1.6 พบ pip: pip 1.5.6 จาก /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) รุ่น pip หลัก: 1 pip รุ่นรอง: พบ ISStreamer 5 รายการ กำลังอัปเดต… ข้อกำหนดเป็นปัจจุบันแล้ว: ISStreamer ใน /Library/Python/2.7/site-packages กำลังล้าง… คุณต้องการรับสคริปต์ตัวอย่างโดยอัตโนมัติหรือไม่ [y/N] คุณต้องการเก็บตัวอย่างไว้ที่ไหน? [ค่าเริ่มต้น:./is_example.py] โปรดเลือกแอป Initial State ที่คุณใช้อยู่: 1. app.initialstate.com 2. [ใหม่!] iot.app.initialstate.com ป้อนตัวเลือก 1 หรือ 2: ป้อน iot.app.initialstate.com ชื่อผู้ใช้: ป้อน iot.app.initialstate.com รหัสผ่าน:

เมื่อได้รับพร้อมท์ให้รับสคริปต์ตัวอย่างโดยอัตโนมัติ ให้พิมพ์ y สิ่งนี้จะสร้างสคริปต์ทดสอบที่เราสามารถเรียกใช้เพื่อให้แน่ใจว่าเราสามารถสตรีมข้อมูลไปยังสถานะเริ่มต้นได้ พรอมต์ถัดไปจะถามว่าคุณต้องการบันทึกไฟล์ตัวอย่างไว้ที่ใด คุณสามารถพิมพ์เส้นทางท้องถิ่นที่กำหนดเองหรือกด Enter เพื่อยอมรับตำแหน่งเริ่มต้น สุดท้าย คุณจะถูกถามว่าคุณกำลังใช้แอป Initial State ใดอยู่ หากคุณเพิ่งสร้างบัญชี ให้เลือกตัวเลือก 2 จากนั้นป้อนชื่อผู้ใช้และรหัสผ่าน หลังจากนั้นการติดตั้งจะเสร็จสมบูรณ์

คีย์การเข้าถึง

มาดูตัวอย่างสคริปต์ที่สร้างขึ้น $ nano is_example.py ในบรรทัดที่ 15 คุณจะเห็นบรรทัดที่ขึ้นต้นด้วย streamer = Streamer(bucket_ …. บรรทัดนี้สร้าง data bucket ใหม่ชื่อ “Python Stream Example” และเชื่อมโยงกับบัญชีของคุณ การเชื่อมโยงนี้เกิดขึ้นเนื่องจาก access_key=”…” พารามิเตอร์ในบรรทัดเดียวกัน ชุดตัวอักษรและตัวเลขยาวๆ นั้นคือรหัสการเข้าถึงบัญชี Initial State ของคุณ หากคุณไปที่บัญชี Initial State ในเว็บเบราว์เซอร์ ให้คลิกที่ชื่อผู้ใช้ของคุณที่ด้านบนขวา แล้วไป ไปที่ "การตั้งค่าของฉัน" คุณจะพบคีย์การเข้าถึงเดียวกันที่ด้านล่างของหน้าภายใต้ "Streaming Access Keys" ทุกครั้งที่คุณสร้างสตรีมข้อมูล คีย์การเข้าถึงนั้นจะนำสตรีมข้อมูลนั้นไปยังบัญชีของคุณ แบ่งปันกุญแจของคุณกับใครก็ได้)

เรียกใช้ ExampleRun สคริปต์ทดสอบเพื่อให้แน่ใจว่าเราสามารถสร้างสตรีมข้อมูลไปยังบัญชีสถานะเริ่มต้นของคุณได้ เรียกใช้สิ่งต่อไปนี้ในพรอมต์คำสั่งของคุณ:

$ หลาม is_example.py

ตัวอย่างข้อมูล

กลับไปที่บัญชี Initial State ของคุณในเว็บเบราว์เซอร์ ที่เก็บข้อมูลใหม่ที่เรียกว่า "ตัวอย่างสตรีม Python" ควรปรากฏขึ้นทางด้านซ้ายในชั้นวางถังของคุณ (คุณอาจต้องรีเฟรชหน้า) คลิกที่บัคเก็ตนี้เพื่อดูข้อมูล

ตอนนี้คุณพร้อมที่จะเริ่มสตรีมข้อมูลจริงจาก AirVisual API แล้ว

ขั้นตอนที่ 4: แดชบอร์ดคุณภาพอากาศ

แดชบอร์ดคุณภาพอากาศ
แดชบอร์ดคุณภาพอากาศ
แดชบอร์ดคุณภาพอากาศ
แดชบอร์ดคุณภาพอากาศ
แดชบอร์ดคุณภาพอากาศ
แดชบอร์ดคุณภาพอากาศ
แดชบอร์ดคุณภาพอากาศ
แดชบอร์ดคุณภาพอากาศ

ตอนนี้สำหรับส่วนที่สนุก เราพร้อมที่จะเริ่มใช้ AirVisual API เพื่อสร้างแดชบอร์ดคุณภาพอากาศและบันทึกข้อมูลมลพิษทางอากาศในทุกที่ที่เราเลือก สคริปต์ airquality.py นี้เรียกง่ายๆ ว่า AirVisual API โดยใช้คีย์ API ของคุณและดึงข้อมูลมลพิษทางอากาศในปัจจุบัน นอกจากนี้ยังสตรีมข้อมูลนั้นไปยังบัญชีสถานะเริ่มต้นของคุณ ซึ่งจะทำให้คุณสามารถสร้างแดชบอร์ดคุณภาพอากาศได้

คุณสามารถเข้าถึงสคริปต์ผ่านที่เก็บ Github ที่เราโคลนไว้ก่อนหน้านี้ สิ่งแรกที่เราต้องทำคือต้องแน่ใจว่าเราอยู่ในไดเรกทอรี AirVisual:

$ cd airvisual

จากที่นี่ คุณจะสามารถเข้าถึงไฟล์หลามที่เราจะเรียกใช้เพื่อสร้างแดชบอร์ดคุณภาพอากาศของเรา เราจำเป็นต้องทำการเปลี่ยนแปลงบางอย่างกับไฟล์ก่อนที่เราจะเรียกใช้ ในการเปิดไฟล์ python ให้ใช้คำสั่ง nano เพื่อเปิดตัวแก้ไขข้อความ:

$ nano airquality.py

เมื่อเปิดโปรแกรมแก้ไขข้อความแล้ว คุณจะเห็นสิ่งต่อไปนี้ใกล้กับด้านบนของสคริปต์:

# --------- การตั้งค่าผู้ใช้ ---------

LATITUDE = "LAT" LONGITUDE = "LONG" AIRVISUAL_API_KEY = "AIR VISUAL API KEY" BUCKET_NAME = "คุณภาพอากาศในท้องถิ่น" BUCKET_KEY = "aq1" ACCESS_KEY = "INITIAL STATE ACCES KEY" MINUTES_BETWEEN_READS = 5 # -------- --------------------------------------

คุณต้องป้อนละติจูด ลองจิจูด คีย์ AirVisual API และคีย์การเข้าถึงสถานะเริ่มต้น พารามิเตอร์ MINUTES_BETWEEN_READS จะกำหนดความถี่ที่สคริปต์ของคุณจะสำรวจ AirVisual API สำหรับข้อมูลคุณภาพอากาศ เวลาเพียงพอ 5 นาทีเพื่อไม่ให้เกินขีดจำกัดการเรียก API 10, 000 ต่อเดือน สำหรับการทดสอบระยะสั้น คุณสามารถตั้งค่านี้เป็น 0.5 นาที เมื่อคุณป้อนพารามิเตอร์แล้ว ให้บันทึกและออกจากข้อความ Enter โดยพิมพ์ Control+X ตอนนี้คุณพร้อมที่จะเรียกใช้สคริปต์ของคุณแล้ว:

$ python airquality.py

หากต้องการให้สคริปต์นี้ทำงานอย่างต่อเนื่องเป็นเวลานาน คุณสามารถใช้คำสั่ง nohup (ไม่ต้องวางสาย) ดังนี้:

$ nohup python airquality.py &

เมื่อดำเนินการแล้ว ให้ไปที่สถานะเริ่มต้นเพื่อดูข้อมูลของคุณ แดชบอร์ดของคุณควรมีลักษณะเหมือนภาพด้านล่าง คุณมีตำแหน่ง GPS ค่าดัชนีคุณภาพอากาศ และมลพิษหลักของคุณ

คำแนะนำของฉันจะเปลี่ยนค่า AQI ของคุณเป็นไทล์เกจ นอกจากนี้ ย้ายไทล์ไปรอบๆ และปรับขนาดตามต้องการ หากคุณกำลังใช้ข้อมูลนี้สำหรับแดชบอร์ดแบบฝัง คุณสามารถย้ายข้อมูลเหล่านี้ไปรอบๆ ให้พอดีได้ตามต้องการ

หากคุณตัดสินใจกำหนดให้ค่า AQI เป็นมาตรวัด คุณสามารถตั้งค่าเกณฑ์สีให้ใกล้เคียงกับแผนภูมิดัชนีคุณภาพอากาศได้ ข้อมูลนี้จะให้ข้อมูลอัปเดตทันทีว่าค่า AQI อยู่ที่ใดในแผนภูมิเมื่อคุณตรวจสอบแดชบอร์ด คุณสามารถเพิ่มภาพพื้นหลังลงในแดชบอร์ดเพื่อให้มีบริบทมากขึ้น

คุณจึงมีทุกสิ่งที่จำเป็นในการสร้างแดชบอร์ดคุณภาพอากาศ แต่ถ้าคุณต้องการเพิ่มหรือเพิ่มสิ่งนี้ลงในแดชบอร์ดสภาพอากาศที่คุณสร้างไว้แล้วล่ะ หากเป็นกรณีนี้อ่านต่อ!

ขั้นตอนที่ 5: สร้างแดชบอร์ดสภาพอากาศทั้งหมด

สร้างแดชบอร์ดสภาพอากาศทั้งหมด
สร้างแดชบอร์ดสภาพอากาศทั้งหมด

ข้อมูลคุณภาพอากาศไม่เพียงพอสำหรับคุณหรือไม่ มีตัวเลือกมากมายที่จะเพิ่มลงในแดชบอร์ดของคุณหรือสตรีมข้อมูลนี้ไปยังแดชบอร์ดสภาพอากาศที่คุณมีอยู่แล้ว!

สตรีมสภาพอากาศและคุณภาพอากาศลงในแดชบอร์ดเดียว

หากคุณใช้งาน DarkSky API หรือโปรเจ็กต์ Hyper-Local Weather Dashboard แล้ว คุณสามารถเพิ่มข้อมูลคุณภาพอากาศนี้ลงในแดชบอร์ดที่มีอยู่ได้ ง่ายมาก สิ่งที่คุณต้องทำคือเปลี่ยนพารามิเตอร์ในสคริปต์คุณภาพอากาศให้มีชื่อที่เก็บข้อมูล คีย์ที่เก็บข้อมูล และคีย์การเข้าถึงเหมือนกับที่คุณใช้สำหรับแดชบอร์ดสภาพอากาศ ซึ่งจะช่วยให้ส่งข้อมูลไปยังแดชบอร์ดเดียวกันได้ ตอนนี้คุณจะมีแดชบอร์ดสภาพอากาศทั้งหมดแล้ว!

ให้ไฟล์ Weather Python ของคุณเรียกใช้ไฟล์ Python คุณภาพอากาศ

อีกทางเลือกหนึ่งหากคุณไม่ต้องการเรียกใช้โปรแกรมสองโปรแกรมแยกกันคือใส่ไฟล์ python คุณภาพอากาศในไดเร็กทอรีโครงการสภาพอากาศ ให้ไฟล์ไพ ธ อนโปรเจ็กต์สภาพอากาศทำการเรียกไฟล์คุณภาพอากาศเพื่อให้ทำงานเมื่อไฟล์สภาพอากาศของคุณทำงาน อีกครั้ง ตรวจสอบให้แน่ใจว่าได้ใส่ชื่อที่เก็บข้อมูล คีย์ที่เก็บข้อมูล และคีย์การเข้าถึงเดียวกัน เพื่อให้ทำงานบนแดชบอร์ดเดียวกัน

สร้างไฟล์เดียวที่มีทั้งสภาพอากาศและคุณภาพอากาศ

และหากคุณรู้สึกกล้าหาญจริงๆ คุณสามารถใส่โค้ดคุณภาพอากาศบางส่วนลงในสคริปต์ weather python ของคุณ และมีเพียงสคริปต์เดียวที่จะเรียกใช้ ต้องใช้ความพยายามในการเขียนโปรแกรมมากกว่าสองตัวเลือกอื่นเล็กน้อย แต่ทำให้โปรแกรมง่ายขึ้น

สตรีมข้อมูลเพิ่มเติมจาก AirVisual API

อย่างที่คุณเห็นเมื่อเราโทรหา AirVisual API มีข้อมูลมากกว่าแค่คุณภาพอากาศ นอกจากนี้ยังแสดงอุณหภูมิ ความชื้น ความเร็วลม ทิศทางลม และความกดอากาศ เราสามารถส่งข้อมูลนั้นไปยัง Initial State ได้เช่นเดียวกับที่เราส่งค่าดัชนีคุณภาพอากาศและสารก่อมลพิษหลัก คุณต้องเขียนคำสั่ง if อีกสองสามประโยคเท่านั้น

แนะนำ: