FanduinoX Rev1.2 使用方法(応用編)

 このページでは、ファームウェアの無線アップデート方法、非接触温度計の使用方法および通信プロトコルについて紹介します。

ファームウェアのアップデート

 機能拡張やバグフィックスのためファームウェアをアップデートする場合があります。
 ファームウェア・アップデートは、USBケーブル接続時とbluetooth接続時で異なり、USBケーブル接続時は基本編で説明したバッチファイル(FanduinoX.write.bat)により行います。
 一方、bluetooth接続時はWiFi OTA(Over The Air)という方法で、WiFiを経由して無線でアップデートすることになります。このため、WiFi OTAアップデート時には、WiFi環境と SSID、password が必要です。(なぜbluetoothでアップデートしないのかは、その方法が見つけられなかったためです)

(1) WiFi モードの起動

 最初にFanduinoX Rev1.2 をWiFiモードにします。
 モニタソフト FanduinaV3 の Fanduino Connect を開いて、送信用のテキストボックスに、
   WiFiOTA, SSID , password (SSID, password は、あなたのWiFiのもの)
と入力し、送信ボタンを押します。(下画面 参照)
WiFiモードに入るとFanduinoXは温度制御を停止し、ファンは最大回転になります。
なお、1分以内にWiFiに接続できない時、FanduinoX Rev1.2 はアップデートを取り止め、再起動します。

WiFiOTA 機能を起動

(2) ブラウザから書込み

 WiFiに接続できたら、Chromeなどのブラウザを開いて、
  http://FanduinoX.local/
に接続します。左下のような画面が出ますので、ID:admin、PW:admin でログインしてください。

 うまくつながらない場合は、192.168.1.XXXなどのIPアドレスを直接アドレス欄に入力する必要があります。IPアドレスは、WiFiルータのDHCPで自動割り当てされるので、Advanced IP Scanner などのスキャンソフトで検索してみてください。
なお、3分以内にログインできない時、FanduinoX Rev1.2 はアップデートを取り止め、再起動します。

ログイン画面
ファイル指定後に書込み

 ログインできたら、右上の画面が出ます。上側の枠内(画面ではグレー文字でFanduinoX.F10.10.ino.binと出ています)をクリックして、ファームウェアファイル(FanduinoX.F10.**.ino.bin)を指定後にUpdateボタンをクリックするとアップデートが始まります。

 アップデートが成功すると FanduinoX Rev1.2 が再起動し、ファンが低速回転に戻りますので、
ブラウザを閉じてください。
通常アップデートは数十秒で完了しますが、progressバーが進行しない時はアップデートに失敗しています。電源コネクタを抜き挿ししてFanduinoXを再起動してください。電波の状況が悪いと失敗する可能性が高いので、心配ならUSBケーブルでのアップデート(インストール)をお勧めします。

非接触温度センサの利用(オプション)

(1) 温度計の種類と使用方法

 FanduinoXの温度計は、下記の4種類があります。

  • サーミスタ温度計:センサにNTCサーミスタを利用した接触型の温度計(Thm1~4)
  • 拡張温度計   :Thm1~4の加重平均または最大値を算出した温度計(Thm5, 6)
  • 非接触温度計  :センサにサーモパイルを利用した非接触型の温度計
  • 代用温度計   :外部アプリ(CoreTemp, OpenHardwareMonitor等)を利用した温度計

 FanduinoXに接続するファンは6台までですので、温度計もThm1~6の6台あれば足ります。
通常は、サーミスタ温度計とその値を利用した拡張温度計がThm1~6に割り当てられますが、非接触温度計(Thp1~3)や代用温度計(ExtThm1~6)を使用するときは、Thm1~6はこれらの温度に置換えられます。
 たとえば、サーミスタ温度計の2番(Thm2)を非接触温度計の1番(Thp1)の温度で置き換えるには、下図のようにモニタソフトでThm2のところをThp1に指定し、「ファンコンへ書込」みます。

 指定方法は、画面右側のプルダウンから選択するか、下の画面のようにマウスで温度部分をドラッグし、プルダウンボックス内にドロップします。

 アレイ型のAMG8833(Thp3)は、8x8ピクセルの内、指定したいピクセルをドラッグします。
 指定後は、”ファンコンへ書込” ボタンを必ずクリックしてください。

 非接触温度計を指定すると、前述のとおりThm1~6を非接触温度計の値で置換えますので、置換えられた温度計(Thm)はサーミスタセンサの測定値を使用できません。

 また、Thm1~6に代用温度計を設定すると、代用温度計の値が最も優先的に使用されます。
ただし、代用温度計を使用するにはモニタソフトと外部アプリを起動しておく必要があり、モニタソフトからの温度情報が30秒以上途切れると、FanduinoXで測定したサーミスタ・拡張・非接触温度計での制御に切り替わります。

(2) Thp1(10TP583T)の接続

 10TP583Tは、SEMITEC社のサーモパイルセンサで、秋月電子で税込500円(2020年現在)とリーズナブルに入手できます。
 このセンサは、対象物温度計測用のサーモパイルと自身の温度計測用のサーミスタを内蔵し、4つの端子 1:Tp+, 2:Tm+, 3:Tp-, 4:Tm- (Tp:サーモパイル, Tm:サーミスタ)でFanduinoXと接続します。
(端子配列は、https://akizukidenshi.com/download/ds/semitec/10tp583t.pdf をご参照ください)
 サーモパイルの出力は微弱で雑音に弱いため、接続リード線はできるだけ短くかつツイストペア線を使う必要があります。
このため、今回は余っているUSBケーブルを切断して利用しました。USBケーブルの緑(D+)と白(D-)はツイストペア線になっていますので好都合です。

センサ側   線   FanduinoX側
 1:Tp+   緑    3:Tp+
 2:Tm+  赤    2:Tm+
 3:Tp-    白    1:Tp-
 4:Tm-   黒    4:Tm-
センサ側とFanduinoX側のコネクタ結線は逆になるのでご注意ください

接続用部品
接続例

 また、測定温度に誤差が大きいと感じたときは、下記の面倒な調整が必要になります。

  1. FanduinoXをPCから外し、ESP32DevKitCとPCとをUSBケーブルで接続します。
  2. 10TP583TをFanduinoXに接続し、センサの窓の部分を紙等で覆っておきます。
  3. テスターの電圧測定レンジでESP32DevKitCの3番ピン(VPのシルク印刷)と38番ピン(GND)の間の電圧をmV単位で測定します。(私の場合1124mVでした)
  4. モニタソフトを起動し、FanduinoConnectウィンドウの送信用テキストボックスに、
     SetPrm,Thp1,xxxx,405,1.0,0.0,-0.1109,15.686,0.0079,-0.923,0.0,0.0302
    xxxxのところには測定した電圧(mV)を入れます。デフォルトではxxxxは1124です。
  5. 送信ボタンをクリックし、FanduinoXに書き込みます。
  6. センサ(10TP582T)を測定対象物に向けて、近い値が測定できているかをモニタソフトで確認します。

 接続ケーブルの製作は端子や熱収縮チューブの加工に特殊工具が必要ですし、調整にもテスターが必要であるなど、電子工作に不慣れな方にはハードルがかなり高いかもしれません。このため、ちょっとコストはかかりますが、比較的容易な方法として次のMLX90614を用いた非接触温度計を紹介します。

(3) I2C接続による非接触センサの利用(Thp2, Thp3)

 左下写真のセンサは非接触温度センサで、センサ側にアンプやデジタル変換回路が内蔵されておりFanduinoX とはI2C規格によるデジタル信号での通信ができます。
左側のMLX90614(Thp2)は1点の温度だけ測定するのに対し、右側のAMG8833(Thp3)は8x8の64点を平面で測定します。どちらも、5V、GND、SCL、SDAの4本の線(I2C)で接続しますが、デジタル信号なので雑音には比較的強く、下記のようなケーブル(秋月電子で入手可、部品表参照)をはんだ付けすれば、調整なしで簡単に利用できます。

非接触温度センサー
MLX90614   AMG8833
4ピンケーブルをはんだ付け
(センサは熱収縮テープで絶縁しました)
FanduinoX に接続

 FanduinoX Rev1.2のI2Cコネクタは、基板の奥まったところにありますので、使用の際は基板取付前に接続しておいてください。

FanduinoXとPC間の通信プロトコル

 FanduinoXとPC間の通信プロトコルはAVR-Fanconのプロトコルを拡張したもので、その書式は次のとおりです。(斜体部分には数字または文字が入ります)

(1) FanduinoX → PC (常時転送)

  • Thm ,サーミスタ番号,サーミスタ名称,温度(℃)
  • Fan,Fan番号,Fan名称,回転数(rpm),Duty(%),Vout(V) (出力電圧Voutは、Rev6.0のFan#1のみ)
  • Prm,Tmin,Temp-min1,Temp-min2,Temp-min3,Temp-min4,Temp-min5,Temp-min6
  • Prm,Tmax,Temp-max1,Temp-max2,Temp-max3,Temp-max4,Temp-max5,Temp-max6
  • Prm,Tstop,Temp-stop1,Temp-stop2,Temp-stop3,Temp-stop4(Fanを停止させる温度)
  • Prm,Dmin,Duty-min1,Duty-min2,Duty-min3,Duty-min4,Duty-min5,Duty-min6
  • Prm,Dmax,Duty-max1,Duty-max2,Duty-max3,Duty-max4,Duty-max5,Duty-max6
  • Prm,Dman,Duty-man1,Duty-man2,Duty-man3,Duty-man4,Duty-man5,Duty-man6
  • Prm,FanThm,Fan1-Thm#,Fan2-Thm#,Fan3-Thm#,Fan4-Thm#,Fan5-Thm#,Fan6-Thm#(Fanを制御する温度計番号)
  • Prm,FanMan,Fan1-man,Fan2-man,Fan3-man,Fan4-man,Fan5-man,Fan6-man(1:手動,0:自動)
  • Prm,FanPls,Fan1-pls,Fan2-pls,Fan3-pls,Fan4-pls,Fan5-pls,Fan6-pls (パルス/回転,0は2パルス)
  • Prm,ThmThp,Thm1-Thp#,Thm2-Thp#,Thm3-Thp#,Thm1-Thp#,Thm2-Thp#,Thm3-Thp#(Thmを置換えるThp番号(Thp1:1, Thp2:2, Thp3:1000-1063)
  • Prm,FanNam,Fan名称1,・・・,Fan名称6
  • Prm,ThmNam,温度計名称1,・・・,温度計名称6
  • Prm,Tfnc,Thm1Weight,・・・,Thm4Weight,Thm1Higher,・・・,Thm4Higher(拡張温度計係数)
  • Prm,Thp1,CoefName1,CoefName2,CoefVal1,CoefVal2(10TP583T用設定係数)
  • Prm,Firm,firmver(F1*.**)
  • Prm,BTName,bluetooth名称(bluetoothペアリング時の名称)
  • Prm,BTEnable,true/false(bluetooth使用の可否)
  • TestOn,Fan#  (テストモード開始をPCに返信)
  • TestOff,Fan#  (テストモード終了をPCに返信)

(2) PC → FanduinoX (書込・送信ボタンをクリック時のみ転送)

 [モニタソフトFanduinaV3で自動設定]

  • SetPrm,Tmin,Temp-min1,Temp-min2,Temp-min3,Temp-min4
  • SetPrm,Tmax,Temp-max1,Temp-max2,Temp-max3,Temp-max4
  • SetPrm,Tstop,Temp-stop1,Temp-stop2,Temp-stop3,Temp-stop4 (Fanを停止させる温度) 
  • SetPrm,Dmin,Duty-min1,Duty-min2,Duty-min3,Duty-min4
  • SetPrm,Dmax,Duty-max1,Duty-max2,Duty-max3,Duty-max4
  • SetPrm,Dman,Duty-man1,Duty-man2,Duty-man3,Duty-man4,Duty-man5,Duty-man6
  • SetPrm,FanThm,Fan1-Thm#,Fan2-Thm#,Fan3-Thm#,Fan4-Thm# (Fanを制御する温度計番号)
  • SetPrm,FanMan,Fan1-man,Fan2-man,Fan3-man,Fan4-man,Fan5-man,Fan6-man(1:手動,0:自動)
  • SetPrm,FanPls,Fan1-pls,Fan2-pls,Fan3-pls,Fan4-pls,Fan5-pls,Fan6-pls (パルス/回転,0は2パルス)
  • SetPrm,ThmThp,Thm1-Thp#,Thm2-Thp#,Thm3-Thp#,Thm1-Thp#,Thm2-Thp#,Thm3-Thp#(Thmを置換えるThp番号(Thp1:1, Thp2:2, Thp3:1000-1063)
  • SetPrm,FanNam,Fan名称1,・・・,Fan名称6
  • SetPrm,ThmNam,温度計名称1,・・・,温度計名称6
  • SetPrm,Tfnc,Thm1Weight,・・・,Thm4Weight,Thm1Higher,・・・,Thm4Higher
  • ExtThm,Thm#1,Thm#2,Thm#3,Thm#4 (代用温度計の温度℃)
  • TestOn,Fan#  (テストモード開始、Fan#の回転数のみ計測してPCに転送)
  • TestOff,Fan#  (テストモード終了)
  • Test,Fan#,Duty (Fan#のDutyを一時的に固定)
  • ThpRptOn  (非接触温度計レポートモード開始)
  • ThpRptOff  (非接触温度計レポートモード終了)

 [モニタソフトFanduinaV3 FanduinoConnectのテキストボックスに書込んで送信]

  • SetPrm,BTName,bluetooth名称(bluetoothペアリング時の名称)
  • SetPrm,BTEnable,true/false(bluetooth使用の可否)
  • SetPrm,Thp1,BaseVolt,Gain,C01,C00,C11,C10,C21,C20,C31,C30(10TP583T用設定係数)
  • WiFiOTA,ssid,password (無線によるファームウェアアップデート(WiFiOTA)の開始)

FanduinoX Rev1.2   製作方法   使用方法(基本編)

タイトルとURLをコピーしました