自作LANケーブルの作り方〜Arduinoとセンサ間をLANケーブルでI2C、1-Wire、電源供給
この記事では、CAT5EのLANケーブルを使った自作LANケーブルの作り方を解説していきます。Arduino(ESP32)とセンサをLANケーブルで繋いで、I2C通信および1-Wireを実現させました。はじめにLANケーブルの作り方をご紹介し、後半ではI2Cや1-Wire通信でLANケーブルを使う場合に気をつけなければならないことをご紹介いたします。
LANケーブルの製作で必要なもの
LANケーブルの製作で必要なものをご紹介いたします。
LANケーブル
CAT5Eの100mケーブルを使いました。
LANプラグ(ジャック)
LANプラグはこちらRJ45を使用します。配線間違いなどで失敗しやすいので、作ってみた経験上ですがLANプラグは多めに用意しておいた方が良いです。
かしめ工具
LANプラグをかしめるための工具が必要となります。Amazonレビュー色々みましたが、安いかしめ工具は評判が悪かったので、少しお値段しましたが評価の高いこちらのかしめ工具を選びました。
LANテスター
完成したLANケーブルが正しく配線されているかチェックするためにLANテスターがあると便利です。
LANケーブルの製作
CAT5EのLANケーブルを用意しました。
ニッパーなどを使って、LANケーブルの絶縁皮膜を2cmほど剥き、ツイストペアをほぐします。
ここでLANケーブルのワイヤーの順番ですが、B結線と呼ばれるT568Bが一般的ですので下図のような順番に揃えます。
- 茶色
- 白茶
- 緑
- 白青
- 青
- 白緑
- オレンジ
- 白オレンジ
緑と青だけ順番がイレギュラーなので注意してください。
ワイヤーの先端が揃うようにカットします。
ワイヤーの順番を保ちながらLANプラグに差し込みます。奥までしっかりと差し込むようにしてください。またこの時、順番が間違ってないか目視でもよく確認します。ここが一番大事な作業です。
かしめ工具にそのままプラグを差し込み、ゆっくりハンドルを握ります。一段一段カチカチと音が鳴ります。
最後にカチャっと鳴るまで握り込みます。以上でLANケーブルとプラグが接着されました。
もう一端も同様にして作業します。
完成したLANケーブルをLANテスターでチェックします。間違いなく配線できていれば、下の動画のように2つのLEDライトが同じ順番で点灯されます。
以上でLANケーブルの製作の解説は終わりです。
I2Cや1-Wire通信をLANケーブルで行う場合の注意点
製作したCAT5EのLANケーブルを、ESP32(Arduino)のI2C通信および1-Wire通信に使ってみました。しかし通信エラーのトラブルがありましたので、ここではその改善点、注意点を記します。
I2Cの場合
まず、I2Cの場合です。色々試したところ、CAT5EのLANケーブルでは2m程度しか通信できませんでした。以下の項目も試しましたが効果ありませんでした。
- SCLとSDAはツイストペアさせない
- プルアップの抵抗値を低くする
- I2Cのクロック周波数を低くする
ちなみに、GNDとVddは2本の線を使って配線しました。
さて結論から申しますと、シールド対策されたLANケーブルで改善されました。具体的には、こちらのCAT7のLANケーブル5mで試したところ、I2C通信が正常に動作確認できました。
もっと延長できるのかどうか。また、CAT6でもイケるのかどうかも気になるところです。今後の課題とします。
1-Wireの場合
1-Wireの場合は、プルアップ抵抗4.7kΩを入れることでCAT5Eでも安定して通信可能になりました。ESP32のソフトウェアプルアップだとインピーダンスが高いためでしょうか、通信エラーが起こってしまいました。外部抵抗を入れてハードウェア的にプルアップすることでこの問題が解決できました。
ちなみにSPI通信では、以前CAT5eのLANケーブルを使って20mまで通信できた経験がありますので、まだまだ研究の余地がありそうです。
下の写真のようにセンサの中継機を作って、Arduino端末と中継機をLANケーブルでの通信を実現させました。
ちなみに、中継機に入っているのはADS1115のADコンバータです。プラスマイナスに変化するアナログ電圧を4チャネル分読み取ることができ、I2CでArduino端末と通信できます。非常におすすめのADコンバータです!