สารบัญ:

สร้างสถานีตรวจอากาศ Raspberry Pi SUPER: 8 ขั้นตอน (พร้อมรูปภาพ)
สร้างสถานีตรวจอากาศ Raspberry Pi SUPER: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สร้างสถานีตรวจอากาศ Raspberry Pi SUPER: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สร้างสถานีตรวจอากาศ Raspberry Pi SUPER: 8 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Raspberry Pi ที่ทนตั้งแต่เกิด (EdgeBox RPi 200) - Cytron Thailand 2024, กรกฎาคม
Anonim
Image
Image

เอาเป็นว่า มนุษย์เราพูดถึงสภาพอากาศกันบ่อย⛅️ คนทั่วไปพูดถึงสภาพอากาศ 4 ครั้งต่อวัน โดยเฉลี่ย 8 นาที 21 วินาที ทำคณิตศาสตร์และรวม 10 เดือนในชีวิตของคุณที่คุณจะใช้จ่ายเกี่ยวกับสภาพอากาศ สภาพอากาศอยู่ในอันดับที่ 1 สำหรับผู้เริ่มการสนทนาและตัวแบ่งเสียงที่ไม่สบายใจ ถ้าเราจะพูดถึงเรื่องนี้มากขนาดนั้น เราอาจจะเพิ่มความน่าเชื่อถือของถนนด้านสภาพอากาศให้สูงขึ้นไปอีกระดับหนึ่ง โครงการที่สนุกและง่ายสุด ๆ นี้จะใช้ประโยชน์จาก Internet of Things (IoT) และ Raspberry Pi เพื่อทำสิ่งนั้น

เรากำลังจะสร้างแดชบอร์ด IoT สภาพอากาศแบบไฮเปอร์โลคัลของเราเอง เพื่อบันทึกสภาพอากาศภายในและภายนอกบ้านของเราเมื่อเวลาผ่านไป ครั้งต่อไปที่มีคนถามคุณว่า "ช่วงนี้อากาศเป็นอย่างไรบ้าง" คุณจะสามารถหยิบโทรศัพท์ขึ้นมาและปล่อยให้พวกเขาหายใจไม่ออกด้วยทักษะการวิเคราะห์สภาพอากาศบ้าๆ ของคุณ ☀️

สิ่งที่คุณจะต้องใช้ในหลักสูตร:1. Raspberry Pi พร้อมการเชื่อมต่ออินเทอร์เน็ต

2. Raspberry Pi SenseHAT

3. สายเคเบิลต่อขยายชาย-หญิง IDE ขนาด 6 นิ้ว 40 พิน (ตัวเลือกสำหรับความแม่นยำของอุณหภูมิ)

4. บัญชีสถานะเริ่มต้น

5. แค่นั้นแหละ!

ระดับโครงการ: เริ่มต้น

ใช้เวลาประมาณ 20 นาที

ปัจจัยความสนุกโดยประมาณ: นอกชาร์ต

ในบทช่วยสอนทีละขั้นตอนนี้ คุณจะ:เรียนรู้วิธีใช้การรวม Weatherstack API ในสถานะเริ่มต้นเพื่อรับสภาพอากาศภายนอกในพื้นที่ของคุณ

- เรียนรู้วิธีใช้ Raspberry Pi กับ Sense HAT (https://www.raspberrypi.org/products/sense-hat/) เพื่อบันทึกข้อมูลสภาพอากาศภายในบ้านของคุณ

- สร้างแดชบอร์ดสภาพอากาศ Hyper-local ของคุณเองซึ่งคุณสามารถเข้าถึงได้จากเว็บเบราว์เซอร์ใดก็ได้บนแล็ปท็อปหรืออุปกรณ์มือถือของคุณ

- ให้นักอุตุนิยมวิทยาของคุณวิ่งหาเงิน

เสบียง

สิ่งที่คุณจะต้องเรียนหลักสูตร:

1. Raspberry Pi พร้อมการเชื่อมต่ออินเทอร์เน็ต

2. Raspberry Pi SenseHAT

3. สายเคเบิลต่อขยายชาย-หญิง IDE 40 พินขนาด 6 นิ้ว (ตัวเลือกสำหรับความแม่นยำของอุณหภูมิ)

4. บัญชีสถานะเริ่มต้น

5. แค่นั้นแหละ!

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

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

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

$ git clone

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

pi@raspberrypi ~ $ git โคลน

โคลนนิ่งเป็น 'wunderground-sensehat'…

รีโมท: นับวัตถุ: 28 เสร็จแล้ว

รีโมต: รวม 28 (เดลต้า 0), นำกลับมาใช้ใหม่ 0 (เดลต้า 0), นำแพ็คกลับมาใช้ใหม่ 28

แกะวัตถุออก: 100% (28/28) เสร็จแล้ว

กำลังตรวจสอบการเชื่อมต่อ… เสร็จแล้ว

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

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

$ ls

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

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

$ cd wunderground-sensehat

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

README.md sensehat.py sensehat_wunderground.py wunderground.py

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

$ nano sensehat.py

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

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

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

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

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

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

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

ติดตั้งโมดูล Initial State Python ลงใน Raspberry Pi ของคุณ: ที่พรอมต์คำสั่ง (อย่าลืม SSH ลงใน Pi ของคุณก่อน) ให้รันคำสั่งต่อไปนี้:

$ cd /home/pi/

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

หมายเหตุด้านความปลอดภัย: คำสั่งดังกล่าวมีกายวิภาคที่สำคัญบางอย่างที่ผู้ใช้ควรทราบ

1) มี / before curl อยู่ข้างหน้า นี่เป็นสิ่งสำคัญเพื่อให้แน่ใจว่าไม่มีการเรียกใช้นามแฝงของ curl หากถูกสร้างขึ้น ซึ่งจะช่วยลดความเสี่ยงที่คำสั่งจะทำมากกว่าที่ตั้งใจไว้

2) คำสั่งเป็นคำสั่งแบบไพพ์ ดังนั้นเมื่อรัน คุณกำลังไพพ์เอาต์พุตของสคริปต์ที่ดึงมาจาก https://get.initialstate.com/python ลงในคำสั่ง sudo bash สิ่งนี้ทำเพื่อทำให้การติดตั้งง่ายขึ้น อย่างไรก็ตาม ควรสังเกตว่า https มีความสำคัญที่นี่เพื่อช่วยให้แน่ใจว่าไม่มีการจัดการสคริปต์การติดตั้งแบบคนกลาง โดยเฉพาะอย่างยิ่งเมื่อสคริปต์ถูกเรียกใช้ด้วยสิทธิ์ระดับสูง นี่เป็นวิธีทั่วไปในการลดความซับซ้อนของการติดตั้งและการตั้งค่า แต่ถ้าคุณระมัดระวังมากกว่านี้ มีทางเลือกที่สะดวกน้อยกว่าเล็กน้อย: คุณสามารถแบ่งคำสั่งออกเป็นสองขั้นตอนและตรวจสอบสคริปต์ทุบตีที่ดาวน์โหลดจากคำสั่ง curl ด้วยตัวคุณเองเพื่อทำประกัน เป็นความถูกต้องหรือคุณสามารถทำตามคำแนะนำของ pip คุณจะไม่ได้รับสคริปต์ตัวอย่างที่สร้างขึ้นโดยอัตโนมัติ

ขั้นตอนที่ 3: สร้าง Automagic

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

pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -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 รุ่นรอง: 5

พบ ISStreamer กำลังอัปเดต…

ข้อกำหนดเป็นปัจจุบันแล้ว: ISStreamer ใน /Library/Python/2.7/site-packages Cleaning up…

คุณต้องการรับสคริปต์ตัวอย่างโดยอัตโนมัติหรือไม่? [ใช่/ไม่ใช่]

(ผลลัพธ์อาจแตกต่างกันและใช้เวลานานขึ้นหากคุณไม่เคยติดตั้งโมดูลการสตรีม Initial State Python มาก่อน)

เมื่อได้รับพร้อมท์ให้รับสคริปต์ตัวอย่างโดยอัตโนมัติ ให้พิมพ์ y

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

คุณต้องการบันทึกตัวอย่างที่ไหน [ค่าเริ่มต้น:./is_example.py]:

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

ขั้นตอนที่ 4: คีย์การเข้าถึง

มาดูตัวอย่างสคริปต์ที่สร้างขึ้น พิมพ์:

$ nano is_example.py

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

ทุกครั้งที่คุณสร้างสตรีมข้อมูล คีย์การเข้าถึงนั้นจะนำสตรีมข้อมูลนั้นไปยังบัญชีของคุณ (ดังนั้นอย่าแชร์คีย์ของคุณกับใครเลย)

ขั้นตอนที่ 5: เรียกใช้ตัวอย่าง

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

เรียกใช้สิ่งต่อไปนี้:

$ หลาม is_example.py

ขั้นตอนที่ 6: กำไร

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

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

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

ขั้นตอนที่ 3: สัมผัส HAT

ความรู้สึก HAT
ความรู้สึก HAT
ความรู้สึก HAT
ความรู้สึก HAT
ความรู้สึก HAT
ความรู้สึก HAT

Sense HAT เป็นบอร์ดเสริมสำหรับ Raspberry Pi ที่เต็มไปด้วยเซ็นเซอร์ ไฟ LED และจอยสติ๊กขนาดเล็ก สิ่งที่ยอดเยี่ยมมากเกี่ยวกับส่วนเสริมเล็กๆ น้อยๆ นี้คือการติดตั้งและใช้งานได้ง่ายอย่างไม่น่าเชื่อ ต้องขอบคุณไลบรารี Python ที่ยอดเยี่ยมที่คุณสามารถติดตั้งได้อย่างรวดเร็ว สำหรับโครงการนี้ เราจะใช้เซ็นเซอร์อุณหภูมิ ความชื้น และความดันบรรยากาศบน Sense HAT มาตั้งค่ากันเถอะ

ขั้นตอนแรกในการใช้ Sense HAT คือการติดตั้งลงบน Pi ของคุณ เมื่อปิด Pi ให้แนบ HAT ตามที่แสดงในภาพ

เปิด Pi ของคุณ เราจำเป็นต้องติดตั้งไลบรารี่ Python เพื่อให้ง่ายต่อการอ่านค่าเซ็นเซอร์จาก Sense HAT ขั้นแรก คุณจะต้องตรวจสอบให้แน่ใจว่าทุกอย่างเป็นปัจจุบันใน Raspbian เวอร์ชันของคุณโดยพิมพ์:

$ sudo apt-get update

ถัดไป ติดตั้งไลบรารี Sense HAT Python:

$ sudo apt-get ติดตั้ง sense-hat

รีบูต Pi ของคุณ

เราพร้อมที่จะทดสอบ Sense HAT โดยการอ่านข้อมูลจากเซ็นเซอร์และส่งข้อมูลนั้นไปยังสถานะเริ่มต้น

มาทดสอบ Sense HAT ของเรากัน เพื่อให้แน่ใจว่าทุกอย่างใช้งานได้ เราจะใช้สคริปต์ที่ https://github.com/InitialState/wunderground-sensehat/blob/master/sensehat.py คุณสามารถคัดลอกสคริปต์นี้ไปยังไฟล์บน Pi ของคุณหรือเข้าถึงได้จากที่เก็บ Github ที่เราโคลนไว้ก่อนหน้านี้ เปลี่ยนเป็นไดเร็กทอรี wunderground-sensehat แล้ว nano เป็นไฟล์ sensehat.py โดยพิมพ์:

$ nano sensehat.py

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

# --------- การตั้งค่าผู้ใช้ --------- CITY = "แนชวิลล์"

BUCKET_NAME = ":partly_sunny: " + CITY + " สภาพอากาศ"

BUCKET_KEY = "สัมผัส"

ACCESS_KEY = "Your_Access_Key"

SENSOR_LOCATION_NAME = "สำนักงาน"

MINUTES_BETWEEN_SENSEHAT_READS = 0.1

# ---------------------------------

โดยเฉพาะอย่างยิ่ง คุณต้องตั้งค่า ACCESS_KEY เป็นคีย์การเข้าถึงบัญชี Initial State สังเกตว่าการอ่านข้อมูลจาก Sense HAT ใน Python บรรทัดเดียวนั้นง่ายเพียงใด (เช่น sense.get_temperature()) ที่พรอมต์คำสั่งบน Pi ของคุณ ให้รันสคริปต์:

$ sudo python sensehat.py

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

ตอนนี้เราพร้อมที่จะรวบรวมและสร้างแดชบอร์ดสภาพอากาศแบบไฮเปอร์โลคัลของเราแล้ว!

ขั้นตอนที่ 4: Hyper Local Weather Dashboard

Hyper Local Weather Dashboard
Hyper Local Weather Dashboard
Hyper Local Weather Dashboard
Hyper Local Weather Dashboard

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

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

การใช้การรวม Weatherstack

1. เข้าสู่ระบบบัญชีสถานะเริ่มต้นของคุณ

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

3. คลิกปุ่ม Begin Setup และคุณจะเห็น modal ปรากฏขึ้นจากด้านขวาของหน้าจอ มีขั้นตอนง่าย ๆ เพียงไม่กี่ขั้นตอนก่อนที่เราจะเริ่มดูข้อมูลสภาพอากาศดังกล่าวได้:

4. ตั้งชื่อแดชบอร์ดใหม่ของคุณ ฉันตั้งชื่อของฉันว่าเคล็ดลับ Nashville Weather. Pro: ฉันชอบใช้อีโมจิในชื่อแดชบอร์ดของฉันเพื่อให้ดูโอ่อ่ามากขึ้น วิธีที่รวดเร็วในการดึงอิโมจิบน Mac คือ Ctrl+Command+Space bar สำหรับ Windows ให้กดปุ่ม Windows และจุด (.) หรืออัฒภาค (;) อย่างใดอย่างหนึ่ง 2 5. พิมพ์ตำแหน่งของคุณ ฉันใช้รหัสไปรษณีย์ของพื้นที่ที่ต้องการติดตาม แต่คุณสามารถกำหนดให้ละติจูดและลองจิจูดมีความเฉพาะเจาะจงมากขึ้นได้ การค้นหาละติจูดและลองจิจูดในพื้นที่ของคุณเป็นเรื่องง่าย เพียงแค่ไปที่ Google Maps ค้นหาสถานที่ จากนั้นคัดลอกละติจูดและลองจิจูดจากเบราว์เซอร์แล้ววางลงในแบบฟอร์ม ใช้ได้เฉพาะสถานที่ในสหรัฐอเมริกา สหราชอาณาจักร และแคนาดาเท่านั้น

6. เลือกหน่วยของคุณ ฉันเลือก US/Imperial เพราะฉันอาศัยอยู่ในสหรัฐอเมริกา

7. เลือกสร้างบัคเก็ตใหม่หรือส่งข้อมูล Weatherstack ของคุณไปยังบัคเก็ตที่มีอยู่ ในบทช่วยสอนนี้ หากคุณได้ตั้งค่า Sense Hat ให้สตรีมไปยังสถานะเริ่มต้น (ในขั้นตอนสุดท้าย) ให้ส่งข้อมูล Weatherstack ไปที่ ถังนั้น

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

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

10. คลิกเริ่มการรวม ตอนนี้คุณกำลังสตรีมข้อมูลจาก Weatherstack! คลิกปุ่ม "ดูในแอป IoT" เพื่อดูจุดข้อมูลแรกเข้ามา

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

ขั้นตอนที่ 5: เพิ่มแผนที่ไปยังแดชบอร์ดของคุณ (โบนัส)

เพิ่มแผนที่ไปยังแดชบอร์ดของคุณ (โบนัส)
เพิ่มแผนที่ไปยังแดชบอร์ดของคุณ (โบนัส)
เพิ่มแผนที่ไปยังแดชบอร์ดของคุณ (โบนัส)
เพิ่มแผนที่ไปยังแดชบอร์ดของคุณ (โบนัส)
เพิ่มแผนที่ไปยังแดชบอร์ดของคุณ (โบนัส)
เพิ่มแผนที่ไปยังแดชบอร์ดของคุณ (โบนัส)

เราสามารถเพิ่มไทล์แผนที่ลงในแดชบอร์ดของเราเพื่อแสดงตำแหน่งของสตรีมสภาพอากาศของเราได้อย่างง่ายดาย คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับมุมมองแผนที่แบบโต้ตอบได้ในไทล์ที่https://support.initialstate.com/knowledgebase/articles/800232-tiles-map-view เราสามารถเพิ่มคำสั่ง streamer.log ใหม่ในสคริปต์ Python ของเราได้ (และฉันจะอธิบายวิธีที่คุณสามารถทำได้ในตอนท้ายของส่วนนี้) เราจะใช้โอกาสนี้ในการแสดงวิธีส่งข้อมูลไปยังแดชบอร์ดของคุณด้วยวิธีอื่น

ขั้นตอนที่ 1: รับพิกัดละติจูด/ลองจิจูดของตำแหน่งของคุณ

คุณต้องได้รับพิกัดละติจูด/ลองจิจูดของตำแหน่งของคุณ วิธีหนึ่งในการทำเช่นนี้คือไปที่ Google Maps ค้นหาตำแหน่งของคุณ และซูมเข้าไปยังตำแหน่งที่แน่นอนของคุณ ใน URL คุณจะเห็นพิกัดละติจูด/ลองจิจูดของคุณ ในตัวอย่างด้านบน พิกัดของฉันคือ 35.925298, -86.8679478

คัดลอกพิกัดของคุณ (คุณจะต้องใช้ในขั้นตอนที่ 2) และตรวจสอบให้แน่ใจว่าคุณไม่ได้คัดลอกอักขระพิเศษใดๆ จาก URL โดยไม่ได้ตั้งใจ

ขั้นตอนที่ 2: สร้าง URL เพื่อส่งข้อมูลไปยังแดชบอร์ดของคุณ

คลิกลิงก์ "การตั้งค่า" ใต้ชื่อที่เก็บข้อมูลในชั้นวางถัง นี่จะเป็นการเปิดหน้าจอด้านบน คัดลอกข้อความในส่วนจุดปลาย API และวางลงในโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ เราจะใช้สิ่งนี้เพื่อสร้าง URL ที่เราสามารถใช้เพื่อส่งข้อมูลไปยังที่เก็บข้อมูลและแดชบอร์ดที่มีอยู่ของเรา ในถังของฉัน ข้อความที่ฉันคัดลอกดูเหมือน: https://groker.initialstate.com/api/events?accessKey=bqHk4F0Jj4j4M4CrhJxEWv6ck3nfZ79o&bucketKey=shwu1 URL ของคุณจะมี accessKey และ bucketKey ของคุณ เราจำเป็นต้องเพิ่มชื่อสตรีมและค่าให้กับพารามิเตอร์ URL เพื่อให้ URL สมบูรณ์

เพิ่ม "&MapLocation=YOUR_COORDINATES_FROM_STEP1" ใน URL ของคุณ

(แทรกพิกัดตั้งแต่ขั้นตอนที่ 1 ห้ามเว้นวรรค และห้ามคัดลอกของผม!!)

นี่คือลักษณะของฉัน: https://groker.initialstate.com/api/events?accessKey=bqHk4F0Jj4j4M4CrhJxEWv6ck3nfZ79o&bucketKey=shwu1&MapLocation=35.925298, -86.8679478

วาง URL ที่สมบูรณ์ของคุณลงในแถบที่อยู่ของเบราว์เซอร์แล้วกด Enter (หรือใช้คำสั่ง 'curl' ที่พรอมต์คำสั่ง) เพื่อส่งพิกัดแผนที่ของคุณไปยังสตรีม "MapLocation" ในบัคเก็ตใหม่ของคุณ

หากคุณดูแดชบอร์ดของคุณในไทล์ในตอนนี้ (คุณอาจต้องรีเฟรชหากคุณใจร้อน) ไทล์ใหม่ที่ชื่อ MapLocation ควรซูมเข้าในตำแหน่งปัจจุบันของคุณ

ขั้นตอนที่ 2 ทางเลือก: แก้ไขสคริปต์ของคุณ

หากคุณไม่ชอบขั้นตอนที่ 2 ด้านบนจริงๆ คุณสามารถเพิ่มคำสั่ง streamer.log อื่นให้กับสคริปต์ Python ของคุณ เพียงแอดไลน์

streamer.log("ตำแหน่งแผนที่", "YOUR_COORDINATES_FROM_STEP1")

ที่ใดที่หนึ่งใน def main(): ฟังก์ชั่นของสคริปต์ sensehat_wunderground.py (ให้ความสนใจกับการเยื้อง b/c Python คุณต้องปฏิบัติตามกฎการเยื้องที่เข้มงวด) ตัวอย่างเช่น ฉันเพิ่ม streamer.log("MapLocation", "35.925298, -86.8679478") ต่อจากบรรทัด 138

ขั้นตอนที่ 6: แก้ไขการอ่านค่า Sense Hat Temperature

แก้ไขการอ่านอุณหภูมิ Sense Hat
แก้ไขการอ่านอุณหภูมิ Sense Hat
แก้ไขการอ่านอุณหภูมิ Sense Hat
แก้ไขการอ่านอุณหภูมิ Sense Hat
แก้ไขการอ่านอุณหภูมิ Sense Hat
แก้ไขการอ่านอุณหภูมิ Sense Hat

คุณอาจสังเกตเห็นว่าค่าอุณหภูมิที่อ่านได้จาก Sense HAT ของคุณดูค่อนข้างสูง นั่นก็เพราะว่าเป็นเช่นนั้น ผู้ร้ายคือความร้อนที่เกิดจาก CPU ของ Pi ทำให้อากาศร้อนขึ้นรอบๆ Sense HAT เมื่อนั่งอยู่บน Pi

ในการทำให้เซ็นเซอร์อุณหภูมิมีประโยชน์ เราจำเป็นต้องนำ HAT ออกจาก Pi (ซึ่งจะขจัดประโยชน์ที่สำคัญของการเป็นโซลูชันขนาดกะทัดรัด) หรือพยายามปรับเทียบค่าการอ่านของเซ็นเซอร์อุณหภูมิ CPU เป็นสาเหตุหลักของความร้อนจากกาฝากที่ส่งผลต่อเซ็นเซอร์อุณหภูมิของเรา ดังนั้นเราจึงต้องหาความสัมพันธ์ เมื่อตรวจสอบ Enviro pHAT สำหรับ Pi Zero เราได้ใช้สมการเพื่อพิจารณาอุณหภูมิ CPU ที่ส่งผลต่อการอ่านอุณหภูมิของหมวก เราแค่ต้องการอุณหภูมิของ CPU และปัจจัยการปรับขนาดเพื่อคำนวณอุณหภูมิที่ปรับเทียบ:

temp_calibrated = temp - ((cpu_temp - อุณหภูมิ)/FACTOR)

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

ผลการวิจัยพบว่า Sense HAT นั้นอ่านค่าได้ 5-6 องศาฟาเรนไฮต์ค่อนข้างสม่ำเสมอ การเพิ่มอุณหภูมิของ CPU ลงในส่วนผสม (ด้วยสคริปต์นี้) อันดับแรกแสดงว่าร้อนมาก และครั้งที่สองเผยให้เห็นคลื่นที่การวัด Sense HAT เลียนแบบ

หลังจากบันทึกเป็นเวลาประมาณ 24 ชั่วโมง ฉันหาปัจจัยโดยใช้ค่าที่อ่านต่างกันหกค่าที่จุดต่างกันหกจุด ค่าเฉลี่ยของค่าตัวประกอบให้ค่าตัวประกอบสุดท้ายที่ 5.466 การใช้สมการ

temp_calibrated = อุณหภูมิ - ((cpu_temp - อุณหภูมิ)/5.466)

อุณหภูมิที่ปรับเทียบแล้วจะอยู่ภายในหนึ่งองศาของการอ่านอุณหภูมิจริง:

คุณสามารถเรียกใช้การแก้ไขการปรับเทียบนี้บน Pi เองได้ ภายในสคริปต์ wunderground_sensehat.py

ขั้นตอนที่ 7: โบนัส: กำหนดค่าการแจ้งเตือนสภาพอากาศของคุณเอง

โบนัส: กำหนดค่าการแจ้งเตือนสภาพอากาศของคุณเอง
โบนัส: กำหนดค่าการแจ้งเตือนสภาพอากาศของคุณเอง
โบนัส: กำหนดค่าการแจ้งเตือนสภาพอากาศของคุณเอง
โบนัส: กำหนดค่าการแจ้งเตือนสภาพอากาศของคุณเอง

มาสร้างการแจ้งเตือนทาง SMS เมื่อใดก็ตามที่อุณหภูมิลดลงต่ำกว่าจุดเยือกแข็ง

เราจะปฏิบัติตามขั้นตอนการตั้งค่าการแจ้งเตือนทริกเกอร์ที่ระบุไว้ในหน้าสนับสนุน

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

คลิกการตั้งค่าของที่เก็บข้อมูลในชั้นข้อมูล (ใต้ชื่อ)

คลิกที่แท็บทริกเกอร์

เลือกสตรีมข้อมูลที่จะทริกเกอร์ (คุณสามารถใช้รายการดรอปดาวน์เพื่อเลือกจากสตรีมที่มีอยู่เมื่อโหลดที่เก็บข้อมูลแล้ว หรือคุณสามารถพิมพ์ชื่อสตรีม/คีย์ด้วยตนเองได้ *หมายเหตุ Safari ไม่รองรับรายการดรอปดาวน์ HTML5) ในภาพหน้าจอตัวอย่างด้านบน ฉันเลือกอุณหภูมิ (F)

เลือกตัวดำเนินการตามเงื่อนไข ในกรณีนี้คือ '<'

เลือกค่าทริกเกอร์ที่จะทริกเกอร์การดำเนินการ (พิมพ์ค่าที่ต้องการด้วยตนเอง) ในกรณีนี้ ให้พิมพ์ 32 ตามที่แสดงด้านบน

คลิกปุ่ม '+' เพื่อเพิ่มเงื่อนไขทริกเกอร์

เลือกการดำเนินการ (การดำเนินการปัจจุบันที่มีให้แจ้งเตือนทาง SMS หรืออีเมล)

คลิกปุ่ม '+' เพื่อเพิ่มการดำเนินการ ป้อนรหัสยืนยันหากเพิ่มหมายเลขโทรศัพท์หรืออีเมลใหม่เพื่อตั้งค่าให้เสร็จสิ้น

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

PIR SMS

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

เช่น เวลาฝนตก

:cloud: สภาพอากาศ =:umbrella:

เมื่อไหร่จะมีลมแรง

:dash: ความเร็วลม(MPH) > 20

เป็นต้น

ขั้นตอนที่ 8:

Internet of Things Contest 2016
Internet of Things Contest 2016
Internet of Things Contest 2016
Internet of Things Contest 2016

รางวัลรองชนะเลิศการประกวด Internet of Things 2016

แนะนำ: