使えば、簡単にインターネットを介してマイコンを制御することができます。今回は、ラズパイにbottleを用いてAPIサーバーを構築し、ReactNativeで作成したモバイルアプリ上から、HTTPでアクセスすることで、ラズパイに接続したLEDのON/OFFを切り替える、今流行りのIoTっぽいことをやってみたいと思います。作るもの今回は、アプリ上からLEDのon/offを切り替えるシンプルなスイッチング機能を作成します。LED以外、たとえばモーターやセンサーのon/offにも応用できそうなので汎用性は高そうな気がします。ラズパイは、インターネットに接続してあるので、モバイル上から遠隔で操作することが可能となります。構成図にするとこんな感じです。以下の基本的なセットアップは、別の記事でまとめておいたので、そちらを参考にしてください。ラズパイ購入後の初期セットアップに関してまとめてあります。ラズパイ上にpyenvで管理するpython環境を構築し、webフレームワークbottleの導入までまとめてあります。worldできるところまで、まとめてあります。ラズパイでLEDを点灯できるように回路を構築します。その後、LEDのON/OFFのスイッチをスマートフォンで行えるようにするという手順で進めて行きます。ラズパイでLEDの点灯まずは、ラズパイからLEDを点灯させましょう。ラズパイ上の任意のディレクトリにraspberry_led.pyというファイルを作成して中身を以下のように編集します。raspberry_led.py25番pinに接続したLEDが2秒間点灯するはずです。input/outputの略で、集積回路やコンピュータ上の一般的なピンであり、その動作(入力か出力か)は、ユーザーによって制御が可能。上記で行ったLEDの点灯を、モバイルからhttpリクエストを受け付けた際に、実行できるようにします。Pythonのフレームワークbottleを用いて、ラズパイ上でLEDのon/offを切り替えることのできるAPIサーバーを構築します。これによって、インターネットを介してラズパイにhttpリクエストを送ることで、LEDを制御することが可能となります。LEDの時と同様に、任意のディレクトリにled_switch.pyを作成して次のように編集します。debug=True)っラズパイのIPアドレスは、こちらの記事を参考に控えておいてください。ファイルを作成したら、必要なパッケージをpipを使ってインストールしておきます。led_switch.pyサーバーを起動したままにしておきます。ReactNativeで作ったアプリをスイッチ代わりにサーバーとラズパイの準備はできたので、最後にスイッチの役割を果たすモバイルアプリを準備します。先ほど、ラズパイ内にon/offを担当するAPIサーバーを構築したので、サーバーにアクセス可能なクライアントアプリを作ります。今回は、モバイルからのアクセスとしましたが、WEBブラウザからでもOKです。スイッチアプリが完成しているはずです。});};スイッチアプリが完成したはずです。このアプリで、先ほど作成した、ラズパイ上のAPIサーバーにアクセスすることで、LEDのon/offを切り替えることができます。まとめ電子工作、Linux、モバイル、Web等、あらゆる技術を総動員することになりますが、その分、動いた時の喜びは大きいですよね!!機械学習にも利用できたり、ラズパイの可能性は無限大のように思えました。今後もいろんなものを作っていきたいとおもいます。