Mục lục:

Hiển thị thời tiết đơn giản bằng Raspberry PI và Cyntech WeatherHAT: 4 bước
Hiển thị thời tiết đơn giản bằng Raspberry PI và Cyntech WeatherHAT: 4 bước

Video: Hiển thị thời tiết đơn giản bằng Raspberry PI và Cyntech WeatherHAT: 4 bước

Video: Hiển thị thời tiết đơn giản bằng Raspberry PI và Cyntech WeatherHAT: 4 bước
Video: 5 Dự Án Nổi Bật với Raspberry Pi trong năm 2022 2024, Tháng Chín
Anonim
Hiển thị thời tiết đơn giản bằng Raspberry PI và Cyntech WeatherHAT
Hiển thị thời tiết đơn giản bằng Raspberry PI và Cyntech WeatherHAT
Hiển thị thời tiết đơn giản bằng Raspberry PI và Cyntech WeatherHAT
Hiển thị thời tiết đơn giản bằng Raspberry PI và Cyntech WeatherHAT

* Vào năm 2019, Yahoo đã thay đổi API của nó và điều này đã ngừng hoạt động. Tôi đã không biết về sự thay đổi. Vào tháng 9 năm 2020, dự án này đã được cập nhật để sử dụng API OPENWEATHERMAP. Xem phần cập nhật bên dưới, phần còn lại của thông tin này vẫn còn tốt. Cảm ơn bạn đã quan tâm và cảm ơn vì đã cho tôi biết về sự thay đổi của Yahoo. *

Gần đây tôi đã mua một Cyntech WeatherHAT, nhưng tôi hơi thất vọng vì thiếu phần mềm cho nó.

Bản thân HAT của nó dường như được xây dựng tốt, với 6 đèn LED màu xanh lam ở dạng giọt mưa, 6 đèn LED màu cam ở dạng tia sấm sét, 6 đèn LED màu trắng ở dạng đám mây. 1 (Những gì tôi tin là đèn LED RGB) cho MẶT TRỜI - nó hiển thị màu cam (vì vậy tôi có thể nhầm về nó là RGB). Và 6 đèn LED WS2812 (Đây là RGB:-))

Cyntech có hướng dẫn bắt đầu và thậm chí điều đó cũng tốt - cài đặt và sử dụng HAT rất dễ dàng.

Vì vậy, tôi chỉ ngạc nhiên khi không thực sự thấy bất kỳ phần mềm nào (ngoài bản demo do Cyntech cung cấp). Tôi cũng ngạc nhiên không kém khi không tìm thấy ai thực sự sử dụng cái này - Có thể mọi người muốn một màn hình hiển thị "lạ mắt" với nhiệt độ và tất cả những loại thông tin đó. Đối với tôi, thật tuyệt khi chỉ cần nhìn lên một vài đèn LED và biết - đó là Mưa, hay Bão, hoặc Có mây - Tại thời điểm đó, nếu tôi cần thêm thông tin, tôi có thể nhìn vào máy tính bảng hoặc điện thoại của mình.:-)

Nói thêm một chút - đây thực sự là lần đầu tiên tôi sử dụng python, tôi không giỏi về nó. Và tôi chắc rằng những người thực sự biết về python sẽ cho tôi biết cách tốt hơn để làm điều này.

Bắt đầu nào:

Chúng tôi cần một thẻ SD (ít nhất 8gb)

Raspberry PI (tôi đang sử dụng Zero W) nó cần có quyền truy cập internet.

và chúng tôi cần Cyntech weatherHAT

Nếu bạn sử dụng Raspberry PI Zero W, bạn cũng cần có thể hàn một bộ tiêu đề vào bảng.

Nếu không, các kỹ năng cần thiết là khả năng sử dụng phần mềm và thiết lập thẻ SD.

Bước 1: Đặt thẻ SD và Raspberry PI

Đặt thẻ SD và Raspberry PI
Đặt thẻ SD và Raspberry PI
Đặt thẻ SD và Raspberry PI
Đặt thẻ SD và Raspberry PI

Bạn sẽ cần tải xuống Raspbian mới nhất (tại thời điểm hướng dẫn này là Raspbian Stretch tháng 3 năm 2018 (2018-03-13))

www.raspberrypi.org/downloads/raspbian/

Tôi đã sử dụng phiên bản dành cho máy tính để bàn, ngay cả khi bạn đang chạy thiết lập không cần đầu của mình và thực hiện hầu hết mọi thứ từ CLI (giao diện dòng lệnh) qua ssh.

Làm theo hướng dẫn thiết lập được tìm thấy ở đây:

www.raspberrypi.org/documentation/installa…

Sau khi sử dụng xong Etcher, hãy tháo thẻ SD và lắp lại vào máy tính.

* Bạn thực sự chỉ cần thực hiện bước này bên dưới nếu bạn dự định thực hiện cài đặt không cần đầu

Chúng tôi cần thiết lập SSH và WIFI trước khi sử dụng thẻ SD trong Raspberry PI. Trong phân vùng BOOT của thẻ, hãy tạo một tệp có tên "ssh" không có dấu ngoặc kép. không có gì phải có trong tệp đó. Khi PI khởi động, nó sẽ thấy tệp đó và bật SSH.

Chúng tôi cũng cần tạo một tệp có tên "wpa_supplicant.conf". Chúng tôi cần chỉnh sửa tệp này với cài đặt wifi của bạn.

Nó sẽ trông giống như thế này:

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

update_config = 1 network = {ssid = "yourwifiSSID" psk = "yourwifipassword" scan_ssid = 1}

* Bạn thực sự chỉ cần làm điều này nếu bạn định thực hiện cài đặt không cần đầu

Sau khi hoàn tất, hãy tháo thẻ SD một cách an toàn và lắp Raspberry PI vào (đảm bảo rằng PI không có nguồn).

Đính kèm WeatherHAT và bật Raspberry PI.

Bước 2: Thiết lập Thư viện WeatherHAT

Thiết lập Thư viện WeatherHAT
Thiết lập Thư viện WeatherHAT
Thiết lập Thư viện WeatherHAT
Thiết lập Thư viện WeatherHAT

Đối với bước này, chúng tôi sẽ làm theo Hướng dẫn Bắt đầu được tìm thấy

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

NẾU bạn đang thực hiện cài đặt không cần sử dụng, bạn sẽ muốn ssh [email protected]

Nếu bạn không có ứng dụng ssh - PUTTY là một ứng dụng tốt.

Nếu bạn đang sử dụng bàn phím và màn hình - hướng dẫn ở trên là một hướng dẫn tốt để làm theo, nó sẽ khởi động bạn ở máy tính để bàn GUI.

Các bước quan trọng ở đây là cài đặt thư viện WS281x và các thư viện WeatherHAT, cùng với sự phụ thuộc của mỗi thư viện.

sudo apt-get cập nhật

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 install

Bây giờ chúng ta cần đảm bảo rằng I2C đã được bật.

sudo raspi-config

Hướng dẫn được viết cho phiên bản cũ hơn của raspi-config và nói rằng hãy chuyển đến "Tùy chọn nâng cao" đã được thay thế bằng tôi tin rằng "Giao diện"

Sau khi bật I2C, bạn sẽ phải khởi động lại.

Bây giờ là lúc để kiểm tra HAT

cd WeatherHAT

sudo python cycle.py

Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy tất cả các tính năng và một cầu vồng.

ctrl-z sẽ dừng chương trình.

* Lưu ý đặc biệt: Tôi được biết rằng thời gian của Raspberry PI 3 là khác nhau và cầu vồng có thể không hoạt động chính xác. NẾU bạn gặp sự cố này thì đây là cách khắc phục.

github.com/CyntechUK/WeatherHAT/issues/3

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

Khi mọi thứ đã hoạt động, chúng ta có thể tiếp tục bước tiếp theo.

Cập nhật: (Ngày 6 tháng 10 năm 2020) Kho lưu trữ này hiện chứa tập lệnh getWeather.py của tôi, đây là một tin tuyệt vời, vì sự quan tâm đã bắt đầu trở lại và những điều mới chắc chắn sẽ xảy ra.

Bước 3: Cài đặt Weather-api và GetWeather Script

Cài đặt Weather-api và GetWeather Script
Cài đặt Weather-api và GetWeather Script
Cài đặt Weather-api và GetWeather Script
Cài đặt Weather-api và GetWeather Script
Cài đặt Weather-api và GetWeather Script
Cài đặt Weather-api và GetWeather Script
Cài đặt Weather-api và GetWeather Script
Cài đặt Weather-api và GetWeather Script

Vì vậy, tôi đã gửi một yêu cầu ĐẦY ĐỦ tới CyntechUK cho tập lệnh của mình - hy vọng họ sẽ chấp nhận yêu cầu và bạn có thể bỏ qua việc tải xuống kho lưu trữ của tôi. (họ có thể không muốn đưa mã của tôi vào)

(Ngày 6 tháng 10 năm 2020) Yêu cầu PULL đã được chấp thuận, tập lệnh getWeather của tôi hiện đã được đưa vào kho lưu trữ Weatherhat.

********* Bạn vẫn có thể sử dụng thông tin này nếu muốn, tuy nhiên getWeather.py đã được đưa vào kho lưu trữ thời tiết ngay bây giờ ******************* *****************

Kho lưu trữ của tôi có thể được tìm thấy ở đây:

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

và tập lệnh của tôi được gọi là getWeather.py

NẾU họ chấp nhận yêu cầu kéo, bạn đã có tập lệnh này - nếu không, bạn sẽ cần sao chép kho lưu trữ.

trong thư mục chính của bạn (/ home / pi), gõ:

git clone https://github.com/kd8bxp/WeatherHAT.git getWeather

điều này sẽ sao chép kho lưu trữ vào một thư mục có tên getWeather, tiếp theo chúng ta cần kiểm tra nhánh getWeather.

cd getWeather

git checkout getWeather

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

Bạn sẽ cần phải cd vào thư mục weatherHAT đã được sao chép trước đó và

Chúng tôi cần chỉnh sửa tập lệnh getWeather.py cho vị trí của bạn.

nano getWeather.py

Bạn sẽ thấy một dòng bắt đầu bằng

vị trí và kết thúc bằng tra cứu (45042) - Đây là mã zip của tôi, tôi thấy rằng nó không hoạt động tốt như bạn nghĩ

và dòng ngay phía trên được nhận xét là hoạt động tốt hơn với tên thành phố. Đó là cái mà bạn có thể muốn sử dụng. Vì vậy, Comment dòng mã zip (#) và bỏ ghi chú và thay đổi tên thành phố của bạn.

*********** THÔNG TIN YAHOO CŨ - Không yêu cầu lâu hơn ***********

Chúng tôi cần cài đặt thêm một thư viện nữa để nó hoạt động, weather-api, một trình bao bọc cho API thời tiết của Yahoo.

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

Cài đặt rất dễ dàng -

pip cài đặt thời tiết-api

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

Bây giờ chúng ta có thể chạy tập lệnh:

sudo python getWeather.py &

& Sẽ cho phép tập lệnh chạy ở chế độ nền. Tập lệnh sẽ ngủ trong khoảng 5 phút, sau đó kiểm tra Yahoo Weather xem có điều gì đó thay đổi hay không - nếu có, nó sẽ cập nhật màn hình. Thời gian 5 phút có thể được thay đổi, nó ở gần cuối kịch bản.

ngủ (60 * 5)

Bạn có thể thiết lập một công việc crontab (hãy nhớ rằng công việc này cần được chạy dưới dạng root) sẽ bắt đầu tập lệnh ở mỗi lần khởi động.

sử dụng:

sudo crontab -e

đi vào:

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

Tôi nghĩ rằng điều đó sẽ hoạt động - Tôi chưa thiết lập cron trên hệ thống của mình.

Nó khá là nhiều -

Như tôi đã nói, đây là một trong những chương trình python đầu tiên của tôi và tôi chắc rằng ai đó hiểu biết nhiều hơn sẽ thấy cách tốt hơn để làm điều này.

Tôi chỉ mới thực hiện thử nghiệm giới hạn về điều này - cho đến nay, tôi đã thấy "Tuyết" "Mưa" và "Bão" hoạt động, Có một số điều kiện mà tôi chưa biết phải xử lý như thế nào - Tôi hoan nghênh các ý kiến.

Bước 4: Thông tin cập nhật cho: API Openweathermap

Vào tháng 9 năm 2020, tôi đã cập nhật tập lệnh để sử dụng API

LƯU Ý: Đây là một bản sửa lỗi "nhanh chóng" đối với tôi và được thử nghiệm giới hạn - (Trời u ám trong vài ngày qua và tất cả những gì tôi thấy là màn hình mây và mưa) - Mặc dù tôi tin rằng tôi đã nắm bắt được tất cả các điều kiện dễ dàng hiển thị, có thể tôi đã bỏ lỡ một vài vì quá trình khắc phục sự cố này được thực hiện "nhanh chóng". Điều đó đang được nói, nếu bạn nghĩ rằng có vấn đề, vui lòng để lại nhận xét và thời gian cho phép tôi sẽ xem xét nó - hoặc cố gắng chỉ cho bạn đúng hướng. *

Bạn sẽ cần đăng ký khóa API bằng liên kết ở trên, khi bạn chỉnh sửa tập lệnh để đặt thành phố của mình, bạn sẽ thấy nơi đặt khóa. Chỉ cần sao chép và dán nó, và bạn sẽ tốt.

Các lưu ý khác:

Tập lệnh này hiện sử dụng "API dữ liệu thời tiết hiện tại". Bạn có thể tìm thấy thông tin về API đó tại đây:

openweathermap.org/current Một điều cần lưu ý là bạn có thể sử dụng thành phố, tiểu bang và quốc gia.

IE: thành phố "Dayton" trở thành "Dayton, OH, US" để ý mã tiểu bang và mã quốc gia đều là chữ hoa, điều này là bắt buộc. API cho biết nó chỉ có thể sử dụng "Dayton, OH" nhưng tôi đã gặp lỗi từ tập lệnh khi thực hiện việc này - và vì đây là một bản sửa lỗi nhanh nên tôi chưa tìm hiểu lý do tại sao. VẬY, tôi khuyên bạn nên sử dụng "thành phố, tiểu bang, quốc gia"

NẾU vì lý do nào đó bạn không nhận được thông tin tốt khi sử dụng tên thành phố, bạn cũng có thể tra cứu ID thành phố hoặc sử dụng vĩ độ và kinh độ hoặc mã zip. Trong mỗi trường hợp, URL sẽ cần được thay đổi, nếu bạn nhấp vào liên kết ở phía bên phải của trang web API, nó sẽ đưa ra ví dụ về URL phải là gì.

Bạn cũng cần thay đổi URL trong tập lệnh.

Ghi chú khác: 3 tháng 10, 2020

@Itsmedoofer đã chỉ ra rằng họ cần cài đặt các yêu cầu python-thư viện với bản cập nhật mới. Tôi không chắc mình có cần điều này hay không (cũng có thể là tôi đã cài đặt nó từ nhiều năm trước hoặc các phiên bản python khác nhau cài đặt các thư viện khác nhau theo mặc định). Vì vậy, nếu tập lệnh đưa ra lỗi về các yêu cầu python, việc khắc phục rất đơn giản.

gõ lệnh này vào yêu cầu cài đặt CLI: python -m pip

và bạn nên tốt.

Hy vọng rằng điều này làm cho vì đây là một bản sửa lỗi nhanh chóng và có thể một ngày nào đó nếu thời gian cho phép, tôi có thể làm việc để dọn dẹp nó tốt hơn một chút.

Cập nhật (ngày 6 tháng 10 năm 2020) Yêu cầu kéo github đã được chấp nhận, kho lưu trữ gốc CyntechUK ban đầu hiện bao gồm tập lệnh này. https://github.com/CyntechUK/WeatherHAT Người dùng Boeerb có một số ý tưởng về cách hiển thị một số điều kiện hiện không được hiển thị, cũng như một số ý tưởng khác để sử dụng. Vì vậy, hãy để mắt đến kho lưu trữ đó. Và hy vọng mọi thứ sẽ xảy ra.

Cập nhật: (8 tháng 10 năm 2020) Bản đồ thời tiết mở có một hướng dẫn ngắn về cách thiết lập và sử dụng API, https://openweathermap.org/appid Một nơi tốt để bắt đầu.

Đề xuất: