Mục lục:

Trạm thời tiết Internet Raspberry Pi: 5 bước (có hình ảnh)
Trạm thời tiết Internet Raspberry Pi: 5 bước (có hình ảnh)

Video: Trạm thời tiết Internet Raspberry Pi: 5 bước (có hình ảnh)

Video: Trạm thời tiết Internet Raspberry Pi: 5 bước (có hình ảnh)
Video: Trải nghiệm sau 1 tuần sử dụng Mini PC 50$: Raspberry Pi 4B 2024, Tháng bảy
Anonim
Trạm thời tiết Internet Raspberry Pi
Trạm thời tiết Internet Raspberry Pi
Trạm thời tiết Internet Raspberry Pi
Trạm thời tiết Internet Raspberry Pi

*** Cập nhật ***

Sách hướng dẫn này đã lỗi thời. Các dịch vụ thời tiết cho dữ liệu thời tiết, được sử dụng trong Có thể hướng dẫn này, không còn hoạt động. TUY NHIÊN, có một dự án thay thế về cơ bản làm điều tương tự (chỉ tốt hơn - có thể hướng dẫn này luôn chỉ là một bản hack). Vì vậy, đây là liên kết bạn sẽ muốn theo dõi:

https://piweatherrock.technicalissues.us/

Cảm ơn bạn rất nhiều, gửi tới Gene Liverman tại PiWeatherRock vì đã tham gia vào dự án này.

Có thể hướng dẫn này sẽ chỉ cho bạn cách xây dựng một trạm thời tiết dựa trên Internet Raspberry Pi thực sự thú vị. Trên thực tế, để gọi công trình này là một "trạm thời tiết" là một tuyên bố hơi thiếu. Công trình này có thể dễ dàng được mở rộng để cung cấp nhiều thứ hơn là chỉ đơn giản là thời tiết. Tuy nhiên, đó là một khởi đầu tốt và nó trông thực sự tuyệt vời trên bàn làm việc của tôi.

Gia đình của chúng tôi (OK, chủ yếu là tôi) rất thích đặt iPad của gia đình trên quầy bếp, khi không sử dụng, lặng lẽ hiển thị điều kiện thời tiết bên ngoài hiện tại. Tuy nhiên, thật khó để tải và dỡ iPad vào và ra khỏi hộp đựng máy arcade. Thêm vào đó, ngay khi tôi đi xem thời tiết, tôi phát hiện ra ai đó đã lấy iPad / màn hình thời tiết. Điều cần thiết là một màn hình hiển thị ngược vĩnh viễn mà bọn trẻ sẽ không vuốt như iPad.

Bước 1: Gen 1 - Trạm Thời tiết Pi của Hộp cơm trưa

Gen 1 - Trạm thời tiết của Hộp cơm trưa Pi
Gen 1 - Trạm thời tiết của Hộp cơm trưa Pi
Gen 1 - Trạm thời tiết của Hộp cơm trưa Pi
Gen 1 - Trạm thời tiết của Hộp cơm trưa Pi

Suy nghĩ đầu tiên của tôi là sử dụng một màn hình video tổng hợp nhỏ. Tôi đã chọn một chiếc trong hình trên Ebay với giá 22 đô la - chỉ cần tìm kiếm trên "Màn hình xe ô tô LCD 4.3 inch TFT LCD Car Rear View Monitor". Màn hình có độ phân giải được báo cáo là 656 x 416 pixel, điều này khiến việc hiển thị nhiều thông tin hữu ích trở thành một thách thức! Màn hình yêu cầu 12Vdc làm điện áp cung cấp. Tất nhiên, Raspberry Pi cần 5Vdc làm điện áp cung cấp. Để giải quyết vấn đề này, tôi đã mua một bộ sạc ô tô USB giá rẻ từ Amazon. Với giá khoảng $ 6 đô la, tôi đã tìm thấy một bộ đổi xe 5Vdc bằng 2 Amp. Do đó, hộp cơm có nguồn điện 12Vdc gắn tường bên ngoài. Nguồn điện 12Vdc trực tiếp cho màn hình. 12Vdc cũng đi đến bộ sạc ô tô USB để giảm điện áp xuống mức 5Vdc quy định. Như một lần hack cuối cùng, tôi đã hàn một cặp dây trực tiếp giữa bộ sạc ô tô và Raspberry Pi - không phải là ý tưởng tốt nhất của tôi.

Mặc dù tất cả đều hoạt động nhưng tôi không thực sự hài lòng với chất lượng của video trên màn hình tổng hợp. Phông chữ nhỏ trên màn hình mờ hơn tôi muốn. Thêm vào đó, hộp cơm lúc đầu có vẻ dễ thương nhưng sau đó nó có vẻ hơi sến.

Bước 2: Gen 2 - Màn hình HDMI + Vỏ hộp Arcade Plexiglass cắt Laser

Thế hệ 2 - Màn hình HDMI + Vỏ hộp Arcade Plexiglass cắt Laser
Thế hệ 2 - Màn hình HDMI + Vỏ hộp Arcade Plexiglass cắt Laser
Thế hệ 2 - Màn hình HDMI + Vỏ hộp Arcade Plexiglass cắt Laser
Thế hệ 2 - Màn hình HDMI + Vỏ hộp Arcade Plexiglass cắt Laser
Thế hệ 2 - Màn hình HDMI + Vỏ hộp Arcade Plexiglass cắt Laser
Thế hệ 2 - Màn hình HDMI + Vỏ hộp Arcade Plexiglass cắt Laser

Trở lại eBay, tôi tìm thấy một màn hình khung mở HDMI trị giá 54 đô la đẹp mắt với độ phân giải 800x600. Theo định nghĩa, một khung mở, bất cứ thứ gì cũng cần có khung để gắn vào. Vì sự dễ thương của hộp cơm trưa đã qua thời gian cho một số loại acrylic cắt laser. Không gian hacker địa phương của tôi i3Detroit có một máy cắt 150 watt rất đẹp có thể làm thịt băm bằng acrylic 4,5mm.

Tôi đã dựa một cách lỏng lẻo vào hộp arcade của mình trên hộp arcade của iPad. Nếu tôi từng tạo ra một thiết kế Gen 3, nó sẽ thách thức bao gồm một khay có thể tháo rời / trượt ra cho Pi. Hóa ra, đó là một cơn đau lớn ở cổ khi cố gắng cắm mọi thứ vào và ra khỏi Pi vì không có nhiều khoảng trống giữa Pi và các bức tường bên.

Màn hình HDMI cũng yêu cầu nguồn cấp dữ liệu 12Vdc. Vì vậy, tôi đã sử dụng lại thủ thuật tương tự là sử dụng bộ sạc USB trên ô tô. Tuy nhiên, lần này, tôi đã cắt cáp USB cũ nên không cần dây hàn trên Pi.

Nếu ai quan tâm đến thùng máy arcade, hãy bình luận bên dưới và tôi sẽ tải lên các tệp DXF. Hoặc, các tệp có trên trang web của tôi tại ph-elec.com.

Bước 3: Thiết lập Pi

Thiết lập Pi
Thiết lập Pi

Để thiết lập một Raspberry Pi mới với phần mềm cần thiết không khó lắm. Tất cả phần mềm được viết bằng Python chỉ với một mô-đun Python được thêm vào. Mô-đun Python bổ sung được gọi là "pywapi". Đây là một liên kết nơi bạn có thể tải xuống mô-đun. Mô-đun này giúp bạn dễ dàng nhận thông tin thời tiết theo thời gian thực từ Yahoo, Weather.com hoặc NOAA.

Đầu tiên, đây là danh sách kiểm tra để thiết lập Raspberry Pi thô:

  1. Tải xuống Raspbian mới nhất (Debian Wheezy). Giải nén để lấy tệp.img.
  2. Ghi vào thẻ SD với "dd bs = 4M if = 2014-09-09-wheezy-raspbian.img of = / dev / sdb"
  3. Lệnh dd mất khoảng năm phút. Khi hoàn tất, hãy chạy "đồng bộ hóa" để xả các đường ống.
  4. Lắp thẻ SD vào Pi và khởi động lại. Đảm bảo có kết nối Ethernet với Pi.
  5. Sử dụng trang "Thiết bị đính kèm" trên bộ định tuyến, tìm địa chỉ IP của Pi mới.
  6. Đăng nhập vào Pi bằng "ssh [email protected]. ???" ở đâu ??? là số IP từ trên xuống. Mật khẩu sẽ là "mâm xôi".
  7. Trên Pi, sử dụng lệnh "raspi-config" để thiết lập các giá trị mặc định.

    1. Bật khởi động tự động vào GUI.
    2. Đặt tên máy chủ thành một cái gì đó như "MyPi".
  8. Cài đặt VNC trên Pi với "sudo apt-get install securevncserver".

    Chạy "tensvncserver" để đặt mật khẩu

  9. Quay lại hộp Linux lớn, sử dụng "Máy tính từ xa" để xem màn hình nền Pi GUI.

    1. Đặt Giao thức thành "VNC" và số IP thành "192.168.1.???:1". Lưu ý ": 1" ở cuối số IP.
    2. Nhấn nút kết nối và cung cấp mật khẩu VNC.
    3. Bingo, máy tính để bàn GUI Pi từ xa!

      Điều này giúp tiết kiệm việc kéo màn hình, bàn phím và chuột để kết nối với Pi mới

    4. Trên màn hình, chạy biểu tượng thiết lập WiFi. Thiết lập Pi / USB WiFi mới để kết nối mạng.
    5. Đóng kết nối VNC - bây giờ chúng ta đã hoàn tất với máy tính để bàn từ xa.
  10. Quay lại cửa sổ ssh, khởi động lại Pi bằng "sudo reboot". Ngắt kết nối cáp Ethernet vì WiFi hiện đã được thiết lập.
  11. Quay lại bộ định tuyến gia đình, tìm số IP mới mà Pi đang sử dụng với WiFi.
  12. Sử dụng ssh, đăng nhập lại bằng số IP mới. Lần này kết nối sẽ qua WiFi.
  13. Sử dụng Trình quản lý tệp trên Linux, kết nối với Pi bằng lệnh "kết nối với máy chủ".

    Địa chỉ máy chủ là "sftp: //192.168.1. ??? / home / pi"

  14. Đã hoàn tất thiết lập cơ bản.

Tiếp theo, pywapi cần được tải xuống và cài đặt. Một lần nữa, điều này không quá khó với các bước sau:

  1. Tải xuống bản mới nhất từ đây. Giải nén kho lưu trữ vào một thư mục mới.
  2. Sử dụng File Manger, sao chép thư mục vào thư mục chính của Pi.
  3. Sử dụng ssh, hãy làm như sau trên Pi:

    1. cd pywapi-0,3.8
    2. sudo python setup.py build
    3. sudo python setup.py cài đặt
  4. Xong.

Cập nhật, tôi quên hai đề cập đến hai điều khác:

  1. Trên Pi chạy lệnh sau:

    1. sudo apt-get install avahi-daemon

      Điều này cho phép kết nối với Pi theo tên. Vì vậy, trên máy tính chính của bạn, bạn có thể kết nối bằng "ssh [email protected]" thay vì sử dụng số IP. Với nhiều số Pi trên mạng, rất dễ khiến chúng bị nhầm lẫn trừ khi được gọi tên

    2. sudo raspi-config

      1. Tìm kiếm và chạy tùy chọn thứ 4 có tên "Tùy chọn quốc tế hóa" và đặt múi giờ của bạn.
      2. Với múi giờ được đặt và ntpd (daemon giao thức thời gian mạng) chạy Pi sẽ luôn hiển thị thời gian chính xác trong vòng vài mili giây! Gotta thích nó.
  2. OK, bây giờ chúng ta đã hoàn thành một lần nữa.

Bước 4: Mã nguồn

Mã nguồn
Mã nguồn

Tất cả mã nguồn cho màn hình thời tiết nhỏ này đều dựa trên Python, PyGame và Pywapi. Tất cả phần mềm nguồn mở / miễn phí.

PyGame được sử dụng để thực hiện tất cả các công cụ GUI. Công cụ thực sự tuyệt vời. Sử dụng PyGame, toàn bộ màn hình được tạo lại một lần mỗi giây. Ở gần đầu mã nguồn của tôi, bạn sẽ tìm thấy một phần cho phép điều chỉnh các kích thước hiển thị khác nhau. Có một phần dành cho màn hình video tổng hợp nhỏ và phần thứ hai dành cho màn hình HDMI lớn hơn. Tôi chỉ nhận xét một trong hai phần dựa trên kích thước hiển thị mà tôi cần.

Để chạy mã nguồn của tôi, chỉ cần giải nén tệp đính kèm và sao chép toàn bộ thư mục vào Pi bằng cách sử dụng Quản lý tệp. Sau khi sao chép, hãy bắt đầu mã bằng các lệnh ssh sau:

  1. cd Thời tiết
  2. sudo python weather.py

Lệnh sudo là cần thiết để Python có thể điều khiển / đọc các chân GPIO. Có lẽ có một số cách để giải quyết vấn đề hạn chế này nhưng nó vẫn lẩn tránh tôi.

Khi mọi thứ hoạt động bằng ssh, đã đến lúc thời tiết tự động bắt đầu khi khởi động lại. Điều này cũng thực sự dễ dàng để làm.

  1. Sử dụng ssh, chạy "sudo vi /etc/rc.local"
  2. Ngay trước dòng cuối cùng, có nội dung "thoát 0", hãy thêm dòng sau vào các dòng.

    1. cd / home / pi / Weather
    2. sudo python weather.py &> err.log

Thao tác này sẽ tự động khởi động ứng dụng thời tiết trên Pi sau khi khởi động lại. Nếu sau này bạn muốn tắt tính năng này, chỉ cần sử dụng ssh để chỉnh sửa tệp và thêm ký tự nhận xét "#" vào trước cả hai dòng và khởi động lại.

Lưu ý, mã nguồn của tôi là một vụ hack lớn và tôi không tự hào lắm về nó. Tuy nhiên, nếu tôi đợi cho đến khi nó có thể sử dụng được thì nó sẽ không bao giờ được trình bày. Vì vậy, hãy lấy nó hay bỏ nó đi, đừng khóc vì tôi có một làn da rất mỏng.

Một vài điều khác cần lưu ý về mã của tôi. Bị chôn vùi trong đó, bạn sẽ nhận thấy một số mã để nói chuyện với thiết bị X10. Đây là nỗ lực của tôi để điều khiển đèn cột bên ngoài của tôi ở địa chỉ A3. Tôi chỉ đơn giản muốn đèn bật vào lúc hoàng hôn và tắt lúc bình minh. Có vẻ dễ dàng và tôi nghĩ rằng tôi đã làm việc. Sử dụng một dongle USB-to-RS232 trên Pi, tôi đã kết nối mô-đun CM11A X10. CM11A là một mô-đun macro X10 cũ. CM11A cũng có cổng RS232 cho phép điều khiển bus X10. Có vẻ như vẫn còn một số lỗi do cột đèn không nhận được thông báo!

Cũng cần lưu ý, trên màn hình lớn hơn có một khe hở đẹp mắt dọc theo bên tay phải của màn hình. Kế hoạch của tôi là thêm một số đèn trạng thái trong khu vực đó. Tôi đang chơi với một số đài IEEE802.15.4 và đầu ra của chúng một ngày nào đó sẽ hiển thị ở vị trí mở đó.

Để có các bản cập nhật mới nhất và tuyệt vời nhất, vui lòng truy cập trang web của tôi tại ph-elec.com.

Vâng, hãy cho tôi biết trong phần bình luận bên dưới bất kỳ câu hỏi nào bạn có thể có.

Cảm ơn, Jim.

Ồ, và đừng quên bình chọn cho tôi! Cảm ơn một lần nữa.

BTW: Luôn có thêm thông tin trên trang web của tôi: www.ph-elec.com

Bước 5: Cập nhật số liệu

Đính kèm là một phiên bản mới cho phép hiển thị hệ mét hoặc hệ Anh.

Hi vọng điêu nay co ich, Jim

Đề xuất: