Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Bởi emihermesFollow More của tác giả:
Tôi đã có Raspberry và e-Paper HAT và tôi muốn sử dụng nó để hiển thị thông tin như ISS ở đâu hoặc có bao nhiêu người hiện đang ở trong không gian…
Tôi đã nói là xem có API nào trên Internet để lấy những dữ liệu đó hay không, và tôi đã tìm thấy chúng. OK, gotcha !!!!
Chờ đã, HAT này có 4 nút và sau đó, tôi cần 4 dữ liệu để được hiển thị…
- ISS bây giờ ở đâu? - Có bao nhiêu người đang ở trong không gian? - Mặt trăng đang ở giai đoạn nào? - Có mưa không? Có ấm quá không?…
Ngay bây giờ, tôi đang hiển thị những thông tin đó, nhưng tôi có thể cập nhật "Có thể giảng dạy" này ngay khi tôi có ý tưởng hay, hoặc nếu bạn biết một thông tin hay, bạn có thể gợi ý cho tôi !!!
À, tôi đã làm nó vào một buổi tối và "FrontEnd" đã kết thúc vài ngày sau đó. Đừng phàn nàn về cách hiển thị thông tin, tôi không thích làm phần này:)
Quân nhu
- Raspberry PI (Zero là đủ).- Giấy điện tử 2.7 inch HAT. (Tôi đã mua của tôi ở đây) - Thẻ SD (4Gb là đủ).
Bạn cũng cần Mã thông báo từ OpenWeather để sử dụng các API của chúng (từ đây)
Bước 1: Cập nhật phần mềm (SO)
Bước đầu tiên, như mọi khi, là chuẩn bị Raspberry PI của bạn với hệ điều hành mới nhất. - Tải xuống hệ điều hành mới nhất (với máy tính để bàn) từ đây. - Ghi hình ảnh vào thẻ SD trống. - Tạo tệp trống "ssh" để kích hoạt kết nối SSH.- Lưu tệp "wpa_supplicant.conf" trên thẻ SD để cấu hình Wifi của bạn để kết nối với Raspberry PI thông qua SSH (bạn đã chuẩn bị sẵn trên máy tính của mình, tôi biết điều đó).
Khởi động Raspberry Pi của bạn.
Kết nối với nó qua SSH (bạn cũng có thể làm điều đó nếu bạn có màn hình, bàn phím và chuột, nhưng tôi không có và tôi thích kết nối qua SSH hơn) và cập nhật nó….
sudo apt-get update -y
sudo apt-get nâng cấp -y
Bây giờ, bạn phải kích hoạt VNC để có thể kết nối từ xa và SPI cho e-Paper HAT:
sudo raspi-config
Tùy chọn giao diện> VNC> Có Tùy chọn giao diện> SPI> Có
Và khởi động lại nó.
Bước 2: Phần mềm cần thiết
Được rồi, bây giờ chúng ta có Raspberry PI đang chạy với phần mềm mới nhất và tất cả những thứ cơ bản để kết nối với nó.
Đây là thời điểm bắt đầu cài đặt phần mềm cần thiết để điều khiển HAT e-Paper.
Nếu bạn không cắm HAT trên Raspberry PI của mình, bây giờ là thời điểm mới nhất để kết nối nó. Hãy tắt Raspberry PI của bạn và đặt HAT trên đó.
Đối với các bước tiếp theo, bạn có thể làm theo hướng dẫn từ Waveshare hoặc làm theo các bước tiếp theo….
Cài đặt thư viện BCM2835:
wget
tar zxvf bcm2835-1.60.tar.gz cd bcm2835-1.60 / sudo./configure sudo make sudo make check sudo make install # Để biết thêm chi tiết, vui lòng tham khảo
Cài đặt thư viện wiringPi:
sudo apt-get install wiringpi
# Đối với Pi 4, bạn cần cập nhật nó : cd / tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-new.deb gpio -v # Bạn sẽ nhận được thông tin 2.52 nếu bạn cài đặt nó một cách chính xác
Cài đặt thư viện Python: (Nếu bạn đã cập nhật SO với phiên bản mới nhất, tất cả các bước này sẽ giống như "Yêu cầu đã được thỏa mãn").
sudo apt-get cập nhật
sudo apt-get install python3-pip sudo apt-get install python3-pil sudo apt-get install python3-numpy sudo pip3 install RPi. GPIO sudo pip3 install spidev
Bây giờ bạn có thể tải xuống các ví dụ từ Waveshare: (Phần này KHÔNG cần thiết, nhưng bạn có thể tải chúng xuống để biết nó hoạt động như thế nào).
sudo git clone
cd e-Paper / RaspberryPi / & JetsonNano /
Tôi khuyên bạn nên xóa một số thư mục: - e-Paper / Arduino (Đó là Raspberry PI).- e-Paper / STM32 (Đó là Raspberry PI).- e-Paper / Raspberry & JetsonNano / c (chúng ta sẽ sử dụng python về dự án này).
Bạn sẽ không sử dụng chúng và bạn không cần chúng trên Raspberry PI.
Và, nếu muốn, bạn có thể xóa tất cả các tệp mà bạn không cần khỏi thư mục "lib", chẳng hạn như: - epd1in02.py - epd1in54.py - epd2in9.py -…
Nếu chúng ta sử dụng 2,7 inch, phần còn lại của các tệp KHÔNG cần thiết.
Tôi khuyên bạn nên di chuyển thư mục "lib" trở lại một chút để sử dụng nó một cách dễ dàng:
sudo mv lib / home / pi / e-Paper /
Tuy nhiên, trong mã của tôi (từ GitHub) các thư viện được bao gồm.
Tất cả các phần mềm cần thiết đã được cài đặt.
Bước tiếp theo là mã của chúng tôi!
Bước 3: Tải xuống mã của tôi
Bây giờ chúng ta cần tải xuống mã từ GitHub:
sudo git clone
Với điều này, chúng ta sẽ có tất cả mã cần thiết, bao gồm các thư viện từ Waveshare vào dự án thực tế.
Chỉnh sửa tệp "ShowInfo.py" để chèn Mã thông báo API của bạn từ OpenWeather.com….… Và Thành phố (sử dụng tên hoặc ID của thành phố):
def WeatherForecast ():
url = "https://api.openweathermap.org/data/2.5/forecast?" #url = url + "q = {city_name}" #url = url + "q = Düsseldorf" # sự cố ASCII !!! url = url + "id = 2934246" #url = url + "& appid = {your_API_key}" url = url + "& units = metric" # In Metric url = url + "& cnt = 6" # Chỉ có 6 kết quả
Tuy nhiên, chúng tôi cần cài đặt các tệp phông chữ mà chúng tôi sử dụng trong dự án. Các tệp đã được tải xuống với tất cả mã.
Các phông chữ nằm trên thư mục "e-Paper / fonts".
Để giải nén:
sudo giải nén Bangers.zip -d / usr / share / fonts / truetype / google /
sudo giải nén Bungee_Inline.zip -d / usr / share / fonts / truetype / google / sudo giải nén Bungee_Outline.zip -d / usr / share / font / truetype / google / sudo giải nén Bungee_Shade.zip -d / usr / share / font / truetype / google / sudo giải nén droid-sans.zip -d / usr / share / fonts / truetype / google / sudo unzip Indie_Flower.zip -d / usr / share / fonts / truetype / google / sudo giải nén Jacques_Francois_Shadow.zip -d / usr / share / fonts / truetype / google / sudo unzip Londrina_Outline.zip -d / usr / share / font / truetype / google / sudo unzip Londrina_Shadow.zip -d / usr / share / font / truetype / google / sudo unzip Londrina_Sketch. zip -d / usr / share / fonts / truetype / google / sudo giải nén Oswald.zip -d / usr / share / fonts / truetype / google / sudo giải nén Roboto.zip -d / usr / share / font / truetype / google / sudo giải nén Vast_Shadow.zip -d / usr / share / fonts / truetype / google /
Tôi khuyên bạn nên xóa các tệp zip sau khi cài đặt, vì chúng tôi không cần những tệp đó nữa:
phông chữ sudo rm -R
Bước 4: Thực hiện KIỂM TRA
Chuyển đến đúng thư mục nơi chúng tôi có tệp thử nghiệm:
cd ~ / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk
Thực thi tệp thử nghiệm với phiên bản 3 của Python:
python3 Test001.py
Bạn sẽ có một bình luận theo dõi trong khi chương trình được thực thi.
Và trong màn hình e-Paper, bạn sẽ thấy các thông báo.
Với mỗi nút, màn hình sẽ hiển thị một thông báo khác nhau.
Bước 5: Hiển thị thông tin Mặt trăng / Không gian / ISS…
Được rồi, tất cả chúng ta đang chạy và bây giờ chúng ta muốn xem ISS ở đâu trên Thế giới, hay giai đoạn của Mặt trăng…
Đầu tiên, bạn phải thực thi tệp "ShowInfo.py" (nằm trên "~ / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk").
python3 ~ / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk / ShowInfo.py
Và bây giờ, nếu bạn nhấn một nút, bạn sẽ có thông tin được lập trình cho nút này:
● Nút 1: Dự báo thời tiết.
● Nút 2: Ai đang ở trên Không gian và ở đâu.
● Nút 3: ISS ở đâu trên toàn thế giới.
● Nút 4: Thông tin về Mặt trăng.
Bước 6: Thực hiện nó như một dịch vụ
Thay vào đó, tập lệnh Python có thể được khởi động trong khi khởi động bằng cách tạo một dịch vụ - thông tin thêm tại
Tạo một tệp mới có tên ShowInfo.service và sao chép nội dung bên dưới vào tệp mới - điều chỉnh đường dẫn WorkingDirectory cho phù hợp:
[Đơn vị]
Description = ShowInfo After = network-online.target Wants = network-online.target [Service] ExecStart = / usr / bin / python3 ShowInfo.py WorkingDirectory = / home / pi / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk / StandardOutput = inherit StandardError = inherit Khởi động lại = luôn luôn Người dùng = pi [Cài đặt] WantedBy = multi-user.target
Sao chép tệp ShowInfo.service vào / etc / systemd / system làm thư mục gốc:
sudo cp ShowInfo.service / etc / systemd / system /
Bắt đầu dịch vụ:
sudo systemctl start ShowInfo.service
Kiểm tra xem dịch vụ có đang chạy không:
trạng thái sudo systemctl ShowInfo.service
Đầu ra phải tương tự như:
● ShowInfo.service - ShowInfo
Đã tải: đã tải (/etc/systemd/system/ShowInfo.service; bị vô hiệu hóa; giá trị đặt trước của nhà cung cấp: đã kích hoạt) Hoạt động: hoạt động (đang chạy) kể từ Thứ sáu 2020-09-11 15:17:16 CEST; 14 giây trước PID chính: 1453 (python3) CGroup: /system.slice/ShowInfo.service └─1453 / usr / bin / python3 ShowInfo.py 11 Tháng 9 15:33:17 eInk systemd [1]: Đã bắt đầu ShowInfo.
Nếu dịch vụ đang chạy tốt, bạn có thể kích hoạt nó và khởi động lại Raspberry Pi để tải nó tự động trong khi khởi động:
sudo systemctl kích hoạt ShowInfo.service
Để dừng dịch vụ:
sudo systemctl dừng ShowInfo.service
Và đó là tất cả !!!!!
Cảm ơn !!!!!