• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

アンドロ沼のブログ一覧

2020年11月19日 イイね!

水温計の作り方(コンパイル編)

うまいこと、今回私が使ったDoit devkitのボードのコンパイルのやり方を説明してるページを見つけたので、関連情報URLのところへ行って、「DOIT ESP32 DEVKIT V1」と書いてあるあたりからのやり方を参考にして、コンパイル&ダウンロードしてください。回路がうまく接続されていれば、フリードにつなぐことで、水温計とタコメータとして動作するはずです。

なお、他の計器(速度計、燃費計、外気温計)にしたい方のために、後日ソースコードの解説を追加します。

ちょっと反省点を書くと、

1)本体のところと、OBDのところは、面倒でもコネクタで脱着できるようにしておくと、後でソフトを書き替えたいとき、簡単に自宅に持ち帰れるのでその方がよかった。(本当は、表示をもっとかっこよくしたいのだけれど、もう外すのが面倒でやる気なし。)

2)タコメータの表示は、数字で表示するのではなく、バーグラフで表示するようにしとけばよかった。

3)タコメータを200msで更新するようにしたのだけれど、まだ速すぎる。300ms
で十分だった。

4)本体に接着で蓋したので、実はコントラスト調整ができませぬ。なので、かっこ悪くとも斜め上からLCDを覗き込むようにしないとまともに見えない。あの設置角が実は肝だったりします。皆さんは蓋する前にちゃんと表示が見えるのを確認するようにしましょう。
Posted at 2020/11/19 20:03:13 | コメント(0) | トラックバック(0) | 日記
2020年11月19日 イイね!

水温計の作り方(ソースコード編)

下記にソースコードを示します。エディタにコピペして、適当な名前を付けて、拡張子を”ino"にして保存してください。その後、Arduino IDEで開けば、コンパイル通るはずです。なお、実際に設置した水温計のソースからコメントとか、デバックコード消したり、ドライバが新しくなったためエラーが発生したところを修正したので、100%動く保証はできないんですが、たぶん大丈夫かと。
次回は、コンパイルの仕方説明します。

↓この下からソースです。

#include
#include
#include
#include

CAN_device_t CAN_cfg;
unsigned long prev_time;
byte loop_counter;
int last_rpm;
//unsigned byte test;

LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x3F for a 16 chars and 2 line display

void setup() {
CAN_cfg.speed=CAN_SPEED_500KBPS;
CAN_cfg.tx_pin_id = GPIO_NUM_5;
CAN_cfg.rx_pin_id = GPIO_NUM_4;
CAN_cfg.rx_queue = xQueueCreate(10,sizeof(CAN_frame_t));
//start CAN Module
ESP32Can.CANInit();
prev_time = millis();
lcd.begin(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Waiting CAN");
}

void loop() {
int current_rpm;
CAN_frame_t rx_frame;
//receive next CAN frame from queue
if(xQueueReceive(CAN_cfg.rx_queue,&rx_frame, 3*portTICK_PERIOD_MS)==pdTRUE){
if ((rx_frame.MsgID & 0xFFFFFF00) == 0x18daf100) {
if ((rx_frame.data.u8[2])== 0x05) {
lcd.setCursor(0,0);
lcd.print("Water Temp = ");
lcd.setCursor(13,0);
lcd.print((signed char)(rx_frame.data.u8[3]) - 40);
}else if ((rx_frame.data.u8[2])== 0x0c) {
current_rpm=(int)(((int)rx_frame.data.u8[3])*256 + (int)rx_frame.data.u8[4])/4;
if (current_rpm != last_rpm) {
lcd.setCursor(0,1);
lcd.print("ENGINE rev: ");
lcd.setCursor(12,1);
lcd.print(current_rpm);
last_rpm = current_rpm;
}
}
}
}
if ((prev_time-millis())> 50) {
prev_time=millis();
if (loop_counter == ((loop_counter/4)*4)) { // if counter value is even
rx_frame.FIR.B.FF = CAN_frame_ext;
rx_frame.MsgID = 0x18db33f1 ;
rx_frame.FIR.B.DLC = 3;
rx_frame.data.u8[0] = 0x02;
rx_frame.data.u8[1] = 0x01;
rx_frame.data.u8[2] = 0x0C; // Request engine speed
ESP32Can.CANWriteFrame(&rx_frame);
} else if (loop_counter == 19) { // 1sec expired
rx_frame.FIR.B.FF = CAN_frame_ext;
rx_frame.MsgID = 0x18db33f1 ;
rx_frame.FIR.B.DLC = 3;
rx_frame.data.u8[0] = 0x02;
rx_frame.data.u8[1] = 0x01;
rx_frame.data.u8[2] = 0x05; // Request coolant temperature
ESP32Can.CANWriteFrame(&rx_frame);
}
if (loop_counter >= 19) {
loop_counter = 0;
} else {
loop_counter++;
}
}
}
Posted at 2020/11/19 19:48:56 | コメント(0) | トラックバック(0) | 日記
2020年11月19日 イイね!

水温計の作り方(LCDドライバ導入編)

次に、LCD表示のためのLCDドライバーを導入します。CANドライバ同様に関連情報URLのサイトに行って、下図のようにダウンロードします。


その後、CANドライバの時同様、下図のようにライブラリを組み込めば、開発環境の構築は完了です。
Posted at 2020/11/19 19:41:08 | コメント(0) | トラックバック(0) | 日記
2020年11月19日 イイね!

水温計の作り方(CANライブラリ導入編)

次に、Arduino IDEにESP32用のCANドライバのソフトを導入します。関連情報URLのサイトに飛び、下記のようにZIP形式のファイルをダウンロードします。



続いて、ArduinoIDEを立ち上げて、下記のようにライブラリの導入を選んでから、上記でダウンロードしたZipファイルを導入します。
Posted at 2020/11/19 19:36:14 | コメント(0) | トラックバック(0) | 日記
2020年11月19日 イイね!

水温計の作り方(ESP32対応拡張編)

今度は、Arduino IDEにESP32をコンパイルするための機能拡張を行います。関連情報のリンク先に行き、最新のやり方に従ってボードマネージャーから追加してください。これでESP32のソフト開発ができるようになります。
Esp32の基板を購入したら、まずは、この段階で、Blink のサンプルコードをコンパイル&ダウンロードして、Lチカの確認を済ませて置くことをお勧めします。
Posted at 2020/11/19 18:06:57 | コメント(0) | トラックバック(0) | 日記

プロフィール

「水温計の作り方(M5StickC plus ソースコード編2) http://cvw.jp/b/1552949/45254112/
何シテル?   07/05 22:01
アンドロ沼です。アクアからフリードハイブリッドに買い換えしました。
みんカラ新規会員登録

ユーザー内検索

<< 2020/11 >>

1234567
891011121314
15 1617 18 19 2021
22232425262728
2930     

愛車一覧

ホンダ フリードハイブリッド ホンダ フリードハイブリッド
家族が増え、強い圧力がかかり買い換えました。
スズキ ワゴンRハイブリッド スズキ ワゴンRハイブリッド
電車通勤から、車通勤に替り買い足しました。
トヨタ アクア トヨタ アクア
Fitからアクアに買い替えついでに、いろいろいじろうと思ってます。

過去のブログ

2021年
01月02月03月04月05月06月
07月08月09月10月11月12月
2020年
01月02月03月04月05月06月
07月08月09月10月11月12月
2012年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
© LY Corporation