Arduinoと無線LANで通信する(ENC28J60+Wifiルーター)

エレコムのWifiルーターは子機モード(コンバータモード)をサポートしている機種が多いので、
ENC28J60+Wifiルーターで無線LAN化してみます。
使ったのは、エレコムの「ホテル用無線ルータ WRH-300xx2-S」というルーターです。

このページを見 て、このルーターをコンバータモードに変更できることはわかったのですが、
実際にコンバーターモードに変更するのにめちゃくちゃ苦労 しました。

<補足>
いきなりこのルーターを買ったわけではく、時系列で書くと以下の様になります。
@ENC28J60を入手→有線LANを試す
AWRC-300FEBK-Aを入手→「ENC28J60+WRC-300FEBK-A」で無線LANを試す→不安定
BW5100を入手→有線LANを試す
C「W5100+WRC-300FEBK-A」で無線LANを試す→ルーターに問題があるのでは...と気づく
D問題点の切り分けのために、WRH-300xx2-Sを入手
E「W5100+WRH-300xx2-S」で無線LANを試す→むむむ 良好
F「ENC28J60+WRH-300xx2-S」で無線LANを試す→今回の実験
「W5100+WRH-300xx2-S」の紹介と同時並 行で書いていますので、内容に重複する部分があります。
</補足>

エレコムの「ホテル用無線ルータ WRH-300xx2-S」は、写真のようにものすごく小さいルーターです。
UNOと一緒に使うにはちょうどいい感じです。




Wifiルーターの子機 モード(コンバータモード)への設定が終わったら、
ENC28J60からWifiルーター(WRH-300xx2-S)のLANポートに有線で接続します。
Arduino(UNO)→(SPI)→ENC28J60→(有線LAN)→WRH-300xx2-S→(無線LAN)→Raspberryとな ります。



まずは、Raspberryがサーバー、Arduinoがクライアントの動作を試してみます。
パフォーマンスも同時に調べるために、720回のパケットを送信してみます。
クライアントは5秒間隔でパケットを送信するので、720回*5秒=3600秒=60分が期待値となります。



途中で通信が止まることもなく、720パケットが無事完了しました。
パフォーマンスも期待値通りの値です。

次にRaspberryがクライ アント、Arduinoがサーバーでの確認です。




こちらも、途中で通信が止まることもなく、720パケットが無事完了しました。
パフォーマンスもほぼ、期待値通りの値ですが、Raspberryがサーバー、 Arduinoがクライアントのときよりも
パフォーマンスが少し悪くなっています。

Raspberryがサーバー、Arduinoがクライアント:3599秒
Raspberryがクライ アント、Arduinoがサーバー:3651秒

【参考】有線LANで接続した場合
Raspberryがサーバー、Arduinoがクライアント:3594秒
Raspberryがクライ アント、Arduinoがサーバー:3618秒

エレコム以外の別のメーカーのルーターでも試してみたいなぁ.....
でもルーター、何台も有ってもしょうがないし....

こちらで、W5100チップを使ったArduino用のLANモ ジュー ルを紹介しています。