tweet

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


いまさらですが古めの有線LANモジュール [ENC28J60]を活用して、
格安のIoTデバイス製作を検討してみました。


[概要]
Microchip 社の[ENC28J60] EtherNet Controller の対応モジュール
海外通販で4ドル前後、国内での取り扱い店舗は少ないようですが 1000[en]弱
10 base-T と速度は遅めですが、TCP送受信の文字数が少なければ、使える範囲になりそう。
有線LANですが マイコン連携できる通信デバイスとしては、格安かと思います。

入荷後、基盤を見ても型式/製造番号/メーカ等の記載がなく、、
バルク品ぽい雰囲気もありました。
ピン配置は、12ピン近くに記載されてますが、文字が小さく見にくいですが
ピン-レイアウト資料も当然なく、配線は注意が必要です。

SPI通信のARDUINOライブラリを見つけましたので
回路を調整して、クラウド連携し、Lチカ(LED制御)までテストしてみたいと思います。

*) LAN側の電源供給を VCC=3.3Vに配線してますが、
ARDUINO UNOのSPI通信のデジタル出力(D11/D12/D13)は
5V出力されていると予想されますので、ロジックコンバータなどで
降圧調整が必要と予想されます。UNO以外の3.3V仕様のARDUINOが良いかと思います

#材料費
イーサネットモジュール [M28J60] 950[en] (aitend さん)

# 配線
Git - ethercard ライブラリの README に,
記載されているピン配線を結線します。

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

VCC,GND を結線
D7 にLED 配線

# Code, HTTP受信と Lチカ
ARDUINO-SDk 1.6.5
シリアルの通信速度= 9600 に変えてます。

*) macアドレスの指定は、LAN上に複数接続する場合は、重複に注意下さい。

enc28j60 ライブラリ (Git): https://github.com/jcw/ethercard
ARDUINO SDKに、インポートします。

スケッチの例を参考に、機能を追加します。
[スケッチの例] - [ethercard-master] - [webClient]

クラウド側のweb-APIから、レスポンス取得し、LED点灯時間を解析 (消えるまでの時間)、
INT型に変換します。

===
  iSt = response.indexOf("web-response1=");
  if(iSt >= 0){
    iSt = iSt+ 14;
    String sDat = response.substring(iSt );
===

消すタイミングを監視し、LOW送信
digitalWrite(mLED_pin, LOW);

*) 連携用のWEB-APIは、準備する必要があります。
参考php :
https://gist.github.com/kuc-arc-f/f84d21cd98b23d10fa34#file-php-webapi-esp8266-1-php

#テスト
電源投入後の60秒前後は、
TCP受信処理が失敗する場合がありました
LAN側が安定するまで、少し時間がかかるのかもしれません。

# クラウド側から、LED消灯までの時間を取得し、
   点灯、指定秒数後 に消灯します

# シリアルのログ




#参考の記事
https://github.com/jcw/ethercard

# 開発者向けのまとめ記事
http://knaka0209.blogspot.jp/2015/04/agri.html

コメント

FACEBOOK

人気の投稿