RaspberryPiとawsで取組んだ自作IoT
~非IT人材によるプロトタイピングと工数の話~
2020.2.29
Pycon mini Shizuoka
自己紹介:Saitoと申します
・自動車部品メーカーの企画部門勤務 今年で52才
・経歴は非IT、元素材開発技術者
・非ITがなぜPycon miniで話してるのか経緯は後ほど
話すこと
Pythonを触るきっかけ
プロトタイプの作製
少しだけ工数の話
なので・・・
Pyconの各論sessionですが
Python以外の話が多いです
つくったもの
製造現場のリアルタイムモニター 家族の見守りシステム
こんな人に
非ITや未経験者の人
1年ぐらい頑張るとこんな自作のIoTが出来ます
IoTをやりたい人・やらなきゃならない人
if文、while文、for文とList型の理解がキーポイント
(※個人的感想です)
(IT本職の人には
ご指摘・改善余地にコメント願います)
Pythonを触るきっかけ
Saitoさんラズベリーパイって知ってますか?
RaspberryPi !
新たな人脈 美味しい食事
ラズベリーパイ?
社外情報収集
Saito
先週の展示会の話かな?
上司
そうじゃなくてさ・・・
最近IoTって素人でも簡単にできるらしいけど
せっかくだから自作してよ
生産状況を本社でリアルタイムに見たい
ICT技術を社内蓄積する難度を見極めたい
ICT技術の手の内化
とりあえずゴールはこの辺で
MESの一部を自作運用
データ収集と分析の自動化システムを目指す
生産計画 作業管理
トレサ
設備管理
品質管理
原材料管理
データ収集
実績分析
実績管理
MES(製造実行システム)
自作に挑戦
ERP PLM
SCADA
AWS ?
Linux ?
ラズパイ??
Python ???
意味分からん
30年前に使った
MS-DOSとか。。
N-BASICとか。。
QuickCとか。。
みたいなやつか???
と言われても・・・
こんなオッサンが独学で
プロトタイプ作った話
プロトタイプの作製
①IoTで生産ライン見える化
QA工程外径仕上げ工程
実装した工程 稼働モニター制御器
有線LAN接続
構成図
rootfsROM化
MQTT
データ採取(python)
LTEルーター
ガントチャート(リアルタイムモニター)
稼働率自動分析
ダウンロード
(エクセル/BIツール)
録画
出来高と設備稼働の見える化 稼働率の自動計算
計画停止
停止ロス
性能ロス
D:価値稼働時間 不良ロス
操業時間
A:負荷時間
B:稼働時間
C:正味稼働時間
= 時間稼働率
= 性能稼働率
= 良品率
× × = 設備総合効率(稼働率)
1S勤務 2S勤務 設備停止
月 火 水 木 金 土 日
0:00
4:35
8:00
18:40
24:00
出来たこと
生産中だけ
データ転送
RaspberryPiにさせてること
勤務シフト切替時に配列初期化
光センサーで緑・黄・赤の点灯消灯を読み取る
赤外または磁気センサーで製品の通過を読み取る
製品の通過間隔(CT:サイクルタイム)を計算する
Dictionaryにデータを書き込む、曜日フラグを立てる
1分毎にIoT CoreにJSONでpublishする
シフト毎の初期化 for文とif文
※List、Tupleの理解は
はまりどころだった
※引数も人によりはまる
ワーク通過間隔の算出 if文ちょっと工夫
データ格納/Publish if文ちょっと工夫
ガントチャート(リアルタイムモニター)
稼働率自動分析
事務所で現場をモニター中
社内報告 ~ICT人材育成と社内開発体制の整備を提案~
回路設計
OS/プログラミング言語
クラウド環境構築
セキュリティ
初歩的な
電子回路設計
大部分はマネージド
GUIで設定可能
プログラミングで
serverlessも可能
IoTセキュリティの
ノウハウ蓄積が必要
Linux/Python/C/
Js等のスキルが必要
社内保有技術
情シに提案
出来なかったこと
IoT thing
factory
IoT MQTT
protocol
ガントチャート
稼働率自動分析
DynamoDB
IoT Core
CloudWatch
Lambda
QuickSight DynamoDB DynamoDB
生産実績
DynamoDB
受注数量
Lambda
生産計画予実管理
Amazon EC2
Web
入力画面
Web
表示画面
今回のプロトタイプの内容 未着手の構想案
分析表示
稼働表示
実績表示
プロトタイプの作製
➁遠隔家族の見守りシステム
最近は家で工作しないんだねー?
それなら実家の見守り装置作ってよ
もうしなくてイイって言われたしー
自宅開発環境
開発メンバー
自分 環境:
RaspberryPi 3B+
Raspbian Stretch 2019-04-08
担当:
トリガー、
パラメータ調整補助
担当:
要件定義、コーディング
チューニング
開発体制 実証試験機
ラズパイ
センサー
webカメラ
ねこのベッド
構成図
15時間以上
反応なければ
Alert配信
センサーLog
異常検知前後15秒の映像
ストリーミング
センサーの検知ログを
常時送信
LTEルーター
センサー防犯カメラ
異常検知
ペットの見守り
センサー信号
映像処理
(python)
カメラ センサー
4定点でセンサー検知したら
録画映像をアップロード
玄関でセンサー検知したら
録画映像をアップロード
センサーの検知ログを
常時送信
S3lambda
RasPi 防犯カメラの仕組み
01.avi 02.avi 03.avi 04.avi 05.avi emr.avi emr.mp401.avi 02.avi 03.avi 04.avi 05.avi
+ + + +
Amazon Simple Storage
Service
録画 結合 mp4変換
センサートリガー
tmpフォルダ内に一時ファイルとして映像をひたすら上書きする
結合した一時ファイル
一時ファイル結合、mp4変換、S3にpushするサブプロセス
録画ルーチンを回す主プロセス
mp4変換後の結合済みファイル
主プロセス サブプロセス
主プロセス①
メインループは01~05.aviの上書きを繰返す
主プロセス②
1ファイル録画はwhile Δt< 4のサブループ
主プロセス③
トリガー後13秒録画しサブプロセスを呼出し
サブプロセス①
aviファイルの数とタイムスタンプ取得
サブプロセス②
aviファイルが1つならそのままで
サブプロセス③
aviが複数なら撮影時刻順にソートして結合
サブプロセス④
mp4に変換してS3にアップロード
ペット見守りwebページ
センサーモニター
遠隔見守りシステム
静岡
センサー
センサー
制御器・電源
カメラ
新潟
少しだけ工数の話
工数の振返り(※2019.3まで兼任業務、以降は定時後+週末エンジニア)
講習サンプルcodeを自社用に改造
ググってコピペするが動かない
Python、Linux環境、aws環境が
少しずつ動くようになる
所望する機能のセンサー探しにハマる
データKeyの設計、SQLでハマる
センサーの温度依存対策でハマる
工場見える化システム完成
Pythonとcloudのスキルアップを決意
プライベートで見守りシステム作成
ドキュメントでPythonの基礎を学ぶ
PythonでawsのLambdaを動かす
機械学習の勉強を始める
めげずに社内でクラウドの有用性を訴える
★サーバーワークスIoT講習
★やっとクラウドまで連携する
★工場に試験的に設置
★光センサーの接続確立
★サーバーレスの学習開始
★web言語の学習開始
★工場で出来高のモニター開始
★赤外センサーの選定完了
★key再設計、Ptython code作り直し
★機械学習の学習開始
★Python公式ドキュメントで基礎学習
JAWS-UG
★赤外センサー気温上昇で暴走
★見守りシステム開発着手
★工場にモニター最終形を設置
★見守りシステム完成・施工
稼働モニター作製:12ヶ月
見守りモニター作製:4ヶ月
2018.5 2018.8 2018.11 2019.2 2019.5 2019.8 2019.11 2020.2
初期学習期間:4ヶ月
主な出来事
Code 作り直し:4ヶ月
JAWSの4ヶ月後
Unagi.pyにJoin
製品カウント・DB連携:4ヶ月
約4か月周期で
次の取組課題へ移行
まとめ
非ITや未経験者の人
1年頑張ると自作IoTで簡単な工場の見える化出来ます
IoTをやりたい人・やらなきゃならない人
if文、while文、for文とList型の理解がキーポイント
(※個人的感想です)
◎今後も3~4ヶ月で小さな課題解決を続けたいと思います
Pythonを楽しもう!
ご清聴ありがとうございました

RaspberryPiとawsで取組んだ自作IoT