最近、IoTが製造現場でも利用される事例が増えてきたという。

その特徴は「現場の人が」、使いやすいアプリを学びプログラムを作って安価になったセンサーを使ってデータをPCやサーバーに送って、それをDBで利用してビッグデータとして活用するというものらしい。こうすることで、現場・現象・ニーズを知らない他者に説明し、できたシステムや表示の説明を受け、検証し手直しを依頼し、また検証する、という時間のかかる通常の開発過程の多くをショートカットし、手直しや改善も自分たちで行えて迅速な開発につながったという。

全部を自分たちで開発する場合と、ある程度学んだことでシステム開発のプロと意思疎通ができるようになって、協同して開発が進むケースがあるようです。

そこで、Geminiに聞いてみたら、下記のような内容が返ってきたのでご紹介。全体概要解説とそれぞれの分野の用語や概念が並んでいるので、それぞれを学べば道が開けそうです。

最近では いろいろな団体や大学で入門教育・指導を行っているので、それらを利用できた人は、早期の利用開始につながっているようです。
初めての分野を学ぶときは、知らない単語やスキルやモノの意味を簡単に教えてくれる先達がいると、つまずき倒れることなく通過することが容易になります。

 

質問: 最近は、IoTで、pythonと安価センサー利用し製造データ収集してDBにつないで、ビッグデータとして利用できるようになったという話を聞くことが増えたので、入門の仕方を教えて。

Geminiの回答:
 

  お探しのPythonを使ったIoTアプリケーション開発の学習リソースやプロジェクト例について、いくつか役立つ情報がありますね!😊

  センサーデータの収集、データベースへの保存、そしてビッグデータとしての活用を目的とする場合、主に以下の組み合わせで学習サイトやチュートリアルが見つかります。

💡 主要な技術スタックと関連リソース

1. Webフレームワーク(アプリ提供サイトの構築)

 Pythonでは、ウェブアプリケーションを構築するためのフレームワークとして、FlaskDjangoがよく使われます。

  • Flask:軽量で柔軟性が高いマイクロフレームワーク。小規模から中規模のIoTダッシュボードやAPIサーバー構築に適しています。

  • Django:フルスタックで大規模なアプリケーション開発に適しています。豊富な機能(ORM、管理画面など)が標準で提供されています。

検索結果には、FlaskDjangoを使ってIoTセンサーデータを収集し、Webインターフェースで可視化するプロジェクト例(チュートリアル)が多く含まれています。例えば、GitHubのプロジェクト例では、FlaskMongoDB(データベース)、MQTT(データ通信プロトコル)を組み合わせたリアルタイム監視システムの構築方法が紹介されています。


2. データ収集とメッセージングプロトコル

  IoTデバイス(例: Raspberry Pi, ESP32)とサーバー間での効率的なデータ通信には、MQTT(Message Queuing Telemetry Transport)プロトコルが広く利用されます。

  • paho-mqttなどのPythonライブラリを使って、サーバー側でMQTTブローカーからのメッセージ(センサーデータ)を受信し、処理します。


3. データベース(DB)とビッグデータ対応

  大量の時系列センサーデータを効率的に保存・クエリ・分析するためには、通常のRDB(MySQL, PostgreSQLなど)よりも時系列データベース(Time Series Database: TSDB)が特に適しています。

  • InfluxDB:IoTやセンサーデータに特化したオープンソースのTSDB。Pythonクライアントライブラリが提供されています。

  • GridDBCrateDBなどもIoT/時系列データ向けに挙げられています。

  • 一般的なRDBを使う場合、DjangoのORM(Object-Relational Mapping)を利用してデータを管理できます。

InfluxDBPython (Flask)、そしてデータの可視化のためのPlotly/Grafanaを組み合わせてIoT監視アプリを構築するチュートリアルがYouTubeなどで提供されています。


4. 可視化・ダッシュボード

 収集したビッグデータとしてのセンサーデータを分析・監視するためのダッシュボードには、以下のツールが人気です。

  • Grafana:InfluxDBなどの様々なデータソースに対応した、オープンソースの強力なデータ可視化ツール。リアルタイム監視ダッシュボードとして非常に広く使われています。

  • Plotly Dash:PythonだけでインタラクティブなWebベースのダッシュボードを構築できるライブラリ。

  • ThingSpeak:MathWorks社が提供するIoT解析プラットフォーム。センサーデータをクラウドで収集・分析・可視化できます。

専門的なダッシュボード機能が必要な場合は、Flask/Djangoで全てを自作するよりも、Grafanaなどの専用ツールを併用することが推奨されています。

 

🛠️ おすすめの学習アプローチ

  センサーデータの収集からビッグデータ利用までを全てカバーする一つの「サイト」というよりも、特定の技術スタックを組み合わせた「プロジェクト」のチュートリアルを探すのが効果的です。

  1. デバイスの選択とデータ送信: Raspberry PiやESP32などのデバイスから、Python(またはMicroPython)を使ってデータを読み取り、MQTTまたはHTTP POSTでサーバーに送信する(例えば、Firebase Realtime Databaseや自作のFlask APIエンドポイントへ)。

  2. サーバーアプリの構築FlaskまたはDjangoでWeb API(データ受け取り口)と、データ表示用のWebサイトを構築する。

  3. データベースへの保存: 受け取ったデータをInfluxDBなどのデータベースに保存する。

  4. 可視化GrafanaPlotly Dashを使ってダッシュボードを作成し、ビッグデータとして蓄積されたデータを分析・表示する。

この動画では、PythonとRaspberry Piを用いて、IoTプロジェクトのネットワークセキュリティの基礎概念を学ぶことができます。

 Practical Python Programming for IoT | 1. Network Security Concepts

Practical Python Programming for IoT | 1. Network Security Concepts – YouTube
Code in Action · 1万 回の視聴