3 điểm bởi GN⁺ 2024-09-21 | 1 bình luận | Chia sẻ qua WhatsApp
  • Trực quan hóa thời tiết bằng phong cảnh

  • Các trạm quan trắc khí tượng truyền thống hiển thị dữ liệu cảm biến dưới dạng số

  • Việc khám phá các bảng điều khiển như vậy đòi hỏi nhiều công sức để tìm, diễn giải và trực quan hóa hiệu quả các tham số cụ thể

  • Việc nhìn hình ảnh phong cảnh là tự nhiên, giảm căng thẳng và mang lại trải nghiệm thị giác thoải mái với rất ít nỗ lực

  • Phương pháp dưới đây mô tả cách mã hóa thông tin thời tiết trong hình ảnh phong cảnh mà không phụ thuộc vào dữ liệu số

  • Nguyên tắc mã hóa

  • Phong cảnh mô tả một ngôi nhà nhỏ trong rừng

  • Trục ngang của hình ảnh biểu thị dòng thời gian 24 giờ bắt đầu từ thời điểm hiện tại và kéo dài đến điều kiện của ngày hôm sau

  • Các yếu tố phong cảnh khác nhau được phân bố theo trục dọc tượng trưng cho các sự kiện và điều kiện thời tiết

  • Sự kiện càng xa thời điểm hiện tại thì càng nằm về bên phải của hình ảnh

  • Thông tin sau có thể được mã hóa trong hình ảnh phong cảnh:

    • Các mốc thời gian giúp đơn giản hóa việc theo dõi dòng thời gian:
      • Thời điểm mặt trời mọc và mặt trời lặn
      • Buổi trưa và nửa đêm
    • Thông tin dự báo thời tiết:
      • Hướng và cường độ gió
      • Biến động nhiệt độ
      • Giá trị nhiệt độ cao nhất và thấp nhất
      • Mức độ mây che phủ
      • Lượng mưa
    • Điều kiện thời tiết hiện tại:
      • Nhiệt độ
      • Áp suất khí quyển
    • Các sự kiện không liên quan đến thời tiết:
      • Sinh nhật
      • Ngày lễ
  • Triển khai

  • Mã tạo ảnh được viết bằng thư viện Pillow của Python và dựa trên dữ liệu từ OpenWeather

  • Hình ảnh được thiết kế để sử dụng trên màn hình E-Ink 296x128

  • Mã đã được kiểm thử trên Python 3.9

  • Hình ảnh sự kiện | Mô tả

    • | Mặt trời mọc
    • | Mặt trời lặn
    • | Mức độ mây che phủ
    • | Vị trí thời gian hiện tại
    • | Nửa đêm
    • | Buổi trưa
    • | Gió nam
    • | Gió đông
    • | Gió tây
    • | Gió bắc
    • | Mưa
  • Ví dụ

  • Hình ảnh phong cảnh | Mô tả

    • | Khoảng gần giữa trưa, dự kiến trời quang với một ít mây. Gió bắc được dự báo sẽ thổi suốt đêm. Nhiệt độ hiện đang tăng và sẽ giảm sau khi mặt trời lặn, chạm mức thấp nhất trước khi mặt trời mọc. Trong thời gian này, gió sẽ chuyển sang hướng đông bắc
    • | Mặt trời đang mọc, thời tiết nóng và quang đãng với gió đông nam nhẹ. Nhiệt độ sẽ vẫn cao sau khi mặt trời lặn, và gió sẽ chuyển sang hướng đông rồi mạnh dần trong suốt buổi tối
    • | Trời sẽ mưa lạnh suốt cả ngày. Gió nam sẽ chuyển sang hướng đông bắc trong đêm
  • Chạy mã

  • Chuẩn bị môi trường

    • Linux
      • ./makevenv.sh
      • source .venv/bin/activate
    • Windows
      • makevenv.bat
      • .venv/Scripts/Activate
  • Kiểm thử tạo ảnh

    • Cập nhật biến OWM_KEY trong tệp weather_landscape.py bằng khóa API OpenWeather
    • python run_test.py
  • Chạy máy chủ

    • python run_server.py
  • Phần cứng

  • Cấu hình phần cứng bao gồm bo mạch phát triển ESP32 và mô-đun màn hình E-Ink 2.9 inch

  • Thiết lập hiện tại lấy nguồn từ internet và cập nhật hình ảnh mỗi 15 phút

  • Chưa rõ liệu mã tạo ảnh có thể được dùng trên ESP32 bằng MicroPython hay không

  • Tóm tắt của GN⁺

  • Bài viết này mô tả cách mã hóa thông tin thời tiết thành hình ảnh phong cảnh để giúp việc hiểu thông tin trực quan trở nên dễ dàng hơn

  • Bằng cách truyền tải thông tin thời tiết qua hình ảnh phong cảnh, người dùng có thể bớt căng thẳng hơn và hiểu thông tin một cách trực quan hơn

  • Hình ảnh được tạo bằng Python và thư viện Pillow, đồng thời dữ liệu được lấy qua API OpenWeather

  • Bài viết cũng khám phá khả năng triển khai phần cứng bằng bo mạch phát triển ESP32 và màn hình E-Ink

  • Các dự án có chức năng tương tự gồm có WeatherFlow, Netatmo Weather Station và các dự án khác

1 bình luận

 
GN⁺ 2024-09-21
Ý kiến trên Hacker News
  • Chỉ cần vài điều chỉnh nhỏ là có vẻ có thể thực sự dùng được dự án này

    • Biểu thị hướng gió bằng độ cong của cây
    • Hiển thị bình minh và hoàng hôn bằng mặt trời phía trên đường chân trời
    • Tô bóng bầu trời đêm và bầu trời ban ngày khác nhau
    • Bắt đầu từ một mốc thời gian cố định thay vì bắt đầu theo thời điểm hiện tại
  • Vài năm trước tôi đã thử một dự án chọn tác phẩm nghệ thuật theo thời tiết

    • Có thể xem các hình ảnh được gắn thẻ bằng bộ lọc thủ công
    • Tôi định dùng nó làm hình nền desktop để tạo không khí hơn là báo cáo thời tiết chính xác
    • Việc gắn thẻ ảnh phần lớn được làm thủ công
  • Dự án này rất thú vị

    • Chụp ảnh định kỳ khu cây xanh gần nhà, ghi lại dữ liệu độ che phủ mây và ngày tháng, rồi hiển thị hình ảnh giống nhất với dự báo hiện tại làm nền
  • Tôi đã nối một khung ảnh cũ với trình tạo ảnh DALL-E của OpenAI

    • Tạo hình ảnh dựa trên dữ liệu thời tiết hiện tại và cập nhật vài giờ một lần
  • Làm tôi nhớ đến màn hình chính của ứng dụng Yr.no

    • Trực quan hóa thời tiết thành cảnh tượng bên ngoài cửa sổ
    • Chỉ có thể xem một khoảnh khắc trong ngày nên phải cuộn ngang
    • Nhiệt độ chỉ được hiển thị bằng con số
  • Tôi đang dùng một ý tưởng tương tự làm hình nền Android

    • Tôi thích ý tưởng về một tác phẩm nghệ thuật truyền tải thông tin hữu ích
  • Về mặt UX, windy.com mang lại trải nghiệm xem thời tiết tốt nhất

    • Hữu ích vì có thể biết hướng di chuyển của mây/mưa
    • Tôi mong sẽ có thêm nhiều đối thủ cạnh tranh hơn
  • Ý tưởng này rất ngầu

  • Làm tôi nhớ đến series Otherland của Tad Williams

  • Ý tưởng thú vị, nhưng có vài chỗ ý nghĩa hình ảnh bị sai một cách kỳ lạ

    • Ban đêm bầu trời không nên sáng, và lúc bình minh mặt trời không nên ở quá cao
    • Sẽ tốt hơn nếu dùng các biểu tượng trực quan để hiển thị bình minh và hoàng hôn
    • Chế độ xem dòng thời gian của Windy.com hiển thị rất gọn nhiều loại thông tin thời tiết