Mục lục:

Bộ điều nhiệt trong phòng - Arduino + Ethernet: 3 bước
Bộ điều nhiệt trong phòng - Arduino + Ethernet: 3 bước

Video: Bộ điều nhiệt trong phòng - Arduino + Ethernet: 3 bước

Video: Bộ điều nhiệt trong phòng - Arduino + Ethernet: 3 bước
Video: Cảm biến nhiệt độ hồng ngoại không tiếp xúc | Hướng dẫn cài đặt và làm việc với Arduino Uno 2024, Tháng bảy
Anonim
Bộ điều nhiệt trong phòng - Arduino + Ethernet
Bộ điều nhiệt trong phòng - Arduino + Ethernet

Về phần cứng, dự án sử dụng:

  • Arduino Uno / Mega 2560
  • Tấm chắn Ethernet Wiznet W5100 / Mô-đun Ethernet Wiznet W5200-W5500
  • Cảm biến nhiệt độ DS18B20 trên xe buýt OneWire
  • Rơ le SRD-5VDC-SL-C dùng để chuyển mạch nồi hơi

Bước 1: Mô tả Bộ điều nhiệt Ethernet

Mô tả của Bộ điều nhiệt Ethernet
Mô tả của Bộ điều nhiệt Ethernet

Arduino là một nền tảng giả lập tiện dụng có thể được sử dụng, chẳng hạn như để xây dựng một bộ điều nhiệt trong phòng, mà chúng tôi sẽ giới thiệu hôm nay. Máy điều nhiệt có thể truy cập được từ mạng LAN nơi đặt nó, trong khi nó được trang bị giao diện web được sử dụng để định cấu hình tất cả các phần tử của máy điều nhiệt. Giao diện web chạy trực tiếp trên Arduino ở chế độ máy chủ web. Máy chủ web cho phép chạy một số trang HTML độc lập, có thể chứa nhiều thông tin hoặc thậm chí là chức năng. Máy chủ web chạy trên cổng 80 -

Rơ le điện từ SRD-5VDC-SL-C, được sử dụng trong dự án, cho phép chuyển mạch lên đến 10A ở 230V - công suất 2300W. Trong trường hợp chuyển mạch DC (tải) có thể chuyển mạch 300W (10A ở 30V DC). Ngoài ra, rơ le OMRON G3MB-202P SSR hoàn toàn tương thích với sơ đồ đấu dây, chỉ phù hợp với tải không cảm ứng và dành riêng cho mạch xoay chiều. Công suất chuyển đổi tối đa 460W (230V, 2A). Mức tiêu thụ của Arduino với lá chắn Ethernet và các thiết bị ngoại vi khác ở mức 100-120mA với rơ le mở. Khi đóng, dưới 200mA ở nguồn 5V.

Bước 2: Giao diện web

Giao diện web
Giao diện web

Giao diện web cho bộ điều nhiệt cho phép:

  • Xem nhiệt độ thời gian thực từ cảm biến DS18B20
  • Xem trạng thái chuyển tiếp thời gian thực với thay đổi đầu ra động trên trang
  • Điều chỉnh nhiệt độ mục tiêu (tham chiếu) trong phạm vi từ 5 đến 50 ° C với bước 0,25 ° C
  • Điều chỉnh độ trễ trong khoảng 0 đến 10 ° C với bước 0,25 ° C

Giao diện web được thiết kế để phù hợp với màn hình lớn hơn và nhỏ hơn. Nó đáp ứng, hỗ trợ màn hình rộng độ nét cao, mà còn cả các thiết bị di động. Giao diện sử dụng các kiểu CSS đã nhập của khung Bootstrap từ máy chủ CDN bên ngoài, máy chủ này sẽ tải thiết bị phía máy khách khi mở một trang chạy trên Arduino. Bởi vì Arduino Uno bị giới hạn bộ nhớ, nó chỉ có thể chạy các trang có kích thước vài kB. Bằng cách nhập các kiểu CSS từ máy chủ bên ngoài, nó sẽ làm giảm hiệu suất và tải bộ nhớ của Arduino. Việc triển khai phần mềm (cho Arduine Uno) sử dụng 70% bộ nhớ flash (32kB - 4kB Bootloader) và 44% bộ nhớ RAM (2kB).

Các phần tĩnh của trang web (đầu trang và chân trang của tài liệu HTML, liên kết CSS Bootstrap, thẻ meta, tiêu đề phản hồi HTTP, Loại nội dung, biểu mẫu, v.v.) được lưu trữ trực tiếp trong bộ nhớ flash của Arduino, có thể giảm đáng kể lượng RAM được sử dụng cho người dùng -nội dung được tạo ra. Do đó, máy chủ web ổn định hơn và có thể xử lý đa kết nối của một số thiết bị trong mạng cùng một lúc.

Để giữ các giá trị đã đặt ngay cả sau khi mất điện, chúng được lưu trữ trong bộ nhớ EEPROM của Arduino. Nhiệt độ tham chiếu để bù 10, độ trễ để bù 100. Mỗi giá trị chiếm tối đa 5B trong bộ nhớ EEPROM. Giới hạn phiên mã EEPROM là ở mức 100.000 bản sao. Dữ liệu chỉ được ghi đè khi biểu mẫu HTML được gửi. Trong trường hợp thiết bị không có gì được lưu trữ trên các hiệu số EEPROM được đề cập ở lần khởi động đầu tiên, việc ghi tự động sẽ được thực hiện với các giá trị mặc định - tham chiếu: 20,25, độ trễ 0,25 ° C

Thẻ meta Làm mới làm mới toàn bộ trang Arduino cứ sau 10 giây. Lúc này, cần phải viết thay đổi cho bộ điều nhiệt, nếu không, các cửa sổ đầu vào sẽ được đặt lại khi trang được làm mới. Vì thư viện Ethernet không bao gồm việc sử dụng máy chủ web không đồng bộ, toàn bộ trang phải được viết lại. Dữ liệu động chủ yếu thay đổi là giá trị hiện tại của đầu ra - Bật / Tắt.

Bước 3: Các trang HTML đang chạy trên máy chủ trang web, sơ đồ, mã nguồn

Các trang HTML đang chạy trên máy chủ trang web, sơ đồ, mã nguồn
Các trang HTML đang chạy trên máy chủ trang web, sơ đồ, mã nguồn

Các trang HTML chạy trên Arduino:

  • / - trang gốc chứa biểu mẫu, danh sách đầu ra logic hiện tại cho rơ le, nhiệt độ
  • /action.html - xử lý các giá trị từ biểu mẫu, ghi chúng vào bộ nhớ EEPROM, chuyển hướng người dùng trở lại trang gốc
  • / get_data / - phân phối dữ liệu về nhiệt độ hiện tại, nhiệt độ tham chiếu và độ trễ cho bên thứ ba (máy tính, vi điều khiển, máy khách khác…) ở định dạng JSON

Ngoài ra còn có phiên bản mở rộng của bộ điều nhiệt này bao gồm:

  • Chế độ thủ công cho rơ le (không giới hạn thời gian, BẬT / TẮT cứng)
  • Bộ đếm thời gian cho cơ quan giám sát
  • Có sẵn nhiều cảm biến hơn, ví dụ: SHT21, SHT31, DHT22, BME280, BMP280 và những cảm biến khác
  • Chế độ làm mát
  • Điều khiển và cấu hình qua RS232 / UART độc lập với Ethernet
  • Kiểm soát nhiệt độ PID cho bộ điều nhiệt
  • Khả năng sử dụng các nền tảng ESP8266, ESP32 cho bộ điều nhiệt

Việc triển khai chương trình cho dự án có thể được tìm thấy tại: https://github.com/martinius96/termostat-ethernet/ Việc triển khai chứa các chương trình cho địa chỉ IPv4 tĩnh / động được gán cho lá chắn Ethernet.

Bộ điều nhiệt chỉ dành cho nhiệt độ trong nhà! (trên 0 ° C), mà logic hệ thống được điều chỉnh. Có thể thay thế bộ điều nhiệt hiện tại trong phòng bằng bộ điều nhiệt, có thể tạm thời thay thế bộ điều nhiệt trong tủ lạnh, duy trì nhiệt độ không đổi trong hồ cạn và những thứ tương tự.

Đề xuất: