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

PythonでIoTだって?!「大丈夫だ、問題ない」~ IoT最新事例とPythonでセンサー操作 1・2・3

SORACOM
July 14, 2022

PythonでIoTだって?!「大丈夫だ、問題ない」~ IoT最新事例とPythonでセンサー操作 1・2・3

2022年7月14日(木)開催のみんなのPython勉強会#83で、ソラコム松下享平の発表資料「PythonでIoTだって?!「大丈夫だ、問題ない」~ IoT最新事例とPythonでセンサー操作 1・2・3」

SORACOM

July 14, 2022
Tweet

More Decks by SORACOM

Other Decks in Technology

Transcript

  1. 株式会社ソラコム テクノロジー・エバンジェリスト 松下享平 (まつした こうへい) "Max" IoT や SORACOM を紹介

    通算講演回数 500超 好きな言葉「論よりコード」 ニックネームは Max (マックス)
  2. SORACOM は IoT の「つなぐ」を簡単に IoT デバイス クラウドサービス ✓ 遠隔操作 ✓

    メンテナンス ✓ 蓄積・見える化 ✓ アラート通知 センサ キット IoT 通信 IoT SIM LPWA パートナー デバイス パートナークラウド (AWS / Microsoft / Google) Wi-Fi / 有線 3G / LTE / 5G LTE-M 通信 デバイス IoT カメラ
  3. 通信で「モノづくり」のルールが 変わり始めている CPU や マイコン 通信 モジュール ファームウェア モニター、ロボットアーム、 スピーカー等

    温度センサー、GPS、 マイク等 クラウド デジタル化 制御 IoT における “モノづくり” 「製品」の定義が 変わった これまでの “モノづくり”
  4. IoT デバイスとは? CPU や マイコン 通信 モジュール ファームウェア モニター、ロボットアーム、 スピーカー等

    温度センサー、GPS、 マイク等 クラウド これまでの “モノづくり” デジタル化 制御 IoT における “モノづくり” IoT における “モノづくり” において、現実世界側を担当するハードウェア。 クラウドと連携して、センサーや機器の制御を行う。 センサー込み IoT デバイス スマートスピーカー ハードウェア的な境界 IoT 向けコンピューター / マイコン Raspberry Pi (ラズベリーパイ / ラズパイ) センサーや アクチュエーター
  5. ソースネクスト株式会社 「POCKETALK Ⓡ 」 外国語での双方向コミュニケーショ ンを実現するAI通訳機。 グローバル通信搭載で、電源を 入れれば、世界中ですぐに利用可能。 導入事例 利用したSORACOMサービス:SORACOM

    Air (plan01s / planX1)チップ型SIM(eSIM)搭載 サービス * 対応言語の詳細は製品ウェブサイトをご確認ください 協力パートナー:JENESIS株式会社
  6. IoT デバイスとは、 「クラウドを味方にするインターフェイス」 CPU や マイコン 通信 モジュール ファームウェア スピーカー

    マイク クラウド上の 翻訳エンジン CPU や マイコン ファームウェア スピーカー マイク ハードウェア的な境界 = クラウドとのインターフェイス 翻訳エンジン
  7. Python ベースのサンプルコードなら https://www.amazon.co.jp/dp/B09VKM6XHW/ 出版社 : 日経BP (2022/3/18) 発売日 : 2022/3/18

    単行本: 3,190円(7/14時点) / Kindle版あり パーツ分解・実験編 「やりたい、使いたい」センサーやパーツにフォーカス して、それらを動かす準備とコードを解説 Raspberry Pi のIO詳解編 ラズパイが持つ GPIO を基に、デジタル/PWM/I2Cなどな どIOにフォーカスして、操作する方法を解説 2回目の登場! いい本 (^^
  8. urllib.request が使えるなら、センサーも使える 1 2 3 4 5 6 7 8

    9 10 import urllib.request URL = 'https://example.com/api’ req = urllib.request.Request(URL) with urllib.request.urlopen(req) as res: data = res.read() #=> data にHTTP Bodyが入ってる import pigpio pi = pigpio.pi() SENSOR_ADDR = 0x40 ctx = pi.i2c_open(I2C_INTERFACE, SENSOR_ADDR) (_, data) = pi.i2c_read_byte_data(ctx, 0x5e, 2) #=> data に距離データが入ってる 1 2 3 4 5 6 7 8 9 10 ラズパイ自由自在 電子工作パーツ制御 完全攻略 / 著:松岡貴志 P50 GP2Y0E03.py を参考に筆者変更 HTTP の代わりに、 I2C や SPI、UART といった “プロトコル” で センサーやアクチュエーターという「API サーバー」にアクセスする アドレス指定 データ取得
  9. IoT で使える Python ライブラリ等 Requests HTTP(S)クライアント。SaaS の API へ投げ込む 際にコード量を少なくできるのが良い。

    Eclispe Paho MQTT(S)クライアント。RawなMQTTサーバーは 皆無なので、実質は import ssl を用いてMQTTS にするのが一般的。 Tenacity リトライライブラリ。デコレーター(def 直上に `@foo` を記述する書式)で使用する。 wait_exponential が便利。 venv 仮想環境とも称される、実行環境の分離ツール。 保守性や動作の確実性の向上には欠かせない。 while True: && time.sleep() 永続化のプリミティブな実装。センサーデータを 取得しつつデータ送信をするといった並行処理を するなら multiprocessing(Process, Queue) を検 討。
  10. 継続的な利用を支えるミドルウェアや Tips systemd journald(syslog代替)、 timer(cron代替)、daemon化も systemdでできる時代。 rootfs の ROM化 (電プチ対策)

    $ sudo raspi-config nonint enable_overlayfs で一発! https://qiita.com/ma2shita/items/45818f0872472ecacac1 これじゃ、 ラズパイ Tips だな
  11. 食の安全を守る流通や温度管理、 施錠の仕組みをクラウドとIoT技 術でセキュアに実現。 利用したSORACOMサービス: SORACOM Air, Canal, Funnel, Harvest, Lagoon

    利用したデバイス: GPS マルチユニット SORACOM Edition, ビーコン対応 GPS トラッカー GW スターターキット 導入事例 サービス クックパッド株式会社 「cookpad mart」
  12. セキュアリンクサービス SORACOM Arc Wi-Fi や有線通信といった IP ネットワークから SORACOM 上の IoT

    向けサービスが利用できる VPN 接続サービス。 VPN には WireGuard を利用、接続認証情報を「バーチャル SIM」として扱い、SORACOM 上では “SIM からの通信” のように、セルラー/LPWA等の回線と同等に扱えるようになる。 IoT データ通信 SORACOM Air SORACOM IoT SIM (セルラー認証情報) セルラーネットワーク SORACOMサービス群 セルラー通信モジュール セキュアリンク SORACOM Arc WireGuard SORACOM バーチャル SIM (VPN 認証情報) VPN Wi-Fi
  13. オンデマンドリモートアクセスサービス SORACOM Napter SIM に対する TCP ポートフォワード(転送)サービス。 動的なグローバル IP アドレス/ポートの組を払い出し、

    SSH 等の TCP アプリケーションによるアク セスができる。アクセス元 IP アドレス制限や、一定時間での自動 OFFや監査ログ等でセキュアに利 用可能。 SORACOM Napter 払い出し依頼 IP とポートの払い出し IoT データ通信 SORACOM Air セキュアリンク SORACOM Arc Napter が ポート転送 IP とポートへアクセス インターネット
  14. AWS IoT Greengrass V2 Java ベースのソフトウェア Plain なコードが実行可能 造りが Java

    なだけで、実行可能なコードはハードウェ ア上のランタイムやライブラリが利用可能(もちろん Pythonも!) 。シェル環境とも言える。 サーバープッシュのリモート更新が可能 フリート(群体)管理を前提に構築されており、同時に複 数展開ができる。
  15. IoTで解決したいこと、実現したいことから選べる、無料の手順書 SORACOM IoT DIY レシピ カップの有無 = 距離センサーの応用 紛失 =

    電波の届き具合を利用 食べ時 = 温度センサーの応用 アイデアを形にできる50以上のレシピ