ホームページ >バックエンド開発 >Python チュートリアル >開発者が EV 充電器とモバイル アプリの通信を可能にする方法
電気自動車 (EV) の世界では、EV ドライバーにとって最も魔法のような体験の 1 つは、モバイル アプリで「スタート」をタップし、充電器が動き出すのを見ることです。
しかし、その魔法はどのようにして起こるのでしょうか?
EV 充電器とモバイル アプリがどのように通信するのか、舞台裏を覗いてみましょう。
これらのプレーヤー間の通信は、OCPP (Open Charge Point Protocol) と呼ばれる標準化されたプロトコルに従います。具体的には、ほとんどのシステムは OCPP over WebSocket を使用し、リアルタイムで信頼性の高い通信を保証します。
ユーザーが「開始」ボタンをタップすると、プロセスが開始されます。バックエンド サーバーは、次の詳細を含む 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 );
充電器は応答でコマンドを確認します:
{"status": "Accepted"}
これは、充電器がトランザクションを開始する準備ができていることを示します。
充電器の準備が完了すると、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" } ] } ] }
ユーザーが「停止」をタップすると、バックエンドは RemoteStopTransaction コマンドを充電器に送信します。
await client.call( 'RemoteStopTransaction', { transactionId: 11902 } );
充電器は次のように認識します:
{"status": "Accepted"}
シャットダウンが完了すると、充電器は供給された合計エネルギーなどの詳細を含む StopTransaction メッセージを送信します。
{ "connectorId": 1, "idTag": "remote-11902", "chargingProfile": { "transactionId": 11902, "chargingProfileId": 1, "stackLevel": 1, "chargingProfilePurpose": "TxProfile", "chargingProfileKind": "Relative", "chargingSchedule": { "chargingRateUnit": "A", "chargingSchedulePeriod": [ ... ] } } }
ガソリン ポンプにディーゼル用とガソリン用に異なるノズルがあるのと同じように、EV 充電器には複数のコネクタがある場合があります。一般的なタイプは次のとおりです:
各コネクタは独立して動作するため、1 台の充電器で複数の車両にサービスを提供できます。
OCPP (Open Charge Point Protocol) は、電気自動車 (EV) の充電ステーション (充電ポイント) と中央管理システム (バックエンド システムまたは充電ポイント管理システムと呼ばれることが多い) の間の相互作用のために設計されたオープン通信標準です。
さまざまなメーカーやソフトウェアプロバイダーの充電インフラストラクチャ間の相互運用性が可能になります。
OCPP は、充電ポイントと中央システム間のメッセージ構造と通信プロトコルを定義します。例:
OCPP は、プロトコルの開発と推進を継続する Open Charge Alliance (OCA) によって管理されています。
アプリから充電を開始または停止するたびに、アプリ、バックエンド、充電器の間で一連の正確なリアルタイム メッセージが流れます。
OCPP プロトコルはすべてを可能にし、異なるメーカーの充電器とアプリがシームレスに連携できるようにします。
それでは、次回 EV を接続して「開始」をタップすると、舞台裏の魔法についてもう少し詳しく知ることができるでしょう。
私は LiveAPI というとても便利なツールに取り組んでいます。
開発者にとって API ドキュメントを簡単に作成できるように設計されています。
LiveAPI を使用すると、ユーザーがブラウザーから直接 API を実行できるインタラクティブな API ドキュメントを迅速に生成できます。
API のドキュメントを手動で作成するのにうんざりしている場合は、このツールを使用すると作業が楽になるかもしれません。
以上が開発者が EV 充電器とモバイル アプリの通信を可能にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。