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

エレコムのWifiルーターは子機モード(コンバータモード)をサポートしている機種が多いので、
W5100+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を試す→むむむ 良好
「ENC28J60+WRH-300xx2-S」の紹 介と同時並行で書いていますので、内容に重複する部分があります。
</補足>

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




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




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



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

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



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

Raspberryがサーバー、Arduinoがクライアント:3624秒
Raspberryがクライ アント、Arduinoがサーバー:3648秒

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

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