สารบัญ:
- ขั้นตอนที่ 1: เริ่มต้น
- ขั้นตอนที่ 2: การใช้ Dark Sky API
- ขั้นตอนที่ 3: สถานะเริ่มต้น
- ขั้นตอนที่ 4: Dark Sky Weather Dashboard
- ขั้นตอนที่ 5: บทสรุป
วีดีโอ: สร้างแดชบอร์ดสภาพอากาศโดยใช้ Dark Sky API: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
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 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 ออนไลน์ฟรีให้สำรวจไม่จำกัดจำนวน ดังนั้นเริ่มต้นได้เลย
แนะนำ:
Active Music Party LED Lantern & ลำโพง Bluetooth พร้อม Glow in the Dark PLA: 7 ขั้นตอน (พร้อมรูปภาพ)
Active Music Party LED Lantern & Bluetooth Speaker with Glow in the Dark PLA: สวัสดี และขอขอบคุณที่ปรับแต่ง Instructable ของฉัน! ทุกปี ฉันทำโปรเจ็กต์ที่น่าสนใจกับลูกชายของฉันซึ่งตอนนี้อายุ 14 ปี เราได้สร้าง Quadcopter นาฬิกาว่ายน้ำ (ซึ่งเป็นคำสั่งสอนได้เช่นกัน) ม้านั่งตู้ CNC และ Fidget Spinners.Wi
Dark Sky API PyPortal & แดชบอร์ดสภาพอากาศ: 6 ขั้นตอน
Dark Sky API PyPortal & Weather Dashboard: โปรเจ็กต์นี้เป็นสิ่งที่เราเคยทำมาก่อน นั่นคือ Dark Sky API Weather Dashboard คราวนี้แทนที่จะใช้ Raspberry Pi เราจะใช้ Adafruit PyPortal เพื่อแสดงข้อมูลสภาพอากาศและส่งข้อมูลนั้นไปยังสถานะเริ่มต้น สองแดชบอร์ดสำหรับการทำงานของหนึ่ง
Starry Sky Led Tie: 9 ขั้นตอน (พร้อมรูปภาพ)
Starry Sky Led Tie: ไม่นานมานี้ ฉันพบของเล่นเด็กที่มีไฟเบอร์ออปติกที่ร้านดอลลาร์ และเริ่มคิดว่าฉันจะทำอะไรกับมันได้บ้าง หนึ่งในความคิดบ้าๆ ที่ฉันมี คือการผูกเน็คไทกับเอฟเฟกต์ของท้องฟ้าที่เต็มไปด้วยดวงดาว . ฉันยังมี Arduino pro mini อยู่บ้าง adafruit boa
TESS-W Night Sky Brightness Photometer: 8 ขั้นตอน (พร้อมรูปภาพ)
TESS-W Night Sky Brightness Photometer: TESS-W เป็นโฟโตมิเตอร์ที่ออกแบบมาเพื่อวัดและตรวจสอบความสว่างของท้องฟ้ายามค่ำคืนอย่างต่อเนื่องสำหรับการศึกษามลพิษทางแสง มันถูกสร้างขึ้นระหว่าง STARS4ALL H2020 European Project ด้วยการออกแบบแบบเปิด (ฮาร์ดแวร์และซอฟต์แวร์) โฟโตมิเตอร์ TESS-W
SKY CAM โซลูชันกล้องทางอากาศ: 10 ขั้นตอน (พร้อมรูปภาพ)
SKY CAM โซลูชันกล้องถ่ายภาพทางอากาศ: คำแนะนำนี้จะแนะนำคุณเกี่ยวกับวิธีที่ฉันสร้างระบบเคเบิลแคมรีโมทคอนโทรล (กึ่งอัตโนมัติ) สำหรับโครงการผลิตภัณฑ์อิเล็กทรอนิกส์ GCSE ของฉันที่โรงเรียน และหวังว่าคุณจะสามารถสร้างระบบของคุณเองได้! นี้มีวัตถุประสงค์เพื่อเป็นแนวทางคร่าวๆ