2016年8月13日土曜日

ENC28J60でarduinoをLANに接続

arduinoにセンサーつないでUSBシリアル通信でPCやラズパイでデータロギングでもいいんだけども、arduinoを直接LANにつないでWEBサーバにしてネットワーク越しにデータ取得できた方がなにかと便利であろうということでENC28J60を使ってarduinoをLANに繋いでみた。

ENC28J60


2枚目の写真なんだけどシルク文字がどう見ても間違っていて少しハマったわけです。
上から

5V  GND
LNT CLK
SO  WOT
SCK ST
RST CS
Q3 GND

と読めるんだけど、本当はたぶん以下。

5V  GND
INT CLK
SO  WOT
SCK SI
RST CS
Q3 GND

LNT -> INT
ST -> SI

ST=STATUS?、LNT=????、そんなのデータシートにもないぞ、SIはどこ???という具合で数分考え込んでしまった。
(中華ぱちもん?)

ENC28J60+ARDUINO でIoT製作 (テスト編)

を参考に

[ENC28J60] - [ARDUINO]
SCK - D13
SO - D12
SI - D11
CS - D8

とピン接続。
本来は3.3v駆動らしいが5vでも動いた(いいんだろうか。。。それで)。

あと基盤のネジ固定穴は3mmネジは入らない。2mmネジなら入ったのでそれで固定。


後はethercardライブラリをgithubから取得して導入して
https://github.com/jcw/ethercard

サンプルスケッチを書き込んで動作確認。

https://gist.github.com/izumogeiger/117f37a40167cf964d0264dd1e0b0f6d

DHCPでIPアドレス取得してwww.google.comにping
静的IPアドレスを設定、webサーバで起動時間を表示

webサーバのリクエスト処理で各種センサーの値を取得してクライアントに返してやるようにすればarduinoによるセンサーサーバになるわけ。

こりゃ便利。


0 件のコメント:

amazonアソシエイト