Nguyễn Gia Long gửi vào
- 12298 lượt xem
I. Giới thiệu
Với sự phát triển trong công nghệ hiện nay việc giám sát các chỉ số về điện vô cùng quan trọng. Đặc biệt đối với các kỹ sư bảo trì trong toà nhà, siêu thị, nhà xưởng,… việc kiểm soát và phân tích lỗi vô cùng quan trọng. Nhằm mục đích hỗ trợ cho việc giám sát các chỉ số điện như: công suất, điện áp, điện năng,… để nắm được sự bất thường trong vận hành hệ thông điện thì hôm nay mình sẽ hướng dẫn cho các bạn cách thực hiện một con đồng hồ đa năng có sử dụng inut cảm biến.
II. Chuẩn Bị
- Arduino Uno R3
- Module đo điện AC đa năng giao tiếp UART PZEM 004T
- Cảm biến nhiệt độ DS18B20
- LCD 16 x 2 tích hợp I2C
- iNut cảm biến
III. Sơ đồ kết nốí
- Ta cấp nguồn AC như hình trên cho module Pzem 004T.
Arduino Uno R3 |
Pzem 004T |
GND |
GND |
5V |
5V |
11 |
RX |
10 |
TX |
- Kết nối LCD vào arduino Uno R3:
Arduino Uno R3 |
LCD |
GND |
GND |
5V |
5V |
1 |
SDA |
0 |
SCL |
- Kết nối DS18B20 vào Arduino Uno R3:
Arduino Uno R3 |
DS18B20 |
GND |
GND |
5V |
5V |
7 |
DATA |
Lưu ý cần nối chân Data của cảm biến lên mức cao VCC qua điện trở kéo 4k7 Ohm hoặc 10k Ohm trước khi kết nối với Vi điều khiển.
IV. Các bước thực hiện:
- Cách cài đặt các phần mềm cũng như cách khởi động inut cảm biến các biến hãy làm theo các bước trình tự mình để trong đường link sau: http://arduino.vn/cc
- Sau khi các bạn cài đặt xong thì tiến hành nạp code sau vào arduino:
#include "ACS712.h" #include "Hshopvn_Pzem004t_V2.h" #include <LiquidCrystal_SoftI2C.h> #include <OneWire.h> #include <DallasTemperature.h> #include <iNut.h> #define WRITE_COMMAND 200 #define ON LOW #define OFF HIGH #define DS18B20 7 // ngõ ra cảm biến nhiệt độ DS18B20 kết nối với chân 7 #define RX_PZEM 11 // định nghĩa chân RX của PZEM kết nối với chân 11 #define TX_PZEM 10 // định nghĩa chân TX của PZEM kết nối với chân 10 float I = 0; const byte RELAY[2] = {8, 9}; // khai báo 2 relay const byte BUTTON[2] = {3, 12}; // khai báo 2 nút nhấn static unsigned long timer1 = 0; static unsigned long timer2 = 0; static unsigned long timer3 = 0; static unsigned long timer4 = 0; iNut sensor; OneWire oneWire(DS18B20); // sử dụng thư viện OneWire cho module cảm biến nhiệt độ DS18B20 DallasTemperature sensorsTEMP(&oneWire); LiquidCrystal_SoftI2C lcd(0x27, 16, 2, LCD_5x8DOTS, 1, 0); ACS712 sensorI(ACS712_20A, A3); // định nghĩa chân cảm biến đo dòng kết nối với chân A3 Hshopvn_Pzem004t_V2 pzem1(TX_PZEM, RX_PZEM); void setup() { #ifdef DEBUG Serial.begin(9600); #else Serial.end(); #endif // Serial.begin(9600); Serial.println("San sang nhan lenh"); // Serial.println("Test PZEM004T V2 ! ++++"); lcd.begin(); lcd.backlight(); lcd.display(); lcd.clear(); sensor.setup(8); sensor.addCommand("ON", onFunction); sensor.addCommand("OFF", offFunction); sensor.addCommand("RELAY", RelayFunction); sensorI.calibrate(); // init module sensorsTEMP.begin(); pzem1.begin(); pzem1.setTimeout(100); pinMode(DS18B20, INPUT); //pinMode(CONTACTOR, OUTPUT) for (int i = 0; i < 2; i ++) { pinMode (RELAY[i], OUTPUT); digitalWrite(RELAY[i], OFF); } for (int i = 0; i < 2; i ++) { pinMode (BUTTON[i], INPUT_PULLUP); } } void RelayFunction() { char* arg0 = sensor.next(); char* arg1 = sensor.next(); if (arg0 == NULL || arg1 == NULL) return; byte index = atoi(arg0); // hàm atoi() dùng để chuyển một chuỗi sang số nguyên if (strcmp(arg1, "ON") == 0) { // nếu truyền tham số là "RELAY OFF". Thì tắt digitalWrite(RELAY[index], ON); Serial.println(F("Relay bat")); } else if (strcmp(arg1, "OFF") == 0) { // nếu truyền tham số là "RELAY OFF". Thì tắt digitalWrite(RELAY[index], OFF); Serial.println(F("Relay tat")); } else { Serial.println(F("Khong nam trong tap hop lenh")); } } void onFunction() { int bit_index = atoi(sensor.next()) - WRITE_COMMAND; digitalWrite(RELAY[bit_index], ON); } void offFunction() { int bit_index = atoi(sensor.next()) - WRITE_COMMAND; digitalWrite(RELAY[bit_index], OFF); } void DS18B20_TEST() { sensorsTEMP.requestTemperatures(); Serial.print("Nhiet do "); Serial.println(sensorsTEMP.getTempCByIndex(0));// vì 1 ic nên dùng 0 } void nut_relay_o_dien() { static int buttonPushCounter = 0; // số lần button được nhấn static int buttonState = 0; // trạng thái hiện tại của button static int lastButtonState = 0; // trạng thái trước đó của button buttonState = digitalRead(BUTTON[0]); if (buttonState != lastButtonState) { if (buttonState == LOW) { digitalWrite(RELAY[0], !digitalRead(RELAY[0])); // đảo trạng thái relay } } lastButtonState = buttonState; } void nut_relay_CB() { static int buttonPushCounter = 0; // số lần button được nhấn static int buttonState = 0; // trạng thái hiện tại của button static int lastButtonState = 0; // trạng thái trước đó của button buttonState = digitalRead(BUTTON[1]); if (buttonState != lastButtonState) { if (buttonState == LOW) { digitalWrite(RELAY[1], !digitalRead(RELAY[1])); // đảo trạng thái relay } } lastButtonState = buttonState; } void loop() { nut_relay_o_dien(); // Điều khiển bật tắt ổ cắm nut_relay_CB(); // Điều khiển bật tắt CB I = sensorI.getCurrentAC(); DS18B20_TEST(); pzem_info pzemData = pzem1.getData();// lấy dữ liệu từ pzem static float value_energy = pzemData.energy ; if (millis() - timer1 > 4000UL)// UL = unsigned long // viết chương trình không sử dụng hàm delay // delay hiển thị trong vòng 4s { lcd.clear(); // xoá giá trị hiển thị trên lcd lcd.setCursor(0, 0); // di chuyển đến vị trí cột 0 hàng 0 lcd.print(F("U:")); // xuất ký tự "U:" ra LCD lcd.setCursor(2, 0); // di chuyển đến vị trí cột 2 hàng 0 lcd.print(pzemData.volt); // xuất giá trị điện áp lcd.setCursor(9, 0); lcd.print(F("I:")); lcd.setCursor(11, 0); lcd.print(pzemData.ampe); lcd.setCursor(0, 1); lcd.print(F("W:")); lcd.setCursor(2, 1); lcd.print(pzemData.power); lcd.setCursor(8, 1); lcd.print(F("wh:")); lcd.setCursor(11, 1); lcd.print(pzemData.energy); timer1 = millis(); } if (millis() - timer2 > 8000UL) { lcd.clear(); lcd.setCursor(0, 0); lcd.print(F("Tan So:")); lcd.setCursor(7, 0); lcd.print(pzemData.freq); lcd.setCursor(12, 0); lcd.print(F("Hz")); lcd.setCursor(0, 1); lcd.print(F("HeSoCongSuat:")); lcd.print(pzemData.powerFactor); lcd.setCursor(14,1); timer2 = millis(); } if (millis() - timer4 > 12000UL) { lcd.clear(); lcd.setCursor(0, 0); lcd.print(F("OCAM-T*:")); lcd.setCursor(9, 0); lcd.print(sensorsTEMP.getTempCByIndex(0)); lcd.setCursor(14, 0); lcd.print(F("*C")); lcd.setCursor(0, 1); lcd.print(F("OCAM-I:")); lcd.print(I); timer4 = millis(); } for (byte i = 0; i < 2; i++) { sensor.setValue(i, 1 - digitalRead(RELAY[i])); } sensor.setValue (2, pzemData.ampe); sensor.setValue (3, pzemData.volt); sensor.setValue (4, pzemData.power); sensor.setValue (5, pzemData.powerFactor); sensor.setValue (6, pzemData.energy); sensor.setValue (7, sensorsTEMP.getTempCByIndex(0)); sensor.loop(); }
- Sau đó các bạn tiến hành nạp code node red để cài đặt giao diện:
[ { "id": "cf8ac205.5f058", "type": "subflow", "name": "Data From iNut Sensor (2)", "info": "", "in": [ { "x": 50, "y": 30, "wires": [ { "id": "ae6240f0.9831e" } ] } ], "out": [ { "x": 1040, "y": 180, "wires": [ { "id": "568bc15f.8b536", "port": 0 } ] }, { "x": 1040, "y": 220, "wires": [ { "id": "568bc15f.8b536", "port": 1 } ] }, { "x": 1040, "y": 260, "wires": [ { "id": "568bc15f.8b536", "port": 2 } ] }, { "x": 1040, "y": 300, "wires": [ { "id": "568bc15f.8b536", "port": 3 } ] }, { "x": 1040, "y": 340, "wires": [ { "id": "568bc15f.8b536", "port": 4 } ] }, { "x": 1040, "y": 380, "wires": [ { "id": "568bc15f.8b536", "port": 5 } ] }, { "x": 1040, "y": 420, "wires": [ { "id": "568bc15f.8b536", "port": 6 } ] }, { "x": 1040, "y": 460, "wires": [ { "id": "568bc15f.8b536", "port": 7 } ] } ], "inputLabels": [ "Nhận đầu vào MQTT IN từ iNut cảm biến" ], "outputLabels": [ "Luồng cảm biến 1", "Luồng cảm biến 2", "Luồng cảm biến 3", "", "", "", "", "" ] }, { "id": "ae6240f0.9831e", "type": "json", "z": "cf8ac205.5f058", "name": "", "property": "payload", "action": "", "pretty": false, "x": 165, "y": 84, "wires": [ [ "34e19398.dbfb0c" ] ] }, { "id": "568bc15f.8b536", "type": "switch", "z": "cf8ac205.5f058", "name": "Phân luồn", "property": "relayId", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "str" }, { "t": "eq", "v": "1", "vt": "num" }, { "t": "eq", "v": "2", "vt": "flow" }, { "t": "eq", "v": "3", "vt": "num" }, { "t": "eq", "v": "4", "vt": "jsonata" }, { "t": "eq", "v": "5", "vt": "flow" }, { "t": "eq", "v": "6", "vt": "str" }, { "t": "eq", "v": "7", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 8, "x": 825.9869575500488, "y": 288.1562738418579, "wires": [ [], [], [], [], [], [], [], [] ] }, { "id": "34e19398.dbfb0c", "type": "function", "z": "cf8ac205.5f058", "name": "Lặp", "func": "if (!msg.states) {\n msg.states = msg.payload\n return msg;\n} else {\n if (msg.states[msg.i])\n return msg;\n}\n", "outputs": 1, "noerr": 0, "x": 327.89060974121094, "y": 83.33600330352783, "wires": [ [ "9bedaff3.73aa6" ] ] }, { "id": "9bedaff3.73aa6", "type": "function", "z": "cf8ac205.5f058", "name": "Lấy trạng thái thiết bị", "func": "msg.relayId = msg.i\nreturn msg;", "outputs": 1, "noerr": 0, "x": 360, "y": 260, "wires": [ [ "34e19398.dbfb0c", "568bc15f.8b536" ] ] }, { "id": "6ac6f77.e03ca08", "type": "ui_gauge", "z": "664aee7b.2629a", "name": "", "group": "774710f5.3779d", "order": 1, "width": "6", "height": "3", "gtype": "gage", "title": "Dòng Điện Tức Thời", "label": "A", "format": "{{value}}", "min": 0, "max": "40", "colors": [ "#1f964f", "#e6e600", "#ca3838" ], "seg1": "", "seg2": "", "x": 920, "y": 140, "wires": [] }, { "id": "ec02fa62.8a9ea8", "type": "subflow:cf8ac205.5f058", "z": "664aee7b.2629a", "name": "", "x": 400, "y": 400, "wires": [ [], [], [ "24f59715.9e8958" ], [ "607174b.e793c8c" ], [ "5af612fd.dd0c0c" ], [ "81fc4f17.acba7" ], [ "be9129f8.125a08" ], [ "a858ecf8.92d4d" ] ] }, { "id": "42968551.2e33cc", "type": "ui_gauge", "z": "664aee7b.2629a", "name": "", "group": "d10f306.41e90d", "order": 1, "width": "6", "height": "3", "gtype": "gage", "title": "Công Suất Tức Thời Calculated", "label": "W", "format": "{{value}}", "min": 0, "max": "9200", "colors": [ "#1f964f", "#e6e600", "#ca3838" ], "seg1": "", "seg2": "", "x": 950, "y": 60, "wires": [] }, { "id": "24f59715.9e8958", "type": "change", "z": "664aee7b.2629a", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "global", "to": "Dòng Điện", "tot": "str" }, { "t": "set", "p": "current", "pt": "global", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 700, "y": 200, "wires": [ [ "9f96ce.f8cfc93", "6ac6f77.e03ca08", "b3932e37.1a6cc" ] ] }, { "id": "9f96ce.f8cfc93", "type": "ui_chart", "z": "664aee7b.2629a", "name": "", "group": "774710f5.3779d", "order": 2, "width": "6", "height": "5", "label": "Biểu Đồ Dòng Điện", "chartType": "line", "legend": "true", "xformat": "dd HH:mm", "interpolate": "linear", "nodata": "Biểu Đồ Dòng Điện", "dot": true, "ymin": "0", "ymax": "40", "removeOlder": "2", "removeOlderPoints": "2000", "removeOlderUnit": "86400", "cutout": 0, "useOneColor": false, "colors": [ "#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "useOldStyle": true, "outputs": 1, "x": 910, "y": 180, "wires": [ [] ] }, { "id": "5af612fd.dd0c0c", "type": "change", "z": "664aee7b.2629a", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "global", "to": "Công Suất", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 700, "y": 320, "wires": [ [ "29a00136.129fee", "867a4639.0bce08" ] ] }, { "id": "f9879947.e2d908", "type": "ui_chart", "z": "664aee7b.2629a", "name": "", "group": "d10f306.41e90d", "order": 2, "width": "6", "height": "5", "label": "Biểu Đồ Công Suất", "chartType": "line", "legend": "false", "xformat": "HH:mm:ss", "interpolate": "linear", "nodata": "Biểu Đồ Công Suất Tức Thời", "dot": true, "ymin": "-5", "ymax": "1000", "removeOlder": "2", "removeOlderPoints": "2000", "removeOlderUnit": "60", "cutout": 0, "useOneColor": false, "colors": [ "#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "useOldStyle": false, "outputs": 1, "x": 910, "y": 100, "wires": [ [] ] }, { "id": "607174b.e793c8c", "type": "change", "z": "664aee7b.2629a", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "Hiệu điện thế", "tot": "str" }, { "t": "set", "p": "voltage", "pt": "global", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 700, "y": 260, "wires": [ [ "65a9dd34.ecb014", "bae76bd7.025858", "b3932e37.1a6cc" ] ] }, { "id": "65a9dd34.ecb014", "type": "ui_gauge", "z": "664aee7b.2629a", "name": "", "group": "b50f6b9e.fc5b18", "order": 2, "width": "6", "height": "3", "gtype": "gage", "title": "Hiệu Điện Thế Tức Thời", "label": "V", "format": "{{value}}", "min": "0", "max": "230", "colors": [ "#00b500", "#e6e600", "#ca3838" ], "seg1": "", "seg2": "", "x": 930, "y": 220, "wires": [] }, { "id": "b0d69cdf.d4715", "type": "ui_gauge", "z": "664aee7b.2629a", "name": "", "group": "55048fda.e1923", "order": 1, "width": "6", "height": "3", "gtype": "gage", "title": "Cos φ Tức Thời", "label": "", "format": "{{value}}", "min": 0, "max": "1", "colors": [ "#1f964f", "#e6e600", "#ca3838" ], "seg1": "", "seg2": "", "x": 900, "y": 380, "wires": [] }, { "id": "81fc4f17.acba7", "type": "change", "z": "664aee7b.2629a", "name": "", "rules": [ { "t": "set", "p": "global", "pt": "msg", "to": "Hệ Số công Suất", "tot": "str" }, { "t": "set", "p": "cosphi", "pt": "global", "to": "payload", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 700, "y": 400, "wires": [ [ "8792e56d.e8c938", "b0d69cdf.d4715" ] ] }, { "id": "8792e56d.e8c938", "type": "ui_chart", "z": "664aee7b.2629a", "name": "", "group": "55048fda.e1923", "order": 2, "width": "6", "height": "5", "label": "Biểu Đồ Cos φ", "chartType": "line", "legend": "false", "xformat": "HH:mm:ss", "interpolate": "linear", "nodata": "Biểu Đồ Cos φ", "dot": true, "ymin": "0", "ymax": "1", "removeOlder": "2", "removeOlderPoints": "2000", "removeOlderUnit": "86400", "cutout": 0, "useOneColor": false, "colors": [ "#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "useOldStyle": false, "outputs": 1, "x": 900, "y": 420, "wires": [ [] ] }, { "id": "c2eb9b89.477a28", "type": "ui_gauge", "z": "664aee7b.2629a", "name": "", "group": "a4796e89.417c4", "order": 1, "width": "6", "height": "3", "gtype": "gage", "title": "Điện Năng Tiêu Thụ ", "label": "Wh", "format": "{{value}}", "min": 0, "max": "99999", "colors": [ "#1f964f", "#e6e600", "#ca3838" ], "seg1": "", "seg2": "", "x": 920, "y": 460, "wires": [] }, { "id": "be9129f8.125a08", "type": "change", "z": "664aee7b.2629a", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "Điện Năng Tiêu Thụ", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 690, "y": 480, "wires": [ [ "ef28f526.b5c998", "c2eb9b89.477a28" ] ] }, { "id": "ef28f526.b5c998", "type": "ui_chart", "z": "664aee7b.2629a", "name": "", "group": "a4796e89.417c4", "order": 2, "width": "6", "height": "5", "label": "Biểu Đồ Điện Năng", "chartType": "line", "legend": "false", "xformat": "HH:mm:ss", "interpolate": "linear", "nodata": "Biểu Đồ Điện Năng", "dot": true, "ymin": "0", "ymax": "99999", "removeOlder": "2", "removeOlderPoints": "2000", "removeOlderUnit": "86400", "cutout": 0, "useOneColor": false, "colors": [ "#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "useOldStyle": false, "outputs": 1, "x": 910, "y": 500, "wires": [ [] ] }, { "id": "bae76bd7.025858", "type": "ui_chart", "z": "664aee7b.2629a", "name": "", "group": "b50f6b9e.fc5b18", "order": 2, "width": "6", "height": "5", "label": "Biểu Đồ Hiệu Điện Thế", "chartType": "line", "legend": "false", "xformat": "HH:mm:ss", "interpolate": "linear", "nodata": "Biểu Đồ Hiệu Điện Thế", "dot": true, "ymin": "0", "ymax": "230", "removeOlder": "2", "removeOlderPoints": "", "removeOlderUnit": "86400", "cutout": 0, "useOneColor": false, "colors": [ "#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "useOldStyle": false, "outputs": 1, "x": 920, "y": 260, "wires": [ [] ] }, { "id": "f1f9c26f.5d2ab", "type": "link in", "z": "664aee7b.2629a", "name": "RELOAD", "links": [ "76473552.45638c" ], "x": 235, "y": 660, "wires": [ [ "66b34749.126638" ] ] }, { "id": "8e88e456.f4f3f8", "type": "inject", "z": "664aee7b.2629a", "name": "", "topic": "", "payload": "", "payloadType": "date", "repeat": "", "crontab": "", "once": true, "onceDelay": 0.1, "x": 210, "y": 720, "wires": [ [ "66b34749.126638" ] ] }, { "id": "900ec1df.6fa23", "type": "link in", "z": "664aee7b.2629a", "name": "REST_POST", "links": [ "f10d1ff9.60fd6", "3519928f.0aecbe", "e6b47a7.8237688", "e27eec5c.8b7b1" ], "x": 155, "y": 780, "wires": [ [ "d16233a5.a3d46" ] ] }, { "id": "9c582f06.1fb3a", "type": "change", "z": "664aee7b.2629a", "name": "", "rules": [ { "t": "set", "p": "topic", "pt": "flow", "to": "POST", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 520, "y": 780, "wires": [ [ "b8c30569.731868" ] ] }, { "id": "b8c30569.731868", "type": "json", "z": "664aee7b.2629a", "name": "", "property": "payload", "action": "", "pretty": true, "x": 690, "y": 780, "wires": [ [ "b898f338.4efd7" ] ] }, { "id": "b898f338.4efd7", "type": "switch", "z": "664aee7b.2629a", "name": "Kiểm tra ONLINE", "property": "payload.status", "propertyType": "msg", "rules": [ { "t": "eq", "v": "0", "vt": "str" }, { "t": "eq", "v": "-1", "vt": "num" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 850, "y": 780, "wires": [ [ "b98c2602.561ac8" ], [ "135a01.914545ff" ] ] }, { "id": "135a01.914545ff", "type": "change", "z": "664aee7b.2629a", "name": "OFFLINE", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "OFFLINE", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1040, "y": 820, "wires": [ [ "ad75ca8f.da7e58" ] ] }, { "id": "b98c2602.561ac8", "type": "change", "z": "664aee7b.2629a", "name": "ONLINE", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "ONLINE", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1040, "y": 740, "wires": [ [ "ad75ca8f.da7e58", "533a63d5.f74bfc" ] ] }, { "id": "533a63d5.f74bfc", "type": "switch", "z": "664aee7b.2629a", "name": "", "property": "topic", "propertyType": "msg", "rules": [ { "t": "eq", "v": "POST", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 1190, "y": 740, "wires": [ [ "2276c3b9.4fb50c", "ce8b5683.41a518" ] ] }, { "id": "ad75ca8f.da7e58", "type": "ui_text", "z": "664aee7b.2629a", "group": "d33985e7.bd6628", "order": 1, "width": 0, "height": 0, "name": "", "label": "Status Mo_E", "format": "{{msg.payload}}", "layout": "row-spread", "x": 1210, "y": 820, "wires": [] }, { "id": "2276c3b9.4fb50c", "type": "delay", "z": "664aee7b.2629a", "name": "", "pauseType": "delay", "timeout": "50", "timeoutUnits": "milliseconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 1330, "y": 740, "wires": [ [ "1011d9fa.c86336" ] ] }, { "id": "ce8b5683.41a518", "type": "delay", "z": "664aee7b.2629a", "name": "", "pauseType": "delay", "timeout": "250", "timeoutUnits": "milliseconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 1330, "y": 780, "wires": [ [ "1011d9fa.c86336" ] ] }, { "id": "1011d9fa.c86336", "type": "change", "z": "664aee7b.2629a", "name": "", "rules": [ { "t": "delete", "p": "topic", "pt": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1520, "y": 740, "wires": [ [ "76473552.45638c" ] ] }, { "id": "76473552.45638c", "type": "link out", "z": "664aee7b.2629a", "name": "RELOAD", "links": [ "f1f9c26f.5d2ab" ], "x": 1635, "y": 740, "wires": [] }, { "id": "d94f717e.5a0e5", "type": "ui_gauge", "z": "664aee7b.2629a", "name": "", "group": "737b0a2.061ccf4", "order": 1, "width": "6", "height": "3", "gtype": "gage", "title": "Nhiệt Độ Ổ Cắm", "label": "*C", "format": "{{value}}", "min": 0, "max": "150", "colors": [ "#1f964f", "#e6e600", "#ca3838" ], "seg1": "", "seg2": "", "x": 900, "y": 540, "wires": [] }, { "id": "d0a6144.f7db4e8", "type": "ui_chart", "z": "664aee7b.2629a", "name": "", "group": "737b0a2.061ccf4", "order": 2, "width": "6", "height": "5", "label": "Biểu Đồ Nhiệt Độ Ổ Cắm", "chartType": "line", "legend": "false", "xformat": "HH:mm:ss", "interpolate": "linear", "nodata": "Nhiệt Độ Ổ Cắm", "dot": true, "ymin": "0", "ymax": "150", "removeOlder": "2", "removeOlderPoints": "2000", "removeOlderUnit": "86400", "cutout": 0, "useOneColor": false, "useUTC": false, "colors": [ "#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "useOldStyle": false, "outputs": 1, "x": 930, "y": 580, "wires": [ [] ] }, { "id": "a858ecf8.92d4d", "type": "change", "z": "664aee7b.2629a", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Nhiệt Độ Ổ cắm", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 700, "y": 560, "wires": [ [ "d0a6144.f7db4e8", "d94f717e.5a0e5" ] ] }, { "id": "b3932e37.1a6cc", "type": "change", "z": "664aee7b.2629a", "name": "", "rules": [ { "t": "set", "p": "voltage", "pt": "msg", "to": "voltage", "tot": "global" }, { "t": "set", "p": "current", "pt": "msg", "to": "current", "tot": "global" }, { "t": "set", "p": "cosphi", "pt": "msg", "to": "cosphi", "tot": "global" }, { "t": "set", "p": "topic", "pt": "msg", "to": "P công suất", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 700, "y": 100, "wires": [ [ "42968551.2e33cc", "f9879947.e2d908" ] ] }, { "id": "29a00136.129fee", "type": "ui_gauge", "z": "664aee7b.2629a", "name": "", "group": "bfe7dcd8.131f4", "order": 1, "width": "6", "height": "3", "gtype": "gage", "title": "Công Suất Tức Thời", "label": "W", "format": "{{value}}", "min": 0, "max": "1000", "colors": [ "#1f964f", "#e6e600", "#ca3838" ], "seg1": "", "seg2": "", "x": 920, "y": 300, "wires": [] }, { "id": "867a4639.0bce08", "type": "ui_chart", "z": "664aee7b.2629a", "name": "", "group": "bfe7dcd8.131f4", "order": 2, "width": "6", "height": "5", "label": "Biểu Đồ Công Suất Tức Thời", "chartType": "line", "legend": "false", "xformat": "HH:mm:ss", "interpolate": "linear", "nodata": "Biểu Đồ Dòng Điện Ổ Cắm", "dot": true, "ymin": "0", "ymax": "2000", "removeOlder": "2", "removeOlderPoints": "2000", "removeOlderUnit": "86400", "cutout": 0, "useOneColor": false, "colors": [ "#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5" ], "useOldStyle": false, "outputs": 1, "x": 940, "y": 340, "wires": [ [] ] }, { "id": "656bee50.e99c3", "type": "mqtt in", "z": "664aee7b.2629a", "name": "[MQTT-IN]Đo chỉ số điện", "topic": "request/Vx0PgGAzezNgJ7GZJgqi6HDe0mh1/Sy5FdZUkE/317fcc575dd47302814a231f2aa17657695249621459", "qos": "2", "broker": "c7dfd431.5f3828", "x": 110, "y": 380, "wires": [ [ "ec02fa62.8a9ea8" ] ] }, { "id": "66b34749.126638", "type": "http request", "z": "664aee7b.2629a", "name": "[REST][GET]Đo chỉ số điện", "method": "GET", "ret": "txt", "url": "https://connect.mysmarthome.vn/api/1.0/request/Vx0PgGAzezNgJ7GZJgqi6HDe0mh1/Sy5FdZUkE/317fcc575dd47302814a231f2aa17657695249621459/req_device", "tls": "", "x": 460, "y": 700, "wires": [ [ "b8c30569.731868" ] ] }, { "id": "d16233a5.a3d46", "type": "http request", "z": "664aee7b.2629a", "name": "[REST][POST]Đo chỉ số điện", "method": "POST", "ret": "txt", "url": "https://connect.mysmarthome.vn/api/1.0/request/Vx0PgGAzezNgJ7GZJgqi6HDe0mh1/Sy5FdZUkE/317fcc575dd47302814a231f2aa17657695249621459/req_device_toggle", "tls": "", "x": 300, "y": 780, "wires": [ [ "9c582f06.1fb3a" ] ] }, { "id": "774710f5.3779d", "type": "ui_group", "z": "", "name": "DATA 1", "tab": "579912f0.38a6bc", "order": 1, "disp": true, "width": "6", "collapse": true }, { "id": "d10f306.41e90d", "type": "ui_group", "z": "", "name": "DATA 3", "tab": "579912f0.38a6bc", "order": 3, "disp": true, "width": "6", "collapse": true }, { "id": "b50f6b9e.fc5b18", "type": "ui_group", "z": "", "name": "DATA 2", "tab": "579912f0.38a6bc", "order": 2, "disp": true, "width": "6", "collapse": true }, { "id": "55048fda.e1923", "type": "ui_group", "z": "", "name": "DATA 4", "tab": "579912f0.38a6bc", "order": 4, "disp": true, "width": "6", "collapse": true }, { "id": "a4796e89.417c4", "type": "ui_group", "z": "", "name": "DATA 5", "tab": "579912f0.38a6bc", "order": 5, "disp": true, "width": "6", "collapse": true }, { "id": "d33985e7.bd6628", "type": "ui_group", "z": "", "name": "DATA STATUS", "tab": "579912f0.38a6bc", "order": 10, "disp": true, "width": "6", "collapse": true }, { "id": "737b0a2.061ccf4", "type": "ui_group", "z": "", "name": "DATA 6", "tab": "579912f0.38a6bc", "order": 6, "disp": true, "width": "6", "collapse": true }, { "id": "bfe7dcd8.131f4", "type": "ui_group", "z": "", "name": "DATA 7", "tab": "579912f0.38a6bc", "order": 7, "disp": true, "width": "6", "collapse": true }, { "id": "c7dfd431.5f3828", "type": "mqtt-broker", "name": "", "broker": "mqtt.mysmarthome.vn", "port": "1883", "clientid": "", "usetls": false, "compatmode": true, "keepalive": "60", "cleansession": true, "willTopic": "", "willQos": "0", "willPayload": "", "birthTopic": "", "birthQos": "0", "birthPayload": "" }, { "id": "579912f0.38a6bc", "type": "ui_tab", "z": "", "name": "Monitoring Electrical", "icon": "dashboard", "order": 1, "disabled": false, "hidden": false } ]
- Sau đó bạn sẽ được một giao diện trên áp như sau:
- Sau đó các bạn làm các thao tác như trong link: http://arduino.vn/cc
Bạn sẽ nhận được 1 giao diện này:
- Quan sát LCD các bạn sẽ thấy được nó hiện các thông số như vậy.
Như vậy là các bạn đã hoàn thành xong việc tạo ra một đồng hồ hỗ trợ đo đếm và quan sát chỉ số điện. mình chúc các bạn thành công