Cảm biến dòng Hall 100A YHDC: cảm biến đọc giá trị dịng điện có ngõ vào tối
đa là 100A và ngõ ra đạt cao nhất là 50mA.
Khối xử lý dữ liệu: sử dụng Arduino Nano có kích thước nhỏ gọn, có nhiều chức
năng có thể đáp ứng tốt yêu cầu của hệ thống.
Tính tốn thiết kế:
Sử dụng cảm biến dòng điện Hall 100A YHDC để đo dòng điện trên các đường dây được kết nối với ngõ vào ADC của Arduino để đọc về giá trị. Như vậy ta cần làm rõ các bước sau:
Ngõ ra của cảm biến dòng điện Hall là điện áp, dòng điện xoay chiều phải được biến đổi trước khi đưa vào Arduino.
Tính tốn các mạch điện liên quan.
Khối xử lý dữ liệu từ cảm biến (đọc và truyền dữ liệu). Cảm biến dịng
Hình 3.3: Kết nối ngõ ra cảm biến dòng điện Hall với Arduino.
Điện trở R1 làm giảm điện áp AC, điện trở R1 và R2 cung cấp điện áp phân cực cho DC offset. Tụ điện C1 cung cấp một trở kháng thấp để nối đất cho tín hiệu AC, giá trị khơng quan trọng, chọn trong khoảng 1 μF và 10 μF sẽ đủ tốt.
Theo như hình 3.3, ta có :
Ngõ ra dịng hiệu dụng của cảm biến dòng tối đa đạt 50mA, khi mà dòng ngõ vào đạt tối đa 100A.
Do Arduino không thể đo được nguồn có giá trị âm nên chúng ta phải cộng thêm 2.5V vào điện áp ngõ ra của cảm biến Hall.
Như vậy, ta cần tính tốn lựa chọn các thơng số cho mạch : Đầu tiên ta tính được dịng điện áp đỉnh lớn nhất ngõ vào :
Iin = IRMS. √2 = 100. √2 = 141,4 (A) (3.1) Điện áp đỉnh đầu ra của cảm biến biến dịng có tỉ lệ 2000 vịng là :
I = Iin = 0,0707 (A) (3.2)
2000
Do Arduino chỉ có thể đo được điện áp (0-5V) nên ta cần chuyển đổi từ giá trị dịng điện sang điện áp thơng qua một điện trở. Từ áp đo được trên điện trở ta sẽ tính tốn để tìm được dịng điện ngõ vào của cảm biến biến dịng Hall.
Hình 3. 4: Đo dịng điện thơng qua điện áp trên 2 đầu điện trở.
Điện áp tối đa đặt trên 2 đầu điện trở R (burden) chỉ là 2,5V (do Arduino chỉ đo được điện áp 1 chiều có giá trị từ 0- 5V). Vậy nên giá trị điện trở R (burden) tính tốn lý tưởng sẽ là:
R = Uburden =
2,5
= 35.4(Ω) (3.3)
Iout 0.0707
Nhưng do giá trị điện trở trên khơng có trong các giá trị điện trở được sản xuất nên ta chỉ có thể chọn các điện trở gần đó là 33Ω và 39Ω. Và nên lựa chọn điện trở có giá trị nhỏ hơn là 33Ω, hoặc sử dụng 2 điện trở có tổng gần với điện trở có giá trị mong muốn.
Đồng thời do phải sử dụng nguồn tham chiếu từ Arduino, và Arduino không thể đo được điện áp giá trị âm nên ta phải sử dụng thêm 2 điện trở R1 và R2 có giá trị bằng nhau có tác dụng phân áp tạo nguồn 2.5V, để nâng điện áp lên 0-5V (vào Arduino).
Do 2 điện trở R1 và R2 chỉ có tác dụng phân áp nên ta lựa chọn giá trị của nó từ khoảng 10kΩ - 470kΩ. Chúng tôi đề xuất sử dụng điện trở 10kΩ là phù hợp.
Hình 3. 5: Thêm 2 điện trở phân áp.
Cuối cùng là tụ C1 có chức năng giảm nhiễu ngõ ra tín hiệu khi tiến hành đo và cũng có tác dụng bypass, có nghĩa là cung cấp một hướng khác cho dòng điện bỏ qua điện trở R2. Nhà sản xuất cũng đưa ra một số báo cáo về việc sử dụng hoặc khơng sử dụng tụ C1. Và nó có giá trị lựa chọn là 10µF.
Hình 3. 6: Biểu đồ ngõ ra khi chưa được gắn tụ C1.
Tụ c1 có tác dụng làm giảm nhiễu cũng như làm giảm sử khác biệt giữa các nguồn cung cấp.
Hình 3. 7: Ngõ ra sau khi gắn tụ C1.
Tính sai số phép đo của thiết bị cảnh báo:
Dựa trên sai số giữa phép đo bằng đồng hồ đo và các thiết bị cảnh báo ta có thể tìm ra các nguyên nhân.
Sai số của cảm biến biến dòng Hall 100A YHDC (SCT-013).
Sai số của mạch đo, mạch chuển đổi từ dòng xoay chiều sang áp để đưa vào vi điều khiển arduino.
Sai số bởi một số nguyên nhân khác Tiến hành tính tốn sai số:
Sai số của cảm biến biến dịng là: ±3%. Tính tốn sai số mạch đo:
Điện trở sử dụng là 33Ω±10% nhưng theo phép tính tốn là phải sử dụng điện trở có giá trị là 35,4 Ω theo công thức số 3.3 trang 48.
Suy ra điện áp tính tốn: �íℎ á = 35,4 ∗ đ
Điện áp đo:�đ = 33 ∗ �đ Mà �ựℎự� �ế = �đ ± 3%
Tính tốn điện trở phân áp thực tế khi sử dụng nguồn 5V của Arduino bị sai số do trở 10kΩ sử dụng tương tự như trên gây ảnh hưởng đến phép đo theo công thức (3.3).
50
CHƯƠNG 3. TÍNH TỐN VÀ THIẾT KẾ
Một số chú ý khi sử dụng Hall 100A yhdc:
Luôn luôn kết nối cảm biến trước khi kẹp nó với dây dẫn cần đo, và luôn tháo cảm biến trước khi ngắt kết nối.
Không bao giờ được làm hở mạch cảm biến khi nó đang kẹp trên một dây dẫn
hiện hành. Nó sẽ rất dễ dàng làm ngắn mạch cảm biến.
Không bao giờ cố gắng kẹp nó với dây dẫn trần, vì như vậy sẽ khiến cho cảm biến bị sốc điện. Khơng chỉ thể cịn 2 yếu tố bị ảnh hưởng đó là độ bên của cảm biến và độ an toàn lớp cách điện của cảm biến.
Hướng dẫn cách sử dụng Hall 100A yhdc:
Hình 3. 8: Cách kết nối đúng của Hall 100A YHDC với đường dây.
Để đo được giá trị dòng điện từ cảm biến dòng Hall kẹp, phải kẹp cảm biến vào 1 dây đơn (như hình bên trái). Nếu đặt như hình bên phải thì dịng đo được sẽ bằng khơng do được tính bằng tổng dịng của 2 hướng đối nghịch.
Tính trở hạn dịng cho led đơn với điện áp ngõ ra của Arduino Nano là 5V: Led đơn hoạt động ở mức dòng điện từ 10 – 20mA, điện áp từ 1.8 – 3V. Chọn điện áp hoạt động cho led là 3V và dịng là 10mA thì:
Giá trị điện trở hạn dịng được tính như sau: Rℎℎℎℎℎℎℎℎℎℎℎℎℎℎℎ = ��� �− Uled = 5−
3 = 320(Ω) (3.4)
Iled
Sơ đồ ngun lý khối đo dịng điện:
10x10−3
CHƯƠNG 3. TÍNH TỐN VÀ THIẾT KẾ
68
Cảm biến điện áp
ZMPT101BKhối xử lý dữ liệu từ cảm biến (đọc và truyền dữ liệu).
Hình 3. 9: Sơ đồ nguyên lý khối đo dòng điện.
Thiết kế đo áp
Thiết bị đo được sử dụng là module cảm biến điện áp ZMPT101B.
Từ điện áp đo được qua mạch điện chuyển đổi ta thu được giá trị thực của điện áp trên đường dây.
Sơ đồ khối nguyên lý:
Hình 3. 10: Sơ đồ khối của khối đo điện áp.
Module cảm biến điện áp ZMPT101B là một cảm biến điện áp được làm từ
biến thế điện áp ZMPT101B. Module có độ chính xác cao, tính nhất qn tốt cho đo điện áp, cơng suất. Module rất đơn giản để sử dụng và đi kèm với một chiết áp để điều chỉnh đầu ra ADC.
Hình 3. 11: Module cảm biến điện áp.
Mạch cảm biến điện áp được hiển thị trong hình (4.3) được thiết kế để đo điện áp AC tối đa nhỏ hơn 250 VAC dựa trên các thành phần trong hình (4.2). Mạch này sử dụng bộ suy hao vi sai sau 230 VACrms với dung sai nhỏ hơn 5 VACpp. Các dạng sóng đầu ra (5 VAC) của mạch là đi trên điện áp DC như một offset (khoảng 2,5 V) và biên độ có thể được điều chỉnh bởi chiết áp nhưng không lớn hơn 5 V. Đầu ra của mạch được kết nối trực tiếp với chân ADC của bộ vi điều khiển Arduino.
Hình 3. 12: Mạch cảm biến điện áp - băng thông (~ 50 Hz).
Thiết kế mạch cảm biến điện áp trong hình 4.3 dựa trên ba giai đoạn:
Bộ biến dòng ZMPT101B với tải trở kháng thấp (R2). Các ZMPT101B là một biến áp dịng kích thước nhỏ với sự tính nhất quán và cách ly tốt cho các phép đo điện áp. Các đặc tính đầu ra được thể hiện trong hình (4.4). Hai đường cong hiển thị trong hình (4.4) phụ thuộc vào điện trở đầu vào của ZMPT101B, Hình (4.4a) cho thấy mối quan hệ giữa dòng đầu vào RMS và điện áp đầu ra RMS và Hình (4.4b) cho thấy mối quan hệ giữa dịng đầu vào RMS và lỗi góc pha của tín hiệu đầu ra (điện trở đầu vào R1 được kết nối theo chuỗi với biến áp).
53
CHƯƠNG 3. TÍNH TỐN VÀ THIẾT KẾ
a. Điện áp đầu ra.
b. Góc pha.
Hình 3. 13: Đặc tính đầu ra của ZMPT101B.
Sơ đồ nguyên lý đo điện áp:
Hình 3. 14: Sơ đồ nguyên lý khối đo điện áp.
KHỐI ĐẶT TRƯỚC KHỐI XỬ LÝ TRUNG TÂM WEB SERVER KHỐI LƯU TRỮ KHỐI HIỂN THỊ KHỐI ĐO
b. Thiết kế bộ xử lý trung tâm
Với vai trò liên kết với nhiều module ngoại vi và phải có khả năng xử lý đủ nhanh để thực hiện luân phiên các tác vụ trong thời gian ngắn. Từ nhiệm vụ thu thập các dữ liệu từ các khối đo gửi lên cho đến lưu dữ liệu và giao tiếp với Internet để mang dữ liệu gửi lên mạng Internet.
Do vậy nhóm đã quyết định sử dụng Module NodeMCU ESP8266.
Sơ đồ khối của bộ xử lý trung tâm:
Hình 3. 15: Sơ đồ khối của khối xử lý trung tâm.
Chức năng: Bộ xử lý trung tâm có nhiệm vụ nhận dữ liệu từ khối đo cảm biến
sau đó đưa ra hiển thị trên LCD đồng thời gửi dữ liệu lên web server thơng qua wifi esp8266. Khi mất wifi thì dữ liệu nhận từ khối đo sẽ được lưu vào khối lữu trữ đến khi có wifi trở lại.
Khối hiển thị là LCD 20x4.
Khối lưu trữ là EEprom 24LC512. Khối đặt trước là nút nhấn.
Để thực hiện việc giao tiếp giữa các khối với nhau thì cần có khối xử lý trung tâm đồng thời khối xử lý trung tâm còn đảm nhiệm cả gửi dữ liệu lên Internet. Trong hệ thống này đã chọn NodeMCU 1.0 được phát triển từ ESP8266 12E làm bộ xử lý trung tâm chủ đạo. Với nhiều ưu điểm: có thể lập trình trực tiếp trên chip ESP8266 12E đảm bảo tiết kiệm năng lượng và cực kỳ nhỏ gọn, không cần phải sử dụng thêm một bộ vi xử
CHƯƠNG 3. TÍNH TỐN VÀ THIẾT KẾ
72
lý nào. Thay vì, vừa sử dụng vi điều khiển vừa phải thêm module thu phát sóng WiFi thì ở đây chỉ cần dùng NodeMCU đã có thể sử dụng đầy đủ các chức năng.
Đầu tiên là giao tiếp với các khối hiển thị, thời gian thực và EEPROM, đặc điểm chung của hai khối này là đều giao tiếp theo chuẩn I2C, tất cả các bus SCL và SDA của các khối đều nối chung với nhau. Nên mỗi khối phải có một địa chỉ riêng biệt khơng được trùng nhau để cho bộ xử lý trung tâm có thể nhận diện được đó là khối nào trong mạch. Nên trong mỗi khỗi đã có kết nối phần cứng để thiết lập địa chỉ khác nhau : khối hiển thị LCD có địa chỉ I2C là 0x3F là địa chỉ của module chuyển đổi giao tiếp I2C sang giao tiếp LCD, khối lưu trữ EEPROM có địa chỉ 0x51, khối thời gian thực có địa chỉ là 0x68.
Kế tiếp là khối đo được liên kết với nhau thông qua kiểu truyền UART. Dưới sự truyền nhận giữa arduino và ESP8266.
c. Tính tốn khối đồng hồ thời gian thực DS1307
Dưới đây là phần tính tốn mạch đồng hồ thời gian thực DS1307:
Dựa theo các cơng thức tính tốn giá trị điện trở kéo lên cho 2 chân SCL và SDA như trên phần tính tốn mạch lưu trữ dữ liệu dùng EEPROM bên dưới, suy ra:
R (max) = tr
(0.8473xCb) 1000∗10−9 0.8473∗400∗10−12
tr: Rise time của tín hiệu cả trên SDA và SCL (ns). Cb: dung kháng trên mỗi BUS (Pf).
=
2.95(KΩ)
(3.5)
Rp(max): điện trở lớn nhất dùng để kéo 2 chân SDA và SCL lên mức High. Trên thực tế giá trị điện trở thực sẽ nhỏ hơn giá trị lý thuyết của nó. Vì vậy giá trị điện trở kéo lên cho 2 chân SCL và SDA được chọn là 3.3 kohm.
Tính tốn cho nguồn pin ni đồng hồ: Theo datasheet của nhà sản xuất, ngõ vào VBAT của DS1307 phải đảm bảo từ 2.0 V đến 3.5 V, vì vậy sử việc sử dụng pin 3.3V trong module là thích hợp.
p
Hai chân SCL và SDA cùng kết nối với SCL và SDA của khối xử lý trung tâm (NodeMCU).
Lưu ý: Trong giao tiếp I2C nhiều thiết bị thì 2 chân SCL và SDA của tất cả các thiết bị giao tiếp I2C trên cùng một bus đều nối chung với nhau nên chỉ cần một điện trở kéo lên cho một dây SCL chung và SDA chung. Vì thế, trong module thời gian thực DS1307 đã có 2 điện trở kéo lên rồi nên các module hay thiết bị khác trên bus này không cần điện trở kéo lên nữa.
d. Thiết kế khối hiển thị
Với chức năng là hiển thị các thông tin cần thiết của hệ thống với người dùng, nhằm cung cấp các thông tin trực quan và dễ dàng quan sát cần phải có màn hình giao tiếp.
Vậy nên, nhóm đã lựa chọn LCD 20x4 để hiển thị các thông tin như các giá trị của dịng điện, điện áp, cơng suất và điện năng tiêu thụ của hộ gia đình.
Để giao tiếp LCD 20x4 với vi điều khiển trung tâm, nhằm tiết kiệm các cổng vào ra cho vi điều khiển bởi cần vi điều khiển trung tâm thực hiện nhiều chức năng nên phải sử dụng thêm module chuyển giao tiếp trực tiếp sử dụng 6 chân sang giao tiếp I2C chỉ sử dụng 2 chân là module giao tiếp I2C PCF8574.
Sơ đồ nguyên lý kết nối:
Trong đề tài có sử dụng nhiều module sử dụng chung dây Bus-I2C vậy nên cần định địa chỉ cho từng module.
Các chân A2, A1, A0 để định địa chỉ cho IC khối hiển thị là 0x37.
Đồng thời do mạch có sử dụng điện trở kéo lên cho 2 dây SDA, SCL dùng chung cho các module. Vậy nên khi có xung từ SCL, và nhận đúng địa chỉ thì sẽ tiến hành điều khiển thanh ghi dịch để chọn ngõ ra từ P0- P7 và đồng thời thực hiện các lệnh ghi dữ liệu từ ngõ vào.
e. Thiết kế khối lưu trữ dữ liệu khi mất kết nối với Internet
Để tránh trường hợp không bị mất những dữ liệu quan trọng (như lúc xảy ra sự cố quá dòng hay sụt áp trên đường dây) khi bộ xử lý trung tâm bị mất kết nối với Internet thì bộ xử lý trung tâm phải có khả năng lưu trữ lại các dữ liệu quan trọng trong quá trình hoạt động và đảm bảo dữ liệu lưu trữ lại được gửi lên Internet ngay khi có kết nối lại. Vì vậy, trong bộ xử lý trung tâm được thiết kế thêm mạch lưu trữ dữ liệu sử dụng IC chính là EEPROM. Mạch được thiết kế như sau:
Nếu hệ thống bị mất kết nối với Internet trong thời gian dài đòi hỏi dung lượng bộ nhớ của Eeprom phải đủ lớn để đáp ứng. Khoảng thời gian giữa 2 lần lưu trữ dữ liệu liên tiếp vào Eeprom nếu mất kết nối Internet trên 30s, mỗi lần lưu 12 byte dữ liệu, và thời gian tối đa yêu cầu sửa chữa hệ thống là khơng q 8 giờ. Vì vậy, số lần lưu dữ liệu
liên tục trong 8 giờ: 8∗ 3600
30 = 960 ầ . Mỗi lần lưu 12 byte nên:
Dung lượng bộ nhớ tối thiểu là: 960*12 = 11512 bytes = 11,25 Kbytes.
Vì vậy, trong mạch sử dụng IC 24LC512 có dung lượng bộ nhớ là 64KB giao tiếp với ESP8266-12E NodeMCU thông qua chuẩn giao tiếp I2C với địa chỉ được cài đặt phần cứng là 0x51 (A1, A2 nối GND, A0 nối VCC).
Hình 3. 17: Sơ đồ chân IC 24LC512.
Các chân A0, A1, A2, WP (Write Protect) là các chân điều khiển bằng mức logic 0 hoặc 1. Trong đó chân WP nếu nối VCC (mức cao) thì khơng cho phép hoạt động ghi dữ liệu, ngược lại nối chân này với GND (mức thấp) thì cho phép ghi dữ liệu, cịn hoạt động đọc dữ liệu vẫn diễn bình thường khơng bị ảnh hưởng. Muốn dữ liệu được ghi vào thì chỉ cần nối chân này xuống GND. Cịn các chân A0, A1, A2 dùng để đặt