iotlt大阪#1 arduinoと3dプリンタでiotして気がついたこと

18
Arudinoと3DプリンタでIoTして 気付いたこと IoTLT@大阪 2016年3月3日 柏木良夫@日新システムズ

Upload: yoshio-kashiwagi

Post on 23-Jan-2018

1.010 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

Arudinoと3DプリンタでIoTして 気付いたこと

IoTLT@大阪

2016年3月3日

柏木良夫@日新システムズ

Page 2: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

自己紹介

• 柏木良夫

• 株式会社日新システムズ

• 組込みエンジニア

– 制御、各種ネットワークプロトコル

– リアルタイムOS、Linux移植、ドライバ開発

– 最近ではWi-SUNプロトコル開発など

稀に現役しています

Page 3: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

3Dプリンタ導入まで

Page 4: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

コトの始まり

• 2011年3月 ECHONET Lite規格(時代の背景)

– エコーネットコンソーシアムにて仕様作成

– 経産省がHEMSネットワークプロトコルとして推奨

• 2012年6月 ECHONETをスクラッチで実装してみる

– ECHONET LiteエアコンWindowsアプリ

– Androidエアコンリモコン

作成当時は、それなりに満足していたものの・・・

リアルに動くモノがほしい

動画

Page 5: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

2014年秋 リカちゃん洗濯機を・・・

• インテリジェントに換装

• NXP社 LPC1114 Cortex-M0マイコン(mbed)

– モータ、ブザー、LED、ドア開閉検出制御、シリアル通信

– ECHONET Lite通信

• シリアル経由LPC1114制御

– 洗濯モード(洗濯、すすぎ、脱水)

– ブザー通知(開始、ドア開閉、完了)

– ドア開閉、洗濯モード状態変移通知

NXP LPC1114 32ビット

Cortex-M0マイコン

TI DRV8832

DCモータドライバ

M

圧電 ブ

ザー

LANTRONIX XPort

ETHERNET

LED 運転状態

ECHONET Lite プロトコル処理 洗濯機制御

リードSW ドア開閉

モータ 正転・逆転

指令受付 完了など

RS323C

洗濯機はマイナーすぎエアコンがほしい

オリジナル タカラトミー 「リカちゃんくるくるおせんたくしましょ」

Page 6: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

何とかエアコンが作れないか?

• 真空成型(バキュームフォーム)してみる

バルサ材で型作りして真空成型した失敗作たち

100均のLEDの型取りは簡単!

近いモノは出来るが、強度的にも形状的にも難しい

3Dプリンタしかない・・・

吸引不足

破れ

自作真空成形器

掃除機

ヒートガン

タミヤ1.5mm プラ板

100均LEDライト

Page 7: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

という訳で・・・2015年始め

• DIY組み立て3Dプリンタ導入

試行錯誤の末に

Aliexpressで香港より到着 組み立てたものの 安定して積層するのは

そう簡単ではない

何度も設計→印刷を繰り返し・・・

※画面はAutodesk 123D Design

フィラメント送り出し機構変更 (ボーデンタイプ)、アルミYフレーム

に改造

耐熱ガラス ヒートベッド、 小径ノズルに変更

Page 8: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

組み立て

• 仮組みから実装へ

Arduino Nano ATMEGA328P

8bitマイコン

TI DRV8832

DCモータドライバ

M

圧電 ブザー

LANTRONIX XPort

ETHERNET

LED 運転状態

ECHONET Lite プロトコル処理 エアコン制御

ルーバー リミッターSW

RS323C

送風FAN

ULN2003A ステッパモータ

ドライバ

M

ルーバ開閉

I2C

BMP180 温度 センサ

OLED ディスプレイ

I2C

フルカラー LED x 2

赤外線 受光

モジュール

仮組みと回路試作

半田付けと組込み

完成!

HEMS繋げば一応ホームネットワーク上でエアコンとして見える

ステッパーモーター (ルーバー開閉)

温度センサ

Arduino Nano

イーサ・シリアル変換

OLED

ルーバーリミッタSW

フルカラーLED x 2

Page 9: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

完成!

ついでにECHONET Lite対応LED照明

動画

Arduino Nano ATMEGA328P

8bitマイコン

LANTRONIX XPort

ETHERNET

ECHONET Lite プロトコル処理 LED照明制御

RS323C

圧電 ブザー

フルカラー LED x 12

赤外線 受光

モジュール

赤外線リモコン受光

ブザー

フルカラーLED x 12

シリアル・イーサ変換

Arduino Mini Pro

Page 10: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

あんまりIoTじゃない・・・

Page 11: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

クラウドまでデータ上げないと・・・

• 太陽光発電所にしてみる

太陽光発電所の雰囲気

印刷(積層)

PVパネル組み立て

Arduino Nano ATMEGA328P

8bitマイコン

DSUB

9ピンコネク

RS323C

I2C

BMP180 温度 センサ

OLED ディスプレイ

I2C

照度 センサ

INA226 電流 センサ

INA226 電流 センサ

I2C

太陽光パネル

太陽光パネル 太陽光

パネル 太陽光パネル 太陽光

パネル 太陽光パネル

回路作成

完成! 半田付け、ファーム作成

太陽電池 Arduino nano

電流センサ I2C OLED

照度センサ

Page 12: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

IoTらしく仕上げ

• エッジデバイスはRS232からJSON出力 • フォグ(Armadillo)はNode.js

– Nodeシリアルモジュール – JSONデータをMQTTでパブリッシュ

• クラウドもNode.jsで – MQTTサブスクライバからSQLへ – JavaScriptでSQLからWEB更新

Armadillo IoT

Note PC(WEBブラウザ)

HDMI

収集データ (MQTT)

WEB (HTTP)

クラウド

インターネット

ミニチュア太陽光発電所

RS232C

センサ実装 ・電流センサ(発電量) ・温度センサ ・照度センサ

MySQL SQLサーバ

MQTT サブスクライバ (JavaScript/

Node.js)

Mosquitto MQTT

ブローカー

HTTPサーバ (JavaScript/

Node.js)

ETHERNET

MQTT パブリッシャ (JavaScript/

Node.js)

エッジ・コンピューティング フォグ・コンピューティング

クラウド・コンピューティング

JavaScriptで実装

Page 13: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

気付いたこと

Page 14: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

知らない間に WEBフロントエンド系の技術が凄い事に

Page 15: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

JavaScriptで殆ど書ける

• JavaScriptって – 使えるjsライブラリが沢山!

– DOM操作で直接WEB画面を更新

– Ajax、JQueryで様々なI/F可能(DB、UDP/TCP、MQTT・・・)

• Node.js使えばサーバサイドでも – 使えるモジュールが沢山!

Page 16: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

データハンドリングも便利に

• データ形式はJSONに – JavaScript、C++などパース関数呼べば一行で欲しいデータにアクセス

– 文字列なので生成が楽

• Arduinoではセンサ取得値をSerial.printでJSON形式で出力

例){“power0”:0.9,”power1”:0.8,”radiation”:0.49,”temp”:10.5}

• Raspberry Piなど使ってシリアルからMQTT経由でクラウド側へ上げるだけ

Page 17: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

連携が簡単

• NoSQLもある – MongoDBなどJSONっぽくアクセス

– SQLにない柔軟性

– データ指向(駆動)アーキテクチャも作れそう

– もちろんMySQL、PostgreSQLも容易に接続

• MQTT使えばコンポーネント間が疎結合に – PublisherはトピックデータをBrokerに送信するだけ

– SubscriberはトピックデータをBrokerから受信するだけ

• Publishされれば自動的にイベント処理出来る

– JSONに載せればとても楽

電子工作と3DプリンタとIoTを 組合わせるととても楽しい

Page 18: IoTLT大阪#1 Arduinoと3DプリンタでIoTして気がついたこと

What’s next?