Slide 1

Slide 1 text

小型LinuxボードとNode-REDで IoTプロトタイピング パナソニック株式会社 エコソリューションズ社 技術本部 イノベーションセンター 上野 武史 1 Node-RED UG Osaka 勉強会 2018年2月24日

Slide 2

Slide 2 text

私について 2 ■所属:パナソニック株式会社 エコソリューションズ社 技術本部 イノベーションセンター ・ミッション:社内商品のIoT活用による高付加価値化 ・最近の取り組み:スマートHEMS クラウドサービスの企画・開発 ■社外活動: ・Wonder Labo Osakaで「WLOラズパイ倶楽部」導師 https://www.facebook.com/wonder.lab.osaka https://www.facebook.com/groups/WLORaspberryPiClub/ ・趣味の電子工作、ハッカソン参加等 http://git.io/wlopi

Slide 3

Slide 3 text

コンテンツ 3 ■IoTプロトタイピングとNode-RED ■Node-REDが動作する小型Linuxボード ■小型LinuxボードにNode-REDを導入 ■Node-REDでセンサー・アクチュエータ接続(Grove) ■小型Linuxボードをインターネットに接続 ■まとめ

Slide 4

Slide 4 text

IoTプロトタイピングとNode-RED 4 ■いいサービスはトライアル&エラーから ・要件を決めきれない 本当に役に立つサービスかどうかは試しにつくって使ってみないと判断できない →いつでもプロトタイピングできる環境が手元にあることが重要 ・トレンドは変化する サービスのトレンドは数ヶ月単位で変化する →半年かけて作っているうちにもう時代遅れになる可能性 ・環境構築、開発ツール導入不要: Webブラウザで使える「FlowEditor」でいつでもどこでも開発 ・さまざまな環境で動作: クラウドから組み込みまで ・すぐ試せる: FlowEditor内でそのままデプロイしてサービスをすぐ稼動、テストできる ・再利用性、拡張性: Flowの再利用、CustomNodeによる独自拡張 ■サービスプロトタイピングに「Node-RED」の採用

Slide 5

Slide 5 text

Node-REDはIoTプロトタイピングに向いている 5 IoT基盤 モバイルバックエンド 永続化機構 認証・認可・課金 アプリ基盤 UI・サービス連携 宅内機器 プロトコルスケール WebSocket/HTTP トランザクション管理 認証・認可・課金 ■IoTシステムの開発要素とNode-REDの適応レイヤー

Slide 6

Slide 6 text

Node-REDはIoTプロトタイピングに向いている 6 IoT基盤 モバイルバックエンド 永続化機構 認証・認可・課金 アプリ基盤 UI・サービス連携 宅内機器 ・新サービスのUI試作 ・他社サービス連携試作 ・公開APIの試作 プロトコルスケール WebSocket/HTTP トランザクション管理 認証・認可・課金 ■IoTシステムの開発要素とNode-REDの適応レイヤー

Slide 7

Slide 7 text

Node-REDはIoTプロトタイピングに向いている 7 IoT基盤 モバイルバックエンド 永続化機構 認証・認可・課金 アプリ基盤 UI・サービス連携 宅内機器 ・新サービスのUI試作 ・他社サービス連携試作 ・公開APIの試作 ・新サービスバックエンド試作 ・サービススタブによる開発支援 ・分析データ収集/解析 ・運用支援・CI プロトコルスケール WebSocket/HTTP トランザクション管理 認証・認可・課金 ■IoTシステムの開発要素とNode-REDの適応レイヤー

Slide 8

Slide 8 text

Node-REDはIoTプロトタイピングに向いている 8 IoT基盤 モバイルバックエンド 永続化機構 認証・認可・課金 アプリ基盤 UI・サービス連携 宅内機器 ・新サービスのUI試作 ・他社サービス連携試作 ・公開APIの試作 ・商品スタブによる負荷試験 ・サービス稼動監視 ・分析データ収集/解析 ・新サービスバックエンド試作 ・サービススタブによる開発支援 ・分析データ収集/解析 ・運用支援・CI プロトコルスケール WebSocket/HTTP トランザクション管理 認証・認可・課金 ■IoTシステムの開発要素とNode-REDの適応レイヤー

Slide 9

Slide 9 text

Node-REDはIoTプロトタイピングに向いている 9 IoT基盤 モバイルバックエンド 永続化機構 認証・認可・課金 アプリ基盤 UI・サービス連携 宅内機器 ・新サービスのUI試作 ・他社サービス連携試作 ・公開APIの試作 ・商品スタブによる負荷試験 ・サービス稼動監視 ・分析データ収集/解析 ・新サービスバックエンド試作 ・サービススタブによる開発支援 ・分析データ収集/解析 ・スタブによる商品開発支援 ・実証実験向け機器開発 ・新商品プロトタイピング ・運用支援・CI ・宅内家電シミュレータ (ECHONETLite) プロトコルスケール WebSocket/HTTP トランザクション管理 認証・認可・課金 ■IoTシステムの開発要素とNode-REDの適応レイヤー

Slide 10

Slide 10 text

プロトタイピング案件の最近の方向性 10 ■小型化 ・プロトタイピング対象商品が小型化 ■長期間運用 これまではRaspberry Pi 3外付けでもよかったのに 「機器のスキマに入らないか」 「USBドングルみたいにならない?」 (...LinuxじゃなくてArduinoマイコンでよいのでは) ・バッテリで長時間動かしたい Raspberry Pi 3は「大飯喰らい」 「20000mAhのモバイルバッテリーで半日動かない」 「ヒートシンクつけてもCPU温度68度とか」 (...そりゃarm8/1.2GHz/クアッドコアだから…)

Slide 11

Slide 11 text

小型LinuxボードとNode-RED 11 ・電気街での店頭入手も可能(共立、千石、マルツ) ■小型Linuxボードが国内でも入手可能に ・価格は3000円($30)前後、通常在庫もそこそこある:急な試作にも安心。

Slide 12

Slide 12 text

小さいコンピュータでNode-REDを動かす 12 性能目安:CPUクロック500MHz以上、メインメモリ256MB以上のLinux搭載機器 ■Node-REDが動作可能なマイコンボード node.js が動作する基準 gcc / g++ 4.9.4 or clang/clang++ 3.4.2 のビルド対象アーキテクチャ Python 2.6以上 バイナリ配布されているのはx86/x64/ARMv6/ARMv7/ARMv8 https://nodejs.org/en/download/

Slide 13

Slide 13 text

Node-REDが動作可能な小さいマイコンボードを比較 13 サイズ目安:Raspberry Pi 3(86mmx56mm=4816mm²)より小さいもの コスト目安: 3000円程度まで ■今回の選定基準 購入: 国内(通販・日本円)で購入できるもの Raspberry Pi ZeroW PocketBeagle NanoPi NEO

Slide 14

Slide 14 text

Raspberry Pi Zero / ZeroW / ZeroWH 14 ・特徴 ・OS ・Node-REDのインストール 入手性がよい、日本語の情報も多い GPU+HDMIインターフェイス搭載 Raspbian (Debian Stretchベース) Raspbianには標準インストールされているが古い →更新スクリプトで最新へ更新できる WiFi/Bluetooth標準搭載(TELEC認証あり) 基板サイズ 65mmx30mm =1950mm² https://www.raspberrypi.org/products/raspberry-pi-zero-w/ 消費電力 Zero 最大0.2A (1.0W) ZeroW 最大0.3A (1.5W) ・価格 基板単体だと1800円程度 (基板単体は入手数上限があり、ケース、ケーブルセットで3300円程度)

Slide 15

Slide 15 text

PocketBeagle 15 ・特徴 ・OS ・Node-REDのインストール 標準で統合開発環境が準備されている (Cloud9/Node-RED) 単体消費電力が小さい(0.5W以下) 標準OSはDebian Stretchベース 標準OSに最初からインストール済み 搭載インターフェイスが多様 (CAN/SPIx2/I2Cx2/GPIOx44/ADCx8/USBx2) 基板サイズ 56mmx35mm =1960mm² http://beagleboard.org/pocket 消費電力 最大0.1A (0.5W) ・価格 基板単体で3500円程度(秋月通販価格)

Slide 16

Slide 16 text

Nanopi NEO / NEO2 16 ・特徴 ・OS ・Node-REDのインストール 性能価格比が高い フットプリントが小さい(4cm角) 標準OSはUbuntu Core Armbian/DietPi Node.jsとnpmを手動インストール後 npmでNode-RED/CustomNodeをインストール 自動起動: systemd USB-A/Ethernet標準搭載 基板サイズ 40mmx40mm =1600mm² http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO 消費電力 Nanopi NEO 最大0.2A (1.0W) Nanopi NEO2 最大0.5A (2.5W) ・価格 Nanopi NEO 基板単体で1700円程度(秋月通販価格) Nanopi NEO2 基板単体で2400円程度(秋月通販価格)

Slide 17

Slide 17 text

その他の小型Linuxボード 17 ・OrangePi Zero ・C.H.I.P pro ・NanoPi Duo https://getchip.com/pages/chippro http://www.orangepi.org/orangepizero/ 48mmx46mm=2208mm² 43mmx26mm=1118mm² 50mmx25mm=1250mm² http://wiki.friendlyarm.com/wiki/index.php/NanoPi_Duo Ethernet/WiFi/USB全部搭載 価格:$10程度 DIPの使いやすいサイズ、WiFi搭載 価格:$12程度 クラス最小面積、WiFi/BLE搭載 価格:$16程度

Slide 18

Slide 18 text

小型Linuxボードサイズ比較 18 86mmx56mm=4816mm² 65mmx30mm=1950mm² 40mmx40mm=1600mm² 56mmx35mm=1960mm² 48mmx46mm=2208mm² 43mmx26mm=1118mm² 50mmx25mm=1250mm² Raspberry Pi ZeroW PocketBeagle NanoPi NEO Orange Zero NanoPi Duo C.H.I.P Pro Raspberry Pi 3

Slide 19

Slide 19 text

海外製ボードにおける、無線LANの認証問題(通称「技適問題」) 19 ■TELEC認証について WiFi/Bluetoothを内蔵するボードについては、TELEC認証が 付いていないものは日本国内で動作させただけで電波法違反になるので注意 ・無線LANの規格なんてどの国も一緒でしょ? 国によって使えるチャンネルが違うので、チップに国別設定します。 (2.4Gは日本が一番広いが、チャンネル14の扱いに制限あり、 5Gは日本で使えないチャンネルがあるので設定しただけで違反) ・アンテナつけてないから大丈夫 アンテナとのセットで認証を取得するため、アンテナついてなくても 電波出せる状態になっているだけで違反 (アンテナついてない状態のほうがノイズが送信される場合も) →アンテナの代わりにダミーロードを接続することで電波が送信されない ボード(Raspberry Pi Zero W)、無線LANアダプタとも、 TELEC認証を得た機器を使うようにしましょう

Slide 20

Slide 20 text

小型Linuxボードの導入Tips 20 ■OSの準備 ■「工業グレード」のmicroSDを使う ・監視カメラや業務用デジカメに対応する「工業グレード」microSDが発売されている ・通常microSDの1.5~3倍程度の価格(16GBで1500円から3000円程度) ・小型LinuxボードはOS起動ストレージにmicroSDを使う →提供されているOSイメージをダウンロードし、microSDに書き込む ・安価なmicroSDは、フラッシュメモリの書き換え回数が少ない →OSを長期間運用していると、ディスクエラーが発生しシステムダウンする

Slide 21

Slide 21 text

小型Linuxボードの初期設定 21 ■USBでPCに接続 ・PocketBeagleはデフォルトで linux usb gadgetをサポート →PCにmicroUSBで接続するだけで、COMポート/USB Ethernetとして使える (Raspberry Pi Zero/Nanopi Neoも設定することで利用可能) ■HDMI/USB keyboard/mouseで設定 ・Raspberry PiはPCのように設定する ■TTYserialで設定 ・comポートにuartで接続して設定する

Slide 22

Slide 22 text

Node.jsとnpm、Node-REDの導入 22 ■Raspberry Pi Raspbianで標準サポートされている ミドルウェアが古い場合があり、 そのままでは安定して動作しない。 ⇒更新用スクリプト 「update-nodejs-and-nodered」を 用いてNode.jsとNode-REDを 最新版に更新する

Slide 23

Slide 23 text

Node.jsとnpm、Node-REDの導入 23 ■PocketBeagle デフォルトでパッケージ導入されている apt update / apt upgrade で最新版にアップグレード可能 ■NanoPi NEO/NEO2 導入OSによって異なるが、パッケージ導入可能 自動起動設定 「sudo systemctl enable nodered.service」 自動起動解除 「sudo systemctl disable nodered.service」 Node-REDサービスの再起動 「sudo systemctl restart nodered.service」 ■Node-REDの自動起動設定・解除

Slide 24

Slide 24 text

小型Linuxボードのプロトタイピング Tips 24 ■ヘッドレス運用 Node-RED 動作モニタ用LEDをインジェクトで実現 ・PCのようにモニタが接続されていない:起動しているかどうかわからない ・GPIOに接続したLEDを点滅させて、Node-REDが動作していることを確認。 ・システムの再起動もNode-REDから実施する

Slide 25

Slide 25 text

Node-REDでセンサー・アクチュエータ接続 25 ■Grove System 深圳を代表するハードウェアMaker企業「Seeed Studio」が 提唱するモジュール式の試作システム。 読み方:ぐろーぶ しすてむ ・特徴 標準化された4pin(2mmピッチ)のコネクタ、ケーブル、基板サイズを持つ ベースユニットはArduino/BeagleBone/IOIO/Particle/NodeMCU/Raspberry Piに接続し そこにDigital/Analog/UART/I2Cでデバイスを接続してシステムを構成できる http://wiki.seeed.cc/Grove_System/ ・Grove I2C ピン配置 Pin1(SCL)黄 Pin2(SDA)白 Pin3(VCC)赤 Pin4(GND)黒 http://wiki.seeed.cc/Grove_System/#grove-i2c

Slide 26

Slide 26 text

Node-REDでセンサー・アクチュエータ接続 26 ・Grove System https://www.switch-science.com/catalog/list/?keyword=grove+i2c

Slide 27

Slide 27 text

Node-REDでセンサー・アクチュエータ接続 27 ・「特製ケーブル」で接続。 I2C HUBをつかって複数のモジュール接続 モジュール単独 3.3v SDA SCL (GPIO04) GND 1 3 5 9 4 3 2 1 VCC SDA SCL GND Raspberry Pi GPIO Grove I2C

Slide 28

Slide 28 text

Node-REDでセンサー・アクチュエータ接続 28 ■3つの方法 センサー専用のカスタムノードがある場合 例:BME280 (温度・湿度・気圧センサー) 汎用のI2Cドライバを使ってFlowを書く EXECノードを使って Pythonスクリプトを呼び出す

Slide 29

Slide 29 text

小型Linuxボードをインターネットに接続 29 ■3G/LTE PLANEX PIX-MT100 (LTE/WiFiルータ) 小型・低消費電力 USB端子はLinuxからEthernetとして扱える →モデムのデバイスドライバが不要 IP固定機能・DMZ機能でLinux側のサービスを公開できる Buffalo WLI-UTX-AG300/C(WiFi-Ethernet変換) Linux側ドライバ不要 11n/a固定機能で5GHz帯専用接続 (展示会場などで2.4GHzが不安定な場合に活躍する) ■WiFi WiFiルータ機能も持つので、スマートフォン等の接続も容易

Slide 30

Slide 30 text

IoT向けのMVNO 30 ■イプシム 固定グローバルIPアドレスを割り当ててくれるデータ通信SIM ・接続時、毎回同じIPを割り当ててくれるので、リモートから接続しやすい ・通信無制限/200kbpsで月額990円。高速化オプションもある。 ・プリペイドSIM提供サービスも始まった。(2か月無制限で4800円一括払い) https://ipsim.net/ ・セキュリティ対策はしっかりと…FlowEditorの認証設定やSSL導入で対応 (世界中どこからでも接続できてしまう)

Slide 31

Slide 31 text

リモートメンテナンスにVPNを活用 31 ■Zerotier ・クラウドにある仮想HUBに接続することで、 あたかもローカルLAN内のホスト同士のようにローカルIPで通信できる https://www.zerotier.com/ ・仮想HUBの設定(IPv4/IPv6)やクライアント認証情報は Webコンソールから設定できる ・仮想HUBあたり100クライアントまで無料で使える ・Raspberry Pi/NanoPi/PocketBeagleへも簡単にインストールできる

Slide 32

Slide 32 text

まとめ 32 ■IoTプロトタイピングに効くNode-REDと小型Linuxボード ■安価なLinuxボードを活用して、 Web技術者もIoTにチャレンジしませんか ■IoTのエンジニア不足気味です...(特に関西) 一緒にプロトタイピングに取り組みませんか! 関西でもNode-RED盛り上げていきたいです。 今後とも情報共有よろしくお願いします。

Slide 33

Slide 33 text

免責 33 本資料に関する免責 ・本資料に掲載されている会社名、サービス/製品名は、一般的に各社の商標登録または商標です。 ・本資料に掲載されている内容、サービス/製品の価格、仕様、お問い合わせ先、 その他の情報は、資料作成時点の情報です。その後予告なしに変更となる場合があります。 ・本資料の作成には注意を払っておりますが、掲載された情報の内容の正確性については 一切保証しません。また、当資料に掲載された情報・資料を利用、使用、ダウンロードする などの行為に関連して生じたあらゆる損害等についても、理由の如何に関わらず、 発表者及び所属組織は一切責任を負いません。