Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PyCharity202109 PythonをIoT活用する小ネタ話

4651f57d479e562a45dd624cc24dbee3?s=47 nsaito9628
September 09, 2021

 PyCharity202109 PythonをIoT活用する小ネタ話

PyCharity 202109の静岡コミュニティ枠で発表します

1.ラズパイIoTで起動時のNW/デバイス接続失敗でプロセスが落ちっぱなしになるのを防ぐ小ネタ
2.工場のIoTで取得した時系列データから生産開始時刻をPandasで自動抽出させている小ネタ
について話をします

過去のLTは概要説明の話がほとんどでしたが今回は少し掘り下げた話をします

よろしくお願いします

4651f57d479e562a45dd624cc24dbee3?s=128

nsaito9628

September 09, 2021
Tweet

Transcript

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

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

  3. 自己紹介 @Saito 5656 52才 所属: 株式会社 エフ・シー・シー 情報システム部 所在地: 静岡県浜松市

    所属先の属性: 乗用車・二輪車・汎用製品のクラッチ専門メーカー 二輪車用クラッチ 世界シェア No.1 53.1% 2018年よりラズパイとAWSの検証を担当 2020年8月より現職、社内の課題解決の枠組みを模索
  4. きっかけ①・・・業務課題 課題(1) 生産状況をリアルタイムに見たい 課題(2) 内作/育成の難度を見極めたい パッケージ製品いろいろ等

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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