Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Nhiệt độ và độ ẩm là những điểm dữ liệu quan trọng trong thế giới công nghiệp ngày nay. Giám sát dữ liệu môi trường cho các phòng máy chủ, tủ đông thương mại và dây chuyền sản xuất là cần thiết để giữ cho mọi thứ hoạt động trơn tru. Có rất nhiều giải pháp từ cơ bản đến phức tạp và nó có vẻ áp đảo về những gì doanh nghiệp của bạn cần và bắt đầu từ đâu.
Chúng tôi sẽ hướng dẫn cách theo dõi nhiệt độ bằng Raspberry Pi và các cảm biến nhiệt độ khác nhau mà bạn có thể sử dụng. Đây là một nơi tốt để bắt đầu vì các giải pháp này không tốn kém, dễ thực hiện và mang lại cho bạn nền tảng để xây dựng cho các hoạt động giám sát môi trường khác.
Quân nhu
- Raspberry Pi (3, 4 hoặc Zero WH)
- Cảm biến nhiệt độ (DHT2, DSB18B20, BME280 hoặc Sense HAT)
- Cáp mở rộng 6 "40-Pin IDE Male to Female (Giải pháp Sense HAT)
- Điện trở 10K, Bảng mạch, Bảng ngắt 40 chân + Cáp ruy-băng, Dây điện (Đối với Giải pháp DSB18B20)
Bước 1: Raspberry Pi
Raspberry Pi là một máy tính bảng đơn rẻ tiền sẽ cho phép bạn kết nối với cảm biến nhiệt độ và truyền dữ liệu tới phần mềm trực quan hóa dữ liệu. Raspberry Pi’s bắt đầu như một công cụ học tập và đã phát triển thành một công cụ làm việc công nghiệp. Tính dễ sử dụng và khả năng viết mã bằng Python, ngôn ngữ lập trình phát triển nhanh nhất, đã khiến chúng trở thành một giải pháp.
Bạn sẽ muốn một Raspberry Pi có tích hợp WiFi, đây là bất kỳ kiểu máy nào 3, 4 và không W / WH. Giữa những cái bạn có thể chọn dựa trên giá cả và tính năng. Zero W / WH là rẻ nhất nhưng nếu bạn cần nhiều chức năng hơn, bạn có thể chọn giữa 3 và 4. Bạn chỉ có thể mua một Zero W / WH tại một thời điểm do các giới hạn của Raspberry Pi Foundation. Dù bạn chọn Pi là gì, hãy đảm bảo mua bộ sạc vì đó là cách bạn cấp nguồn cho Pi và thẻ SD với Raspbian để giúp cài đặt hệ điều hành dễ dàng nhất có thể.
Có những máy tính bảng đơn khác cũng có thể hoạt động, nhưng đó là thời gian khác và một bài báo khác.
Bước 2: Cảm biến
Có ba cảm biến chúng tôi khuyên bạn nên sử dụng vì chúng rẻ tiền, dễ kết nối và cho kết quả đọc chính xác; DSB18B20, DHT22 và Raspberry Pi Sense HAT.
DHT22 - Cảm biến nhiệt độ và độ ẩm này có độ chính xác nhiệt độ +/- 0,5 C và phạm vi độ ẩm từ 0 đến 100 phần trăm. Thật đơn giản để kết nối với Raspberry Pi và không yêu cầu bất kỳ điện trở kéo lên nào.
DSB18B20 - Cảm biến nhiệt độ này có đầu ra kỹ thuật số, hoạt động tốt với Raspberry Pi. Nó có ba dây và yêu cầu một breadboard và điện trở cho kết nối.
BME280 - Cảm biến này đo nhiệt độ, độ ẩm và áp suất khí quyển. Nó có thể được sử dụng trong cả SPI và I2C.
Sense HAT - Đây là một tiện ích bổ sung dành cho Raspberry Pi có đèn LED, cảm biến và cần điều khiển nhỏ. Nó kết nối trực tiếp với GPIO trên Raspberry Pi nhưng sử dụng cáp ruy-băng cho phép bạn đọc nhiệt độ chính xác hơn.
Bước 3: Thiết lập Raspberry Pi
Nếu đây là lần đầu tiên thiết lập Raspberry Pi, bạn sẽ cần cài đặt Hệ điều hành Raspbian và kết nối Pi với WiFi. Điều này sẽ yêu cầu màn hình và bàn phím để kết nối với Pi. Khi bạn đã thiết lập và chạy nó cũng như kết nối với WiFI, Pi của bạn đã sẵn sàng hoạt động.
Bước 4: Tài khoản trạng thái ban đầu
Bạn sẽ cần một nơi nào đó để gửi dữ liệu của mình để giữ nhật ký lịch sử và xem luồng dữ liệu theo thời gian thực, vì vậy chúng tôi sẽ sử dụng Trạng thái ban đầu. Truy cập https://iot.app.initialstate.com và tạo tài khoản mới hoặc đăng nhập vào tài khoản hiện có của bạn.
Tiếp theo, chúng ta cần cài đặt mô-đun Python trạng thái ban đầu vào Pi của bạn. Tại dấu nhắc lệnh (trước tiên đừng quên SSH vào số Pi của bạn), hãy chạy lệnh sau:
$ cd / home / pi /
$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash
Sau khi bạn nhập lệnh curl trong dấu nhắc lệnh, bạn sẽ thấy một cái gì đó tương tự như kết quả xuất ra màn hình sau đây:
pi @ raspberrypi ~
$ / curl -sSL https://get.initialstate.com/python -o - | sudo bash Mật khẩu: Bắt đầu cài đặt Python ISStreamer Dễ dàng! Quá trình này có thể mất vài phút để cài đặt, hãy uống một chút cà phê:) Nhưng đừng quên quay lại, tôi sẽ có câu hỏi sau! Tìm thấy easy_install: setuptools 1.1.6 Tìm thấy pip: pip 1.5.6 từ /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) Phiên bản chính pip: Phiên bản nhỏ 1 pip: 5 ISStreamer đã được tìm thấy, đang cập nhật… Yêu cầu đã được cập nhật: ISStreamer trong /Library/Python/2.7/site-packages Đang dọn dẹp… Bạn có muốn tự động lấy một script mẫu không? [y / N] Bạn muốn lưu ví dụ ở đâu? [default:./is_example.py] Vui lòng chọn ứng dụng Trạng thái ban đầu bạn đang sử dụng: 1. app.initialstate.com 2. [MỚI!] iot.app.initialstate.com Nhập lựa chọn 1 hoặc 2: Nhập iot.app Tên người dùng.initialstate.com: Nhập mật khẩu iot.app.initialstate.com:
Khi được nhắc tự động lấy một tập lệnh mẫu, hãy nhập y. Điều này sẽ tạo một tập lệnh thử nghiệm mà chúng tôi có thể chạy để đảm bảo rằng chúng tôi có thể truyền dữ liệu đến Trạng thái ban đầu. Lời nhắc tiếp theo sẽ hỏi bạn muốn lưu tệp ví dụ ở đâu. Bạn có thể nhập đường dẫn cục bộ tùy chỉnh hoặc nhấn enter để chấp nhận vị trí mặc định. Cuối cùng, bạn sẽ được hỏi bạn đang sử dụng ứng dụng Trạng thái ban đầu nào. Nếu gần đây bạn đã tạo một tài khoản, hãy chọn tùy chọn 2, nhập tên người dùng và mật khẩu của bạn. Sau đó quá trình cài đặt sẽ hoàn tất.
Hãy xem tập lệnh mẫu đã được tạo.
$ nano is_example.py
Trên dòng 15, bạn sẽ thấy một dòng bắt đầu bằng streamer = Streamer (bucket_…. Dòng này tạo một nhóm dữ liệu mới có tên là “Python Stream Example” và được liên kết với tài khoản của bạn. Sự liên kết này xảy ra do access_key =”…” trên cùng một dòng đó. Chuỗi chữ cái và số dài đó là khóa truy cập tài khoản Trạng thái ban đầu của bạn. Nếu bạn truy cập tài khoản Trạng thái ban đầu trong trình duyệt web của mình, hãy nhấp vào tên người dùng của bạn ở trên cùng bên phải, sau đó đi tới “cài đặt của tôi”, bạn sẽ tìm thấy khóa truy cập tương tự tại đây trong “Khóa truy cập truyền trực tuyến”.
Mỗi khi bạn tạo một luồng dữ liệu, khóa truy cập đó sẽ hướng luồng dữ liệu đó đến tài khoản của bạn (vì vậy đừng chia sẻ khóa của bạn với bất kỳ ai).
Chạy tập lệnh thử nghiệm để đảm bảo chúng tôi có thể tạo luồng dữ liệu vào tài khoản Trạng thái ban đầu của bạn. Chạy như sau:
$ python is_example.py
Quay lại tài khoản Trạng thái ban đầu trong trình duyệt web của bạn. Một nhóm dữ liệu mới được gọi là “Ví dụ về luồng Python” đáng lẽ phải hiển thị ở bên trái trong giá nhật ký của bạn (bạn có thể phải làm mới trang). Nhấp vào nhóm này và sau đó nhấp vào biểu tượng Sóng để xem dữ liệu thử nghiệm
Nếu bạn đang sử dụng Python 3, bạn có thể cài đặt Mô-đun Streamer trạng thái ban đầu, bạn có thể cài đặt bằng lệnh sau:
pip3 cài đặt ISStreamer
Bây giờ chúng tôi đã sẵn sàng thiết lập cảm biến nhiệt độ với Pi để truyền nhiệt độ vào bảng điều khiển.
Bước 5: Giải pháp DHT22
DHT22 sẽ có ba chân - 5V, Gnd và dữ liệu. Phải có nhãn ghim cho nguồn trên DHT22 (ví dụ: ‘+’ hoặc ‘5V’). Kết nối chân này với chân 2 (chân trên cùng bên phải, 5V) của Pi. Ghim Gnd sẽ được gắn nhãn ‘-’ hoặc ‘Gnd’ hoặc một cái gì đó tương đương. Kết nối cái này với chân 6 Gnd (hai chân bên dưới chân 5V) trên Pi. Chân còn lại trên DHT22 là chân dữ liệu và sẽ được gắn nhãn ‘out’ hoặc ‘s’ hoặc ‘data’. Kết nối cái này với một trong các chân GPIO trên Pi chẳng hạn như GPIO4 (chân 7). Sau khi có dây, hãy bật Pi của bạn.
Cài đặt mô-đun Adafruit DHT Python tại dấu nhắc lệnh để giúp việc đọc dữ liệu cảm biến DHT22 trở nên siêu dễ dàng:
$ sudo pip cài đặt Adafruit_DHT
Với hệ điều hành của chúng tôi được cài đặt cùng với hai mô-đun Python để đọc dữ liệu cảm biến và gửi dữ liệu đến Trạng thái ban đầu, chúng tôi đã sẵn sàng để viết tập lệnh Python của mình. Tập lệnh sau sẽ tạo / nối vào nhóm dữ liệu Trạng thái ban đầu, đọc dữ liệu cảm biến DHT22 và gửi dữ liệu đó đến trang tổng quan thời gian thực. Tất cả những gì bạn cần làm là sửa đổi các dòng 6–11.
nhập Adafruit_DHT
từ ISStreamer. Streamer nhập Thời gian nhập Streamer # --------- Cài đặt người dùng --------- SENSOR_LOCATION_NAME = "Văn phòng" BUCKET_NAME = ": part_sunny: Nhiệt độ phòng" BUCKET_KEY = "rt0129" ACCESS_KEY = "ĐẶT KHÓA TRUY CẬP BAN ĐẦU CỦA BẠN TẠI ĐÂY" MINUTES_BETWEEN_READS = 10METRIC_UNITS = False # --------------------------------- streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) trong khi Đúng: độ ẩm, temp_c = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) nếu METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME + "Nhiệt độ (C) khác", temp: temp_f = format (temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log (SENSOR_LOCATION_NAME + "Nhiệt độ (F)", temp_f) ẩm = format (độ ẩm, ".2f") streamer.log (SENSOR_LOCATION_NAME + "Độ ẩm (%)", độ ẩm) streamer.flush () time.sleep (60 * MINUTES_BETWEEN_READS)
- Dòng 6 - Giá trị này phải là duy nhất cho mỗi nút / cảm biến nhiệt độ. Đây có thể là tên phòng, vị trí thực, mã nhận dạng duy nhất của bạn hoặc bất cứ thứ gì. Chỉ cần đảm bảo rằng nó là duy nhất cho mỗi nút để đảm bảo rằng dữ liệu từ nút này đi đến luồng dữ liệu của chính nó trong trang tổng quan của bạn.
- Dòng 7 - Đây là tên của nhóm dữ liệu. Điều này có thể được thay đổi bất kỳ lúc nào trong UI Trạng thái Ban đầu.
- Dòng 8 - Đây là khóa thùng của bạn. Nó cần phải là cùng một khóa nhóm cho mọi nút bạn muốn được hiển thị trong cùng một bảng điều khiển.
- Dòng 9 - Đây là khóa truy cập tài khoản Trạng thái ban đầu của bạn. Sao chép và dán khóa này từ tài khoản Trạng thái ban đầu của bạn.
- Dòng 10 - Đây là thời gian giữa các lần đọc cảm biến. Thay đổi cho phù hợp.
- Dòng 11 - Bạn có thể chỉ định đơn vị hệ mét hoặc hệ Anh trên dòng 11.
Sau khi bạn đã đặt dòng 6–11 trong tập lệnh Python trên Pi, hãy lưu và thoát khỏi trình soạn thảo văn bản. Chạy tập lệnh bằng lệnh sau:
$ python tempsensor.py
Bây giờ bạn sẽ có dữ liệu gửi đến trang tổng quan Trạng thái ban đầu. Đi tới phần cuối cùng của bài viết này để biết chi tiết về cách tùy chỉnh trang tổng quan của bạn.
Bước 6: Giải pháp DSB18B20
Cáp ruy-băng kết nối với các chân GPIO trên Pi. DS18B20 có ba dây. Dây màu đỏ kết nối với 3.3V. Dây màu xanh lam / đen kết nối với đất. Dây màu vàng kết nối với một điện trở kéo lên / chân 4. Khi dây này được kết nối, hãy bật nguồn Pi của bạn.
Phiên bản mới nhất của Raspbian (nhân 3.18) yêu cầu bổ sung vào tệp /boot/config.txt của bạn để Pi giao tiếp với DS18B20. Chạy các bước sau để chỉnh sửa tệp này:
$ sudo nano /boot/config.txt
Nếu dòng sau chưa có trong tệp này (nếu có, nó có thể nằm ở cuối tệp), hãy thêm dòng đó và lưu tệp.
dtoverlay = w1-gpio, gpiopin = 4
Khởi động lại Pi của bạn để các thay đổi có hiệu lực.
$ sudo khởi động lại
Để bắt đầu giao diện đọc cảm biến nhiệt độ, chúng ta cần chạy hai lệnh. Chuyển đến dấu nhắc lệnh trên Pi hoặc SSH của bạn vào Pi của bạn. Nhập các lệnh sau:
$ sudo modprobe w1-gpio $ sudo modprobe w1-therm
Đầu ra của cảm biến nhiệt độ của bạn hiện đang được ghi vào một tệp trên Pi của bạn. Để tìm tệp đó:
$ cd / sys / bus / w1 / thiết bị
Trong thư mục này, sẽ có một thư mục con bắt đầu bằng "28-". Những gì xuất hiện sau "28-" là số sê-ri của cảm biến của bạn. cd vào thư mục đó. Bên trong thư mục này, một tệp có tên w1_slave chứa đầu ra của cảm biến của bạn. Sử dụng nano để xem nội dung của tệp. Khi bạn đã nhập vào tệp, tệp sẽ trông giống như sau:
a2 01 4b 46 7f ff 0e 10 d8: crc = d8 YESa2 01 4b 46 7f ff 0e 10 d8 t = 26125
Số sau “t =” là số chúng ta muốn. Đây là nhiệt độ tính bằng 1/1000 độ C (trong ví dụ trên, nhiệt độ là 26.125 C). Chúng tôi chỉ cần một chương trình đơn giản đọc tệp này và phân tích số đó. Chúng tôi sẽ đạt được điều đó chỉ trong một giây.
Mọi thứ hiện đã sẵn sàng để chúng tôi bắt đầu phát trực tuyến dữ liệu. Để mở trình soạn thảo văn bản, hãy nhập như sau vào dấu nhắc lệnh:
$ nano nhiệt độ.py
Sao chép và dán đoạn mã dưới đây vào trình soạn thảo văn bản.
nhập hệ điều hành
nhập thời gian nhập toàn cầu từ ISStreamer. Streamer import Streamerstreamer = Streamer (bucket_name = "Temperature Stream", bucket_key = "piot_temp_stream031815", access_key = "PUT_YOUR_ACCESS_KEY_HERE") os.system ('modprobe w1-gpio') os.system ('modprobe') -therm ') base_dir =' / sys / bus / w1 / devices / 'device_folder = global.glob (base_dir + '28 *') [0] device_file = device_folder + '/ w1_slave' def read_temp_raw (): f = open (device_file, 'r') lines = f.readlines () f.close () trả về dòng def read_temp (): lines = read_temp_raw () while lines [0].strip () [- 3:]! = 'CÓ': time.sleep (0.2) lines = read_temp_raw () equals_pos = lines [1].find ('t =') if equals_pos! = -1: temp_string = lines [1] [equals_pos + 2:] temp_c = float (temp_string) / 1000.0 trả về temp_c trong khi True: temp_c = read_temp () temp_f = temp_c * 9.0 / 5.0 + 32.0 streamer.log ("nhiệt độ (C)", temp_c) streamer.log ("nhiệt độ (F)", temp_f) time.sleep (.5)
Bạn cần đặt khóa truy cập Trạng thái ban đầu ở dòng 6 thay cho PUT_YOUR_ACCESS_KEY_HERE (sao chép khóa phát trực tuyến vào khay nhớ tạm của bạn từ 'Tài khoản của tôi' và dán vào mã trong nano trong thiết bị đầu cuối của bạn).
Dòng 6 sẽ tạo một nhóm có tên “Dòng nhiệt độ” trong tài khoản Trạng thái ban đầu của bạn (giả sử bạn đã chỉ định chính xác khóa truy cập của mình trên cùng dòng này). Các dòng từ 8 đến 30 của tập lệnh này chỉ cần giao tiếp với cảm biến DS18B20 để đọc nhiệt độ của nó từ tệp w1_slave mà chúng ta đã thảo luận trước đó. Hàm read_temp_raw () trên dòng 15 đọc tệp w1_slave thô. Hàm read_temp () trên dòng 21 phân tích nhiệt độ từ tệp đó. Dòng 34 gọi các chức năng này để lấy nhiệt độ hiện tại. Dòng 35 chuyển đổi nhiệt độ từ độ C sang độ F. Dòng 35 và 36 truyền nhiệt độ vào tài khoản Trạng thái ban đầu của bạn. Dòng 37 tạm dừng tập lệnh trong 0,5 giây, đặt tần suất cảm biến nhiệt độ sẽ được đọc và phát trực tiếp.
Chúng tôi đã sẵn sàng để bắt đầu phát trực tuyến. Chạy lệnh sau:
$ sudo python heat.py
Quay lại tài khoản Trạng thái ban đầu trong trình duyệt web của bạn và tìm một nhóm dữ liệu mới có tên là Dòng nhiệt độ. Bạn sẽ thấy dữ liệu nhiệt độ phát trực tiếp. Thay đổi nhiệt độ của cảm biến bằng cách cầm trên tay hoặc cho vào cốc nước đá.
Bây giờ bạn sẽ có dữ liệu gửi đến trang tổng quan Trạng thái ban đầu. Đi tới phần cuối cùng của bài viết này để biết chi tiết về cách tùy chỉnh trang tổng quan của bạn.
Bước 7: Giải pháp BME280
Bạn sẽ cần những thứ sau để xây dựng giải pháp này:
-BME280 Cảm biến áp suất, nhiệt độ và độ ẩm
Cảm biến này đi kèm với các chân mà bạn sẽ cần hàn trên cảm biến. Tôi khuyên bạn nên sử dụng bảng mạch bánh mì với các chân dài hướng xuống bảng mạch bánh mì để hàn dễ dàng hơn. Sau khi bạn hoàn thành việc này, chúng tôi cần kết nối cảm biến với Pi.
Kết nối chân VIN trên cảm biến với chân 3.3V 1 trên Pi. Kết nối chân GND trên cảm biến với chân nối đất 6 trên Pi. Kết nối chân SCK trên cảm biến với chân SCL 5 trên Pi. Kết nối chân SDI trên cảm biến với chân SDA 3 trên Pi. Bạn sẽ cần phải sử dụng Python 3 cho giải pháp này và cài đặt mô-đun Trình phát trực tiếp trạng thái ban đầu bằng phương pháp cài đặt pip3.
Bạn cũng sẽ cần cài đặt một vài thư viện Adafruit Python.
pip3 install adafruit-flashapip3 install pureio pip3 install spidev pip3 install adafruit-GPIO pip3 install adafruit-circuitpython-bme280
Để sử dụng cảm biến, chúng ta cần kích hoạt I2C trên Pi.
sudo raspi-config
Thao tác này sẽ mở Công cụ cấu hình phần mềm Raspberry Pi. Chuyển đến Tùy chọn 5 Tùy chọn Giao diện. Từ đây đi đến I2C. Nó sẽ nhắc bạn xem bạn có muốn bật I2C hay không, Chọn Có và Kết thúc. Bây giờ bạn đã kích hoạt I2C để giao tiếp với cảm biến.
Chúng tôi có thể kiểm tra điều này bằng cách chạy như sau:
sudo i2cdetect -y 1
Điều này sẽ xác minh rằng Pi của bạn nhìn thấy cảm biến. Theo cách kết nối, nó sẽ hiển thị cảm biến ở địa chỉ 77. Nếu bạn không phát hiện ra cảm biến, hãy khởi động lại Pi, bật lại tùy chọn giao diện I2C trên Pi của bạn và thử lại. để chạy mã chính của chúng tôi sẽ gửi dữ liệu về Trạng thái ban đầu. Đã tạo một tệp có tên bme280sensor.py bằng lệnh nano. Sao chép và dán mã từ ý chính vào trình soạn thảo văn bản. Bạn sẽ cần thực hiện các thay đổi đối với các dòng 12–19.
thời gian nhập khẩu
import board import busio import adafruit_bme280 from ISStreamer. Streamer import Streamer # Tạo đối tượng thư viện bằng Bus I2C porti2c = busio. I2C (board. SCL, board. SDA) bme280 = adafruit_bme280. Adafruit_BME280_I2C (i2c) # ------- - Cài đặt người dùng --------- SENSOR_LOCATION_NAME = "Văn phòng" BUCKET_NAME = ": part_sunny: Nhiệt độ phòng" BUCKET_KEY = "temp1" ACCESS_KEY = "PHÍM TRUY CẬP CỦA BẠN TẠI ĐÂY" # thay đổi cài đặt này để phù hợp với áp suất của vị trí (hPa) ở mực nước biển bme280.sea_level_pressure = 1013,25 MINUTES_BETWEEN_READS = 10 METRIC_UNITS = False # --------------------------------- # HOẶC tạo đối tượng thư viện bằng cách sử dụng cổng Bus SPI #spi = busio. SPI (board. SCK, board. MOSI, board. MISO) #bme_cs = digitalio. DigitalInOut (board. D10) # bme280 = adafruit_bme280. Adafruit_BME280_SPI (spi, bme_cs) streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) trong khi Đúng: độ ẩm = định dạng (bme280.humidity, ".1f") áp suất = định dạng (bme280.pressure, ".1f") temp_c = bme280.temperatu re if METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME + "Temperature (C)", temp_c) else: temp_f = format (temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log (SENSOR_LOCATION_NAME + "Nhiệt độ (F)", temp_f) streamer.log (SENSOR_LOCATION_NAME + "Độ ẩm (%)", độ ẩm) streamer.log (SENSOR_LOCATION_NAME + "Áp suất (hPA)", áp suất) streamer.flush () time.sleep (60 * MINUTES_BETWEEN_READS)
- Dòng 12- Giá trị này phải là duy nhất cho mỗi nút / cảm biến nhiệt độ. Đây có thể là tên phòng, vị trí thực, mã nhận dạng duy nhất của bạn hoặc bất cứ thứ gì. Chỉ cần đảm bảo rằng nó là duy nhất cho mỗi nút để đảm bảo rằng dữ liệu từ nút này đi đến luồng dữ liệu của chính nó trong trang tổng quan của bạn.
- Dòng 13- Đây là tên của nhóm dữ liệu. Điều này có thể được thay đổi bất kỳ lúc nào trong UI Trạng thái Ban đầu.
- Dòng 14- Đây là khóa thùng của bạn. Nó cần phải là cùng một khóa nhóm cho mọi nút bạn muốn hiển thị trong cùng một bảng điều khiển.
- Dòng 15- Đây là khóa truy cập tài khoản Trạng thái ban đầu của bạn. Sao chép và dán khóa này từ tài khoản Trạng thái ban đầu của bạn.
- Dòng 17- Đây là áp suất của vị trí của bạn (hPa) ở mực nước biển. Bạn có thể tìm thấy thông tin này trên hầu hết các trang web về thời tiết.
- Dòng 18 - Đây là thời gian giữa các lần đọc cảm biến. Thay đổi cho phù hợp. Dòng 19- Tại đây bạn có thể chỉ định đơn vị hệ mét hoặc hệ Anh.
Sau khi bạn đã đặt các dòng 12–19 trong tập lệnh Python trên Pi Zero WH, hãy lưu và thoát khỏi trình soạn thảo văn bản. Chạy tập lệnh bằng lệnh sau:
$ python3 bme280sensor.py
Bây giờ bạn sẽ có dữ liệu gửi đến trang tổng quan Trạng thái ban đầu. Đi tới phần cuối cùng của bài viết này để biết chi tiết về cách tùy chỉnh trang tổng quan của bạn.
Bước 8: Cảm nhận HAT
Bước đầu tiên khi sử dụng Sense HAT là cài đặt vật lý nó vào Pi của bạn. Khi Pi tắt nguồn, gắn HAT như trong hình.
Nếu bạn quyết định sử dụng giải pháp như được hiển thị ở trên, bạn có thể nhận thấy rằng các chỉ số nhiệt độ của Sense HAT của bạn sẽ hơi cao - đó là do chúng đúng như vậy. Thủ phạm là nhiệt tạo ra từ CPU Pi làm nóng không khí xung quanh Sense HAT khi nó nằm trên đầu Pi. Để làm cho cảm biến nhiệt độ trở nên hữu ích, chúng ta cần lấy HAT ra khỏi Pi hoặc cố gắng hiệu chỉnh số đọc của cảm biến nhiệt độ. Một giải pháp tốt để lấy cảm biến ra khỏi Pi là một sợi cáp cho phép Sense HAT rời khỏi Pi. Cáp nối dài IDE nam và nữ dài 6 , 40 chân IDE sẽ thực hiện thủ thuật này.
Khi bạn quyết định hai tùy chọn, hãy bật số Pi của bạn. Chúng ta cần cài đặt thư viện Python để dễ dàng đọc các giá trị cảm biến từ Sense HAT. Trước tiên, bạn cần đảm bảo rằng mọi thứ đều được cập nhật trên phiên bản Raspbian của mình:
$ sudo apt-get cập nhật
Tiếp theo, cài đặt thư viện Sense HAT Python:
$ sudo apt-get install sense-hat
Khởi động lại Pi của bạn. Chúng tôi đã sẵn sàng kiểm tra Sense HAT bằng cách đọc dữ liệu cảm biến từ nó và gửi dữ liệu đó về Trạng thái ban đầu.
Tạo một tệp có tên sensehat và mở nó trong trình soạn thảo văn bản bằng cách nhập follwoing trong dấu nhắc lệnh:
$ nano sensehat.py
Sao chép và dán mã bên dưới vào trình soạn thảo văn bản.
from sense_hat import SenseHat
nhập hệ thống nhập thời gian từ ISStreamer. Streamer nhập Streamer # --------- Cài đặt người dùng --------- BUCKET_NAME = "Thời tiết văn phòng" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = " Văn phòng "MINUTES_BETWEEN_SENSEHAT_READS = 0,1 # --------------------------------- streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) sense = SenseHat () trong khi True: # Đọc cảm biến temp_c = sense.get_tempether () độ ẩm = sense.get_humidity () áp suất_mb = sense.get_pressure () # Định dạng dữ liệu temp_f = temp_c * 9.0 / 5.0 + 32.0 temp_f = float ("{0:.2f}". Format (temp_f)) wet = float ("{0:.2f}". Format (precision)) pressure_in = 0,03937008 * (pressure_mb) pressure_in = float ("{ 0:.2f} ". Format (pressure_in)) # In và truyền dòng in SENSOR_LOCATION_NAME +" Nhiệt độ (F): "+ str (temp_f) print SENSOR_LOCATION_NAME +" Humidity (%): "+ str (độ ẩm) print SENSOR_LOCATION_NAME +" Áp suất (IN): "+ str (áp_in) streamer.log (": sunny: "+ SEN SOR_LOCATION_NAME + "Nhiệt độ (F)", temp_f) streamer.log (": sweat_drops:" + SENSOR_LOCATION_NAME + "Độ ẩm (%)", độ ẩm) streamer.log (": cloud:" + SENSOR_LOCATION_NAME + "Áp suất (IN)", pressure_in) streamer.flush () time.sleep (60 * MINUTES_BETWEEN_SENSEHAT_READS)
Lưu ý trên dòng đầu tiên rằng chúng tôi đang nhập thư viện SenseHat vào tập lệnh. Trước khi bạn chạy tập lệnh này, chúng tôi cần thiết lập các thông số người dùng của mình.
# --------- Thiết lập người dùng ---------
BUCKET_NAME = "Thời tiết văn phòng" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = "Văn phòng" MINUTES_BETWEEN_SENSEHAT_READS = 0,1 # ------------------------- --------
Cụ thể, bạn cần đặt ACCESS_KEY thành khóa truy cập tài khoản Trạng thái ban đầu. Bạn có thể thay đổi BUCKET_NAME và SENSOR_LOCATION_NAME thành vị trí cảm biến thực tế. Lưu và thoát khỏi trình soạn thảo văn bản.
Tại dấu nhắc lệnh trên Pi của bạn, hãy chạy tập lệnh:
$ sudo python sensehat.py
Bây giờ bạn sẽ có dữ liệu gửi đến trang tổng quan Trạng thái ban đầu. Đi tới phần cuối cùng của bài viết này để biết chi tiết về cách tùy chỉnh trang tổng quan của bạn.
Bước 9: Tùy chỉnh Trang tổng quan trạng thái ban đầu của bạn
Chuyển đến tài khoản Trạng thái ban đầu của bạn và xem dữ liệu của bạn. Bạn có thể nhấp chuột phải vào một Ô để thay đổi loại biểu đồ và nhấp vào Chỉnh sửa Ô để thay đổi kích thước và di chuyển các Ô của bạn xung quanh. Tôi khuyên bạn nên sử dụng máy đo nhiệt độ để đo nhiệt độ và mức chất lỏng của máy đo cho độ ẩm. Bạn có thể tạo biểu đồ đường cho cả nhiệt độ và độ ẩm để xem các thay đổi theo thời gian. Bạn cũng có thể thêm hình nền vào trang tổng quan của mình.
Bạn có thể đặt cảnh báo Kích hoạt để có thể nhận được SMS hoặc email nếu nhiệt độ giảm xuống dưới hoặc vượt quá một ngưỡng nhất định. Chuyển đến nhóm dữ liệu của bạn và nhấp vào cài đặt. Từ đó chuyển đến tab Kích hoạt. Nhập khóa luồng bạn muốn theo dõi, toán tử bạn muốn sử dụng và giá trị ngưỡng. Nhấp vào dấu cộng để thêm Trình kích hoạt. Sau đó, bạn sẽ nhập email hoặc số điện thoại của mình để nhận thông báo tại và nhấp vào dấu cộng. Khi bạn đã thiết lập tất cả các Trình kích hoạt của mình, hãy nhấp vào nút Hoàn tất ở dưới cùng.
Bây giờ bạn đã tạo một máy theo dõi nhiệt độ bằng cách sử dụng cảm biến nhiệt độ và Raspberry Pi, bạn có thể bắt đầu suy nghĩ về những dữ liệu môi trường khác mà bạn có thể theo dõi tiếp theo.