일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 펌웨어
- 플라스크
- 파이썬
- 홈어시스턴트
- 급속충전기
- 안드로이드
- thread
- flask
- IOT Core
- OCPP
- 디자인패턴
- lambda
- 라즈베리파이
- 충전기
- 완속충전기
- STM32
- 서버리스
- raspberry
- esp8266
- 에버온
- everon
- Android
- 전기차충전
- 전기차충전기
- dynamodb
- YMODEM
- 보안
- AWS
- 전기차
- homeassistant
- Today
- Total
Louie NRT Story
[나인와트] ECC Platform Report 본문
1. ECC Hardware
1.1 CPi-A070WR(제조사: 컴파일 테크놀로지)
1) Product
제품의 제조사인 컴파일 테크놀로지에서는 Raspberry Pi Zero와 같은 가격이 비교적 저렴한 MCU에 OS를 올려 임베디드 장비를 판매하고 있다. 이러한 장비들은 대부분 산업용 설비를 제어하거나 모니터링 하는 곳에 쓰이며, 그에 따른 UI를 사용자가 직접개발 하여 사용할 수 있도록 서비스를 운영하고 있다.
이에 B2B 사업을 진행하고 있으며 S/W 회사에서는 H/W에 대한 부담을 줄이고 개발된 S/W를 H/W에 올려 직접판매 할 수 있도록 되어 있다. 또한 H/W에 회사의 로고와 재포장하여 얼마든지 판매가 가능하다는 답변을 컴파일 테크놀로지로부터 받을 수 있었다. 단, H/W의 제조사가 컴파일 테크놀로지 라는 것을 알 수 있도록 되어 있는 스티커를 제거하지는 말라는 당부의 내용도 함께 알려주었다.
2) Design
3) Spec
분류 | 내용 |
CPU | 1.2GHz 64 비트 쿼드코어 ARM 프로세서 |
Display | 7인치 LCD (800×480) 감압식 터치패드 (저항막 방식) |
Memory | 1기가 RAM |
PIN | 22 GPIO (ESD 보호회로 포함), 40핀 헤더소켓 |
Battery | RTC와 배터리내장 |
Power | DC12~24V 입력 |
Interface | 3개의 USB 포트 (USB2.0), 이더넷 포트 (10/100 Mbps) |
Serial Comm | RS232C 1개, RS485 1개, I2C 1개 |
Sound | 버저내장 (터치음 발생용) |
SDcard | OS가 설치된 8기가 microSD카드 기본 포함 |
Waterproof | 전면방수형(IP65에 준함) |
Weight | 0.50kg |
Power Consumption | 450mA @ 12V (5.4W) |
Operating temperature | 0°C ~ 70°C |
Temperature to withstand | -20°C ~ 80°C |
4) Certification
- IP65
- 방송통신기자재등(전자파적합성) 인증
1.2 Accessories
1) 24V 1A Adaptor
ECC의 본체가 될 CPi-A070WR에 전원을 입력하기 위해 컴파일 테크놀로지는 어댑터와 세트로 함께 판매하고 있다.
2) DC Adaptor Jack dongle
ECC의 본체가 될 CPi-A070WR와 어댑터를 연결해주는 Adaptor Jack을 따로 판매하고 있다.
3) N100mini
기본적으로 본체에서는 비교적 가격이 저렴한 MCU를 사용하기 때문에 자체 wifi 모듈을 가지고 있지 않다. 그렇기 때문에 외부에서 Wifi Dongle 모듈을 사용하여 Wireless로 통신을 할 수 있도록 하고 있다.
2. Software Architecture
2.1 Platform Software Architecture Design
ECC는 Device Management Service를 통하여 Devices의 G/W 역할을 하게 된다. 이 보고서에서는 Device를 삼인제어의 SI-DC747 최대수요전력관리 장치가 될 것이다. Web Service를 통하여 사용자는 Local 환경에서 디바이스 제어가 가능하며, ECC AWS를 통하여 AWS IoTCore Serivce를 이용할 수 있다. AWS IoTCore Service에 대해서는 아래에 자세히 설명하도록 하겠다. 그리고 AWS IoTCore를 통하여 외부의 3rd Party Platform이 ECC를 제어 및 모니터링 할 수 있도록 지원하고 있다. System Management Service는 ECC에 동작되어야 할 Process들의 PID 값을 받아 Process 죽더라도 다시 살려주는 역할을 한다. 더 나아가 H/W Rebooting 되더라도 다시 원상 복구가 될 수 있도록 지원한다.
2.2 ECC Software Architecture Layer
SoC(System on Chip) 위에 Raspberry Pi 재단에서 제공하는 Debian Linux 기반의 Raspberry Pi 전용 OS를 설치한 후 ECC에 필요한 Software 들을 모두 설치하고 ninewatt에서 개발한 Application들을 실행시킴으로써 ECC가 정상 운영될 수 있다.
Code의 Layout은 위의 사진과 같이 구성되어 있으며 Process들의 대한 흐름도 또는 자세한 설명은 High Level Design(HLD) 문서와 Low Level Design(LLD) 문서를 통해 작성할 예정이다.
2.3 AWS Software Architecture Design
AWS IoT Core는 Device가 쉽고 안전하게 Cloud Application 및 다른 Device와 상호 작용할 수 있도록 관리해주는 관리형 Cloud Service 이다. 이미 수십억 개의 Device와 수조 건의 메시지를 지원하며, 안전하고 안정적으로 메시지를 처리하여 AWS End-Point 및 다른 디바이스로 라우팅 할 수 있는 서비스이다.
ECC Platform 에서는 위의 내용을 근거하여 AWS IoT Core를 사용하였고 비용은 5 GB 당 1.2 USD 이기 때문에 Device 하나 기준으로 약 19년 동안 사용하면 1.2 USD 이기에 현재는 거의 무료로 사용할 수 있다고 할 수 있다.
AWS IoT Core는 Device와의 통신을 IoT MQTT protocol를 사용하고 있으며 받은 데이터들 또는 전달해주어야 하는 데이터들은 MQTT Broker가 Subscript 하고 있는 대상자에게 메시지를 전달하는 역할을 한다.
Device로부터 메시지가 올라올 경우 AWS IoT Core는 Rule의해 전달된 메시지에 따라 Lambda에 전달을 하고 Lambda는 ninewatt에서 개발한 내용에 따라 데이터들을 DynamoDB에 계속 저장을 하게 되며 3rd Party Platform에서는 저장된 데이터를 활용하여 사용자에게 제공할 수 있다. 그리고 3rd Party Platform으로써 제어 명령이 내려온다면 API Gateway를 통하여 Lambda에서 MQTT broker에게 메시지를 전달한다. MQTT broker는 해당 메시지를 Subscript 하는 Device에게 전달해줌으로써 Device는 메시지를 받고 제어 명령을 수행할 수 있다. 다시 말해서 AWS IoT Core를 통하여 원격에서 Device의 모니터링과 제어를 할 수 있다.
3. Display
3.1 Display될 화면 시안(예정)
1) White 테마
2) Black 테마
3.2 기능 설명
1) 현재 전력사용량과 목표 전력량
그래프를 통하여 현재 건물에서 사용하고 있는 전력사용량을 모니터링 할 수 있으며 기존에 설정해 놓은 목표 전력량에 다가왔는지 알 수 있다. 그리고 전력 사용량이 목표 전력량에 도달했을 때 최대수요전력 장치를 통하여 연결된 설비들을 제어함으로써 최대수요전력을 관리할 수 있다.
2) 자동/수동 모드
자동모드로 설정되었을 경우 ninewatt에서 원격으로 설정한 목표 전력량을 알 수 있으며 수동모드로 설정하면 원격으로 목표 전력량을 제어할 수 없다. 만약 자동모드로 변경하고자 한다면 ninewatt에서는 우선 모드를 자동모드로 변경해야만 목표 전력량을 자동으로 제어 내릴 수 있다.
3) 수동 설정
사용자가 목표 전력량을 변경하고자 하는 경우 우선 모드를 수동모드로 전환하고 "설정목표전력"을 누름으로써 숫자를 입력할 수 있다. 이때 원하는 설정 목표전력을 입력하고 "설정" 버튼을 누름으로 원하는 목표전력 값이 제어 된다.
4. ECC Platform Test
4.1 구성 환경
1) SI-DC747(제조사: 삼인제어)
사용자의 최대수요전력이 목표한 최대수요전력과 계약 전력을 넘기지 않도록 관리해주는 장치로써 기본요금을 절감할 수 있으며, 상황에 따라 목표 전력 값을 변경함으로 에너지 사용량을 줄임으로 전기요금을 절감시킬 수 있다.
2) 전력 계량기(제조사: 디엠파워)
3) Arduino를 활용한 전열기 제어 장치
Arduino는 Relay를 통하여 전열기로 가는 전력을 차단함으로써 전열기를 OFF 또는 ON 상태로 만들어서 만들 수 있다.
4) 환경 구성도
최대수요전력 장치로부터 전열기 OFF 명령이 내려오면 Arduino는 명령을 받고 전열기로 가는 전력을 차단함으로써 전열기를 OFF 상태로 만들 수 있다. 그렇게 소비전력을 낮춤으로 최대수요전력을 관리할 수 있도록 테스트 환경을 구성하였다.
4.2 최대수요전력 장치 동작 테스트
1) 제어 수동모드 동작 테스트
전열기에서 15분 기준 최대수요전력 388kW를 도달하는 것을 확인할 수 있다.
2) 제어 자동모드 동작 테스트
목표전력을 300kW로 설정해 놓은 상태에서 최대수요전력이 목표전력을 넘지 않도록 제어하는 것을 알 수 있음
4.3 ECC 제어 및 모니터링 테스트
1) 환경 구성도
2) AWS DynamoDB에 저장된 상태 데이터
3) ECC에 저장된 상태 데이터
4) ECC에 저장된 제어 데이터
5) Logging Backup
6) 테스트 결과
상태 모니터링: 성공률 95%로 상태정보를 저장한 것을 확인하였다. 100%가 될 수 없었던 이유를 확인해본 결과 상태정보 가져오는 과정에서 제어가 동시에 내려와서 중복으로 작업을 처리하다 보니 오류가 발생한 것을 확인할 수 있었고, 추후 Message Queue를 집어넣어 문제를 해결하겠다.
제어: 성공률 95%로 제어가 내려가는 것을 확인하였다. 100%가 될 수 없었던 이유를 확인해본 결과 상태정보 가져오는 과정에서 제어가 동시에 내려와서 중복으로 작업을 처리하다 보니 오류가 발생한 것을 확인할 수 있었고, 추후 Message Queue를 집어넣어 문제를 해결하겠다.
기간(3월25일 ~ 3월30일) 동안 운영한 결과 문제가 없이 모두 잘 동작 하였음을 확인하였다.
5. Test Field(후보)
5.1 김포 공장
1) 현장에 설치된 사진
5.2 인천 학교
1) i-Smart 정보를 가져올 수 있는 학교 리스트
2) 송일초등학교에 설치된 최대전력관리장치
3) 신송초등학교에 설치된 최대전력관리장치
'에너지' 카테고리의 다른 글
[Raspberry Pi] No GUI 부팅시 Wifi 자동 접속 및 SSH 열기 (0) | 2020.03.23 |
---|---|
[나인와트] 최대수요전력 관리 방법 (0) | 2020.03.19 |
[Energy-Monitor] Energy Monitoring DIY Example (0) | 2020.03.14 |
[Arduino] CT Sensor (0) | 2020.03.12 |
[제품리뷰] EnerTalk( EncoredTech ) (0) | 2020.03.11 |