สารบัญ:

การแสดงสภาพอากาศอย่างง่ายโดยใช้ Raspberry PI และ Cyntech WeatherHAT: 4 ขั้นตอน
การแสดงสภาพอากาศอย่างง่ายโดยใช้ Raspberry PI และ Cyntech WeatherHAT: 4 ขั้นตอน

วีดีโอ: การแสดงสภาพอากาศอย่างง่ายโดยใช้ Raspberry PI และ Cyntech WeatherHAT: 4 ขั้นตอน

วีดีโอ: การแสดงสภาพอากาศอย่างง่ายโดยใช้ Raspberry PI และ Cyntech WeatherHAT: 4 ขั้นตอน
วีดีโอ: Weather Display on e-Paper Using Raspberry Pi 2024, มิถุนายน
Anonim
การแสดงสภาพอากาศอย่างง่ายโดยใช้ Raspberry PI และ Cyntech WeatherHAT
การแสดงสภาพอากาศอย่างง่ายโดยใช้ Raspberry PI และ Cyntech WeatherHAT
การแสดงสภาพอากาศอย่างง่ายโดยใช้ Raspberry PI และ Cyntech WeatherHAT
การแสดงสภาพอากาศอย่างง่ายโดยใช้ Raspberry PI และ Cyntech WeatherHAT

* ในปี 2019 Yahoo ได้เปลี่ยน API แล้วสิ่งนี้ก็หยุดทำงาน ฉันไม่รู้ถึงความเปลี่ยนแปลง ในเดือนกันยายนปี 2020 โครงการนี้ได้รับการอัปเดตเพื่อใช้ OPENWEATHERMAP API ดูส่วนที่อัปเดตด้านล่าง อย่างไรก็ตาม ข้อมูลที่เหลือยังคงดีอยู่ ขอขอบคุณที่มองหา และขอบคุณที่แจ้งให้เราทราบเกี่ยวกับการเปลี่ยนแปลงของ Yahoo *

เมื่อเร็ว ๆ นี้ฉันได้ซื้อ Cyntech WeatherHAT แต่ฉันรู้สึกผิดหวังเล็กน้อยที่ไม่มีซอฟต์แวร์สำหรับมัน

HAT ดูเหมือนจะถูกสร้างขึ้นมาอย่างดี โดยมีไฟ LED สีฟ้า 6 ดวงในรูปหยดน้ำฝน ไฟ LED สีส้ม 6 ดวงในรูปสายฟ้า และไฟ LED สีขาว 6 ดวงในรูปของก้อนเมฆ 1 (สิ่งที่ฉันเชื่อว่าเป็น RGB LED) สำหรับ SUN - แสดงเป็นสีส้ม (ดังนั้นฉันจึงอาจผิดเกี่ยวกับการเป็น RGB) และไฟ LED WS2812 จำนวน 6 ดวง (เหล่านี้คือ RGB:-))

Cyntech มีคู่มือการเริ่มต้นใช้งาน และถึงกระนั้นก็ยังดี - ติดตั้งและใช้งาน HAT ได้ง่าย

ดังนั้นฉันจึงแปลกใจที่ไม่เห็นซอฟต์แวร์ใดๆ เลย (นอกเหนือจากการสาธิตที่ Cyntech ให้มา) ฉันแปลกใจพอๆ กันที่ไม่พบใครที่ใช้สิ่งนี้จริงๆ บางทีผู้คนอาจต้องการจอแสดงผล "แฟนซี" ที่มีอุณหภูมิ และข้อมูลประเภทนั้นทั้งหมด สำหรับฉัน เป็นการดีที่จะมองขึ้นไปบนไฟ LED สองสามดวงแล้วรู้ว่า - ฝนตก พายุฟ้าคะนอง หรือเมฆครึ้ม ณ จุดนั้น หากฉันต้องการข้อมูลเพิ่มเติม ฉันสามารถดูที่แท็บเล็ตหรือโทรศัพท์ของฉันได้:-)

อีกหน่อย - นี่เป็นครั้งแรกที่ฉันใช้ python จริง ๆ ฉันไม่ได้เก่งเลย และฉันแน่ใจว่าคนที่รู้จัก python จริงๆ จะบอกวิธีที่ดีกว่าในการทำเช่นนี้

มาเริ่มกันเลย:

เราต้องการการ์ด SD (อย่างน้อย 8GB)

Raspberry PI (ฉันใช้ Zero W) จำเป็นต้องมีการเข้าถึงอินเทอร์เน็ต

และเราต้องการสภาพอากาศของ Cyntech

หากคุณใช้ Raspberry PI Zero W คุณจะต้องสามารถประสานชุดส่วนหัวเข้ากับบอร์ดได้

มิฉะนั้นทักษะที่จำเป็นคือความสามารถในการใช้ซอฟต์แวร์และตั้งค่าการ์ด SD

ขั้นตอนที่ 1: ตั้งค่าการ์ด SD และ Raspberry PI

ตั้งค่าการ์ด SD และ Raspberry PI
ตั้งค่าการ์ด SD และ Raspberry PI
ตั้งค่าการ์ด SD และ Raspberry PI
ตั้งค่าการ์ด SD และ Raspberry PI

คุณจะต้องดาวน์โหลด Raspbian ล่าสุด (ณ เวลาของคำสั่งนี้คือ Raspbian Stretch March 2018 (2018-03-13))

www.raspberrypi.org/downloads/raspbian/

ฉันใช้รุ่นเดสก์ท็อป แม้ว่าฉันจะใช้การตั้งค่าแบบไม่มีหัว และทำสิ่งต่างๆ ส่วนใหญ่จาก CLI (อินเทอร์เฟซบรรทัดคำสั่ง) ผ่าน ssh

ทำตามคำแนะนำการตั้งค่าที่นี่:

www.raspberrypi.org/documentation/installa…

หลังจาก Etcher เสร็จแล้ว ให้ถอดการ์ด SD แล้วใส่กลับเข้าไปในคอมพิวเตอร์อีกครั้ง

* คุณต้องทำตามขั้นตอนด้านล่างนี้เท่านั้นหากคุณวางแผนที่จะทำการติดตั้งแบบไม่มีหัว

เราจำเป็นต้องตั้งค่า SSH และ WIFI ก่อนที่เราจะใช้การ์ด SD ใน Raspberry PI ในพาร์ติชัน BOOT ของการ์ด ให้สร้างไฟล์ชื่อ "ssh" โดยไม่มีเครื่องหมายคำพูด ไม่มีอะไรต้องอยู่ในไฟล์นั้น เมื่อ PI บู๊ต จะเห็นไฟล์นั้นและเปิด SSH

เราต้องสร้างไฟล์ชื่อ "wpa_supplicant.conf" ด้วย เราจำเป็นต้องแก้ไขไฟล์นี้ด้วยการตั้งค่า wifi ของคุณ

ควรมีลักษณะดังนี้:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1 เครือข่าย={ ssid="yourwifiSSID" psk="yourwifipassword" scan_ssid=1 }

* คุณต้องทำสิ่งนี้จริง ๆ หากคุณวางแผนที่จะทำการติดตั้งแบบไม่มีหัว

เมื่อเสร็จแล้ว ให้ถอดการ์ด SD ออกอย่างปลอดภัยและใส่ Raspberry PI ลงใน Raspberry PI (ตรวจสอบให้แน่ใจว่าไม่มีพลังงานอยู่ที่ PI)

แนบ weatherHAT และเปิด Raspberry PI

ขั้นตอนที่ 2: ตั้งค่าไลบรารี WeatherHAT

ตั้งค่าไลบรารี WeatherHAT
ตั้งค่าไลบรารี WeatherHAT
ตั้งค่าไลบรารี WeatherHAT
ตั้งค่าไลบรารี WeatherHAT

สำหรับขั้นตอนนี้ เราจะปฏิบัติตามคู่มือการเริ่มต้นใช้งานที่พบ

guides.cyntech.co.uk/weatherhat/getting-sta…

หากคุณกำลังทำการติดตั้งแบบไม่มีหัว คุณจะต้อง ssh [email protected]

หากคุณไม่มีไคลเอนต์ ssh - PUTTY เป็นตัวเลือกที่ดี

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

ขั้นตอนสำคัญที่นี่คือการติดตั้งไลบรารี WS281x และไลบรารี WeatherHAT พร้อมกับการขึ้นต่อกันของแต่ละรายการ

sudo apt-get update

sudo apt-get upgrade -y sudo apt-get install build-essential python-dev git scons swig python-smbus git clone https://github.com/jgarff/rpi_ws281x.git > git clone https://github.com/ jgarff/rpi_ws281x.git > cd rpi_ws281x scons cd python sudo python setup.py ติดตั้ง

ตอนนี้เราต้องตรวจสอบให้แน่ใจว่า I2C เปิดอยู่

sudo raspi-config

คู่มือนี้เขียนขึ้นสำหรับ raspi-config เวอร์ชันเก่าและบอกว่าให้ไปที่ "ตัวเลือกขั้นสูง" ซึ่งฉันเชื่อว่า "อินเทอร์เฟซ" แทนที่

เมื่อคุณเปิด I2C คุณจะต้องรีบูต

ตอนนี้ได้เวลาทดสอบ HAT

cd WeatherHAT

sudo python cycle.py

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

ctrl-z จะหยุดโปรแกรม

*หมายเหตุพิเศษ: ฉันได้เรียนรู้ว่าเวลาของ Raspberry PI 3 แตกต่างกัน และรุ้งอาจทำงานไม่ถูกต้อง หากคุณมีปัญหานี้ นี่คือวิธีแก้ไข

github.com/CyntechUK/WeatherHAT/issues/3

guides.cyntech.co.uk/raspberry-pi/assemblin…

เมื่อทุกอย่างทำงานแล้ว เราก็สามารถไปยังขั้นตอนต่อไปได้

อัปเดต: (6 ต.ค. 2020) พื้นที่เก็บข้อมูลนี้มีสคริปต์ getWeather.py ของฉัน นี่เป็นข่าวดี เนื่องจากความสนใจได้จุดประกายอีกครั้ง และสิ่งใหม่ๆ ที่จะเกิดขึ้น

ขั้นตอนที่ 3: การติดตั้ง Weather-api และ GetWeather Script

การติดตั้ง Weather-api และ GetWeather Script
การติดตั้ง Weather-api และ GetWeather Script
การติดตั้ง Weather-api และ GetWeather Script
การติดตั้ง Weather-api และ GetWeather Script
การติดตั้ง Weather-api และ GetWeather Script
การติดตั้ง Weather-api และ GetWeather Script
การติดตั้ง Weather-api และ GetWeather Script
การติดตั้ง Weather-api และ GetWeather Script

ดังนั้นฉันจึงส่งคำขอ PULL ไปที่ CyntechUK สำหรับสคริปต์ของฉัน หวังว่าพวกเขาจะยอมรับคำขอ และคุณสามารถข้ามการดาวน์โหลดที่เก็บของฉันได้ (พวกเขาอาจไม่ต้องการรวมรหัสของฉันกับคุณ)

(6 ต.ค. 2020) คำขอ PULL ได้รับการอนุมัติ ตอนนี้สคริปต์ getWeather ของฉันรวมอยู่ในที่เก็บ Weatherhat แล้ว

*********คุณยังสามารถใช้ข้อมูลนี้ได้หากต้องการ อย่างไรก็ตาม ตอนนี้ getWeather.py ถูกรวมไว้ในที่เก็บ weatherhat แล้ว ******************* *****************

ที่เก็บของฉันสามารถพบได้ที่นี่:

github.com/kd8bxp/WeatherHAT/tree/getWeath…

และสคริปต์ของฉันชื่อ getWeather.py

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

ในโฮมไดเร็กตอรี่ของคุณ (/home/pi) พิมพ์:

โคลน git https://github.com/kd8bxp/WeatherHAT.git getWeather

สิ่งนี้จะโคลนที่เก็บลงในไดเร็กทอรีชื่อ getWeather ต่อไปเราต้องชำระเงินสาขา getWeather

cd getWeather

git checkout getWeather

**********************************************************************

คุณจะต้อง cd ลงในไดเร็กทอรี weatherHAT ที่ถูกโคลนก่อนหน้านี้และ

เราจำเป็นต้องแก้ไขสคริปต์ getWeather.py สำหรับตำแหน่งของคุณ

nano getWeather.py

คุณควรเห็นบรรทัดที่ขึ้นต้นด้วย

location และลงท้ายด้วย lookup(45042) - นี่คือรหัสไปรษณีย์ของฉัน ฉันพบว่ามันใช้งานไม่ได้อย่างที่คุณคิด

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

*********** ข้อมูลเก่าของ YAHOO - ไม่ต้องการอีกต่อไป *************

เราจำเป็นต้องติดตั้งไลบรารี่เพิ่มเติมเพื่อให้ใช้งานได้ weather-api ซึ่งเป็นตัวห่อหุ้มสำหรับ Yahoo weather API

pypi.python.org/pypi/weather-api/0.0.5

ติดตั้งง่าย -

pip ติดตั้ง weather-api

***********************************************************************************

ตอนนี้เราสามารถเรียกใช้สคริปต์:

sudo python getWeather.py &

& จะปล่อยให้สคริปต์ทำงานในพื้นหลัง สคริปต์จะเข้าสู่โหมดสลีปประมาณ 5 นาที จากนั้นตรวจสอบ Yahoo Weather ว่ามีอะไรเปลี่ยนแปลงหรือไม่ ถ้าเป็นเช่นนั้นจะอัปเดตการแสดงผล เวลา 5 นาทีสามารถเปลี่ยนแปลงได้ใกล้ด้านล่างของสคริปต์

นอน (60 * 5)

คุณสามารถตั้งค่างาน crontab (จำไว้ว่าต้องรันเป็นรูท) ที่จะเริ่มต้นสคริปต์ในการบู๊ตแต่ละครั้ง

ใช้:

sudo crontab -e

เข้าสู่:

@reboot python /home/pi/weatherHAT/getWeather.py

ฉันคิดว่ามันน่าจะใช้ได้ - ฉันยังไม่ได้ตั้งค่า cron ในระบบของฉัน

ที่สวยมากมัน -

อย่างที่ฉันบอกไปว่านี่เป็นหนึ่งในโปรแกรมหลามแรกของฉัน และฉันแน่ใจว่าคนที่รู้มากกว่านี้จะได้เห็นวิธีที่ดีกว่าในการทำเช่นนี้

ฉันได้ทำการทดสอบอย่างจำกัดในสิ่งนี้ - ฉันเคยเห็น "หิมะ" "ฝน" และ "พายุฝนฟ้าคะนอง" ทำงานแล้ว

มีเงื่อนไขบางอย่างที่ฉันยังไม่แน่ใจว่าจะจัดการอย่างไร ฉันยินดีรับแนวคิด

ขั้นตอนที่ 4: ข้อมูลอัปเดตสำหรับ: Openweathermap API

ในเดือนกันยายนปี 2020 ฉันอัปเดตสคริปต์เพื่อใช้ https://openweathermap.org API

หมายเหตุ: นี่เป็นการแก้ไขที่ "รวดเร็ว" สำหรับฉัน และผ่านการทดสอบอย่างจำกัด - (มีเมฆมากในช่วงสองสามวันที่ผ่านมา และทั้งหมดที่ฉันเห็นคือการแสดงเมฆและฝน) - ในขณะที่ฉันเชื่อว่าฉันพบเงื่อนไขทั้งหมดที่ง่ายต่อการ เป็นไปได้ที่ฉันพลาดไปสองสามอันเนื่องจากการแก้ไขนี้ "รวดเร็ว" ได้อย่างไร ดังที่กล่าวไว้ หากคุณคิดว่ามีปัญหา โปรดแสดงความคิดเห็นและให้เวลาโดยที่ฉันจะตรวจสอบ - หรือพยายามชี้ให้คุณเห็นในทิศทางที่ถูกต้อง *

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

หมายเหตุอื่นๆ:

สคริปต์นี้ใช้ข้อมูล "API ข้อมูลสภาพอากาศปัจจุบัน" เกี่ยวกับ API นั้นได้ที่นี่:

openweathermap.org/current สิ่งหนึ่งที่ควรทราบคือ คุณสามารถใช้เมือง รัฐ และประเทศได้

IE: เมือง "Dayton" กลายเป็น "Dayton, OH, US" โปรดสังเกตว่ารัฐและรหัสประเทศเป็นตัวพิมพ์ใหญ่อย่างไร นี่เป็นสิ่งจำเป็น API บอกว่าสามารถใช้ได้แค่ "Dayton, OH" แต่ฉันได้รับข้อผิดพลาดจากสคริปต์เมื่อฉันทำสิ่งนี้ และเนื่องจากนี่เป็นการแก้ไขอย่างรวดเร็ว ฉันจึงไม่ได้พิจารณาว่าทำไม ดังนั้น ผมขอแนะนำให้ใช้ "เมือง รัฐ ประเทศ"

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

คุณต้องเปลี่ยน URL ในสคริปต์ด้วย

หมายเหตุเพิ่มเติม: 3 ต.ค. 2020

@Itsmedoofer ชี้ให้เห็นว่าพวกเขาต้องการติดตั้งไลบรารี python-requests ด้วยการอัปเดตใหม่ ฉันไม่แน่ใจว่าฉันต้องการสิ่งนี้ (อาจเป็นไปได้ว่าฉันติดตั้งเมื่อหลายปีก่อนหรือ python รุ่นต่าง ๆ ติดตั้งไลบรารี่ต่าง ๆ ตามค่าเริ่มต้น) ดังนั้นหากสคริปต์แสดงข้อผิดพลาดเกี่ยวกับคำขอหลามก็แก้ไขได้ง่าย

พิมพ์คำสั่งนี้ลงใน CLI: python -m pip installการร้องขอ

และคุณควรจะดี

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

อัปเดต (6 ต.ค. 2020) คำขอดึง GitHub ได้รับการยอมรับแล้ว ที่เก็บดั้งเดิมของ CyntechUK ดั้งเดิมตอนนี้มีสคริปต์นี้แล้ว https://github.com/CyntechUK/WeatherHAT ผู้ใช้ Boeerb มีแนวคิดบางประการเกี่ยวกับวิธีแสดงเงื่อนไขบางอย่างที่ไม่ได้แสดงอยู่ในขณะนี้ รวมถึงแนวคิดอื่นๆ สำหรับการใช้งาน ดังนั้นจับตาดูที่เก็บข้อมูลนั้น และหวังว่าสิ่งต่างๆ จะเกิดขึ้น

อัปเดต: (8 ต.ค. 2020) Open Weather Map มีบทช่วยสอนสั้น ๆ เกี่ยวกับการตั้งค่าและการใช้ API https://openweathermap.org/appid เป็นจุดเริ่มต้นที่ดี

แนะนำ: