Mục lục:

Nhiệt độ HRV đến OpenHAB Qua ESP8266 (Ví dụ về mã sê-ri!): 3 bước
Nhiệt độ HRV đến OpenHAB Qua ESP8266 (Ví dụ về mã sê-ri!): 3 bước

Video: Nhiệt độ HRV đến OpenHAB Qua ESP8266 (Ví dụ về mã sê-ri!): 3 bước

Video: Nhiệt độ HRV đến OpenHAB Qua ESP8266 (Ví dụ về mã sê-ri!): 3 bước
Video: GrowController 2024, Tháng bảy
Anonim
Nhiệt độ HRV đến OpenHAB Qua ESP8266 (Ví dụ về mã sê-ri!)
Nhiệt độ HRV đến OpenHAB Qua ESP8266 (Ví dụ về mã sê-ri!)
Nhiệt độ HRV đến OpenHAB Qua ESP8266 (Ví dụ về mã sê-ri!)
Nhiệt độ HRV đến OpenHAB Qua ESP8266 (Ví dụ về mã sê-ri!)
Nhiệt độ HRV đến OpenHAB Qua ESP8266 (Ví dụ về mã sê-ri!)
Nhiệt độ HRV đến OpenHAB Qua ESP8266 (Ví dụ về mã sê-ri!)

HRV - Không dây với OpenHAB

Hướng dẫn này dành riêng cho những người có hệ thống HRV (thông gió tuần hoàn sưởi ấm) - mặc dù các bộ phận của bảng mạch, cấu hình openhab hoặc mã Arduino (chẳng hạn như đọc dữ liệu nối tiếp TTL) có thể hữu ích cho các dự án của riêng bạn hoặc phục vụ tốt cho việc học. Nó giả sử bạn có kiến thức hợp lý về Arduino IDE và chip ESP8266 là gì.

Giới thiệu

Phần sau phác thảo cách xây dựng một ESP8266 kết nối với hệ thống HRV và gửi nhiệt độ mái nhà và nhà, nhiệt độ bảng điều khiển và tốc độ quạt qua tin nhắn MQTT tới OpenHAB. Điều này được thiết kế để hoạt động với bo mạch ESP8266-01 (mặc dù sẽ hoạt động với bất kỳ phiên bản ESP8266 3.3V nào) Nếu bạn có hệ thống loại HRV tương tự từ một nhà cung cấp thay thế, bạn sẽ cần xác định xem dữ liệu có được gửi dưới dạng TTL serial hay không và nếu có, cấu trúc dữ liệu được gửi dưới dạng.

OpenHAB và Mosquitto

Mã ESP8266 đã được viết đặc biệt để hoạt động với OpenHAB (phần mềm tự động hóa mã nguồn mở tại nhà) và một nhà môi giới MQTT như Mosquitto (một giao thức loại đăng ký / xuất bản tin nhắn nhẹ và tuyệt vời để giao tiếp giữa các thiết bị). các từ viết tắt khiến bạn sợ hãi, chúng thực sự khá đơn giản để sử dụng một khi bạn biết cách hoạt động của chúng. Tôi sử dụng OpenHAB trên NTC C. H. I. P (máy tính 9 đô la Mỹ) tuy nhiên nhiều người sử dụng Raspberry Pi hoặc tương tự. Hướng dẫn này giả sử bạn đã triển khai OpenHAB (nếu bạn cần trợ giúp thiết lập OpenHAB, hãy làm theo bài viết tuyệt vời này từ trang web makeuseof) Bạn cũng cần tải xuống và cài đặt Mosquitto (nhà môi giới MQTT) và liên kết OpenHAB liên quan. Bạn có thể cài đặt phần mềm này ở bất kỳ nơi nào khác trên mạng của mình, tuy nhiên hầu hết mọi người chỉ cài đặt phần mềm này trên cùng một máy như OpenHAB để đơn giản.

Để cài đặt Mosquitto, theo liên kết này, sau đó chọn loại thiết bị bạn đang sử dụng và làm theo hướng dẫn. Vì C. H. I. P chạy Debian (Jessie), bạn có thể làm theo hướng dẫn Raspberry Pi nếu đang sử dụng C. H. I. P cho thiết bị Tự động hóa gia đình của mình (cũng lưu ý, tốt nhất bạn nên định cấu hình lại CHIP để khởi động từ CLI. Có hướng dẫn cho việc này ở đây)

Khi bạn đã chạy OpenHAB và Mosquitto, bạn cần chuẩn bị Arduino IDE cho mã và mã ESP8266. Đầu tiên, bạn cần thêm thư viện "PubSubClient". Trong Arduino IDE, từ menu, đi tới Sketch, Bao gồm Thư viện, Quản lý Thư viện Trong hộp tìm kiếm của bộ lọc, nhập PubSubClient, sau đó đánh dấu kết quả tìm kiếm và nhấp vào Cài đặt (tại thời điểm viết bài, phiên bản mới nhất là 2.6.0) Bạn sẽ cũng cần thêm bo mạch ESP8266 vào Arduino IDE, điều này có thể được thực hiện bằng cách làm theo hướng dẫn tại đây

Cái này cho tôi cái gì?

Như đã nêu trước đó, dự án này sẽ cho phép bạn xem mái nhà, ngôi nhà, nhiệt độ bảng điều khiển HRV và tốc độ quạt của bạn trong OpenHAB GUI (trong thời gian thực!). sẽ nhận được bằng cách khoan xuống các nhiệt độ khác nhau.

Để có được các biểu đồ, bạn cũng sẽ cần cài đặt và định cấu hình ràng buộc RRD4J (điều này rất dễ hiểu) Điều này sẽ cho phép bạn nhấp vào 'Nhà' hoặc 'Mái nhà' và nhận lịch sử nhiệt độ HRV cho từng thứ trong quá khứ giờ, ngày hoặc tuần (hoặc lâu hơn, nếu bạn thay đổi cấu hình cho phù hợp) Các hình ảnh hiển thị ở độ C và rõ ràng là mùa đông của nó ở Nam bán cầu khi tôi thực hiện điều này!

Ngoài ra, tôi đã tạo chế độ xem OpenHAB hiển thị so sánh giữa nhiệt độ bên ngoài (được cung cấp bởi tiện ích bổ sung ràng buộc Thời tiết, trong trường hợp của tôi là sử dụng Wunderground) so với nhiệt độ mái nhà và nhà bằng cách nhấp vào tùy chọn 'Kiểm soát' (hình ảnh hiển thị biểu đồ với ngôi nhà, mái nhà và nhiệt độ bên ngoài được vẽ). Tôi dự định sử dụng dữ liệu này trong các quy tắc để bật các thiết bị sưởi ấm theo yêu cầu. Chỉ cần thêm mục Thời tiết vào URL hình ảnh của bạn trong tệp sơ đồ trang web và đưa mục này vào cùng một biểu đồ (ví dụ:… items = houseTemp, máiTemp, weatherTemp…)

Bước 1: Các bộ phận cần thiết / Lắp ráp

Các bộ phận cần thiết / lắp ráp
Các bộ phận cần thiết / lắp ráp
Các bộ phận cần thiết / lắp ráp
Các bộ phận cần thiết / lắp ráp
Các bộ phận cần thiết / lắp ráp
Các bộ phận cần thiết / lắp ráp

Bạn sẽ cần những phần sau

  • Bộ chia RJ11 (bộ chia này tách tín hiệu từ bộ điều khiển trên mái nhà, đến bảng điều khiển và ESP8266)
  • Một số cáp ruy-băng và một phích cắm RJ11 (để chạy dây từ bộ chia đến ESP8266)
  • ESP8266-01 (các phiên bản 3.3V khác sẽ hoạt động)
  • Bộ chuyển đổi mức logic TTL (để thay đổi dữ liệu từ 5V -> 3.3V)
  • Bộ điều chỉnh điện áp AMS1117 3.3V (hoặc tương tự, để thay đổi điện áp từ HRV 5V -> 3.3V thành nguồn ESP8266)
  • Diode schottky 1N5817 (vì lý do nào đó, điều này đã giúp ngăn việc đặt lại bảng điều khiển HRV khi bật nguồn ESP)
  • Điện trở 10K ohm (điện trở kéo lên giữa 3.3 Voltage Regulator và ESP CH_PD)
  • Tụ điện 10V 10uF (hoặc tương tự, để làm mịn và ổn định nguồn điện đầu vào từ HRV)
  • Tụ điện 10V 1uF (hoặc tương tự, để làm mịn và ổn định nguồn điện đầu ra cho ESP)
  • Nút trượt tùy chọn để lập trình ESP (nếu không, cần kéo GPIO0 sang GND theo cách thủ công để lập trình)
  • Bộ điều hợp FTDI (để lập trình ESP, chuyển đổi USB thành nối tiếp)

Lắp ráp theo sơ đồ

Hình ảnh breadboard cho thấy cách lắp ráp các bộ phận. Lưu ý rằng có 6 chân đi xuống cáp ribbon từ bộ điều khiển HRV trên trần nhà:

Chân 1 và 6 là 5V VCC

Các chân 2 và 5 là GND

Chân 3 và 4 là Dữ liệu.

Bạn chỉ cần sử dụng các chân 1, 2, 3 và 6 (nguồn 1 và 6 VCC ESP8266 và mặt cao của bộ chuyển đổi logic TTL, 2 là điểm chung và 3 là để đọc dữ liệu nối tiếp TTL)

Bộ chia bạn cần sẽ chỉ là bộ chia RJ11, chỉ cần đảm bảo bộ chia của nó là nơi có các chân cắm thẳng qua (ví dụ: chân 1 đi đến chân 1, chân 2 đến chân 2, v.v.) Lưu ý rằng các chân phụ (như hiển thị trong hình ảnh) là để kết nối FTDI để lập trình lại ESP sau này và công tắc hiển thị sẽ đặt nó ở chế độ "lập trình". Đây là tùy chọn, nhưng được khuyến nghị (ví dụ: nếu bạn thay đổi mật khẩu WiFi của mình vì AP WiFi và mật khẩu được lập trình cứng thành mã, bạn sẽ cần tải lên khi ESP8266 của bạn được tạo)

Bước 2: Tải lên mã và kiểm tra

Tải lên mã và thử nghiệm
Tải lên mã và thử nghiệm
Tải lên mã và thử nghiệm
Tải lên mã và thử nghiệm
Tải lên mã và thử nghiệm
Tải lên mã và thử nghiệm
Tải lên mã và thử nghiệm
Tải lên mã và thử nghiệm

Thay đổi mã

Liên kết tải xuống thay thế cho mã Arduino TẠI ĐÂY

Mở trong Arduino IDE, đảm bảo đã cài đặt bảng ESP cũng như PubSubClient và bạn đã chọn bảng ESP8266 (Công cụ, Bảng, Bảng ESP8266 Chung) Chỉnh sửa mã và thay đổi tên và mật khẩu WiFi AP và địa chỉ IP của nhà môi giới MQTT của bạn (đây là những thứ duy nhất bạn cần thay đổi) như được hiển thị bên dưới. Nhấp vào nút 'Xác minh' để đảm bảo nó biên dịch ổn, sau đó đảm bảo chọn đúng cổng COM (Công cụ, Cổng) và tải mã lên ESP8266 của bạn. Có rất nhiều bài viết về cách làm điều này, tôi sẽ không phát minh lại bánh xe ở đây.

// Wifi

const char * ssid = "your_wifi_ssid_here"; const char * password = "your_wifi_password_here"; // Nhà môi giới MQTT IPAddress MQTT_SERVER (192, 168, 222, 254);

Kiểm tra MQTT

Để kiểm tra, bạn có thể kết nối bộ điều hợp FTDI và mở Màn hình nối tiếp trong Arduino IDE, bạn sẽ thấy thông báo in thông tin nhiệt độ trong bảng điều khiển. Nếu bạn cần khắc phục sự cố các tin nhắn MQTT đến từ ESP8266 đến nhà môi giới MQTT của mình, thì trên máy chủ Mosquitto, hãy chạy một trong các lệnh sau để đăng ký các tin nhắn đến:

mosquitto_sub -d -t openhab / hrv / status

Bạn sẽ thấy các thông báo PUBLISH gửi đến từ ESP8266 cứ sau 30 giây hoặc lâu hơn với số "1" (nghĩa là "Tôi còn sống") Nếu bạn thấy "0's" không đổi (hoặc không có gì cả) thì không có liên lạc nào. Khi bạn thấy số 1 xuất hiện, thì điều đó có nghĩa là ESP8266 đang giao tiếp với nhà môi giới MQTT (tìm kiếm "Di chúc và Di chúc cuối cùng của MQTT" để biết thêm thông tin về cách hoạt động hoặc xem mục blog thực sự tốt này)

Giờ đây, bạn có thể theo dõi dữ liệu nhiệt độ và tốc độ quạt, hãy đăng ký một trong các tùy chọn sau. Tuy nhiên, lưu ý rằng mã chỉ gửi dữ liệu nhiệt độ nếu bất kỳ dữ liệu nào đã thay đổi. Nó theo dõi dữ liệu về nhiệt độ, tốc độ quạt, v.v. gần đây nhất được gửi, vì vậy bạn có thể không thấy thông tin đến ngay lập tức.

mosquitto_sub -d -t openhab / hrv /oftemp

mosquitto_sub -d -t openhab / hrv / housetemp

mosquitto_sub -d -t openhab / hrv / controltemp

mosquitto_sub -d -t openhab / hrv / fanspeed

Gợi ý: đăng ký với nhiệt độ bảng điều khiển ở trên, sau đó nhấn nút nhiệt độ trên chính bảng điều khiển, bạn sẽ thấy cài đặt nhiệt độ mới xuất hiện.

Khi bạn hoàn thành việc hàn này, PCB 3cm x 7cm vừa vặn trong hộp phẳng phía sau Bảng điều khiển HRV. Tôi khuyên bạn chỉ nên làm điều này nếu đó là một hộp bằng nhựa vì hộp kim loại có thể gây nhiễu tín hiệu Wifi hoặc có thể làm ngắt kết nối trên bảng mạch PCB. Ngoài ra, bạn có thể in ra một hộp 3D bằng nhựa để gắn bảng vào.

Bước 3: Thay đổi OpenHAB

Cấu hình OpenHAB

Các thay đổi OpenHAB bắt buộc như sau:

tệp 'items':

/ * HRVNumber hrvStatus "HRV Status [MAP (status.map):% d]" (gHRV) {mqtt = "<[mqttbroker: openhab / hrv / status: state: default]"} Số houseTemp "Nhà [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / housetemp: state: default] "} Số houseTemp_Chart_Period" Chu kỳ biểu đồ "Số máiTemp" Mái [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv /oftemp: state: default] "} Số nócTemp_Chart_Period" Thời gian biểu đồ "Number controlTemp" Control [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / controltemp: state: default] "} String fanSpeed" Fan Speed [% s] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / fanspeed: state: default] "} * /

tệp 'sơ đồ trang web':

Frame label = "HRV Temperature" {Text item =ofTemp {Frame {Switch item = MáiTemp_Chart_Period label = "Thời gian" ánh xạ = [0 = "Giờ", 1 = "Ngày", 2 = "Tuần"] Hình ảnh url = "https:// localhost: 8080 / rrdchart-p.webp

Các biểu tượng bổ sung cho OpenHAB được bao gồm (nhấp chuột phải và lưu hình ảnh)

Lưu các tệp này vào thư mục.. / OpenHAB Home / webapps / images trên máy chủ OpenHAB của bạn

Đề xuất: