>백엔드 개발 >파이썬 튜토리얼 >개발자가 EV 충전기가 모바일 앱과 통신할 수 있도록 하는 방법

개발자가 EV 충전기가 모바일 앱과 통신할 수 있도록 하는 방법

Susan Sarandon
Susan Sarandon원래의
2025-01-16 14:09:59510검색

전기 자동차(EV)의 세계에서 EV 운전자에게 가장 마법 같은 경험 중 하나는 모바일 앱에서 '시작'을 탭하고 충전기가 작동하는 모습을 지켜보는 것입니다.

그런데 어떻게 그런 마법이 일어날까요?

EV 충전기와 모바일 앱의 통신 방식에 대한 비하인드 스토리를 살펴보겠습니다.

게임 속 플레이어

  1. 모바일 앱: 사용자가 충전 세션 시작 또는 중지와 같은 작업을 시작하는 곳입니다.
  2. 백엔드 서버: 작업 뒤에 있는 두뇌로서 앱과 충전기 간의 통신을 조정합니다.
  3. EV 충전기: EV에 활력을 전달하는 하드웨어.

이러한 플레이어 간의 통신은 OCPP(Open Charge Point Protocol)라는 표준화된 프로토콜을 따릅니다. 특히 대부분의 시스템은 안정적인 실시간 통신을 보장하는 WebSocket을 통한 OCPP를 사용합니다.

Image description

충전 프로세스 시작

1단계: 사용자가 앱에서 '시작'을 누릅니다.

사용자가 '시작' 버튼을 탭하면 프로세스가 시작됩니다. 백엔드 서버는 다음 세부 정보를 사용하여 RemoteStartTransaction 명령을 준비합니다.

{
  "connectorId": 1,
  "idTag": "remote-11902",
  "chargingProfile": {
    "transactionId": 11902,
    "chargingProfileId": 1,
    "stackLevel": 1,
    "chargingProfilePurpose": "TxProfile",
    "chargingProfileKind": "Relative",
    "chargingSchedule": {
      "chargingRateUnit": "A",
      "chargingSchedulePeriod": [ ... ]
    }
  }
}

이 명령은 RPC 호출을 사용하여 백엔드를 통해 충전기로 전송됩니다.

await client.call(
  'RemoteStartTransaction',
  remoteStartTransactionBody
);

2단계: 충전기가 응답함

충전기는 응답으로 명령을 승인합니다.

{"status": "Accepted"}

이는 충전기가 거래를 시작할 준비가 되었음을 나타냅니다.

3단계: 충전기에서 StartTransaction 전송

충전기가 완전히 준비되면 StartTransaction 메시지를 백엔드로 다시 보냅니다.

{
  "connectorId": 1,
  "idTag": "remote-11902",
  "meterStart": 0,
  "timestamp": "2025-01-15T02:09:54.000Z"
}

충전 세션 모니터링

충전 세션 내내 충전기는 전압, 전류, 전달된 에너지와 같은 지표가 포함된 MeterValues 업데이트를 주기적으로 보냅니다. 이러한 업데이트는 30초마다 또는 다른 간격으로 발생하도록 구성할 수 있습니다.

{
  "connectorId": 1,
  "transactionId": 11902,
  "meterValue": [
    {
      "timestamp": "2025-01-15T02:09:54.000Z",
      "sampledValue": [
        { "value": "241.10", "measurand": "Voltage", "unit": "V" },
        { "value": "0.00", "measurand": "Current.Import", "unit": "A" },
        { "value": "0", "measurand": "Power.Active.Import", "unit": "W" },
        { "value": "32", "measurand": "Current.Offered", "unit": "A" }
      ]
    }
  ]
}

충전 프로세스 중지

1단계: 사용자가 앱에서 '중지'를 누릅니다.

사용자가 '중지'를 탭하면 백엔드는 RemoteStopTransaction 명령을 충전기에 보냅니다.

await client.call(
  'RemoteStopTransaction',
  { transactionId: 11902 }
);

2단계: 충전기가 응답함

충전기는 다음과 같이 인식합니다.

{"status": "Accepted"}

3단계: 충전기에서 StopTransaction을 보냅니다.

종료가 완료된 후 충전기는 전달된 총 에너지와 같은 세부정보가 포함된 StopTransaction 메시지를 보냅니다.

{
  "connectorId": 1,
  "idTag": "remote-11902",
  "chargingProfile": {
    "transactionId": 11902,
    "chargingProfileId": 1,
    "stackLevel": 1,
    "chargingProfilePurpose": "TxProfile",
    "chargingProfileKind": "Relative",
    "chargingSchedule": {
      "chargingRateUnit": "A",
      "chargingSchedulePeriod": [ ... ]
    }
  }
}

커넥터란 무엇입니까?

가스 펌프에 디젤이나 휘발유용 노즐이 다를 수 있는 것처럼 EV 충전기에도 여러 개의 커넥터가 있을 수 있습니다. 일반적인 유형은 다음과 같습니다.

  • CCS2: 유럽과 북미에서 인기가 높습니다.
  • CHAdeMO: 일본에서 흔히 볼 수 있는
  • 메네케스(유형 2): 유럽에서 널리 사용됩니다.

각 커넥터는 독립적으로 작동하므로 하나의 충전기를 여러 차량에 사용할 수 있습니다.

Image description

OCPP

OCPP(Open Charge Point Protocol)는 전기차(EV) 충전소(충전소)와 중앙 관리 시스템(종종 백엔드 시스템 또는 충전소 관리 시스템이라고도 함) 간의 상호 작용을 위해 설계된 개방형 통신 표준입니다.

다른 제조업체의 충전 인프라와 소프트웨어 제공업체 간의 상호 운용성을 가능하게 합니다.

OCPP 버전:

  • OCPP 1.5: 초기 버전, 일부 이전 시스템에서 아직 사용 중입니다.
  • OCPP 1.6: 널리 채택되었으며 SOAP 및 WebSocket 통신을 모두 지원합니다.
  • OCPP 2.0 및 2.0.1: 향상된 보안(TLS), 스마트 충전 지원, 향상된 진단 및 펌웨어 관리와 같은 더 많은 기능을 갖춘 향상된 버전입니다.

주요 사용 사례:

  1. 충전소 관리: 충전소에 대한 원격 모니터링, 문제 해결 및 펌웨어 업데이트.
  2. 스마트 충전: 부하 분산, 예약/사전 예약 및 에너지 그리드와의 통합이 가능합니다.
  3. 결제 통합: 충전소에서 결제 대행사와 상호 작용하고 사용자 계정을 관리할 수 있습니다.
  4. 분석 및 보고: 운영자가 사용 패턴을 분석하고 운영을 최적화하는 데 도움이 됩니다.

OCPP 작동 방식:

OCPP는 충전소와 중앙 시스템 간의 메시지 구조와 통신 프로토콜을 정의합니다. 예:

  • 충전소는 상태, 에너지 소비 또는 오류에 대한 메시지를 보냅니다.
  • 중앙 시스템은 충전 시작/중지, 펌웨어 업데이트, 진단 수행 등의 명령을 보낼 수 있습니다.

OCPP는 OCA(Open Charge Alliance)에서 관리하며 계속해서 프로토콜을 개발하고 홍보하고 있습니다.

패키지

  1. Python: 모빌리티하우스/ocpp
  2. 자바스크립트: mikuso/ocpp-rpc

마무리

앱에서 충전을 시작하거나 중지할 때마다 일련의 정확한 실시간 메시지가 앱, 백엔드, 충전기 간에 흐릅니다.

OCPP 프로토콜은 이 모든 것을 가능하게 하며 다양한 제조업체의 충전기와 앱이 원활하게 함께 작동할 수 있도록 보장합니다.

다음번에 EV를 연결하고 '시작'을 탭하면 숨겨진 마법에 대해 좀 더 알게 될 것입니다!


저는 LiveAPI라는 매우 편리한 도구를 개발해왔습니다.

개발자가 쉽게 API 문서를 작성할 수 있도록 설계되었습니다.

LiveAPI를 사용하면 사용자가 브라우저에서 직접 API를 실행할 수 있는 대화형 API 문서를 빠르게 생성할 수 있습니다.

Image description

API용 문서를 수동으로 작성하는 데 지쳤다면 이 도구를 사용하면 작업이 더 쉬워질 수 있습니다.

개발자가 EV 충전기가 모바일 앱과 통신할 수 있도록 하는 방법

Lama2에서 LiveAPI까지: 매우 편리한 API 문서 작성(2부)

개발자가 EV 충전기가 모바일 앱과 통신할 수 있도록 하는 방법의 Athreya(일명 Maneshwar) ・ 2024년 12월 14일

#웹개발 #자바스크립트 #프로그램 작성 #초보자

위 내용은 개발자가 EV 충전기가 모바일 앱과 통신할 수 있도록 하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.