ELM327とArduinoとLCD2004でOBDデータ表示

はじめに ELM327とArduinoとLCD2004で車両情報を表示してみました。 ELM327ではTrqueやCar Scannerなどのアプリで色々な車両情報は見れますが、だいたい見る項目は決まってきましたので作ってみました。 アプリより表示のレスポンスが向上しました。 「Arduino ELM327」などでググると、以下のELMduinoのような便利なライブラリも見つかりましたが、今回は使っていません。 PowerBroker2/ELMduino: Arduino OBD-II Bluetooth Scanner Interface Library for Car Hacking Projects 使ったもの ELM327 v1.5 Arduino UNO R2 Arduino Pro mini互換品 ATMega328,16MHz,5V LCD2004とI2Cアダプタ こちらと同じもの → Arduino I2C LCD2004 HelloWorld | atooshi-note ELM327殻割り 基板は3段構成になっていて一番上の青い基板はBluetooth Module(BTM)です。 BTMのチップ印字消されていますが、いろいろググってみるとHC-05のコンパチ?っぽそうです。 モジュールは3.3Vで駆動されていますが、typは3.6~6Vらしいですね。 RT,TX,3.3V,GND,5Vは以下の位置関係のようです。 参考 アナログタコメータをつくる(1) OBD2スキャナ ArduinoとELM327でOBD取得する 接続 ELM327はスマホで動作確認はできていますので、PCとシリアル通信してみます。 USB-TTLデバイスを用意して、以下のように接続します。 ELM327 USB-TTL 5V 5V GND GND TX RX RX TX 通常は定番のFTDIの石を使うと思いますが、持っていないのでCH32V003用に持っているWCH-LinkEを使いました。 COMポートとして認識されるデバイスなら通信できそうです。 Arduino UNO R2のUSB-シリアル変換部分も同じように使うことができます。その場合、以下のように接続します。 ArduinoのTX(pin1)はUSB-シリアル変換部分のRXに、RX(pin0)はTXに繋がっているので、クロス接続にはしません。 以下↓にも記載しています。 NCP-HG100 を 楽天モバイル Band3 に固定する | atooshi-note ...

2025/02/08 · Last updated on 2025/03/28 · 8 min · 1582 words

ソリオMA15S ELM327 複数PID同時問い合わせ

はじめに ELM327は複数PIDを同時に扱うことができ、時短になります。 車両が対応していれば、最大6byte(6個)のpidを同時に問い合わせ可能です。 ソリオは対応してる様です。 返答データが6byte以上だと、ELM327 データシートのMultiline Responses (p44/82)に記載があるように複数行で返ってきます。 使用したもの ELM327 v1.5 結果 PIDを一つずつ増やしていき、挙動を確認しました。 PID 1byte(1種類)(通常) > 0105 41 05 7A 送信 : 0x05 (Engine coolant temperature) 回答 : 0x7A 0x7A = 0d122 値 : 122 - 40 = 82℃ PID 2byte(2種類) > 01050c 41 05 7A 0C 0A 16 順番は service(01) PID1(05) PID1のdata(7A) PID2(0C) PID2のdata1(0A) PID2のdata2(16) PID1 : 0x05 PID2 送信 : 0x0c (Engine speed) 回答 : 0x0A16 0x0A = 0d10 0x16 = 0d22 値 : (256 * 10 + 22) / 4 = 645rpm PID 3byte(3種類) ...

2025/01/12 · Last updated on 2025/03/14 · 2 min · 332 words

ソリオMA15Sが対応しているPIDを調べる

はじめに OBDから取れるデータは何か、対応しているPIDを調べてみました。 Wikiに載ってるStandard PIDsは全て対応しているわけでは無いため、ソリオが対応しているPIDを調べてみます。 使ったもの ELM327 v1.5 調べ方 Service 01 PID 00 - Show PIDs supported 上記wikiにあるように、ELM327からコマンド01 00(service 01 PID 00)を送信するとPID 01からPID 20までで、対応しているPIDのビットには1、未対応のPIDのビットには0がセットされます。 wikiの例だと、01 00の応答が0x BE 1F A8 13だった場合、これを2進数に変換すると 0b 1011 1110 0001 1111 1010 1000 0001 0011 となるため 対応してるPIDは1が立っているPID 01, 03, 04, 05, 06, 07, 0C, 0D, 0E, 0F, 10, 11, 13, 15, 1C, 1F ,20となります。 左端から見ていくため、例えば左端の0xB=0b1011では、PID 01は対応、02は未対応、03,04は対応ということになります。 PID 20が対応しているということは次の PIDs supported [$21 - $40] ということになるため、PID 21 から PID 40 が存在するということになります。 コマンド01 00と同様に考えて、01 20を送信するとPID 21 から PID 40 までの対応状況が分かります。 ...

2025/01/05 · Last updated on 2025/02/19 · 3 min · 473 words

ArduinoでOBDをシミュレートしてELM327とつなぐ

はじめに 車両のOBDでデータを取りたいと思っていますが、車両で開発は大変なのでArduinoで車両をシミュレートする環境を作りました。 参考 以下を参考にさせていただきました。ありがとうございます。 環境 windows Arduino nano互換機 MCP_CAN_lib v1.5.1 ELM327 v2.1 MCP2515モジュール Car Scanner(Androidアプリ) OBDケーブル Arduino nano互換機 について 久々に使ったので、最初書き込みができなくて困りました。 IDEでOld Bootloaderを選択します。 MCP2515モジュール について Amazonで3個セット安いやつです。 KKHMF 3個 MCP2515 CAN バス モジュール TJA1050 SPI レシーバー Arduino AVR MCU ARM に対応 不良が混じっていることが多いみたいなのでモジュールを2つ使って動作確認をしました。 こちらは以下を参考にして動作確認をしました。ありがとうございます。 OBDケーブル について 以下を使用しました。 LoongGate OBD - II 16ピンオープンプラグワイヤを終了するには - OBD2 16ピンラウンド延長コネクタ診断ケーブル - 0.3メートル レビューには商品袋に記載のピンアサインと実際のピンアサインは違うとあったのでテスターチェックしましたが、商品袋に記載の通りでした。なのでGreen - CAN-H,Green/White - CAN-Lで接続しています。 Pin Color Function 4 Orange Chassis GND 5 Light blue Signal GND 6 Green CAN high 14 Green/white CAN low 16 Red 12V ...

2024/12/26 · Last updated on 2025/02/07 · 1 min · 150 words