Mục lục:

Điều khiển thông minh Quạt Raspberry Pi bằng Python & Thingspeak: 7 bước
Điều khiển thông minh Quạt Raspberry Pi bằng Python & Thingspeak: 7 bước

Video: Điều khiển thông minh Quạt Raspberry Pi bằng Python & Thingspeak: 7 bước

Video: Điều khiển thông minh Quạt Raspberry Pi bằng Python & Thingspeak: 7 bước
Video: Raspberry Pi: Điều khiển GPIO dạng Output 2024, Tháng bảy
Anonim
Điều khiển thông minh Quạt Raspberry Pi bằng Python & Thingspeak
Điều khiển thông minh Quạt Raspberry Pi bằng Python & Thingspeak

Tổng quan ngắn gọn

Theo mặc định, quạt được kết nối trực tiếp với GPIO - điều này có nghĩa là quạt hoạt động liên tục. Mặc dù quạt hoạt động tương đối yên tĩnh, hoạt động liên tục của nó không phải là cách sử dụng hiệu quả hệ thống làm mát đang hoạt động. Đồng thời, việc quạt hoạt động liên tục có thể gây khó chịu. Ngoài ra, nếu Raspberry Pi bị tắt, quạt vẫn hoạt động nếu nguồn điện được kết nối.

Bài viết này sẽ chỉ ra cách, bằng cách sử dụng các thao tác đơn giản và không phức tạp, biến một hệ thống làm mát hiện có thành một hệ thống thông minh, chỉ được bật khi bộ xử lý thực sự cần. Quạt sẽ chỉ được bật khi sử dụng nhiều, do đó giảm tiêu thụ điện năng và tiếng ồn của quạt. Đồng thời kéo dài tuổi thọ của quạt bằng cách tắt nó khi không cần thiết.

Những gì bạn sẽ học

Cách triển khai tập lệnh Python để điều khiển quạt dựa trên nhiệt độ hiện tại của CPU Raspberry bằng cách sử dụng điều khiển Bật-Tắt với độ trễ nhiệt độ. Cách vận chuyển dữ liệu từ RaspberryPi đến Things Speak Cloud.

Quân nhu

Các thành phần bạn sẽ được yêu cầu cho dự án này như sau

  • Máy tính Raspberry Pi 4 Model B 4GB
  • Điện trở bóng bán dẫn NPN S8050330ohms
  • Vỏ kim loại bằng nhôm Armor với quạt kép cho Raspberry Pi
  • Cáp nhảy
  • Breadboard

Bước 1: Xây dựng mạch

Xây dựng mạch
Xây dựng mạch
Xây dựng mạch
Xây dựng mạch

Mạch khá đơn giản. Nguồn điện cho quạt được cắt bằng bóng bán dẫn NPN. Trong cấu hình này, bóng bán dẫn hoạt động như một công tắc bên thấp. Điện trở chỉ được yêu cầu để giới hạn dòng điện qua GPIO. Raspberry Pi’s GPIO có công suất dòng điện tối đa là 16mA. Tôi đã sử dụng 330 ohms cho chúng ta dòng điện cơ bản khoảng (5-0,7) / 330 = 13mA. Tôi đã chọn một bóng bán dẫn NPN S8050, vì vậy việc chuyển đổi tải 400mA từ cả hai quạt không có vấn đề gì.

Bước 2: Ghi nhiệt độ CPU với ThingSpeak

Ghi nhiệt độ CPU với ThingSpeak
Ghi nhiệt độ CPU với ThingSpeak

ThingSpeak là một nền tảng dành cho các dự án dựa trên khái niệm Internet of Things. Nền tảng này cho phép bạn xây dựng các ứng dụng dựa trên dữ liệu thu thập được từ các cảm biến. Các tính năng chính của ThingSpeak bao gồm: thu thập dữ liệu thời gian thực, xử lý và trực quan hóa dữ liệu. API ThingSpeak không chỉ cho phép bạn gửi, lưu trữ và truy cập dữ liệu mà còn cung cấp nhiều phương pháp thống kê khác nhau để xử lý chúng.

ThingSpeak có thể tích hợp các thiết bị và dịch vụ phổ biến như:

  • Arduino
  • Raspberry pii
  • oBridge / RealTime.io
  • Imp điện
  • Ứng dụng di động và web
  • Mạng xã hội
  • Phân tích dữ liệu trong MATLAB

Trước khi bắt đầu, bạn cần có tài khoản tại ThingSpeak.

  1. Truy cập liên kết sau và đăng ký ThingSpeak.
  2. Sau khi kích hoạt tài khoản của bạn, hãy đăng nhập.
  3. Đi tới Kênh -> Kênh của tôi
  4. Bấm vào nút Kênh mới.
  5. Nhập tên, mô tả và các trường dữ liệu bạn muốn tải lên
  6. Nhấp vào nút Lưu kênh để lưu tất cả cài đặt của bạn.

Chúng tôi cần một khóa API, khóa này sau này chúng tôi sẽ thêm vào mã python để tải nhiệt độ CPU của chúng tôi lên đám mây Thingspeak.

Nhấp vào tab Khóa API để lấy Khóa API Viết

Sau khi bạn có Khóa API Viết, chúng tôi gần như đã sẵn sàng tải lên dữ liệu của mình.

Bước 3: Lấy nhiệt độ CPU từ Raspberry Pi bằng Python

Tập lệnh dựa trên việc truy xuất nhiệt độ bộ xử lý, xảy ra mỗi giây. Nó có thể được lấy từ thiết bị đầu cuối bằng cách chạy lệnh vcgencmd với tham số Measure_temp.

vcgencmd Measure_temp

Thư viện Subprocess.check_output () được sử dụng để thực thi lệnh và sau đó sử dụng biểu thức chính quy để trích xuất giá trị thực từ chuỗi được trả về.

từ quy trình con nhập check_output

from re import findalldef get_temp (): temp = check_output (["vcgencmd", "Measure_temp"]). decode () temp = float (findall ('\ d + \. / d +', temp) [0]) return (temp) print (get_temp ())

Sau khi giá trị nhiệt độ được tìm nạp, dữ liệu cần được gửi đến đám mây ThingSpeak. Sử dụng Khóa API Viết của bạn để thay đổi biến myApi trong mã Python bên dưới.

từ yêu cầu nhập urllib

from re import findall from time import sleep from subprocess import check_output myAPI = '#################' baseURL = 'https://api.thingspeak.com/update?api_key=% s '% myAPIdef get_temp (): temp = check_output (["vcgencmd", "Measure_temp"]). decode () temp = float (findall (' / d + \. / d + ', temp) [0]) return (temp) try: while True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 =% s'% (temp)) print (str (temp)) conn.close () sleep (1) ngoại trừ KeyboardInterrupt: in ("Thoát nhấn Ctrl + C")

Bước 4: Điều khiển quạt dựa trên nhiệt độ

Tập lệnh Python hiển thị bên dưới thực hiện logic bật quạt khi nhiệt độ tăng trên tempOn và chỉ tắt khi nhiệt độ giảm xuống dưới ngưỡng. Bằng cách này, quạt sẽ không bật và tắt nhanh chóng.

nhập RPi. GPIO dưới dạng GPIO

import sys from re import findall from time import sleep from subprocess import check_output def get_temp (): temp = check_output (["vcgencmd", "Measure_temp"]). decode () temp = float (findall ('\ d + \. / d + ', temp) [0]) return (tạm thời) thử: GPIO.setwarnings (Sai) tempOn = 50 ngưỡng = 10 controlPin = 14 pinState = Sai GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, ban đầu = 0) trong khi True: temp = get_temp () if temp> tempOn and not pinState hoặc temp <tempOn - ngưỡng và pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) ngủ (1) ngoại trừ KeyboardInterrupt: print ("Thoát nhấn Ctrl + C") ngoại trừ: print ("Ngoại lệ Khác") print ("--- Bắt đầu Dữ liệu Ngoại lệ:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- Dữ liệu Ngoại lệ Kết thúc:") cuối cùng: print ("CleanUp") GPIO.cleanup () print ("Kết thúc chương trình")

Bước 5: Mã Python cuối cùng

Có thể tìm thấy mã python chính trên tài khoản GitHub của tôi trong liên kết sau. Hãy nhớ đặt Khóa API Viết của riêng bạn.

  1. Đăng nhập vào bảng Raspberry PI của bạn
  2. Chạy lệnh sau trên thiết bị đầu cuối

python3 cpu.py

Bước 6: Giám sát dữ liệu qua đám mây Thingspeak

Dữ liệu giám sát qua đám mây Thingspeak
Dữ liệu giám sát qua đám mây Thingspeak

Sau một lúc, hãy mở kênh của bạn trên ThingSpeak và bạn sẽ thấy nhiệt độ đang tải lên đám mây Thingspeak theo thời gian thực.

Bước 7: Chạy Python Script khi khởi động

Để thực hiện việc này, ở cuối tệp /etc/rc.local:

sudo nano /etc/rc.local

Bạn cần đặt lệnh bắt đầu tập lệnh trước dòng thoát 0:

sudo python /home/pi/cpu.py &

Sự hiện diện của ký hiệu & ở cuối lệnh là bắt buộc, vì nó là cờ để bắt đầu quá trình ở chế độ nền. Sau khi khởi động lại, tập lệnh sẽ tự động chạy và quạt sẽ bật khi đáp ứng các điều kiện đã chỉ định.

Đề xuất: