이 저장소에는 WiFi 전원 컨트롤러의 소스 코드가 포함되어 있습니다.
하드웨어는 다음으로 구성됩니다(대부분의 구성 요소는 쉽게 대체할 수 있으며 일부는 저전류 애플리케이션에 비해 과도함).
Pattress 상자는 좋은 인클로저를 만듭니다.
Banggood.com에서 ACS712를 주문하는 경우 주의하세요. 20A 센서는 10A 등급의 터미널과 함께 배송되었습니다.
R1 및 R2는 ACS712의 5V 출력을 M0의 아날로그 입력에서 읽을 수 있는 3.3V 범위로 줄이기 위해 선택해야 합니다(예: R1은 R2 값의 약 2배여야 합니다).
Wifi101 및 ArduinoJson 라이브러리를 사용하여 Arduino를 사용하여 작성되었습니다. Wifi SSID와 비밀번호를 secrets.h에 추가해야 합니다. serverAddress
및 port
서버 주소로 업데이트되어야 합니다.
컨트롤러에서 판독값을 수집하여 MySQL 데이터베이스에 저장합니다. 클라이언트용 REST API도 제공합니다.
시작하려면:
.env
파일을 생성하고 MYSQL_USERNAME
, MYSQL_PASSWORD
및 MYSQL_DB
설정합니다.npm install
실행npm run dev
실행controllers
편집하여 변환 계수를 설정합니다. 변환 계수에 컨트롤러가 읽은 값을 곱하여 밀리암페어 단위의 판독값을 제공합니다. 서버가 변경 사항을 읽도록 데이터베이스 변경을 설정한 후 서버를 다시 시작합니다.예를 들어 20A ACS712 1A 전류를 사용하면 100mV의 출력이 발생합니다.
R1이 10kΩ이고 R2가 20kΩ인 경우 이는 전압 분배기에서 67mV( 20/(20+10)*100
) 출력으로 변환됩니다.
M0에 대한 입력은 12비트이므로 범위는 0~3.3v에 대해 0~4095입니다.
따라서 변환 계수는 다음과 같이 계산할 수 있습니다.
c = 3.3 / S * (R1 + R2) / R2 / 4096 * 1000
여기서 S
ACS712의 감도(Volts per Amp)입니다.
이 예에서는 다음과 같습니다.
c = 3.3 / 0.1 * (10 + 20) / 20 / 4096 * 1000
c = 12.85
서버의 REST API를 사용하여 일정을 설정하고 전력 사용량을 표시합니다.
시작하려면:
npm install
실행npm run serve
실행