head

ESP-WROOM-32
ブレークアウト
Bタイプ
ESP-WROOM-32
ブレークアウト
Cタイプ
ESP-WROOM-32
ブレークアウト
Aタイプ

WIZ550io+ATMega328で IoT製作、MQTTも

有線LANモジュール[ WIZ550io ]、ATMega328P-PU の構成で
低価格なオリジナルのIoTデバイス検討したいと思います。

[概要]
WIZnet社製W5500を搭載したモジュール。SPI通信
100BaseTXで、性能的には高そうです。
前回の ENC28J60 有線LANよりは、高めですが
他の部品コストを下げて、低価格の構成できればと思います。

と似ていますが、スイッチ画面はwebで作成し
LEDのON/OFF としています。

[MQTT 構成]
broker : test.mosquitto.org
publish(Pub) : Chrome Android 
subscribe(Sub) : IoT device

*) 前回と同様、テスト用の broker(MQTT Server), pahoのJSライブラリ等
を使用。

*) 関連URL/version 等は、執筆時点を記載しています

# 部品
WIZ550io v1.1 有線LANモジュール/ 1944 [en]
atmega328P-PU (ブートローダ書き込み済) / 360 [en]
降圧 3.3レギュレータ / 100[en]
470 マイクロF コンデンサ
マイクロUSB(メス) / 200[en]

# 配線

[WIZ550io] - [atmega328]
MOSI - D11
MISO - D12
SCLK - D13
SCSn - D10

3V3 - 3V3
GND - GND

# 準備
arduino-sdk 1.0.5

# W5500 ライブラリの追加
https://github.com/Wiznet/WIZ_Ethernet_Library
README に従って、ライブラリ追加します。
https://github.com/Wiznet/WIZ_Ethernet_Library/blob/master/README.md

*)上記の追加後、webClient等のサンプルを実行して
正常に通信できる事を確認したほうが、良いかもしれません。

# mqtt ライブラリの追加 (pubsubclient-2.3)
http://knolleary.net/arduino-client-for-mqtt/
[pubsubclient-2.3.zip] が直接インポートできませんでした、
下記の対策行いました。

[pubsubclient] の名前でフォルダ作成しておきます
pubsubclient-2.3.zip 解凍し、
src 内のファイルを上記の [pubsubclient]にcopy
examples を[pubsubclient]にcopy

zip圧縮し、SDK から[Add Library]
([スケッチ]-[ライブラリを使用]-[Add Library])

# atmegaの下記書込みは、前回の記事を参考
http://knaka0209.blogspot.jp/2015/10/ATmega328-1.html

マイコンボード = ATMega328P/ Int.8MHz
書込装置= arduino as ISP

# code
macアドレスは、基盤に記載されていたアドレスに
書き換えました。

スケッチは、前回の MQTT - arduinon EtherNet
と同じ。詳細は省略します。

*) MQTT - topic は、web側と合わせる事が必要です。

# テスト
web画面( chrome Android )から、ON/OFF操作します。
ON 押すと、LED点灯します。
OFF押すと、消灯。


# センサー値のPublish追加しました。( MQTT )
上段はmqtt - Sub版でしたが、
Publish版でセンサー値の送信追加してみました。(約 2秒間隔)
表示版は、前回と同様の paho-JSライブラリで表示(ロギングのみ)
A0 に光センサー追加。


# code : Arduino SDK
topic を、web側とあわせます。

*) web表示側のコードは前回とほぼ同じの為、省略

# web 画面


# ケースも作成してみました。DIY編

加工は側面に穴あけ。だけですが、、
ドリル工具、精密ニッパで穴サイズを調整。

# 材料
プラケース / 100[en]
*) 100均さまで探したケース(ハガキ用らしい)
少し大きめでしたw (基盤に対して)

# 反対側の図
 手作業での穴あけが、ギザギザでいまいち。


# http センサ値の送信も追加しました。
上段での、MQTT 通信に加えて、http 送信機能も追加しました。

# code : arduino SDK
WIZ550io_arduino_http_1.ino

サンプルの webClient を参考に実装しています。
*) sdk :[ファイル]- [スケッチの例] -[EtherNet]-[webClient]
macアドレスは、wiz550io 基盤に記載されたアドレスを入力。


# BaaS に転送して、センサ値の保存

# グラフの描画も


# まとめ
正直、
開発ボード使用して(UNOとか) 開発したほうが はるかに楽です。
抵コスト化等で、複数製作する場合は検討しても良い構成。
MQTT経由のスイッチ応答性は速くて、
使える範囲かと思います。

# 参考の記事
arduino-mqtt - lib

paho-mqtt javascript

# 関連の記事
MQTT 準備編。Arduino EtherNet, paho-MQTT(over WebSocket)
http://knaka0209.blogspot.jp/2015/10/mqtt-1.html

MQTT 活用編。IoT型スイッチ Arduino EtherNet

ATmega328P-PU に、スケッチを書き込む (ARDUINO as ISP)

# 開発者向けのまとめ記事


コメント

  1. Hello, knaka
    I work for WIznet which designed 550io you used.
    If you do not mind, could I share your post with WIZnet coworkers?

    thank you,

    lawrence

    返信削除
    返信
    1. Dear lawrence

      this blog is public document,
      source code is OSS(Sopen source Licence)
      share is possible.

      Best Regards,

      削除
    2. Thank you!
      It will be so helpful. Then how did you know about WIZ550io??

      削除

コメントを投稿

FACEBOOK

人気の投稿