Slide 1

Slide 1 text

PythonをIoTで活用する小ネタ話 Saito 5656 @Unagi.py & PythonSuruga #PyCharity 202109

Slide 2

Slide 2 text

今日話すこと 1. ラズパイIoTで接続失敗解決する小ネタ 2. IoTの拡張で簡易自動化したときの小ネタ

Slide 3

Slide 3 text

自己紹介 @Saito 5656 52才 所属: 自動車部品製造Tire1の情シス 2018年よりラズパイとAWSの検証を担当 2020年8月より現職、社内の課題解決の枠組みを模索

Slide 4

Slide 4 text

きっかけ①・・・業務課題 課題(1) 生産状況をリアルタイムに見たい 課題(2) 内作/育成の難度を見極めたい パッケージ製品いろいろ等

Slide 5

Slide 5 text

きっかけ② ・・・以下略 子供のおもちゃ(ラズパイ)で遊んでるなら 母親の見守りつくってよー 浜松 新潟

Slide 6

Slide 6 text

で50才でIoT自作始めたオヂサンです 検知前後15秒の映像 .MP4 生産実績 生産予定 生産予定と実績の差 停止の即時把握 工場のIoT 遠隔見守り

Slide 7

Slide 7 text

1.ラズパイIoTで接続失敗解決する小ネタ

Slide 8

Slide 8 text

起動・再起動が失敗する・・・ プロセス起動失敗したら再起動 Wifi接続 Broker接続 Local device接続

Slide 9

Slide 9 text

SSID取得できなかったらreboot subprocessでwireless-toolsを実行して接続成否を確認

Slide 10

Slide 10 text

Respons codeが異常ならreboot mqtt接続callbackのrespons codeが0(successful)か確認

Slide 11

Slide 11 text

deviceのopen失敗したらreboot isOpendのreturnがTrueか確認

Slide 12

Slide 12 text

2. IoTの拡張で簡易自動化したときの小ネタ

Slide 13

Slide 13 text

工場の困りごと • 日報は電子化されてるが手集計の転写 • オペレーターにはイベント発生時刻や 不稼働時間の正確な把握はムリ 誤差が発生 生産開始と終了の時刻 設備の稼働時間と停止時間

Slide 14

Slide 14 text

データ自動取得・自動集計で解決 生産開始と終了の時刻 製品が連続で10個流れたら 生産開始と判定 生産終了 稼働時間と停止時間 各色単体の点灯点滅を確認 定義パターンを検知して積算 今日の話 ⇒

Slide 15

Slide 15 text

生産開始の判定 AWS Cloud User AWS IoT Core IoT hing / gateway IoT MQTT protocol Factory Machine Tools Amazon S3 Bucket for summary Bucket for Time line Lambda function to extract Event 0 23 * * * AWS Step Functions workflow Lambda function to summarize Bucket for summarized Bucket for queried IoT rule Bucket for archive IoT topic for Time line IoT topic for summary Life Cycle 2ds RPAで 電子日報に入力 Lambda function to archive TL Event 0 23 * * * AWS Step Functions workflow Lambda function to archive sum このLambdaで判定

Slide 16

Slide 16 text

timedeltaの分散で生産開始を判定 製品が10個連続して流れたら 10個前が通過した時刻を 生産開始時刻とする 生産設備(プレス・加工・溶接) や機種の違いで通過間隔が違う 閾値では個別設定が必要になる timedeltaの分散で判定

Slide 17

Slide 17 text

日別抽出したデータをPandasで加工 使うのはこの部分 ⇒ work_num deltaをとってクレンジング ⇒ timedeltaの10点移動分散で判定

Slide 18

Slide 18 text

製品通過以外dropしてtimedelta取得 timedeltaを計算 work_numのdeltaを計算

Slide 19

Slide 19 text

timedelta10点移動分散で閾値判定 timedeltaの10点移動分散を計算 timedelta10点移動分散が最初に閾値を下回ったら Indexを10遡ったdatetimeを生産開始時刻と判定

Slide 20

Slide 20 text

実行結果 閾値を下回る 10遡る 抽出した生産開始時刻

Slide 21

Slide 21 text

まとめ 1.ラズパイ起動時にNWやデバイスと接続失敗 したらrebootさせて再接続させてます 2. Pandasで移動分散を使って時系列データの 変化点を抽出してます

Slide 22

Slide 22 text

ご清聴ありがとうございました