質問: ### やりたいこと 今までVisual Studio Codeでpythonプログラムを書いて動かしていましたが、これからは各種センサーなどの入力装置と連携したプログラムを書いてみたいと思っています。 例えばWindows 10上で動いているプログラムでセンサーの値を受け取るためのスレッドを動かし、そのセンサー(例えば光センサー)の値によってプログラムの挙動を変えるというようなことです。 ### お聞きしたいこと そこでまず、このようなことは可能かお聞きしたいです。 またもし可能ならばどのような機器(マイコンの種類など)が必要になりますか? またどのようなライブラリーなどが利用されていますか? お時間ありましたら、お教えいただければ幸いです。 よろしくお願いいたします。
回答: 過去に似たようなことをやったことがあります。サーバの筐体内部の温度を測るため、以下のマイコンとセンサーを組み合わせて計測機器を用意しました。 * マイコン(ESP-WROOM-02) * 温度センサ(BME280) このマイコンはWi-Fiでネットワークに接続することができ、またHTTPで測定したデータをPOSTすることができます。 サーバ上でHTTPを受け付けるプログラムを作成し、このマイコンからの測定結果を受信・処理していました。 ですので、機器としては上記のようなWi-Fi接続ができてHTTPをしゃべれるマイコン、ライブラリとしてはHTTPを受信できるライブラリということになろうかと思います。pythonなら一応http.serverで作成することができます。 このようなHTTPでデータを投げる形式の利点として、受信側の対応が幅広いことがあげられます。センサが5個や10個なら自分のPCだけでも捌けますが、センサの数が数百とかになってくると外部のサービスを利用した方が賢明です。センサからの情報を受信・処理するサービスは大体REST API等のHTTPを利用したAPIに対応しており、例えばAWS Kinesisにデータを投げて、作成したpythonをAWS Lambdaでホストすれば、大量のセンサからの情報を捌くシステムの構築も可能です。