ホームページ >バックエンド開発 >Python チュートリアル >開発者が EV 充電器とモバイル アプリの通信を可能にする方法

開発者が EV 充電器とモバイル アプリの通信を可能にする方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-16 14:09:59513ブラウズ

電気自動車 (EV) の世界では、EV ドライバーにとって最も魔法のような体験の 1 つは、モバイル アプリで「スタート」をタップし、充電器が動き出すのを見ることです。

しかし、その魔法はどのようにして起こるのでしょうか?

EV 充電器とモバイル アプリがどのように通信するのか、舞台裏を覗いてみましょう。

ゲームのプレイヤー

  1. モバイル アプリ: ユーザーはここで、充電セッションの開始や停止などのアクションを開始します。
  2. バックエンド サーバー: 操作の背後にある頭脳であり、アプリと充電器間の通信を調整します。
  3. EV 充電器: EV に電力を供給するハードウェアです。

これらのプレーヤー間の通信は、OCPP (Open Charge Point Protocol) と呼ばれる標準化されたプロトコルに従います。具体的には、ほとんどのシステムは OCPP over WebSocket を使用し、リアルタイムで信頼性の高い通信を保証します。

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: 日本で一般的です。
  • Mennekes (タイプ 2): ヨーロッパで広く使用されています。

各コネクタは独立して動作するため、1 台の充電器で複数の車両にサービスを提供できます。

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 は、プロトコルの開発と推進を継続する Open Charge Alliance (OCA) によって管理されています。

パッケージ

  1. Python: モビリティハウス/ocpp
  2. JavaScript: mikuso/ocpp-rpc

まとめ

アプリから充電を開始または停止するたびに、アプリ、バックエンド、充電器の間で一連の正確なリアルタイム メッセージが流れます。

OCPP プロトコルはすべてを可能にし、異なるメーカーの充電器とアプリがシームレスに連携できるようにします。

それでは、次回 EV を接続して「開始」をタップすると、舞台裏の魔法についてもう少し詳しく知ることができるでしょう。


私は LiveAPI というとても便利なツールに取り組んでいます。

開発者にとって API ドキュメントを簡単に作成できるように設計されています。

LiveAPI を使用すると、ユーザーがブラウザーから直接 API を実行できるインタラクティブな API ドキュメントを迅速に生成できます。

Image description

API のドキュメントを手動で作成するのにうんざりしている場合は、このツールを使用すると作業が楽になるかもしれません。

開発者が EV 充電器とモバイル アプリの通信を可能にする方法

Lama2 から LiveAPI へ: 超便利な API ドキュメントの構築 (パート II)

Athreya aka Maneshwar for 開発者が EV 充電器とモバイル アプリの通信を可能にする方法 ・ 2024 年 12 月 14 日

#webdev #javascript #プログラミング #初心者

以上が開発者が EV 充電器とモバイル アプリの通信を可能にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。