Cách sử dụng Raspberry Pi theo dõi nhiệt độ với Sense HAT

Có một số cách để bạn có thể theo dõi nhiệt độ môi trường bằng máy tính đơn bo Raspberry Pi. Bạn có thể sử dụng cảm biến bên ngoài được kết nối với các chân GPIO của Raspberry Pi, còn bài viết hôm nay sẽ giải thích cách theo dõi nhiệt độ bằng Raspberry Pi được trang bị Sense HAT.

Sense HAT là gì?

Sense HAT
Sense HAT

Là một bo mạch bổ sung Raspberry Pi HAT (Hardware Attached on Top) chính thức được thiết kế và sản xuất bởi công ty Raspberry Pi, Sense HAT ban đầu được tạo ra để sử dụng bởi các phi hành gia trên Trạm vũ trụ quốc tế. Kể từ năm 2015, hai máy tính Raspberry Pi được trang bị Sense HAT đã được sử dụng trong các thí nghiệm khoa học được thiết kế bởi những học sinh tham gia thử thách Astro Pi. Hai thiết bị này kể từ đó đã được thay thế bằng các phiên bản nâng cấp dựa trên Raspberry Pi 4 và được trang bị một camera chất lượng cao. .

Astro Pi VIS
Astro Pi VIS

Mặc dù thiếu vỏ bạc đặc biệt được thiết kế để sử dụng trong không gian nhưng bảng Sense HAT tiêu chuẩn có chức năng hoàn toàn tương tự. Tương thích với bất kỳ model Raspberry Pi nào có header GPIO 40 chân, nó có một loạt cảm biến tích hợp cho phép nó giám sát môi trường xung quanh, đồng thời phát hiện hướng và chuyển động của chính nó. Ngoài ra, nó còn có ma trận LED RGB 8x8 để hiển thị văn bản, dữ liệu và hình ảnh. Ngoài ra còn có một joystick 5 chiều nhỏ.

Các chức năng cảm biến đầy đủ của Sense HAT như sau:

  • Độ ẩm: Cảm biến STMicro HTS221 có phạm vi độ ẩm tương đối từ 0 đến 100%, cộng với cảm biến nhiệt độ từ 32°F đến 149°F (0°C đến 65°C ± 2°C).
  • Áp suất khí quyển: Cảm biến STMicro LPS25HB có dải đo từ 260 đến 1260 hPa, cộng với cảm biến nhiệt độ từ 59°F đến 104°F (15°C đến 40°C ±0,5°C).
  • Nhiệt độ: Giá trị này có thể được đọc từ cảm biến độ ẩm hoặc áp suất hay được đo bằng cách lấy giá trị trung bình của cả hai lần đọc.
  • Con quay hồi chuyển: STMicro LSM9DS1 IMU có thể đo độ quay của Sense HAT so với bề mặt Trái đất (và tốc độ quay của nó).
  • Gia tốc kế: Một chức năng khác của IMU, chức năng này có thể đo lực gia tốc theo nhiều hướng.
  • Từ kế: Bằng cách cảm nhận từ trường Trái đất, IMU có thể xác định hướng bắc từ và do đó đưa ra chỉ số la bàn.

Bây giờ, bạn đã hiểu rõ những gì Raspberry Pi HAT đa năng này có thể làm, đã đến lúc bắt đầu với dự án.

Cách sử dụng Raspberry Pi theo dõi nhiệt độ với Sense HAT

Bước 1: Gắn Sense HAT

Để kết nối Sense HAT, trước tiên hãy đảm bảo rằng Raspberry Pi của bạn đã tắt và ngắt kết nối khỏi nguồn điện. Sau đó cẩn thận đẩy Sense HAT vào header GPIO 40 chân của Raspberry Pi. Đảm bảo rằng tất cả các chân đều thẳng hàng. Bạn cũng có thể sử dụng các giá đỡ có vít để giúp cố định nó.

Raspberry Pi có gắn Sense HAT
Raspberry Pi có gắn Sense HAT

Bạn có thể sử dụng bất kỳ model Raspberry Pi tiêu chuẩn nào có header GPIO 40 chân. Tuy nhiên, một trong những hạn chế chính của Raspberry Pi 400 là header GPIO của nó nằm ở phía sau bàn phím tích hợp. Điều này có nghĩa là Sense HAT sẽ hướng về phía sau, vì vậy bạn có thể muốn sử dụng cáp kéo dài GPIO để kết nối nó.

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

Giống như bất kỳ dự án nào khác, bạn nên cắm bàn phím và chuột USB, sau đó kết nối Raspberry Pi với màn hình hoặc TV. Bạn cũng nên lắp thẻ nhớ microSD có Raspberry Pi OS tiêu chuẩn trên đó - nếu bạn chưa thực hiện việc này, hãy xem cách cài đặt hệ điều hành trên Raspberry Pi. Sau đó bạn đã sẵn sàng để bật nguồn.

Ngoài ra, bạn có thể sử dụng Raspberry Pi với Sense HAT ở chế độ headless mà không cần kết nối màn hình và kết nối với Raspberry Pi từ xa bằng SSH từ máy tính hoặc thiết bị khác. Nếu làm điều này, bạn sẽ không thể sử dụng Thonny Python IDE, người mua vẫn có thể chỉnh sửa các chương trình bằng trình soạn thảo văn bản nano và chạy chúng từ dòng lệnh.

Phần mềm Sense HAT phải được cài đặt theo mặc định. Để kiểm tra kỹ, hãy mở cửa sổ Terminal và nhập:

sudo apt install sense-hat

Sau đó, nếu gói vừa được cài đặt mới, hãy khởi động lại Raspberry Pi:

sudo reboot

Bước 3: Bắt đầu lập trình bằng Python

Bạn có thể sử dụng Raspberry Pi Sense HAT với ngôn ngữ lập trình dựa trên block Scratch, còn bài viết sẽ sử dụng Python để đọc và hiển thị các chỉ số cảm biến của nó.

Thonny IDE (môi trường phát triển tích hợp) là một cách hay để lập trình Python trên Raspberry Pi, vì nó có nhiều chức năng bao gồm các tính năng gỡ lỗi hữu ích. Trong GUI trên desktop của Raspberry Pi OS, hãy đi tới Menu (biểu tượng quả mâm xôi trên cùng bên trái) > Programming > Thonny IDE để khởi chạy nó.

Cửa sổ Thonny IDE trên desktop Raspberry Pi OS
Cửa sổ Thonny IDE trên desktop Raspberry Pi OS

Bước 4: Đo nhiệt độ

Trong cửa sổ chính của Thonny IDE, nhập các dòng code sau:

from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

Dòng đầu tiên nhập lớp SenseHat từ thư viện Python sense_hat (được cài đặt sẵn trong Raspberry Pi OS). Điều này sau đó được gán cho biến sense. Dòng thứ ba xóa ma trận LED của Sense HAT.

Sau đó, lấy số đo nhiệt độ và in nó ra khu vực Shell của Thonny IDE. Đây là đơn vị độ C, vì vậy trước tiên bạn có thể muốn chuyển đổi nó thành Fahrenheit:

temp = (sense.get_temperature() * 1.8 + 32)

Số đọc được của cảm biến nhiệt độ sẽ có một vài chữ số sau dấu thập phân. Vì vậy, ta sẽ sử dụng hàm round để làm tròn nó đến một chữ số thập phân:

temp = round(temp, 1)

Lưu ý:

Hàm sense.get_temperature() đọc cảm biến nhiệt độ được tích hợp trong cảm biến độ ẩm. Ngoài ra, bạn có thể lấy nhiệt độ từ cảm biến áp suất bằng sense.get_temperature_from_pressure() hoặc thậm chí lấy cả hai chỉ số và tính giá trị trung bình (bằng cách cộng chúng lại và chia cho hai).

Bước 5: Hiển thị nhiệt độ trên Sense HAT

Việc xuất một chỉ số nhiệt độ duy nhất lên Python Shell hơi nhàm chán, vì vậy thay vào đó, hãy thường xuyên thực hiện chỉ số nhiệt độ mới và hiển thị nó trên ma trận LED RGB của Sense HAT. Để hiển thị tin nhắn văn bản cuộn, bài viết sử dụng hàm show_message cùng một vòng lặp while: True để tiếp tục đọc dữ liệu mới sau mỗi 10 giây - sử dụng hàm sleep từ thư viện time.

Đây là chương trình hoàn chỉnh:

from sense_hat import SenseHat
from time import sleep

sense = SenseHat()
sense.clear()

while True:
 temp = (sense.get_temperature() * 1.8 + 32)
 temp = round(temp, 1)
 message = "Temp: " + str(temp)
 sense.show_message(message)
 sleep (10)

Chạy code này và bạn sẽ thấy từng giá trị nhiệt độ mới cuộn trên ma trận LED. Hãy thử thổi vào Sense HAT xem nhiệt độ có thay đổi không.

Raspberry Pi Sense HAT hiển thị nhiệt độ
Raspberry Pi Sense HAT hiển thị nhiệt độ

Lưu ý:

Chỉ số nhiệt độ có thể bị ảnh hưởng bởi nhiệt truyền từ CPU của Raspberry Pi ngay bên dưới, do đó có thể cần điều chỉnh để có được con số chính xác hơn. Một giải pháp khác là sử dụng một stacking header để nâng Sense HAT lên cao hơn Raspberry Pi.

Thứ Tư, 25/10/2023 09:32
51 👨 163
0 Bình luận
Sắp xếp theo
    ❖ Raspberry Pi