SlideShare a Scribd company logo
アンナほえたワン
with Python
2019-10-30
西本 卓也(株式会社シュアルタ)
@nishimotz / @24motz
1
音センサー + IchigoSoda + sakura.io
2
アンナほえたワン(2019年6月)
3
システム構成(バージョン1)
4
IchigoSoda
音センサー
sakura.io
(DataStore API)
ifttt Slack
Python つかってません
5分間にほえた回数が
2回以上の場合に回数を通知
IchigoJam BASIC で実装
問題点
• ifttt で「ほえた回数」をペイロードから取り出していない
• イベントを記録していない
5
システム構成(バージョン2)
6
IchigoSoda
音センサー
sakura.io
(MQTT)
IoT Core
Slack
DynamoDB
Lambda
(Python)
Lambda
(node.js)
AWS
sakura.io から AWS IoT まで
• 公式チュートリアル
• https://sakura.io/docs/pages/guide/tutorial/service/aws.html
• エンドポイント URL や証明書は AWS IoT Core で作る
7
AWS IoT から DynamoDB まで
• 参考
• https://qiita.com/Ichiro_Tsuji/items/3815f2b683336e7088f4
• 流れ
• DynamoDB テーブルを作成
• Lambda を作成
• Lambda にルールを作成
• IoT のルールで起動
• DynamoDB に書き込む
• node.js のコードをコピペする
• まだ Python 使ってない
8
DynamoDB テーブル作成
• datetime をパーティションキーにする
• channel-0 に受信した値が入る
9
Lambda (1個目)のトリガー
• ルールクエリステートメント: SELECT * FROM 'sakuraio/#'
10
データが書き込まれる
11
DynamoDB ストリーム
• 項目が書き込まれたら別の Lambda をトリガーできる
• https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html
12
domovoi
13
使い方は chalice そっくり
$ domovoi new-project
New Domovoi project name: ichigosoda
New Domovoi project created in ichigosoda
$ cd ichigosoda
$ domovoi deploy
14
policy-dev.json に追加
{
"Action": [
"dynamodb:DescribeStream",
"dynamodb:GetRecords",
"dynamodb:GetShardIterator",
"dynamodb:ListStreams"
],
"Resource": [
"arn:aws:dynamodb:*:*:*"
],
"Effect": "Allow"
}
15
app.py
@app.dynamodb_stream_handler(table_name="IchigoSoda190925", batch_size=200
)
def handle_dynamodb_stream(event, context):
first_event = event["Records"][0]["dynamodb"]
new_image = first_event.get('NewImage')
if not new_image:
return
channel_0 = new_image.get('channel-0')
if not channel_0:
return
value = channel_0.get('N')
if value is None:
return
slack.notify(text=f'アンナ {value} 回ほえたワン')
16
Slack カスタムインテグレーション
• Incoming Webhook から WEBHOOK_URL を取得
17
Slack 投稿
import slackweb
slack = slackweb.Slack(url=WEBHOOK_URL)
18
Ver 1 と Ver 2
19
まとめ
• 回数がわかると状況がよくわかる
• 3回ほえたワン
• 93回ほえたワン
• 今後の方針
• Lambda は2個必要なのか
• 履歴の可視化
• モバイルネットワークやめて WiFi にする
• RasPi で Python か
• ESPxx で MicroPython か
• ほえるタイミングの予測
20

More Related Content

PPTX
210728 mpy
PPTX
211120 他人の書いたPythonスクリプトをステップ実行で理解する
PPTX
210911 これから始める電子工作とMicroPython
PPTX
他人が書いたコードのリファレンスをSphinxで作る方法
PDF
Python & PyConJP 2014 Report
PPTX
Pythonの環境導入 2014年春季版
PPTX
Python エンジニアの作り方 2011.08 #pyconjp
PDF
Jubatus Python特徴抽出プラグイン
210728 mpy
211120 他人の書いたPythonスクリプトをステップ実行で理解する
210911 これから始める電子工作とMicroPython
他人が書いたコードのリファレンスをSphinxで作る方法
Python & PyConJP 2014 Report
Pythonの環境導入 2014年春季版
Python エンジニアの作り方 2011.08 #pyconjp
Jubatus Python特徴抽出プラグイン

What's hot (20)

PPTX
電子工作のためのPython
PDF
スクレイピングとPython
PDF
次世代言語 Python による PyPy を使った次世代の処理系開発
PDF
なぜ科学計算にはPythonか?
PPTX
Jupyter notebook
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PPTX
Pythonスタートアップ勉強会201109 python入門
PDF
Python3 プログラミング勉強会
PPTX
210526 Power Automate Desktop Python
PDF
Pythonのすすめ
PDF
10分でわかるPythonの開発環境
PPTX
Pythonでpdfをいじってみる
PDF
「Python言語」はじめの一歩 / First step of Python
PPTX
MicroPython + ESP32
PPTX
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
PDF
CPythonを読もう
PPTX
Pynyumon03 LT
PDF
Py datameetup1
PPTX
第3回メドレー読書会後半
PDF
scikit-learnを用いた機械学習チュートリアル
電子工作のためのPython
スクレイピングとPython
次世代言語 Python による PyPy を使った次世代の処理系開発
なぜ科学計算にはPythonか?
Jupyter notebook
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Pythonスタートアップ勉強会201109 python入門
Python3 プログラミング勉強会
210526 Power Automate Desktop Python
Pythonのすすめ
10分でわかるPythonの開発環境
Pythonでpdfをいじってみる
「Python言語」はじめの一歩 / First step of Python
MicroPython + ESP32
GBDC 勉強会 #1 Python を用いたツール作成工数の最小化
CPythonを読もう
Pynyumon03 LT
Py datameetup1
第3回メドレー読書会後半
scikit-learnを用いた機械学習チュートリアル
Ad

Similar to 191030 anna-with-python (20)

PPTX
Getting Started with Graph Database with Python
PPTX
Visual Studio App Centerで始めるCI/CD(iOS)
PDF
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
PDF
Microsoft Intelligent Edge Technologies
PPT
Inside MF
PDF
なぜ今OSGiか
PDF
Pythonでパケット解析
PDF
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
PDF
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
PDF
さくらのIoT Platformを使ってみよう ~OSC大阪編~
PPTX
Tokyo Jazug Night 2020-01 Azure Monitor を使った運用監視コトハジメ
PDF
itnerface 2018年9月号オフ会発表資料
PDF
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
PDF
2014 0228 OSC-Spring Tokyo NETMF
PDF
【ログ分析勉強会】セッションアクティビティログは使えるのか
PPT
Python languageupdate (2004)
PDF
ネットワークOS野郎 ~ インフラ野郎Night 20160414
PDF
OSSはどこまで産業用機器に使えるか_20230520.pdf
PDF
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
PDF
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
Getting Started with Graph Database with Python
Visual Studio App Centerで始めるCI/CD(iOS)
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
Microsoft Intelligent Edge Technologies
Inside MF
なぜ今OSGiか
Pythonでパケット解析
さくらのIoT Platformを使ってみよう ~Developers in KOBE編~
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
さくらのIoT Platformを使ってみよう ~OSC大阪編~
Tokyo Jazug Night 2020-01 Azure Monitor を使った運用監視コトハジメ
itnerface 2018年9月号オフ会発表資料
ExcelとPythonによる社会インフラシステムの設定ファイルの自動生成
2014 0228 OSC-Spring Tokyo NETMF
【ログ分析勉強会】セッションアクティビティログは使えるのか
Python languageupdate (2004)
ネットワークOS野郎 ~ インフラ野郎Night 20160414
OSSはどこまで産業用機器に使えるか_20230520.pdf
【de:code 2020】 2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
Ad

More from Takuya Nishimoto (20)

PPTX
221217 SwiftはPythonに似ている
PPTX
220427-pydata 統計・データ分析 特集
PPTX
220126 python-datalake-spark
PPTX
211020 すごい広島 with OSH 2021.10
PPTX
210917 オープンセミナー@広島のこれまでとこれから
PPTX
210630 python
PPTX
210428 python
PPTX
200918 hannari-python
PPTX
200429 python
PPTX
200325 flask
PPTX
200208 osh-nishimoto-v2
PPTX
191208 python-kansai-nishimoto
PPTX
191101 nvda-sightworld-nishimoto
PPTX
191114 iotlt-nishimoto
PPTX
190916 nishimoto-nvda-pyconjp
PPTX
190925 python-windows
PPTX
190731 chalice
PPTX
190719 nishimoto nvda talk
PPTX
PCN 190630 v2
PPTX
190516 nishimoto
221217 SwiftはPythonに似ている
220427-pydata 統計・データ分析 特集
220126 python-datalake-spark
211020 すごい広島 with OSH 2021.10
210917 オープンセミナー@広島のこれまでとこれから
210630 python
210428 python
200918 hannari-python
200429 python
200325 flask
200208 osh-nishimoto-v2
191208 python-kansai-nishimoto
191101 nvda-sightworld-nishimoto
191114 iotlt-nishimoto
190916 nishimoto-nvda-pyconjp
190925 python-windows
190731 chalice
190719 nishimoto nvda talk
PCN 190630 v2
190516 nishimoto

191030 anna-with-python