SlideShare a Scribd company logo
1 of 33
Download to read offline
AWS IoTでGO!
電車でGO!コントローラを使い、
arduino Yún + モーターシールドでNゲージを操作
2016/2/16
瀧澤 与一 (Mail: yoicht@amazon.co.jp)
アマゾン ウェブ サービス ジャパン株式会社
技術本部 エンタープライズソリューション部
部長/シニアソリューションアーキテクト
瀧澤与一
アマゾンウェブサービスジャパン株式会社
技術本部 エンタープライズソリューション部
部長/ソリューションアーキテクト
金融機関をはじめとする
エンタープライズ企業向けの
AWS導入サポート
趣味:
オーディオ&ビジュアル、
スキー、ドライブ、子供と遊ぶ。
About me
2
7歳
なぜか、鉄道好きに
踏切の音を聞いて、
路線をあてられるレベル
「10歳になったらね」の
約束を破り、Nゲージの道に。
うちのこども
3
Nゲージ ジオラマ・・
4
線路に最大12Vの電圧。
車両は線路に流れる電流を車輪で受
け、モーターを駆動。
電圧により、車両の速度が変わる。
±を逆にすれば逆進。
一般的には、専用のコントローラ
(パワーパック)で操作。
Nゲージの仕組み
5
arduinoにモータシールドを接続し、線路に流れ
る電圧をarduino経由で制御可能に。
arduinoをUSBシリアルでRaspberry piを接続し、
Raspberry piにWebサーバを構築。
タブレット経由で車両の操作ができるようにした。
最初のトライ
しかし、うちの子供には不評。
ハンドルで操作したいとのこと。
6
「タブレットでのタッチ操作じゃリアリティが
ないんだよなー」
by うちのこども
7
電車でGO!64
コントローラを改造
課題解決:そういうわけで、
8
構成図
Arduino Yún
モーターシールド
AWS IoT
SNS
Lambda CloudWatch
logs
S3
操作 速度
データ
線路への
電圧
9
HC148
電車でGO!64コントローラの分解
10
データ
シート
HC148
11
HC148データシート(続き)
コントローラの位置をA2,A1,A0ピンを使い2進数で出力。
→ arduinoに入力
12
Arduino Leonardo
(ATmega32u4)をベースと
し、無線機能(WiFi)付きの
Linuxボードを搭載した
Arduino。
技適認証あり。
https://www.switch-
science.com/catalog/2210/
AWS IoTのSDKあり。
Arduino Yún
13
Arduinoのアナログ出力は最大
5V。
モーターシールドでは、12Vの
外部電源を接続すると、最大5V
の入力に対して、最大12Vの出
力をリニアに出力可能。電流も
2Aまで。
シールド形状のため、Arduinoに
かぶせるように接続可能。
モーターシールド
14
http://akizukidenshi.com/catalog/g/gM-06684/
AWS IoT
デバイスデータに対する
いろいろなアクション
セキュアでスケーラブルな
デバイスとクラウドの
双方向接続
誰でも簡単に
はじめられる
さまざまなデバイスをAWSの各種サービスや他のデバイスにセキュアに接続し、
デバイスデータに対する処理やアクションを実行することが可能
15
データフローとAWSサービスのマッピング
収集 処理 分析
保存
S3
Kinesis
DynamoDB
Data Collection
and Storage
AWS Lambda
KCL Apps
Event
Processing
EMR Redshift
Machine
Learning
Data
Processing
Data
Analysis
IoT
AWS IoT Overview
17
18
19
20
Arduino Yúnの
セットアップ
http://Arduin
o.localにアク
セス。
WiFiの設定
21
1. SDKをダウンロード
https://github.com/aws/aws-iot-device-sdk-Arduino-yun/
インストールの詳細は、上記GitHUBのreadmeを参照。
2. AWS IoT CA file(ルート証明書)をダウンロード(here.)
ファイル名を「root-CA.crt」にしておく。
3. AWS IoTでダウンロードした証明書とルート証明書を「AWS-IoT-Arduino-Yun-
SDK/AWS-IoT-Python-Runtime/certs」に保管。
4. インストールスクリプトを実行。
chmod 755 AWSIoTArduinoYunInstallAll.sh
/AWSIoTArduinoYunInstallAll.sh <Board IP> <UserName> <Board Password>
5. 「AWS-IoT-Arduino-Yun-SDK/AWS-IoT-Arduino-Yun-Library」ライブラリを
「Documents/Arduino/libraries」にコピー。
Arduino Yúnのセットアップ・証明書コピー
22
AWS IoT SDKの
使用。
モーターシールド
で使うpinなどを
設定。
コード(1/4)
23
電車でGO!コント
ローラの信号を読
み取り、モーター
シールドに出力す
る電圧を決定。
コード(2/4)
24
topic1でモーター
シールドへの出力
値を送信。
AWS IoTのサン
プルコードを流用。
コード(3/4)
25
AWS IoTで
「Connect
Device」を実行
した際に表示さ
れるコードを
ペーストする。
コード(4/4)
26
aws_iot_confg.h
#ifndef config_usr_h
#define config_usr_h
// Copy and paste your configuration into this file
//===========================================================
====
#define AWS_IOT_MQTT_HOST "A3TCNQTE8Bxxxx.iot.ap-northeast-
1.amazonaws.com"
#define AWS_IOT_MQTT_PORT 8883
#define AWS_IOT_CLIENT_ID "traincontroller"
#define AWS_IOT_MY_THING_NAME "traincontroller"
#define AWS_IOT_ROOT_CA_FILENAME "root-CA.crt"
#define AWS_IOT_CERTIFICATE_FILENAME "5fa69bxxxx-certificate.pem.crt"
#define AWS_IOT_PRIVATE_KEY_FILENAME "5fa69bxxxx-private.pem.key"
//===========================================================
====
// SDK config, DO NOT modify it
#define AWS_IOT_PATH_PREFIX "../certs/"
(略)
#endif
構成図
Arduino Yún
モーターシールド
AWS IoT
SNS
Lambda CloudWatch
logs
S3
操作 速度
データ
線路への
電圧
ここまで完成
27
rule
AWS
IoT
28
Lambda function
29
CloudWatch Logs
30
構成図
Arduino Yún
モーターシールド
AWS IoT
SNS
Lambda CloudWatch
logs
S3
操作 速度
データ
線路への
電圧
31
 うちのこどもには、とても好評!
 AWS IoTは簡単。
 コーディング最小でデバイスからのデータ送受が可能。
 線路のどこを走っているかのセンサーの追加。
 コントローラでポイント切替機の制御。
 システム側からのNゲージ車両、ポイントの制御。
 データの記録と分析。
まとめ・今後
32
Thank you
ソースコードは下記で公開します。
http://qiita.com/yo1t
33

More Related Content

Viewers also liked

Golang, make and robotics #gocon
Golang, make and robotics #goconGolang, make and robotics #gocon
Golang, make and robotics #goconHideyuki TAKEI
 
Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12matsuo kenji
 
Chrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみるChrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみるMasakazu Muraoka
 
マイクロサービスにおけるクエリー言語について
マイクロサービスにおけるクエリー言語についてマイクロサービスにおけるクエリー言語について
マイクロサービスにおけるクエリー言語についてsz yudppp
 
勉強会への一歩を踏み出すために
勉強会への一歩を踏み出すために勉強会への一歩を踏み出すために
勉強会への一歩を踏み出すためにAkihiko Horiuchi
 
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会Satoshi Noda
 
ISUCON2015 PHPで予選を戦ってみた
ISUCON2015 PHPで予選を戦ってみたISUCON2015 PHPで予選を戦ってみた
ISUCON2015 PHPで予選を戦ってみたKen Gotoh
 
Jenkins study 7 2013-01-28
Jenkins study 7 2013-01-28Jenkins study 7 2013-01-28
Jenkins study 7 2013-01-28Ato ARAKI
 
エンジニアと椅子
エンジニアと椅子エンジニアと椅子
エンジニアと椅子m1sogi
 
ちょっとだけさわってみる Go言語
ちょっとだけさわってみる Go言語ちょっとだけさわってみる Go言語
ちょっとだけさわってみる Go言語Satoshi Noda
 
Gunosy Go lang study #6 net http url
Gunosy Go lang study #6 net http urlGunosy Go lang study #6 net http url
Gunosy Go lang study #6 net http urlInnami Satoshi
 
インタフェースの実装パターン
インタフェースの実装パターンインタフェースの実装パターン
インタフェースの実装パターンTakuya Ueda
 
綺麗なスライドを作るための11の原則
綺麗なスライドを作るための11の原則綺麗なスライドを作るための11の原則
綺麗なスライドを作るための11の原則Kazuki Susa
 
2150117 infrastructure.nagoya
2150117 infrastructure.nagoya2150117 infrastructure.nagoya
2150117 infrastructure.nagoyaHiroki Ito
 
ちょっとさわってみるGo言語ハンズオン
ちょっとさわってみるGo言語ハンズオンちょっとさわってみるGo言語ハンズオン
ちょっとさわってみるGo言語ハンズオンSatoshi Noda
 

Viewers also liked (20)

Github第8章
Github第8章Github第8章
Github第8章
 
Golang, make and robotics #gocon
Golang, make and robotics #goconGolang, make and robotics #gocon
Golang, make and robotics #gocon
 
Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12
 
Chrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみるChrome osとgo言語からgoogleの今後を妄想してみる
Chrome osとgo言語からgoogleの今後を妄想してみる
 
HighBatch
HighBatchHighBatch
HighBatch
 
マイクロサービスにおけるクエリー言語について
マイクロサービスにおけるクエリー言語についてマイクロサービスにおけるクエリー言語について
マイクロサービスにおけるクエリー言語について
 
勉強会への一歩を踏み出すために
勉強会への一歩を踏み出すために勉強会への一歩を踏み出すために
勉強会への一歩を踏み出すために
 
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
 
Dockerぐらし!
Dockerぐらし!Dockerぐらし!
Dockerぐらし!
 
ISUCON2015 PHPで予選を戦ってみた
ISUCON2015 PHPで予選を戦ってみたISUCON2015 PHPで予選を戦ってみた
ISUCON2015 PHPで予選を戦ってみた
 
Jenkins study 7 2013-01-28
Jenkins study 7 2013-01-28Jenkins study 7 2013-01-28
Jenkins study 7 2013-01-28
 
エンジニアと椅子
エンジニアと椅子エンジニアと椅子
エンジニアと椅子
 
ちょっとだけさわってみる Go言語
ちょっとだけさわってみる Go言語ちょっとだけさわってみる Go言語
ちょっとだけさわってみる Go言語
 
Gunosy Go lang study #6 net http url
Gunosy Go lang study #6 net http urlGunosy Go lang study #6 net http url
Gunosy Go lang study #6 net http url
 
Go言語の紹介
Go言語の紹介Go言語の紹介
Go言語の紹介
 
インタフェースの実装パターン
インタフェースの実装パターンインタフェースの実装パターン
インタフェースの実装パターン
 
綺麗なスライドを作るための11の原則
綺麗なスライドを作るための11の原則綺麗なスライドを作るための11の原則
綺麗なスライドを作るための11の原則
 
2150117 infrastructure.nagoya
2150117 infrastructure.nagoya2150117 infrastructure.nagoya
2150117 infrastructure.nagoya
 
Goをえらんだ理由
Goをえらんだ理由Goをえらんだ理由
Goをえらんだ理由
 
ちょっとさわってみるGo言語ハンズオン
ちょっとさわってみるGo言語ハンズオンちょっとさわってみるGo言語ハンズオン
ちょっとさわってみるGo言語ハンズオン
 

Similar to AWS IoTでGo!

今日からはじめようAWS IoT
今日からはじめようAWS IoT今日からはじめようAWS IoT
今日からはじめようAWS IoTToshiaki Enami
 
Stripe触ってみた! Jekyll + AWS S3に組み込み
Stripe触ってみた! Jekyll + AWS S3に組み込みStripe触ってみた! Jekyll + AWS S3に組み込み
Stripe触ってみた! Jekyll + AWS S3に組み込みHirokazu Tokuno
 
Developer Summit 2015 Autumn
Developer Summit 2015 AutumnDeveloper Summit 2015 Autumn
Developer Summit 2015 AutumnSORACOM,INC
 
日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ
日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ
日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータPuppet
 
AWSで画像認識をやってみる~DL3分クッキング~
AWSで画像認識をやってみる~DL3分クッキング~AWSで画像認識をやってみる~DL3分クッキング~
AWSで画像認識をやってみる~DL3分クッキング~Ken'ichirou Kimura
 
Icdp的re:invent2016 recap
Icdp的re:invent2016 recapIcdp的re:invent2016 recap
Icdp的re:invent2016 recapTakuya Tachibana
 
IoTシステム構築の困り事から逆引き「SORACOM 全サービス解説」 | SORACOM Technology Camp 2020
IoTシステム構築の困り事から逆引き「SORACOM 全サービス解説」 | SORACOM Technology Camp 2020IoTシステム構築の困り事から逆引き「SORACOM 全サービス解説」 | SORACOM Technology Camp 2020
IoTシステム構築の困り事から逆引き「SORACOM 全サービス解説」 | SORACOM Technology Camp 2020SORACOM,INC
 
【Connected.J4】SORACOMで実現するIoTワールドゲストスピーカー
【Connected.J4】SORACOMで実現するIoTワールドゲストスピーカー【Connected.J4】SORACOMで実現するIoTワールドゲストスピーカー
【Connected.J4】SORACOMで実現するIoTワールドゲストスピーカーSORACOM,INC
 

Similar to AWS IoTでGo! (8)

今日からはじめようAWS IoT
今日からはじめようAWS IoT今日からはじめようAWS IoT
今日からはじめようAWS IoT
 
Stripe触ってみた! Jekyll + AWS S3に組み込み
Stripe触ってみた! Jekyll + AWS S3に組み込みStripe触ってみた! Jekyll + AWS S3に組み込み
Stripe触ってみた! Jekyll + AWS S3に組み込み
 
Developer Summit 2015 Autumn
Developer Summit 2015 AutumnDeveloper Summit 2015 Autumn
Developer Summit 2015 Autumn
 
日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ
日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ
日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ
 
AWSで画像認識をやってみる~DL3分クッキング~
AWSで画像認識をやってみる~DL3分クッキング~AWSで画像認識をやってみる~DL3分クッキング~
AWSで画像認識をやってみる~DL3分クッキング~
 
Icdp的re:invent2016 recap
Icdp的re:invent2016 recapIcdp的re:invent2016 recap
Icdp的re:invent2016 recap
 
IoTシステム構築の困り事から逆引き「SORACOM 全サービス解説」 | SORACOM Technology Camp 2020
IoTシステム構築の困り事から逆引き「SORACOM 全サービス解説」 | SORACOM Technology Camp 2020IoTシステム構築の困り事から逆引き「SORACOM 全サービス解説」 | SORACOM Technology Camp 2020
IoTシステム構築の困り事から逆引き「SORACOM 全サービス解説」 | SORACOM Technology Camp 2020
 
【Connected.J4】SORACOMで実現するIoTワールドゲストスピーカー
【Connected.J4】SORACOMで実現するIoTワールドゲストスピーカー【Connected.J4】SORACOMで実現するIoTワールドゲストスピーカー
【Connected.J4】SORACOMで実現するIoTワールドゲストスピーカー
 

AWS IoTでGo!