1.1 iot概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド...

39
はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web) 奈良工業高等専門学校 土井滋貴 (2016.11.19)

Upload: others

Post on 26-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

■はじめに ■デバイス ■ネットワーク ■クラウド ■まとめ

IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~

1.1 IoT概要(web版) 奈良工業高等専門学校 土井滋貴 (2016.11.19)

Page 2: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

2007~2011 2012~ 最近の話題、 (戦略推進費) (自立化) 取り組み

■自己紹介に代えて 社会人向け教育 元気なら組み込みシステム技術者の養成 http://www.genet-nara.jp/

ベーシック コース

アドバンスト コース

ペリフェラルズ コース

ソフト的 技術レベル

高機能

ハード的 技術レベル

高性能

小規模システムの開発 中規模システムの理解

中規模システムの開発 大規模システムの理解

小規模システムの開発 高性能なハード開発

高性能なハードをもつ 中規模システムの開発

3つの講座を実施

マイクロコンピュータ 基礎

プログラマブル デバイス

設計手法

組み込みシステム

開発サポート

組み込みシステム

技術教育

奈良高専 産学 交流講座

GENET コミュニティ (修了生 コミュニティ、 企業間交流、

勉強会、 見学会)

オブジェクト指向 組み込み,

SoC

IoT,M2M

デジタル ファブリケーション 3Dプリンティング

http://genet-community.org/

Page 3: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

3

■IoT(Internet of Things)とは

M2M、 ユビキタスと 呼ばれる 場合もある。

危うい側面 各フェーズごとに継承されず繰り返される問題もある。 例えば 標準化、セキュリティ。

Page 4: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

データ

蓄積収集 分析

データ

データ

データ予測・ 異常感知

稼働状況確認

作業の高効率化

4

■IoTの例

ICT(Information and

Communication Technology)

Internet of Things

施設園芸、植物工場など 向けのサービス「まかしたくん」 http://rsensesystems.com/?page_id=52

Page 5: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

近距離無線通信 Bluetooth, ZigBee

Wifi, SubGiga,3G, etc.

クラウドサービス Windows Azure

AWS, Google,etc.

ボードマイコン RaspberryPi,

Arduino, etc.

要因・オープンソースの思想 ・Arduino、RaspberryPi なとヨーロッパ勢の活躍

・メイカーズブーム

低価格化

多品種化

実証試験 製品化

実用化への谷?

センサー アクチュエータ モータ等

イノベーションを 進めようとする力

IoT , ICT

各ロボット分野

■総合力が重要:近年の注目要素

携帯端末 Android等

ラピッド・プロトタイピング デジタル・ファブリケーション

ハッカソン

ファブラボ

AI Data mining,

Machine learning,

Deep learning

デザイン思考

Page 6: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

6

■ビジネスとしての側面

オープンソースをどう取り入れるか。

少量多品種

汎用性の高い プラットフォームが 求められる。

前例のない システムの 場合が多い

しかも、広範囲な技術、 システム構築が必要

ラピッドプロトタイピング アジャイル開発

Page 7: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

ディジタル 回路

マイクロ コンピュータ

リアルタイムOS

クラウド

SaaS

SoC

PaaS

アナログ 回路

ソフトウェア 記述言語 基礎

要素

LAN ネット

ワーク

センサー アクチュエータ メカトロ

信号処理 制御理論

■バランスのとれた総合力が重要

WAN PAN

IaaS

設計 手法

テスト 手法

開発全般

モデリング

セキュリティ

組み込み システム

ICT

データベース

無線通信

データマイニング

ラピッド プロトタイピング

AI

Page 8: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

8

■IoTシステムのネットワークの形態

理想的にはこちら(?) 最終製品

IPが通る方がなにかと便利 プロトタイピング向き IP(Internet Protocol)が

通るか否かが目安

クラウド

ネットワーク

デバイス

Page 9: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

ハードウェア 小規模 中規模 linux搭載・クラウド連携

規模

スクリプト系言語の使用

処理 単純なON/OFF処理 アナログ信号の入出力 ネットワークへの接続 画像

■マイクロコンピュータの規模での分類

C#、Python Node.jsなど 非ネイティブ系 言語(Script) の台頭

進む ブラック ボックス化

ボード Arduino Netduino、GR-Peach RaspberryPi、BBG

CPU AVR(8ビット) ARM Cortex-M(32ビット) ARM Cortex-A(32ビット)

Native

直接機械語に翻訳して実行 (C、C++)

Virtual machine

スクリプトを(中間コードに変換して)直接実行

コーディング 効率向上(?)

Page 10: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

10

○Arduino YUN

ArduinoにLinux部分を追加したボード。ArduinoとLinuxはハード的 にはシリアルで接続されArduinoからはBridgeライブラリを使用して利用 する。LinuxからArduino側を操作することもできる。 ○Netduino 3 WiFi .NET MicroFramework標準搭載のArduino準拠ボード。そのWiFi搭載版。

○Intel Edison

ArmでなくIntelのCPUを搭載した小型Linuxモジュール。写真はArduinoのインターフェースを実現するためのドータボードの上に搭載している。右図のようにArduinoIDEからもプログラムできる。

○ESP8266モジュール

格安WiFi-シリアルブリッジとして注目されているが、小規模な32bitCPUを搭載しており、プログラムすることができる。ArduinoIDEでの開発のための追加ライブラリ等も用意されつつある。ここでも技適の問題あり。

■安価になったWifi標準搭載のボード 多くのボードは ArduinoIDE

が使用できる。開発ツールのデファクトスタンダード(?)

Page 11: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

11

■YUN(雲)従来のArduinoの資産の継承を重視している(?)

Arduinoの進化

CPUの強化 32bit化

サブシステムの追加YUNなど

更に コンパクト、安価な Industrial 101 も発売された。

Page 12: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

12

Linux側は python2.7 が初めから動いている。2行でhttpサーバが構築できる。 サーブするhtmlファイル等はホームディレクトリがデフォルトの場所になる。

■YUN(雲) Linux の入門として

Page 13: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

13

■ESP8266 WiFi-シリアルブリッジとしてだけでなく、ArduinoIDEやLuaを使ってマイコンとして利用できる。

Luaを使ったプログラム例、 今までにない低価格のIoTデバイスが実現できる。

ArduinoIDEで プログラム可能

Page 14: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

14

Arduino

YUN

Netduino

3 WiFi

Edison EPS8266 RaspberryPi

1 Model B

Linux OpenWrt - Yocto - Debian

Node.js △ - ○ -(Lua) ○

C#/.NET M.F. - ○ - - -

CPU(net) MIPS

AR9331

ARM

Cortex M4

Intel

Atom

Tensilica

L106(IP)

ARM11

クロック 400MHz 168MHz 500MHz 80MHz 700MHz

RAM 64MB 164KB 1GB(DDR3) 64+96KB 512MB

Flash 16MB

+SDCard

1408KB 4GB 512KB -

SDCard

CPU(I/O) ATmega32u

4

Intel

Quark

クロック 16MHz 100MHz

RAM 2.5KB -

Flash 32KB -

■Wifi標準搭載のボード比較 同程度の価格であるが構成はかなり異なる。

Page 15: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

15

■最近注目のそのまま動くモジュール

Edisonが使われている

Page 16: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

16

■新しいモータモジュール

ネットワークから 直接コントロール可能。 IoTシステムとの 親和性を実現する。

KEIGANが 開発中

デモ システム

KEIGAN https://www.facebook.com/keigan21/

Page 17: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

17

・利用難易度 ・価格

・処理速度 ・周辺機能

従来の開発ボード 産業用

ラズベリーパイ

アールデゥイーノ ホビー

■新しいモータモジュールの位置

おっと!

Page 18: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

■ネットワークの種類

xPicoWiFi、RN42、mbed HRM1017、TWE-Lite DIP、ToCoStick (WiFi) (Bluetooth)(BluetoothLE) (IEEE802.15.4)

公衆回線

SubGiga

Page 19: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

■IoTシステムのネットワーク IP(Internet Protocol)とは

名前解決 DNS

Webブラウザ HTTP

メール SMTP

その他 IoT向け MQTT,AMQT

Page 20: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

20 u-blox C027

タブレイン 3GMI

タブレイン 3Gシールド

メカトラックス 3GPI

elecfreaks 3G Shield

■各種3Gモジュール MVNOが提供する格安SIM、IoT向けサービスが

利用できるようになった。

IoT向けMVNO

Page 21: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

21

■u-blox 3Gモジュール

mbedの 開発環境が 利用できる。

3G回線への接続の様子

GPSデータの受信の様子

Page 22: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

22

■Node.js

5行で httpサーバが構築できる。 var http = require('http');

http.createServer(function (req, res) {

res.writeHead(200, {'Content-Type': 'text/plain'});

res.end('Hello World¥n');

}).listen(1337, "127.0.0.1");

JavaScriptの プラットフォームの1つ。 非同期処理が 特徴。

Page 23: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

23

■Node.js ブラウザからのLED制御(Node.js) var http = require('http');

var app = http.createServer(handler);

var sockio = require('socket.io');

var io = sockio.listen(app);

var fs = require('fs');

var bb = require('bonescript');

app.listen(8090);

bb.pinMode('USR0', 'out');

io.sockets.on('connection',

function (socket) {

socket.on('led',

function (data) {

console.log(data);

if (data == 'on')

bb.digitalWrite('USR0', bb.HIGH);

else

bb.digitalWrite('USR0', bb.LOW);

});

});

function handler (req, res) {

fs.readFile('sock14.html',

function (err, data) {

if (err) {

res.writeHead(500);

res.end('Error loading index.html');

}

else{

res.writeHead(200);

res.end(data);

}

});

}

<html>

<head>

<script src = "/socket.io/socket.io.js"></script>

<script>

var socket = io.connect();

function ledOn(){

socket.emit('led', 'on');

}

function ledOff(){

socket.emit('led', 'off');

}

</script>

</head>

<body>

<input type="button" name="on" id="onButton"

value="on" onClick="ledOn();">

<input type="button" name="off" id="offButton"

value="off" onClick="ledOff();">

</body>

</html>

操作側に 専用プログラムを 用意しなくても ブラウザだけで済む。

Page 24: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

24

■Node-RED

Node-REDを使ったUDPの送受信の実験。 上のページがRaspberryPi、 下のページがPC。

インジェクトノード

今月号(6月)のトランジスタ技術 RasPi3特集、 実はNode-RED特集

Page 25: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

25

■XDK IoT Node.jsのデバッグを可能にした。

ダウンロード

デバッグ

PC

デバッグ ウィンドウ

ターゲット

Page 26: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

26

SaaS:Software as a Service

BaaS:Backend as a Service

PaaS:Platform as a Service

IaaS:Hardware as a Service

Azure

Bluemix

SoftLayer

■クラウドサービス 一言でクラウドといっても広範囲な技術を指す。まずは大まかな分類とその概要を把握。 IoT では PaaS、BaaS との連携が重要。

Page 27: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

27

クラウド (サーバ)

ユーザ (クライアント)

■BaaS(Backend as a Service)の構成 IaaS や PaaS と比べると,プログラミングや構築,運用の手間がかからない。 Azure Mobile Apps も BaaS。

Page 28: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

28 http://tabrain.jp/3GSAPresen.pdf

■クラウドサービスの利用例

Page 29: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

29

■IaaSクラウド IaaSの必要性

IaaS

3G回線

WiFi Bluetooth

etc.

u-bloxなどの3G付きデバイスを 下回りを含めて試そうとすると、 ルータの「内側」にいるかPCとかでは「外側」の u-bloxからアクセスするサーバとしては使い辛い。グローバルIP側にいて、 下回りもある程度さわれるサーバを自分で持つ必要性がある。

グローバル・アドレス

ローカル・アドレス

Page 30: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

30

■IaaSクラウド IaaSクラウドも数多く提供されるようになってきた。

Page 31: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

31

■Azure マイクロソフトが提供するクラウドサービス、BaaS+PaaS+IaaS。

個々のマイクロソフト製品との連携に優れる。

Page 32: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

32

■Azure クラウド側でNode.jsを動かす。

PC上のツールを使って作成しAzureへアップする。

Page 33: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

33

Event Hub

Stream Analytics

Machine Learning

■クラウドサービスの利用例:MS Azure

IoT Hub

AMQT

HTTP

MQTT

AMQP

最近新しく IoT Hub が追加される。 IoT Hub には無料のスケールレベルも用意されている。以下に詳細な資料: http://ms-iotkithol-jp.github.io/

Cognitive Services

Page 34: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

34

■クラウドサービスの利用例:MS Azure その1

Page 35: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

35

■クラウドサービスの利用例: MS Azure その2

SensorTag Edison

IoTHub WebApps

Azure

ブラウザ

http://niot.azurewebsites.net/

重力加速度情報 公衆回線

公衆回線

Webページとして閲覧 専用アプリを必要としない

BluetoothLE

クラウド

ネット

デバイス

Page 36: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

36

■オープンソースの深い森

apt-getは、Debian系のディストリビューション(DebianやUbuntu)のパッケージ管理システムであるAPT(Advanced Package Tool)ライブラリを利用してパッケージを操作・管理するコマンド。

ipkg(Itsy Package Management System)は、携帯機器や組み込み機器向けの軽量なパッケージ管理システム。

npm(Node Packaged Modules)とはNode.jsのライブラリやパッケージを管理するツール。

Page 37: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

37

■日本の存在感 IoT関連に関して

AWS(米) Azure(米)

Industry 4.0(独)

RaspberryPi(英) Arduino(伊) ?Ruby(日)

ARM(英)

8266(中)

非常に散発的な例だけども、、、当然最初は英語で発表される。

Lua(伯)

Page 38: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

38

新たな活動 関西支部立ち上げ

■M2M研究会

Page 39: 1.1 IoT概要(web版 - doilab.net · はじめに デバイス ネットワーク クラウド まとめ IoT基礎講座 IoT BASIC ~手作り IoT のすすめ~ 1.1 IoT概要(web版)

■はじめに ■デバイス 1.広範囲な知識 ■ネットワーク 2.オープンソースの扱い ■クラウド 3.英語 ■まとめ

IoT基礎講座

IoT BASIC ~手作り IoT のすすめ~

奈良工業高等専門学校 土井滋貴 (2016.11.19)