● ★ HA작업) DIY 가정용 에너지 모니터를 HAOS 에 연결 구동 준비2 및 HW-670 모듈 정보
본문
● ★ HA작업) DIY 가정용 에너지 모니터를 HAOS 에 연결 구동 준비2 및 HW-670 모듈 정보
★ HA작업) DIY 가정용 에너지 모니터를 HAOS 에 연결 구동 준비: ESP32 + Clamp SCT-013-000 센서
https://11q.kr/www/bbs/board.php?bo_table=co3&wr_id=1201#c_2557
정보와
https://m.blog.naver.com/dial2004/223529495084?recommendCode=2&recommendTrackingCode=2
추가더 정보 활용하여 회로 구성 정보 입니다
150A 정도의 AC 전류를 아두이노로 측정하고자 하여 검색하여 구현해 보았다.
KCT-24 150A로 검색하여 구입해보니
150A/40mA 라고 표기되어 있었다.
1차 1 turns 150A : 2차 40mA = 3750 tuns 인 셈이다.
40mA 는 rms 이므로
peak 치는 x1.414= 56.56mA
Peak-to-peak = 113.12mA
5V 이내 값으로 만들기 위하여
burden 저항을 40 ohm으로 만듬.
4.53V p-p
emon1.current(A1,93.8) ;
교정값 계산하기
150A / (0.040 (40mA) x 40 ohm) =
https://docs.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino.html
============= 150A / 40mA 변경 100A / 100mA ===========
100A / 100mA 규격으로 150A / 40mA의 예제를 활용하여 회로와 측정을 정리하면 다음과 같습니다.
1. 기본 설정:
- CT 클램프 사양: 100A / 100mA
- 1차 전류(입력): 100A
- 2차 전류(출력): 100mA (1차 100A가 흐를 때 2차에서 100mA가 발생)
- CT 비율: 1000 turns
2. 2차 전류 특성:
- RMS 전류: 100mA
- 피크 전류: 100mA×2=141.4mA100mA times sqrt{2} = 141.4mA100mA×2=141.4mA
- 피크-투-피크 전류: 141.4mA×2=282.8mA141.4mA times 2 = 282.8mA141.4mA×2=282.8mA
3. 부하 저항 선택 (Burden Resistor):
- 목표 출력 전압이 5V 피크-투-피크 내에 있어야 한다고 가정합니다.
- 필요 전압: 5V (피크-투-피크)
- 계산:
- > v=5v , I p-p = 282.8mA
- > R = V / I p-p
- > R부하=V출력/(i피크-투-피크)=5V/(282.8mA)≈17.7Ω
- 편의를 위해 18Ω 또는 20Ω로 선택할 수 있습니다.
4. 예제와 비교한 요약:
- 150A / 40mA 사례: 부하 저항 40Ω, 피크-투-피크 전류 113.12mA로 4.53V p-p 신호를 생성.
- 100A / 100mA 설정: 부하 저항 약 18Ω 사용 시 5V p-p 신호를 생성.
5. 교정 값 계산:
교정값은 입력 전류와 부하 저항 값에 따라 계산되며, OpenEnergyMonitor에서 사용하는 emon1.current 함수를 기반으로 설정할 수 있습니다.
- 교정값은 다음과 같이 계산됩니다:
- > 교정값=100A/(0.1A×18Ω)=100/(1.8)≈55.56
이를 emon1.current(A1, 55.56);으로 적용할 수 있습니다.
이 설정은 100A / 100mA의 CT 클램프를 사용한 전류 측정에 적합하며, 부하 저항과 교정값을 통해 아두이노와 호환되는 전압 신호를 출력하도록 구성됩니다.
===================
https://docs.openenergymonitor.org/electricity-monitoring/ct-sensors/interface-with-arduino.html
https://docs.openenergymonitor.org/emontx3/technical.html
제품 분석 내용입니다
정보는 아래 내용
CT 센서 - Arduino와의 인터페이싱
CT 센서를 아두이노에 연결하려면 CT 센서의 출력 신호를 아두이노 아날로그 입력의 입력 요구 사항,
즉 0V와 ADC 기준 전압 사이의 양전압을 충족하도록 조절해야 합니다 .
참고: 이 페이지에서는 5V에서 작동하는 Arduino 보드와 3.3V에서 작동하는 EmonTx의 예를 보여줍니다.
설정에 맞는 올바른 공급 전압과 바이어스 전압을 계산에 사용해야 합니다.
이론적으로 동일한 결과를 얻는 두 가지 회로 구성이 있습니다.
첫 번째는 emonTx V2와 emonPi에서 사용되었습니다.
많은 스위치 모드 전원 공급 장치에는 고전압 DC 정류 AC 주 전원의 음극과 2차 측 출력의 음극 사이에
연결된 커패시터가 포함되어 있어 1차 스위칭 파형의 전자기 간섭을 줄이는 것으로 지적되었습니다.
이는 아날로그 입력에 노이즈를 도입하는 효과가 있습니다.
emonTx4와 emonPi2에서 사용되는 두 번째 구성은 이 문제를 피합니다.
회로는 두 가지 주요 부분으로 구성되며, 그 기능은 c.t의 전류를 올바른 진폭의 전압으로 바꾸고,
이 전압을 ADC 입력 범위의 중앙에 위치시키는 것입니다.
표시된 전압과 전류는 5V Arduino에 대한 것이며,
아날로그 입력의 범위는 0~5V이고 사인파의 경우 약 1.6V rms입니다.
emonTx V2 & V3과 emonPi의 경우 아날로그 입력 범위는 0~3.3V이므로
중간 전압은 1.65V이고 아날로그 입력 전압은 0~3.3V(사인파의 경우 약 1V rms) 사이에서 변동합니다.
emonTx4와 emonPi2의 경우 아날로그 입력 범위는 0~1V이고
부담이 필요 없는 0.333V rms 출력 전류 변압기와 함께 사용하도록 설계되었습니다.
따라서 이 저항은 생략되었습니다.
emonTx V2 및 emonPi에서 사용되는 구성
이 구성에서 ct의 전류는 ct 자체와 부담 저항기를 포함하는 루프를 따라 흐르며,
부담 저항기는 부담에 전압을 발생시킵니다. (참고: 전압 출력 ct에서 부담은 ct 케이싱 내부에 있습니다.)
두 개의 바이어스 저항기는 공급 전압을 둘로 나누고 부담의 중간 지점과 한쪽 끝은 접지 위 2.5V에 위치합니다.
커패시터는 ac에 대한 거의 단락 회로를 제공하여 중간 지점 전압을 단단히 고정하고
ac 구성 요소가 거의 또는 전혀 중첩되지 않습니다.
부담의 다른 쪽 끝은 아날로그 입력에 직접 연결되므로 아날로그 입력은 바이어스 전압에 중첩된 부담 전압을 봅니다.
여기서도 ct의 전류는 ct 자체와 부담 저항기를 구성하는 루프를 따라 흐르고,
따라서 부담에 전압이 발생합니다. (참고: 전압 출력 ct에서 부담은 ct 케이싱 내부에 있습니다.)
이번에는 ct와 부담의 한쪽 끝이 접지에 단단히 연결됩니다.
emonTx4 및 emonPi2에서 사용되는 구성
다시 말해서, 두 개의 바이어스 저항은 공급 전압을 둘로 나누므로 중간 지점은 접지 위 2.5V에 위치하며
이 지점은 아날로그 입력에 연결됩니다.
차이점은 커패시터가 두 섹션을 연결하는 ac 경로를 제공하는 동시에 dc 바이어스가 ct에 도달하는 것을 차단한다는 것입니다.
바이어스 저항은 ct에 매우 작은 부하를 주지만, 이 효과는 교정에서 보상됩니다.
부담 전압은 바이어스 전압에 중첩되므로 아날로그 입력은 표시된 대로 2.5V 중간 지점 위아래로 변동하는 부담 전압을 봅니다.
emonTx4에서는 출력 전압이 공칭 0.333V rms인 전압 출력 ct가 사용되므로 부담 저항이 없고
바이어스 저항은 서로 다르며 바이어스 전압은 0.512V입니다.
적합한 부담 저항 크기 계산
CT 센서가 YHDC SCT-013-000 과 같은 "전류 출력" 유형인 경우 ,
전류 신호는 부담 저항을 사용하여 전압 신호로 변환해야 합니다.
전압 출력 CT인 경우 부담 저항은 CT에 내장되어 있으므로 이 단계를 건너뛰고 부담 저항을 생략할 수 있습니다.
a) 측정하려는 현재 범위를 선택하세요
YHDC SCT-013-000 CT의 전류 범위는 0~100A입니다. 이 예에서 최대 전류를 100A로 선택해 보겠습니다.
b) √2를 곱하여 최대 RMS 전류를 피크 전류로 변환합니다.
Primary peak-current = RMS current × √2 = 100 A × 1.414 = 141.4A
Primary peak-current = RMS current × √2 = 100 A × 1.414 = 141.4A
c) 피크 전류를 CT의 권선 수로 나누어 2차 코일의 피크 전류를 구합니다.
YHDC SCT-013-000 CT는 2000턴이므로 2차 피크 전류는 다음과 같습니다.
Secondary peak-current = Primary peak-current / no. of turns = 141.4 A / 2000 = 0.0707A
Secondary peak-current = Primary peak-current / no. of turns = 141.4 A / 2000 = 0.0707A
d) 측정 분해능을 최대화하려면 피크 전류에서 부담 저항의 전압이 Arduino 아날로그 기준 전압의 절반과 같아야 합니다. (AREF / 2)
5V에서 작동하는 Arduino를 사용하는 경우: AREF / 2는 2.5V가 됩니다. 따라서 이상적인 부담 저항은 다음과 같습니다.
Ideal burden resistance = (AREF/2) / Secondary peak-current = 2.5 V / 0.0707 A = 35.4 Ω
Ideal burden resistance = (AREF/2) / Secondary peak-current = 2.5 V / 0.0707 A = 35.4 Ω
35Ω는 일반적인 저항 값이 아닙니다. 35Ω의 양쪽에 가장 가까운 값은 39Ω와 33Ω입니다.
항상 더 작은 값을 선택해야 하며, 그렇지 않으면 최대 부하 전류가 AREF보다 높은 전압을 생성합니다.
33Ω ±1% 부담을 권장합니다. 어떤 경우에는 직렬로 2개의 저항을 사용하면 이상적인 부담 값에 더 가까워집니다.
값이 이상에서 멀어질수록 정확도가 낮아집니다.
위와 동일한 계산을 더 간략하게 표현하면 다음과 같습니다.
Burden Resistor (ohms) = (AREF * CT TURNS) / (2√2 * max primary current)
Burden Resistor (ohms) = (AREF * CT TURNS) / (2√2 * max primary current)
OpenEnergyMonitor 에너지 모니터링 하드웨어 에 대한 부담 저항 크기 조정 .
emonTx V3 ( 가이드 참조 )
emonTx V3는 3.3V 레귤레이터를 사용하므로 V CC 와 따라서 AREF는 배터리 전압에 관계없이 항상 3.3V가 됩니다.
표준 emonTx V3는 CT 1, 2 및 3에 22Ω 버든 저항을 사용하고 고감도 채널인 CT4에 120Ω 저항을 사용합니다.
emonTx V3 기술 페이지를 참조하세요:
https://docs.openenergymonitor.org/emontx3/technical.html .
emonPi ( 가이드 참조 )
EmonPi에는 2개의 CT 채널이 있으며 둘 다 22Ω 부담 저항을 가지고 있습니다.
에몬Tx V2
배터리로 구동되는 emonTx V2를 사용하는 경우
AREF는 3.3V에서 시작하여 배터리 전압이 2.7V로 떨어지면서 천천히 감소합니다.
따라서 최소 전압에 대한 이상적인 부담 저항은 다음과 같습니다.
Ideal burden resistance = (AREF/2) / Secondary peak-current = 1.35V / 0.0707A = 19.1 Ω
Ideal burden resistance = (AREF/2) / Secondary peak-current = 1.35V / 0.0707A = 19.1 Ω
19Ω는 일반적인 값이 아닙니다. 18Ω 또는 22Ω 중에서 선택할 수 있습니다.
18Ω ±1% 부담을 사용하는 것이 좋습니다.
부담 저항 크기, CT 권선, 최대 Irms를 계산하는 도구입니다
(이 도구를 만들고 공유해 준 Tyler Adkisson에게 감사드립니다).
( 참고 : 이 도구는 최대 CT 전력 출력을 고려하지 않습니다.
최대 출력을 초과하면 포화 및 왜곡이 발생합니다.
또한 부품 허용 오차도 고려하지 않으므로 부담 저항 값을 몇 퍼센트(~5) 정도 줄여서 약간의 "헤드룸"을 허용해야 합니다.
부품 허용 오차에 대한 자세한 내용은 ACAC 부품 허용 오차에서 확인할 수 있습니다. )
DC 바이어스 추가
CT 와이어 중 하나를 접지에 연결하고 접지에 대한 두 번째 와이어의 전압을 측정하면 전압은 접지에 대해 양에서 음으로 변할 것입니다.
그러나 Arduino 아날로그 입력에는 양 전압이 필요합니다.
접지에 연결한 CT 리드를 공급 전압의 절반인 소스에 연결하면 CT 출력 전압이 이제 2.5V 위아래로 변동하여 양전압을 유지합니다.
위의 회로도에서 저항기 R1 및 R2는 2.5V 소스(emonTx의 경우 1.65V)를 제공하는 전압 분배기입니다.
커패시터 C1은 리액턴스가 낮고 ( 수백 옴) 교류 전류가 저항기를 우회할 수 있는 경로를 제공합니다.
10μF 값이 적합합니다.
저항기 R1 및 R2에 적합한 값 선택
저항이 높을수록 정지 에너지 소비가 낮아집니다.
우리는 주전원 모니터에 10kΩ 저항기를 사용합니다.
emonTx는 수개월 동안 배터리로 작동하도록 설계되었기 때문에 전력 소비를 최소로 유지하기 위해 470kΩ 저항기를 사용합니다.
아두이노 스케치
위의 회로를 사용하여 대략적인 피상 전력을 나타내기 위해 고정된 RMS 전압(예: 240V)을 가정하여
RMS 전류를 측정하려면 이 Arduino 스케치를 사용하세요. Arduino 스케치 - 전류만
추가정보
별도 제품
===============
HW-670 모듈 정보
-----------------
HW-670 모듈은 RS485 통신을 지원하는 장치로, 이를 ESP32와 연결하여 ESPHome을 통해 제어할 수 있습니다.
이를 위해 HW-670 모듈과 ESP32 간의 물리적 연결과 소프트웨어 설정
https://chatgpt.com/c/67339063-d9e4-8007-b9bb-411c03468290
1. 하드웨어 연결:
HW-670 모듈의 RS485 통신선을 ESP32의 UART 핀에 연결합니다. 일반적으로 다음과 같이 연결합니다:
- HW-670의 A(+) → ESP32의 RX
- HW-670의 B(-) → ESP32의 TX
이때, 전원 공급과 접지 연결도 정확하게 이루어져야 합니다.
2. ESPHome 설정:
ESPHome에서 HW-670 모듈과의 통신을 위해 Modbus RTU 통신을 설정해야 합니다.
아래는 예시 YAML 구성입니다:
yaml
코드 복사
uart:
id: uart_bus
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
modbus:
id: modbus1
uart_id: uart_bus
sensor:
- platform: modbus_controller
modbus_id: modbus1
id: hw670_sensor
name: "HW-670 Sensor"
address: 0x01
register_type: holding
value_type: U_WORD
register: 0x0000
unit_of_measurement: "units"
accuracy_decimals: 2
위 구성에서 tx_pin
과 rx_pin
은 ESP32의 실제 연결된 핀 번호로 변경해야 합니다. 또한, HW-670 모듈의 Modbus 주소와 레지스터 정보는 제품 매뉴얼을 참고하여 정확하게 설정해야 합니다.
3. 주의사항:
- HW-670 모듈의 통신 프로토콜과 레지스터 맵은 제품 매뉴얼을 통해 확인해야 합니다.
- Modbus 통신 설정 시, 통신 속도(baud rate), 패리티, 정지 비트 등 통신 파라미터가 일치해야 합니다.
- 초기 설정 후, ESPHome의 로그를 통해 통신 상태를 확인하고, 필요에 따라 설정을 조정해야 합니다.
이러한 과정을 통해 HW-670 모듈을 ESP32와 연결하고, ESPHome을 통해 제어할 수 있습니다. 추가적인 정보나 문제 해결을 위해 ESPHome 공식 문서나 관련 커뮤니티를 참고하시기 바랍니다.
관련자료
-
링크
-
다음