Mục lục:
- Bước 1: Cấu hình
- Bước 2: Định cấu hình Rơle
- Bước 3: Bộ điều khiển độ trễ
- Bước 4: Bộ điều khiển PID
- Bước 5: Xe buýt nhắn tin
- Bước 6: Libs
Video: Bộ điều nhiệt dựa trên Arduino: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Lần này chúng tôi sẽ xây dựng Bộ điều nhiệt dựa trên Arduino, cảm biến nhiệt độ và rơ le. Bạn có thể tìm thấy trên github
Bước 1: Cấu hình
Toàn bộ cấu hình được lưu trữ trong Config.h. Bạn có thể thay đổi mã PIN điều khiển rơ le, nhiệt độ đọc, ngưỡng hoặc thời gian.
Bước 2: Định cấu hình Rơle
Giả sử rằng chúng ta muốn có 3 rơ le:
- ID: 0, PIN: 1, Điểm đặt nhiệt độ: 20
- ID: 1, PIN: 10, Điểm đặt nhiệt độ: 30
- ID: 2, PIN: 11, Điểm đặt nhiệt độ: 40
Trước tiên, bạn phải đảm bảo rằng mã PIN bạn chọn chưa được sử dụng. Tất cả các chân có thể được tìm thấy trong Config.h, chúng được xác định bởi các biến bắt đầu bằng DIG_PIN.
Bạn phải chỉnh sửa Config.h và định cấu hình mã PIN, ngưỡng và số lượng rơle. Rõ ràng là một số thuộc tính đã tồn tại, vì vậy bạn chỉ cần chỉnh sửa chúng.
const static uint8_t DIG_PIN_RELAY_0 = 1; const static uint8_t DIG_PIN_RELAY_1 = 10; const static uint8_t DIG_PIN_RELAY_2 = 11;
const static uint8_t RELAYS_AMOUNT = 3;
const static int16_t RELAY_TEMP_SET_POINT_0 = 20;
const static int16_t RELAY_TEMP_SET_POINT_1 = 30; const static int16_t RELAY_TEMP_SET_POINT_2 = 40;
Bây giờ chúng ta phải thiết lập rơ le và bộ điều khiển, điều này xảy ra trong RelayDriver.cpp
initRelayHysteresisController (0, DIG_PIN_RELAY_0, RELAY_TEMP_SET_POINT_0); initRelayHysteresisController (1, DIG_PIN_RELAY_1, RELAY_TEMP_SET_POINT_1); initRelayHysteresisController (2, DIG_PIN_RELAY_2, RELAY_TEMP_SET_POINT_2);
xxx
Bước 3: Bộ điều khiển độ trễ
Nó là cái được chọn trong ví dụ ở trên, nó có vài cấu hình bổ sung:
const static uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 phút biểu tượng tĩnh uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS cung cấp thời gian chờ cho chuyển tiếp tiếp theo. Hãy tưởng tượng rằng cấu hình từ ví dụ của chúng tôi sẽ bắt đầu hoạt động trong môi trường 40 độ. Điều này sẽ dẫn đến việc kích hoạt cả ba rơ le cùng một lúc. Điều này cuối cùng có thể dẫn đến mức tiêu thụ điện năng cao - tùy thuộc vào những gì bạn đang điều khiển, ví dụ như động cơ điện tiêu thụ nhiều điện hơn trong quá trình khởi động. Trong trường hợp của chúng tôi, rơle chuyển mạch có dòng chảy như sau: rơle thứ nhất đi, đợi 5 phút, thứ hai tiếp tục, chờ 5 phút, thứ ba tiếp tục.
RHC_RELAY_MIN_SWITCH_MS xác định độ trễ, đó là tần số tối thiểu để rơle cụ thể thay đổi trạng thái của nó. Sau khi bật, nó sẽ vẫn hoạt động ít nhất trong khoảng thời gian này, bỏ qua sự thay đổi nhiệt độ. Điều này rất hữu ích khi bạn đang điều khiển động cơ điện, vì mỗi công tắc đều có tác động tiêu cực đến thời gian hoạt động.
Bước 4: Bộ điều khiển PID
Đây là chủ đề nâng cao. Việc triển khai bộ điều khiển như vậy là một nhiệm vụ đơn giản, việc tìm kiếm các cài đặt biên độ phù hợp lại là một câu chuyện khác.
Để sử dụng bộ điều khiển PID, bạn phải thay đổi initRelayHysteresisController (…..) thành initRelayPiDController (….) Và bạn cần tìm cài đặt phù hợp cho nó. Như thường lệ, bạn sẽ tìm thấy chúng trong Config.h
Tôi đã triển khai trình mô phỏng đơn giản trong Java để có thể hình dung kết quả. Bạn có thể tìm thấy nó trong thư mục: pidsimulator. Bên dưới bạn có thể thấy các mô phỏng cho hai bộ điều khiển PID a P. PID không hoàn toàn ổn định vì tôi đã không áp dụng bất kỳ thuật toán phức tạp nào để tìm đúng giá trị.
Trên cả hai ô, nhiệt độ yêu cầu được đặt thành 30 (màu xanh lam). Nhiệt độ hiện tại cho biết dòng đã đọc. Rơ le có hai trạng thái ON và OFF. Khi kích hoạt nhiệt độ giảm 1,5, khi tắt, nhiệt độ tăng 0,5.
Bước 5: Xe buýt nhắn tin
Các mô-đun phần mềm khác nhau phải giao tiếp với nhau, hy vọng không phải theo cả hai cách;)
Ví dụ:
- mô-đun thống kê phải biết khi nào rơle cụ thể bật và tắt,
- nhấn một nút phải thay đổi nội dung hiển thị và nó cũng phải tạm dừng các dịch vụ có thể tiêu tốn nhiều chu kỳ CPU, ví dụ như đọc nhiệt độ từ cảm biến,
- sau một thời gian đọc nhiệt độ phải được đổi mới,
- và như thế….
Mọi mô-đun đều được kết nối với Message Bus và có thể đăng ký các sự kiện cụ thể và có thể tạo ra bất kỳ sự kiện nào (sơ đồ đầu tiên).
Trên sơ đồ thứ hai, chúng ta có thể thấy luồng sự kiện khi nhấn nút.
Một số thành phần có một số tác vụ hơn là cần phải được thực thi định kỳ. Chúng ta có thể gọi các phương thức tương ứng của chúng từ vòng lặp chính, vì chúng ta có Message Bus nên chỉ cần truyền sự kiện bên phải (sơ đồ thứ ba)
Bước 6: Libs
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Tempeosystem…
- https://github.com/maciejmiklas/ArdLog.git
Đề xuất:
Điều khiển nhiệt độ điều khiển từ xa IR dựa trên Arduino tự động: 7 bước
Điều khiển nhiệt độ điều khiển từ xa IR dựa trên Arduino tự động: Này, có chuyện gì vậy, các bạn! Akarsh từ CETech. Bạn cảm thấy mệt mỏi khi thức dậy giữa giấc ngủ say chỉ vì nhiệt độ phòng của bạn quá thấp hoặc quá cao do điều hòa Dumb AC. Sau đó, dự án này là dành cho bạn. Trong dự án này, chúng tôi sẽ thực hiện
ESP8266 Theo dõi nhiệt độ Nodemcu bằng DHT11 trên máy chủ web cục bộ - Nhận nhiệt độ và độ ẩm phòng trên trình duyệt của bạn: 6 bước
ESP8266 Theo dõi nhiệt độ Nodemcu bằng DHT11 trên máy chủ web cục bộ | Nhận Nhiệt độ & Độ ẩm trong phòng trên Trình duyệt của bạn: Xin chào các bạn hôm nay chúng ta sẽ tạo độ ẩm & hệ thống giám sát nhiệt độ sử dụng ESP 8266 NODEMCU & Cảm biến nhiệt độ DHT11. Nhiệt độ và độ ẩm sẽ nhận được từ Cảm biến DHT11 & nó có thể được nhìn thấy trên trình duyệt mà trang web sẽ được quản lý
Nhiệt kế hồng ngoại không tiếp xúc dựa trên Arduino - Nhiệt kế dựa trên IR sử dụng Arduino: 4 bước
Nhiệt kế hồng ngoại không tiếp xúc dựa trên Arduino | Nhiệt kế dựa trên IR sử dụng Arduino: Xin chào các bạn trong phần hướng dẫn này, chúng tôi sẽ tạo một Nhiệt kế không tiếp xúc bằng arduino. nhiệt độ sau đó trong phạm vi đó
Theo dõi thời tiết M5Stack M5stick C dựa trên ESP32 với DHT11 - Theo dõi nhiệt độ độ ẩm & chỉ số nhiệt trên M5stick-C với DHT11: 6 bước
Theo dõi thời tiết M5Stack M5stick C dựa trên ESP32 với DHT11 | Theo dõi nhiệt độ độ ẩm và chỉ số nhiệt trên M5stick-C Với DHT11: Xin chào các bạn, trong phần hướng dẫn này, chúng ta sẽ học cách giao tiếp cảm biến nhiệt độ DHT11 với m5stick-C (một bảng phát triển của m5stack) và hiển thị nó trên màn hình của m5stick-C. Vì vậy, trong hướng dẫn này, chúng ta sẽ đọc nhiệt độ, độ ẩm & nhiệt tôi
Cách chế tạo Robot điều khiển di động - Dựa trên DTMF - Không có Vi điều khiển & Lập trình - Kiểm soát từ mọi nơi trên thế giới - RoboGeeks: 15 bước
Cách chế tạo Robot điều khiển di động | Dựa trên DTMF | Không có Vi điều khiển & Lập trình | Kiểm soát từ mọi nơi trên thế giới | RoboGeeks: Muốn tạo ra một robot có thể được điều khiển từ mọi nơi trên thế giới, Hãy làm điều đó