สารบัญ:
- ขั้นตอนที่ 1: ตั้งค่าการ์ด SD และ Raspberry PI
- ขั้นตอนที่ 2: ตั้งค่าไลบรารี WeatherHAT
- ขั้นตอนที่ 3: การติดตั้ง Weather-api และ GetWeather Script
- ขั้นตอนที่ 4: ข้อมูลอัปเดตสำหรับ: Openweathermap API
วีดีโอ: การแสดงสภาพอากาศอย่างง่ายโดยใช้ Raspberry PI และ Cyntech WeatherHAT: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
* ในปี 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
คุณจะต้องดาวน์โหลด 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
สำหรับขั้นตอนนี้ เราจะปฏิบัติตามคู่มือการเริ่มต้นใช้งานที่พบ
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
ดังนั้นฉันจึงส่งคำขอ 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 เป็นจุดเริ่มต้นที่ดี
แนะนำ:
ติดตาม: ศูนย์สื่อขั้นสูงพร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): 3 ขั้นตอน
ติดตาม: Advanced Media Center พร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): บทความนี้เป็นบทความต่อจากบทความก่อนหน้าของฉันที่ประสบความสำเร็จค่อนข้างมากเกี่ยวกับการสร้างศูนย์สื่ออเนกประสงค์ โดยอ้างอิงจาก Raspberry PI ที่ได้รับความนิยมมากในตอนแรก แต่ ในภายหลัง เนื่องจากไม่มีเอาต์พุตที่สอดคล้องกับ HEVC, H.265 และ HDMI 2.2 จึงมีสวิตช์
Blinds Control ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: 5 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมมู่ลี่ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันเพิ่มระบบอัตโนมัติให้กับมู่ลี่ของฉันอย่างไร ฉันต้องการเพิ่มและลบระบบอัตโนมัติได้ ดังนั้นการติดตั้งทั้งหมดจึงเป็นแบบหนีบ ส่วนหลักคือ: สเต็ปเปอร์มอเตอร์ ตัวขับสเต็ปควบคุม bij ESP-01 เกียร์และการติดตั้ง
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: 3 ขั้นตอน
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: Story A beacon จะส่งสัญญาณอย่างต่อเนื่องเพื่อให้อุปกรณ์บลูทู ธ อื่น ๆ รู้ว่ามีอยู่ และฉันอยากได้บีคอนบลูทูธเพื่อติดตามกุญแจมาตลอด เพราะฉันลืมเอามันมาเหมือน 10 ครั้งในปีที่แล้ว และฉันก็เกิดขึ้น
RuuviTag และ PiZero W และ Blinkt! เทอร์โมมิเตอร์แบบ Bluetooth Beacon: 3 ขั้นตอน (พร้อมรูปภาพ)
RuuviTag และ PiZero W และ Blinkt! เครื่องวัดอุณหภูมิที่ใช้ Bluetooth Beacon: คำแนะนำนี้อธิบายวิธีการอ่านข้อมูลอุณหภูมิและความชื้นจาก RuuviTag โดยใช้ Bluetooth กับ Raspberry Pi Zero W และเพื่อแสดงค่าเป็นเลขฐานสองบน Pimoroni กะพริบตา! pHAT.หรือเรียกสั้นๆ ว่า จะสร้างสถานะอย่างไร
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): 25 ขั้นตอน (พร้อมรูปภาพ)
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): นี่คือบทแนะนำเกี่ยวกับวิธีการสร้าง Quadcopter โดยใช้มอเตอร์ NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS & วิทยุ 3DR ฉันพยายามอธิบายแต่ละขั้นตอนด้วยรูปภาพจำนวนหนึ่ง หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดตอบกลับ