Mục lục:

1984 WeatherMan Pi: 7 bước (có hình ảnh)
1984 WeatherMan Pi: 7 bước (có hình ảnh)

Video: 1984 WeatherMan Pi: 7 bước (có hình ảnh)

Video: 1984 WeatherMan Pi: 7 bước (có hình ảnh)
Video: Vua Học Dốt khiến cả thế giới ngưỡng mộ - review Sinh Viên Thời @ 2024, Tháng mười một
Anonim
Image
Image
Thời tiết 1984Man Pi
Thời tiết 1984Man Pi
Thời tiết 1984Man Pi
Thời tiết 1984Man Pi

Máy cassette di động này hiện là màn hình hiển thị thời tiết IoT xung quanh với phong cách đầu những năm 80, hiển thị hoạt ảnh "điều kiện hiện tại", nhiệt độ cuộn và biểu đồ xác suất mưa qua cửa sổ băng. Khi điều kiện thời tiết thay đổi, tai nghe điều khiển bằng servo ở phía trên lắc qua lắc lại như một cảnh báo tinh tế.

Mở cửa băng chức năng, chúng ta có thể thấy rằng các thành phần ban đầu đầy bụi đã được thay thế bằng Raspberry Pi Zero W, Pimoroni Unicorn Hat HD (LED Matrix) và một servo nhỏ. Dữ liệu thời tiết được lấy nguồn bằng cách sử dụng tập lệnh Python truy vấn API thời tiết bầu trời tối siêu chính xác, được điều chỉnh cho phù hợp với vị trí cụ thể của tôi.

Đó là một bản dựng IoT đơn giản nhưng trông đáng yêu và đầy đủ chức năng nằm trên chiếc loa để bàn đối diện với quầy YouTube của tôi, giúp tôi luôn cập nhật tình hình thời tiết một cách lặng lẽ.

Quân nhu

Raspberry Pi Zero

Pimoroni Unicorn HAT HD

Servo nhỏ

1984 Tai nghe & Âm thanh nổi Cá nhân Hitachi SP-1

Bộ điều hợp WiFi USB

Thanh ren 2mm

Sugru (Đen & Xám)

Nam châm GeoMag

Bước 1: Xé băng

Băng xé
Băng xé
Băng xé
Băng xé
Băng Teardown
Băng Teardown

Tôi đã được mẹ chồng tôi tặng cho chiếc máy cassette cũ đáng yêu này vào tháng 9 và ngay lập tức yêu thích vẻ ngoài mang tính biểu tượng và các nút bấm sang trọng của nó. Tuy nhiên, điểm thu hút thực sự là cửa sổ băng lớn đó - sau khi sở hữu nó khoảng 15 giây, tôi đã lấy thước ra và ngạc nhiên khi thấy rằng nó, đến mm, có cùng kích thước với Raspberry Pi HAT tiêu chuẩn (Phần cứng đính kèm trên đầu).

Chỉ riêng khám phá đó thôi cũng đủ để đẩy dự án đồng hồ cúc cu của tôi xuống sâu hơn trong danh sách "việc cần làm" và tôi bắt đầu công việc ngay lập tức, bằng cách tháo dỡ đầu phát.

Việc xé dán diễn ra khá tốt và tôi đã kết thúc với ba mảnh riêng biệt để làm việc - tôi đã cố gắng phá vỡ một vài bộ phận bằng nhựa, nhưng không có gì không thể dán lại với nhau.

Bước 2: Bầu trời tối Pi

Bầu trời tối Pi
Bầu trời tối Pi
Bầu trời tối Pi
Bầu trời tối Pi
Dark Sky Pi
Dark Sky Pi

Tôi đã sử dụng Dark Sky trên điện thoại của mình được một thời gian và thực sự ấn tượng với độ chính xác của các dự báo, vì vậy tôi rất vui khi thấy họ cung cấp một API toàn diện mà tôi có thể sử dụng trong dự án này. lên quá!

Trước tiên, hãy truy cập https://darksky.net/dev và đăng ký tài khoản miễn phí - tài khoản "dùng thử" cho phép bạn thực hiện 1000 yêu cầu API mỗi ngày, đủ để làm mới sau mỗi 1,5 phút - đủ thường xuyên cho ngay cả tôi Mức độ ám ảnh thời tiết của Anh.

Sau khi đăng ký, bạn sẽ nhận được "Khóa bí mật" - đây là thứ bạn cần để truy cập vào dữ liệu và nó được sử dụng trong tập lệnh Python, vì vậy hãy giữ nó thật tiện lợi (và bạn biết đấy, bí mật).

Tôi đã bắt đầu bằng cách điều chỉnh một tập lệnh mà tôi đã sử dụng trong bản dựng Bộ đếm người đăng ký YouTube, sử dụng mô-đun Yêu cầu bằng Python để truy xuất dữ liệu API. Tập lệnh mà tôi đã sử dụng trên GitHub, bạn chỉ cần thêm khóa API Dark Sky của mình và tất nhiên, thay thế các giá trị Vĩ độ & Kinh độ của riêng bạn.

Việc kéo dữ liệu về điều kiện thời tiết hiện tại khá dễ dàng và tôi quyết định sử dụng các yếu tố "Biểu tượng", "Xác suất mưa" và "Nhiệt độ".

Bước 3: Mã

Mật mã
Mật mã

Nếu bạn muốn sử dụng lại hoặc sử dụng lại mã mà tôi đã sử dụng, nó nằm trong kho WeatherMan trên GitHub - sao chép hoặc tải thư mục "thời tiết" vào thư mục "pi" trên Raspberry Pi của bạn.

Các chức năng chính của script như sau:

weatherman.py

Đây là kịch bản chính trích xuất dữ liệu thời tiết từ Dark Sky. Bạn sẽ cần thiết lập tài khoản Dark Sky tại https://darksky.net/dev và đặt Khóa bí mật của bạn vào tập lệnh được chỉ định. Bạn cũng sẽ cần nhập vĩ độ & kinh độ của vị trí thời tiết mà bạn quan tâm - điều này có thể được tìm thấy trên Google Maps, chỉ cần nhấp chuột phải và chọn "Đây là gì?" và bạn sẽ nhận được một cửa sổ bật lên hiển thị vĩ độ / kinh độ của vị trí.

Sau khi truy xuất dữ liệu API, weatherman.py sẽ chuyển các tham số đến một số tập lệnh nhỏ hơn để bắt đầu các hoạt ảnh và sự lắc lư tai nghe.

Tập lệnh được đặt để chạy khi khởi động bằng cách chỉnh sửa tệp khởi động…

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

… Và thêm:

@ python3 /home/pi/weather/weatherman.py &

ở cuối tệp.

icon.py

Tập lệnh này lấy tham số "điều kiện hiện tại" từ tập lệnh weatherman.py và sử dụng nó để hiển thị hình ảnh động thời tiết 16x16 - tất cả những thứ này đều được lưu trữ trong thư mục "biểu tượng" và là một phần của tài liệu Unicorn HAT HD tiêu chuẩn. Bạn có thể dễ dàng chỉnh sửa các tệp hoạt ảnh-p.webp

phone.py

Nếu điều kiện thời tiết đã thay đổi so với yêu cầu API cuối cùng (hoặc đó là lần khởi động mới và trời không có tuyết) thì tập lệnh này được gọi từ weatherman.py và hướng dẫn servo "lắc lư" qua lại để cảnh báo cho bạn rằng các điều kiện có đã thay đổi.

tủa.py

Tập lệnh này chấp nhận tham số "xác suất mưa" từ weatherman.py và hiển thị các dòng màu xanh lam trên Unicorn HAT liên quan đến% xác suất. Nếu 100% thì tất cả 16 hàng sẽ phát sáng màu xanh lam, nếu 50% thì chỉ có 8 hàng, v.v.

temp.py

Một tập lệnh Pimoroni tiêu chuẩn khác, tập lệnh này lấy tham số "tạm thời" từ weatherman.py và hiển thị nó với văn bản cuộn. Nó được thiết lập để sử dụng phông chữ Herkules truetype (trong thư mục "phông chữ") nhưng có thể sử dụng phông chữ tiêu chuẩn nếu bạn thích.

Bước 4: Unicorn HAT & Servo

Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo

Có thể nắm bắt dữ liệu thời tiết là rất tốt, nhưng bây giờ tôi cần hiển thị nó trên Unicorn HAT. Tôi đã xem nhiều bộ biểu tượng thời tiết khác nhau trên internet và đang điều chỉnh được một nửa khi tôi nhận ra rằng có một ví dụ về thời tiết được bao gồm trong tài liệu Pimoroni - và điều này bao gồm cả hình ảnh động thời tiết!

Điều này đã tiết kiệm một lượng lớn công việc và tôi đã thiết lập và chạy ngay lập tức, với biểu tượng động cho các điều kiện hiện tại, một số văn bản cuộn cho nhiệt độ và biểu đồ cho% lượng mưa (liên quan đến một số phép toán nhẹ). Tôi giữ các tập lệnh riêng biệt và sử dụng mô-đun Subprocess của Python để chuyển các tham số tới và lui.

Thêm servo là phương tiện lý tưởng cho những cảnh báo này, vì nó sẽ tạo ra một chút tiếng ồn và bắt mắt mà không quá khó chịu. Với HAT đã chiếm nhiều chân của Pi, tôi đã hàn cáp servo vào mặt dưới của bo mạch, sử dụng Chân 17 để điều khiển chuyển động của servo bằng cách sử dụng Điều chế độ rộng xung.

Việc cung cấp năng lượng cho servo từ Pi không phải là lý tưởng, nhưng nó sẽ chỉ được sử dụng cho một chút rung lắc nhất thời nên độ chính xác không phải là vấn đề lớn ở đây. Nó được kết nối như thể hiện trong sơ đồ, với cáp Brown tới GND, Red đến 5v và Orange (cáp điều khiển) với GPIO17.

Cuối cùng, tôi đã chỉnh sửa một số tệp hoạt ảnh thời tiết trong GIMP để thêm vào những nét cá nhân của riêng tôi, như dơi trên mặt trăng và mặt cười trên mặt trời. Tôi cũng đã thêm vào hình ảnh động bánh xe băng cassette "Old Tech New Spec" tùy chỉnh để phát khi khởi động, chỉ để giải trí.

Bước 5: Tai nghe Jiggle

Tai nghe Jiggle
Tai nghe Jiggle
Tai nghe Jiggle
Tai nghe Jiggle
Tai nghe Jiggle
Tai nghe Jiggle
Tai nghe Jiggle
Tai nghe Jiggle

Ý tưởng về WeatherMan là nó sẽ nằm trên loa bàn của tôi một cách thụ động, thỉnh thoảng hiển thị thời tiết, nhưng tôi muốn nó hoạt động nhiều hơn một chút! Tai nghe đi kèm với nó là bánh mì nướng nhưng cổ điển của những năm 80, vì vậy tôi quyết định làm điều gì đó với chúng. Sau khi tháo tất cả cáp và dán keo nóng vào chỗ bị đứt, tôi chỉ còn lại ba phần, phích cắm 3,5 mm, nút hình kim cương và bản thân điện thoại trên dây kim loại dẻo của chúng.

Tôi nảy ra ý tưởng rằng nếu tôi có thể tìm ra cách nào đó để gắn điện thoại lên trên thiết bị thì tôi có thể làm cho chúng xoay qua lại bằng một servo và sử dụng nó như một thông báo bổ sung.

Đầu tiên, tôi khoan lỗ cắm 3.5mm và tháo công tắc kim cương, sau đó trượt chúng vào một đoạn thanh ren. Tiếp theo, tôi dán một đai ốc vào một đầu nối bằng nhựa để thanh này có thể nằm chắc chắn (và thẳng) trên đỉnh servo. Ở đầu kia của thanh, tôi đã thêm vào một đai ốc khác. Cuối cùng, tôi sử dụng Sugru màu xám để kết dính phần đầu của thanh với dải tai nghe và cũng để che đai ốc ở dưới cùng của cụm. Nếu bạn chưa từng nghe nói về Sugru, đó là một loại keo có thể nặn được đóng gói trong các gói nhỏ màu - nó đóng khuôn giống như Play-Doh nhưng dính như superglue và cứng như nhựa!

Với thời tiết lạnh giá gần đây, Sugru mất vài ngày để cứng lại hoàn toàn, nhưng tai nghe và chân đế của chúng đã sớm sẵn sàng để lắp ráp lần cuối.

Bước 6: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Pi, HAT và Servo đều hoạt động tốt trên băng ghế dự bị nên công việc tiếp theo là đưa họ vào vụ án. Trước khi bắt đầu với các thành phần lớn, tôi đã sử dụng một số Sugru màu xám còn sót lại để sửa chữa trong nút xoay âm lượng, ổ cắm tai nghe và công tắc "băng kim loại", phân loại mỹ phẩm. Tôi cũng dán các nút Play, Stop, FF & Rew ban đầu vào một đoạn ống dẫn bằng nhựa để chúng ở đúng vị trí. Thật tiếc khi không sử dụng lại bất kỳ nút nào trong lần này nhưng thực sự không có gì để họ kiểm soát!

Tôi đã sử dụng chiếc Sugru màu xám cuối cùng để giữ servo ở vị trí, với trục của nó chọc qua ổ cắm tai nghe được mở rộng. Chuyển sang nửa còn lại của trường hợp, sau đó tôi sử dụng một số Sugru đen để cố định cụm HAT và Pi vào cánh cửa băng, để chúng mở ra cùng với nó. Tôi thực sự thích thú với thao tác nhỏ cuối cùng - cố định trong nam châm GeoMag để cánh cửa được đóng chặt.

Đặt hai nửa lại với nhau là một công việc lo lắng vì tôi sợ Pi & Servo sẽ xung đột với nhau, nhưng cuối cùng thì vẫn còn khoảng một milimet để dự phòng, rất nhiều trong cuốn sách của tôi. Vì cánh cửa mở ra vui nhộn sẽ cho phép toàn quyền truy cập vào bên trong để phục vụ trong tương lai, tôi chỉ cần dán nóng hai nửa lại với nhau và sau khi lau sạch dấu vân tay nhờn của tôi đã lắp cụm tai nghe ở trên - xong!

Bước 7: Ám ảnh yên tĩnh

Ám ảnh yên tĩnh
Ám ảnh yên tĩnh
Ám ảnh yên tĩnh
Ám ảnh yên tĩnh

Giải nhì trong cuộc thi tái sử dụng

Đề xuất: