สารบัญ:

สร้างแดชบอร์ดสภาพอากาศโดยใช้ Dark Sky API: 5 ขั้นตอน (พร้อมรูปภาพ)
สร้างแดชบอร์ดสภาพอากาศโดยใช้ Dark Sky API: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สร้างแดชบอร์ดสภาพอากาศโดยใช้ Dark Sky API: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สร้างแดชบอร์ดสภาพอากาศโดยใช้ Dark Sky API: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Make a Weather Dashboard with Dark Sky API | GIT TECH'D 2024, พฤศจิกายน
Anonim
Image
Image

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

มาเรียนรู้วิธีใช้ API สุดง่ายของ Dark Sky กันเถอะ หากคุณยังใหม่ต่อการใช้ API ฉันสัญญาว่ามันจะง่ายมาก! และถ้าคุณเคยใช้ API มาก่อน ฉันหวังว่าเราจะสามารถสอนอะไรใหม่ๆ เกี่ยวกับโค้ดที่เราเคยใช้ให้คุณได้

สิ่งที่คุณต้องการสำหรับโครงการนี้:

  • บัญชี Dark Sky API
  • บัญชีของรัฐเริ่มต้น
  • Raspberry Pi หรือแล็ปท็อป

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

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

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

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

$ git clone

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

โคลนนิ่งเป็น 'ดาร์คสกี้'…

ระยะไกล: การนับวัตถุ: 2 เสร็จสิ้น รีโมต: รวม 2 (เดลต้า 0) นำกลับมาใช้ใหม่ 0 (เดลต้า 0) นำแพ็คกลับมาใช้ใหม่ 2 รายการในการแกะวัตถุ: 100% (2/2) เสร็จแล้ว กำลังตรวจสอบการเชื่อมต่อ… เสร็จแล้ว

เมื่อคุณเห็นสิ่งนี้แล้ว ยินดีด้วย คุณได้โคลน GitHub Repo สำเร็จและมีไฟล์ที่จำเป็นทั้งหมดเพื่อสร้างโครงการนี้ ก่อนที่เราจะไปยังขั้นตอนต่อไป เรามาสำรวจรอบๆ ไดเร็กทอรีนี้และเรียนรู้คำสั่งบรรทัดคำสั่งพื้นฐานสองสามคำสั่งก่อน

พิมพ์คำสั่งด้านล่างลงในเทอร์มินัลของคุณ:

$ ls

คำสั่งนี้แสดงรายการทุกอย่างที่มีอยู่ในไดเร็กทอรีที่คุณอยู่ รายการนี้แสดงว่า GitHub Repo ของเราได้รับการโคลนในไดเร็กทอรีของเราภายใต้ชื่อ "darksky" เรียบร้อยแล้ว มาดูกันว่ามีอะไรอยู่ในไดเรกทอรีนั้นบ้าง ในการย้ายไปยังไดเร็กทอรี สิ่งที่คุณต้องทำคือพิมพ์ “cd” แล้วพิมพ์ชื่อไดเร็กทอรีที่คุณต้องการไป

ในกรณีนี้ เราจะพิมพ์ว่า

$ cd darksky

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

README.md darksky.py …

ที่นี่เราเห็นว่ามีเอกสาร readme และไฟล์หลามของเรา มาดู darksky.py โดยใช้คำสั่ง "nano" คำสั่งนาโนช่วยให้เราสามารถเปิดโปรแกรมแก้ไขข้อความนาโนซึ่งเรามีโค้ดหลามทั้งหมดสำหรับแต่ละส่วนของโครงการนี้ ไปข้างหน้าและพิมพ์:

$ nano darksky.py

คุณสามารถดูรหัสทั้งหมดที่เราเตรียมไว้สำหรับโครงการนี้ได้ที่นี่ เรายังไม่ได้ทำการเปลี่ยนแปลงใดๆ กับเอกสารนี้ แต่คุณสามารถเลื่อนดูและดูว่าเราจะทำอะไรในบทแนะนำนี้ในภายหลัง

ขั้นตอนที่ 2: การใช้ Dark Sky API

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

ในการใช้ Dark Sky API คุณต้องมีคีย์ API ของคุณเองก่อน ไม่ต้องกังวล การรับคีย์ API นั้นรวดเร็วและฟรี สิ่งที่คุณต้องทำคือไปที่เว็บไซต์และคลิก "ทดลองใช้ฟรี" เพื่อสร้างบัญชี

  • คุณได้รับ 1, 000 การเรียก API ฟรีในแต่ละวัน ทุกคำขอ API ที่เกินขีดจำกัดรายวันฟรีมีค่าใช้จ่าย 0.0001 ดอลลาร์สหรัฐฯ
  • ขีดจำกัดนี้จะรีเซ็ตโดยอัตโนมัติทุกวันในเวลาเที่ยงคืน UTC
  • คำขอพยากรณ์จะส่งกลับการพยากรณ์อากาศปัจจุบันสำหรับสัปดาห์หน้า
  • คำขอ Time Machine ส่งคืนสภาพอากาศที่สังเกตหรือคาดการณ์สำหรับวันที่ในอดีตหรืออนาคต

คีย์ Dark Sky API ลับของคุณจะมีลักษณะดังนี้: 0123456789abcdef9876543210fedcba

คุณสามารถเรียก API ไปที่ Dark Sky โดยพิมพ์ URL ลงในเบราว์เซอร์ในรูปแบบต่อไปนี้:

api.darksky.net/forecast/[คีย์]/[ละติจูด], [ลองจิจูด]

แทนที่ "คีย์" ด้วยคีย์ Dark Sky API และลองจิจูด/ละติจูดด้วยสิ่งที่คุณต้องการ คุณสามารถค้นหาลองจิจูดและละติจูดของคุณได้โดยไปที่ Google Maps และค้นหาตำแหน่งของคุณ ค่าเหล่านั้นจะอยู่ใน URL คัดลอกและวาง URL ท้องฟ้ามืดด้านบนด้วยคีย์การเข้าถึงและค่าของคุณที่เพิ่มลงในแถบที่อยู่

เมื่อคุณทำเช่นนั้นคุณจะเห็นสิ่งนี้:

วัน", "ช่วงพายุที่ใกล้ที่สุด":57, "คลื่นพายุที่ใกล้ที่สุด":15, "ความเข้มของพายุ":0, "ความน่าจะเป็นของพายุ":0, "อุณหภูมิ":53.9, "อุณหภูมิที่ชัดเจน":53.9, "จุดน้ำค้าง":29.59, "ความชื้น":0.39, "ความดัน":1022.45, "windSpeed":3.87, "windGust":9.25, "windBearing":259, "cloudCover":0.01, "uvIndex":3, "visibility":7.8, "ozone":309.71}, "minutely":{"summary":"Clear for the hour.", "icon":"clear-day", "data":[{"time":1550615280, "precipIntensity":0, "precipProbability":0 }, …

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

วัตถุ {9}

ละติจูด: 37.8267 ลองจิจูด: -122.4233 เขตเวลา: อเมริกา/Los_Angeles ขณะนี้ {19} เวลา: 1550615286 สรุป: ไอคอนที่ชัดเจน: วันปลอดโปร่งที่ใกล้ที่สุดพายุ ระยะทาง: 57 ใกล้ที่สุดพายุพายุแบริ่ง: 15 ฝน ความเข้ม: 0 มล ความน่าจะเป็น: 0 อุณหภูมิ: 53.9 อุณหภูมิที่ชัดเจน: 53.9 จุดน้ำค้าง: 29.59 ความชื้น แรงดัน 0.39: 1022.45 ลมความเร็ว: 3.87 ลมแรงลม: 9.25 ลมแบริ่ง: 259 cloudCover: 0.01 uvIndex: 3 ทัศนวิสัย: 7.8 โอโซน: 309.71

คุณเพิ่งทำการเรียก API! เห็นว่าง่ายแค่ไหน? คุณไม่จำเป็นต้องเขียนโค้ดแม้แต่บรรทัดเดียว เมื่อคุณเข้าใจ API แล้ว เราสามารถไปยังส่วนการสตรีมข้อมูลได้

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

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

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

ไปที่ https://iot.app.initialstate.com และสร้างบัญชีใหม่ คุณได้รับการทดลองใช้ฟรี 14 วัน และทุกคนที่มีที่อยู่อีเมลสำหรับการศึกษาสามารถลงทะเบียนแผนสำหรับนักเรียนได้ฟรี

ขั้นตอนที่ 2: ติดตั้ง ISStreamer

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

$ cd /home/pi/$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

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

pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: เริ่มต้น 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 เพื่อบันทึกสคริปต์ของคุณในตำแหน่งเริ่มต้น สำหรับคำถามเกี่ยวกับแอปที่คุณกำลังใช้ ให้เลือก 2 (เว้นแต่คุณจะสมัครก่อนเดือนพฤศจิกายน 2018) แล้วป้อนชื่อผู้ใช้และรหัสผ่านของคุณ

ขั้นตอนที่ 4: เรียกใช้สคริปต์ตัวอย่าง

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

$ หลาม is_example.py

ขั้นตอนที่ 6: ตัวอย่างข้อมูล

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

ขั้นตอนที่ 4: Dark Sky Weather Dashboard

Dark Sky Weather Dashboard
Dark Sky Weather Dashboard

ตอนนี้สำหรับส่วนที่สนุก เราพร้อมที่จะเริ่มใช้ Dark Sky API เพื่อสร้างแดชบอร์ดสภาพอากาศและบันทึกประวัติสภาพอากาศสำหรับตำแหน่งที่เราเลือก ในการทำเช่นนี้ เราจะใช้สคริปต์ Python: https://github.com/initialstate/darksky/blob/master/darksky.py สคริปต์นี้เรียกใช้ Dark Sky API โดยใช้คีย์ API ของคุณและดึงข้อมูลสภาพอากาศในช่วงเวลาที่กำหนด นอกจากนี้ยังสตรีมข้อมูลนั้นไปยังบัญชี Initial State ของคุณ ซึ่งจะทำให้คุณสามารถสร้างแดชบอร์ดสภาพอากาศของ Dark Sky ได้

คุณสามารถคัดลอกสคริปต์นี้ไปยัง Pi ของคุณ หรือเข้าถึงผ่านที่เก็บ GitHub ที่เราโคลนไว้ก่อนหน้านี้ คุณสามารถทำได้โดยเปลี่ยนเป็นไดเรกทอรี darksky โดยพิมพ์:

$ cd darksky

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

$ nano darksky.py

จากนั้นแก้ไขส่วนใกล้ด้านบนสุดของสคริปต์:

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

CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "วางคีย์ API DARK SKY ของคุณที่นี่" BUCKET_NAME = ":partly_sunny:" + CITY + " Weather" BUCKET_KEY = "ds1" ACCESS_KEY = "วางตำแหน่งเริ่มต้นของคุณใน คีย์ที่นี่" MINUTES_BETWEEN_READS = 15 # ---------------------------------

คุณต้องตั้งค่าพิกัด GPS และชื่อเมืองที่ต้องการ คุณต้องใส่คีย์ API ของ Dark Sky และคีย์การเข้าถึงบัญชี Initial State ของคุณ มิฉะนั้นข้อมูลของคุณจะไม่ไปไหน พารามิเตอร์ MINUTES_BETWEEN_READS จะกำหนดความถี่ที่สคริปต์ของคุณจะสำรวจ Dark Sky API สำหรับข้อมูลสภาพอากาศ 15 นาทีให้ช่วงเวลาที่ดีในระยะยาว สำหรับการทดสอบระยะสั้น คุณสามารถตั้งค่านี้เป็น 0.5 นาที ทำการเปลี่ยนแปลงแล้วป้อน control+X เพื่อออกและบันทึก

เมื่อคุณตั้งค่าพารามิเตอร์แล้ว คุณก็พร้อมที่จะเรียกใช้สคริปต์ของคุณ:

$ python darksky.py

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

$ nohup หลาม darksky.py &

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

ขั้นตอนที่ 5: บทสรุป

บทสรุป
บทสรุป
บทสรุป
บทสรุป

ไปที่บัญชี Initial State ของคุณและดูข้อมูลของคุณ ฉันเปลี่ยนค่าเปอร์เซ็นต์ทั้งหมดเป็นอาร์คเกจ ปริมาณน้ำฝนเป็นเกจของเหลว และอุณหภูมิเป็นเกจวัดอุณหภูมิ คุณสามารถเปลี่ยนเป็นประเภทไทล์ใดก็ได้และเลือกสีของคุณสำหรับมาตรวัดและแผนภูมิเส้น คุณสามารถทำให้แดชบอร์ดของคุณมืดหรือสว่าง และฝังผลิตภัณฑ์ขั้นสุดท้ายลงในเว็บไซต์ได้โดยใช้ iFrame แบบฝัง

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

URL การแบ่งปันแบบสาธารณะสำหรับแดชบอร์ดของเราคือ

ตอนนี้คุณเชี่ยวชาญ Dark Sky API แล้ว ความเป็นไปได้ไม่มีที่สิ้นสุด! มี API ออนไลน์ฟรีให้สำรวจไม่จำกัดจำนวน ดังนั้นเริ่มต้นได้เลย

แนะนำ: