Contents

Cách sử dụng Raspberry Pi để theo dõi nhiệt độ bằng 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 bảng đơn Raspberry Pi, có thể là một phần trong quá trình thiết lập trạm thời tiết. Mặc dù 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, nhưng ở đây chúng tôi sẽ giải thích cách theo dõi nhiệt độ bằng Raspberry Pi được trang bị Sense HAT.

Mũ Sense là gì?

/vi/images/sense-hat-angle.jpg Tín dụng hình ảnh: Raspberry Pi

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 do học sinh thiết kế khi tham gia thử thách Astro Pi đang diễn ra. Hai thiết bị này đã được thay thế bằng phiên bản nâng cấp dựa trên Raspberry Pi 4 và được trang bị Camera chất lượng cao.

/vi/images/astro-pi.jpg Tín dụng hình ảnh: Raspberry Pi

Bảng Sense HAT, mặc dù thiếu lớp vỏ màu bạc độc đáo dành cho việc sử dụng ngoài Trái đất, nhưng vẫn duy trì các khả năng chức năng giống hệt nhau khi kết hợp với bất kỳ mẫu Raspberry Pi nào có giao diện GPIO 40 chân. Thiết bị đa năng này tự hào có nhiều loại cảm biến tích hợp cho phép giám sát toàn diện môi trường xung quanh cũng như phát hiện hướng và chuyển động của chính nó. Hơn nữa, nó được trang bị ma trận LED RGB 8x8 tạo điều kiện trình bày trực quan các thông tin như văn bản, số liệu và hình ảnh. Ngoài ra, thiết kế còn có một phím điều khiển năm vị trí nhỏ gọn.

Toàn bộ các chức năng của Sense HAT, liên quan đến cảm biến và nhận thức, có thể được tóm tắt như sau:

Thiết bị sử dụng cảm biến STMicro HTS221 có khả năng đo cả độ ẩm và nhiệt độ tương đối trong phạm vi độ ẩm tương đối 0-100% và 32°F đến 149°F (0°C đến 65°C ± 2°C) cho nhiệt độ.

Phong vũ biểu LPS25HB của STMicro được trang bị dải đo từ 260 đến 1260 hPa và có khả năng cảm nhận nhiệt độ trong phạm vi từ 59°F đến 104°F (15°C đến 40°C với độ chính xác +/-0,5°C).

Nhiệt độ có thể thu được thông qua việc đọc cảm biến độ ẩm hoặc áp suất, hoặc cách khác, nó có thể được tính bằng cách lấy giá trị trung bình của cả hai lần đọc.

STMicro LSM9DS1 IMU, được tích hợp trong Sense HAT của Raspberry Pi, có khả năng đánh giá hướng và vận tốc góc của thiết bị so với mặt phẳng trên mặt đất, cũng như tốc độ quay của nó.

Gia tốc kế là một thành phần của Đơn vị đo lường quán tính (IMU) có khả năng đo lực gia tốc theo nhiều hướng khác nhau.

Từ kế trong thiết bị đo quán tính (IMU) có khả năng phát hiện từ trường của Trái đất, cho phép nó xác định hướng bắc từ và kết quả là cung cấp chỉ số la bàn.

Với sự hiểu biết toàn diện về các khả năng và ứng dụng tiềm năng của Raspberry Pi HAT đa năng, giờ đây bạn có thể bắt đầu quá trình triển khai cho các dự án tương ứng của mình.

Bước 1: Gắn mũ Sense

Để gắn Sense HAT vào Raspberry Pi đúng cách, hãy đảm bảo rằng Raspberry Pi đã tắt nguồn và rút phích cắm ra khỏi bất kỳ nguồn điện nào. Tiếp theo, nhẹ nhàng lắp Sense HAT, cùng với bộ mở rộng tiêu đề màu đen đi kèm, vào tiêu đề GPIO 40 chân của Raspberry Pi. Đảm bảo rằng Sense HAT được căn chỉnh chính xác trên Raspberry Pi, với tất cả các kết nối giữa hai bo mạch được thực hiện. Để tăng cường bảo mật, bạn có thể sử dụng các giá đỡ có vít.

/vi/images/raspberry-pi-sense-hat-mount.jpg

Người ta có thể sử dụng bất kỳ mẫu Raspberry Pi thông thường nào có tiêu đề Đầu vào/Đầu ra Mục đích chung (GPIO) 40 chân cho dự án. Tuy nhiên, một hạn chế đáng kể liên quan đến mẫu Raspberry Pi 400 là tiêu đề GPIO của nó nằm ở mặt sau gần với bàn phím tích hợp. Do đó, Sense HAT sẽ được đặt quay mặt về hướng ngược lại trong quá trình vận hành. Để giải quyết vấn đề này, nên sử dụng cáp mở rộng để thiết lập kết nối giữa tiêu đề GPIO và Sense HAT.

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

Để bắt đầu vận hành Raspberry Pi, hãy làm theo các bước sau:1. Kết nối bàn phím và chuột USB với thiết bị.2. Gắn Raspberry Pi vào màn hình hoặc màn hình tivi.3. Lắp thẻ nhớ microSD chứa hệ điều hành Raspberry Pi mặc định vào khe cắm của thiết bị. Nếu chưa thực hiện, hãy tham khảo hướng dẫn cài đặt hệ điều hành trên Raspberry Pi.4. Tăng sức mạnh cho Raspberry Pi bằng cách cung cấp điện cho nguồn điện của nó.

Ngoài ra, người ta có thể sử dụng Raspberry Pi được tích hợp với Sense HAT trong môi trường không có màn hình bằng cách thiết lập quyền truy cập từ xa thông qua kết nối Secure Shell (SSH) từ một thiết bị hoặc tiện ích máy tính bổ sung. Trong trường hợp như vậy, người dùng sẽ không có khả năng sử dụng Môi trường phát triển tích hợp Thonny Python (IDE) nhưng có khả năng chỉnh sửa tệp bằng trình soạn thảo văn bản nano và thực thi chương trình thông qua các lệnh đầu cuối.

Để xác minh xem phần mềm cơ sở Sense HAT có được cài đặt sẵn trên Raspberry Pi hay không, bạn có thể mở ứng dụng mô phỏng thiết bị đầu cuối như “Terminal” hoặc “xterm” từ menu Ứng dụng trong Lubuntu, sau đó nhập lệnh “sudo dmesg | grep sensehat”. Nếu không có đầu ra nào xuất hiện, điều đó có nghĩa là phần sụn đã được cài đặt thành công. Tuy nhiên, nếu có bất kỳ thông báo lỗi nào xuất hiện, bạn có thể cần phải cài đặt chương trình cơ sở theo cách thủ công bằng cách sử dụng hướng dẫn được cung cấp trước đó trong phần này.

 sudo apt install sense-hat

Nếu gói này được cài đặt gần đây trên Raspberry Pi của bạn, bạn nên thực hiện khởi động lại hệ thống để đảm bảo rằng tất cả các thay đổi cần thiết đều được triển khai và định cấu hình đúng cách.

 sudo reboot

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

Việc sử dụng Raspberry Pi Sense HAT kết hợp với Scratch để lập trình dựa trên khối là khả thi; tuy nhiên, chúng tôi sẽ sử dụng Python làm phương pháp ưa thích để diễn giải và hiển thị dữ liệu được thu thập bởi các cảm biến của nó.

Việc sử dụng Môi trường phát triển tích hợp Thonny (IDE) là một phương pháp hiệu quả để thực thi các tác vụ lập trình dựa trên Python trên Raspberry Pi, nhờ có nhiều chức năng toàn diện và các công cụ gỡ lỗi thuận lợi. Để truy cập Thonny IDE trong giao diện người dùng đồ họa (GUI) của máy tính để bàn Raspberry Pi OS, hãy điều hướng đến góc trên cùng bên trái của màn hình và chọn ‘Menu’, tiếp theo là ‘Lập trình’ và cuối cùng là ‘Thonny IDE’.

/vi/images/thonny-ide-hello-world.jpg

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

Trong cửa sổ chính của Môi trường phát triển tích hợp Thonny (IDE), vui lòng chèn đoạn mã sau vào trình chỉnh sửa chương trình:

from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp) 

Các dòng mã đầu tiên nhập và gán lớp SenseHat từ thư viện sense\_hat Python, được cài đặt sẵn trên Raspberry Pi OS. Sau đó, ma trận LED của SenseHat sẽ bị xóa bằng cách sử dụng hướng dẫn được cung cấp.

Sau đó, chúng tôi thu được số đo nhiệt độ và hiển thị nó trong giao diện Shell của Môi trường phát triển tích hợp Thonny. Giá trị này được biểu thị bằng độ C; do đó, ban đầu có thể thuận lợi nếu chuyển đổi nó thành Fahrenheit để dễ giải thích hơn:

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

Để đảm bảo rằng số đọc của cảm biến nhiệt độ có biểu thị chính xác với một chữ số thập phân duy nhất, chúng ta sẽ sử dụng hàm round() để cắt bớt mọi số thập phân thừa có trong giá trị. Cách tiếp cận này cho phép đo nhiệt độ chính xác và loại bỏ độ chính xác không cần thiết.

 temp = round(temp, 1) 

Hàm sense.get\_coffee() lấy dữ liệu nhiệt độ thu được từ cảm biến nhiệt độ tích hợp bên trong cảm biến độ ẩm. Là một lựa chọn thay thế, người ta có thể sử dụng phương pháp sense.get\_ Nhiệt\_from\_ Pressure() để thu được số đọc nhiệt độ dựa trên các phép đo được lấy từ cảm biến áp suất. Ngoài ra, có thể thu được đồng thời các chỉ số nhiệt độ từ cả hai cảm biến và tính giá trị trung bình của chúng bằng cách lấy trung bình các giá trị tương ứng rồi chia cho hai.

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

Thật vậy, việc hiển thị luồng dữ liệu liên tục trong thời gian thực có thể khá hấp dẫn. Trong trường hợp này, chúng tôi sẽ trình bày trực quan hóa động bằng cách cập nhật định kỳ giá trị nhiệt độ hiện tại trên ma trận LED RGB của Sense HAT bằng cách sử dụng hàm show\_message(). Hơn nữa, chúng ta sẽ sử dụng vòng lặp while với câu lệnh “while True” để liên tục thu được phép đo nhiệt độ mới trong khoảng thời gian đều đặn là 10 giây thông qua việc sử dụng hàm sleep() có nguồn gốc từ thư viện thời gian.

Đâ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) 

Bằng cách thực thi mã này, một dòng nhiệt độ liên tục sẽ được hiển thị trên ma trận LED trong thời gian thực. Để thử nghiệm khả năng phản hồi của nó, bạn chỉ cần thở nhẹ nhàng lên Sense HAT để quan sát mọi biến động về nhiệt độ có thể xảy ra.

/vi/images/raspberry-pi-sense-hat-temperature.jpg

Có thể cần phải điều chỉnh các chỉ số nhiệt độ thu được thông qua Sense HAT, vì chúng có thể bị ảnh hưởng bởi quá trình truyền nhiệt từ bộ xử lý trung tâm của Raspberry Pi nằm ngay bên dưới nó. Để đạt được độ chính xác cao hơn trong các phép đo này, một cách tiếp cận khả thi sẽ liên quan đến việc sử dụng tiêu đề xếp chồng để nâng Sense HAT ra xa Raspberry Pi.

Sử dụng Raspberry Pi để theo dõi nhiệt độ

Việc sử dụng nhiệt kế độc lập là khả thi cho công việc này; tuy nhiên, Sense HAT đơn giản hóa việc theo dõi nhiệt độ thông qua tích hợp với Raspberry Pi. Ngoài ra, nó cho phép thu thập dữ liệu liên quan đến các yếu tố môi trường khác nhau, bao gồm áp suất khí quyển và độ ẩm tương đối, đồng thời hiển thị các phép đo này trên dãy đèn LED có thể định địa chỉ riêng.