Web経由でRaspberry PiのGPIOを操作したい

Raspberry Pi 2を買ったので、せっかくだからIoTっぽいことをしたいと思っている。構想としては、Raspberry Piに繋いだセンサーの情報をWebブラウザから閲覧できるような感じ。


ということで、Raspberry PiをWebサーバにして、クライアントからWebブラウザを介してGPIOを操作する方法を調べてみた。

調べてみると、1番お手軽そうなのはWebIOPiというPythonのライブラリを使う方法。

WebIOPi

  • Control, debug, and use your Pi’s GPIO, sensors and converters from a web browser or any app
  • WebIOPi is the perfect Swiss-knife to make connected things
  • Developed and provided by Eric PTAK (trouch)
  • Runs on Raspberry Pi





インストールして実行すれば、Raspberry Pi上にWebサイトが立ち上がり、ブラウザ上からRaspberry PiのGPIOを簡単に操作できるようだ。

Wi-Fiでローカルエリアネットワークを構築すれば、モバイルから操作もできるわけだ。

WebブラウザからRaspberry Pi を操作する(WebIOPi 利用)

ただ、それだけだとできることが狭そうな気もするので、単純にRaspberry PiでのWebサーバの構築方法と、そこからGPIOにアクセスする方法を調べることにした。

そこで見つけたのがlighttpdという軽量なWebサーバフレームワーク。これはメモリ消費量が少なく、CPU負荷の少ない高速動作を目的に作られており、聞くところによると、Apacheの2倍近く速いらしい。Raspberry Piみたいに簡素なPCには最適だね。

ということで、Raspberry PiにlighttpdでWebサーバを構築し、GPIOを操作するインストール例を載せているページを見つけた。↓

ブラウザからGPIOを操作

ブラウザから、GPIOを操作する方法を記載しています。 RaspberryPi上にWebサーバを構築して、Webサーバにアクセスすることで、GPIOを操作することが可能になります。これにより、ブラウザからLEDを点灯したりすることができます。

そして、定期的にセンサーの値を取得して表示、あるいは記録してグラフにするならこの辺の情報かな。↓

色々遊ぶぞ。

関連記事

UnityのAR FoundationでARKit 3

Polyscope:3Dデータ操作用GUIライブラリ

BGSLibrary:OpenCVベースの背景差分ライブラリ

Unite 2014の動画

IronPythonを使ってUnity上でPythonのコードを実行する

iOSデバイスのためのフィジカル・コンピューティングツールキット『konashi(こなし)』

Kubric:機械学習用アノテーション付き動画生成パイプライン

Webサイトのワイヤーフレームが作成できるオンラインツール

オープンソースの取引プラットフォーム

MB-Lab:Blenderの人体モデリングアドオン

3Dモデルを立体視で確認できるVRアプリを作っている

OpenCV 3.1のsfmモジュールを試す

WordPressのサーバ引っ越し方法を考える

AfterEffectsプラグイン開発

プログラミングスキルとは何か?

Netron:機械学習モデルを可視化するツール

Zibra Liquids:Unity向け流体シミュレーションプラグイン

ROSでガンダムを動かす

Google製オープンソース機械学習ライブラリ『TensorFlow』のWindows版が公開された

Amazon EC2ログイン用の秘密鍵を無くした場合の対処方法

インターフェイスは世界を規定する

Raspberry Pi

Python.NET:Pythonと.NETを連携させるパッケージ

仮想関数

ドットインストールのWordPress入門レッスン

オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート

Theia:オープンソースのStructure from Motionライブラリ

Seleniumを使ったFXや株の自動取引

『手を動かしながら学ぶエンジニアのためのデータサイエンス』ハンズオンセミナーに行ってきた

東京オリンピックと案内表示

iPhone・iPod touchで動作する知育ロボット『ROMO』

UnityでShaderの入力パラメータとして行列を渡す

CycleGAN:ドメイン関係を学習した画像変換

AndroidもopenGLも初心者さ (でもJavaは知ってるよ)

OpenCVのfindEssentialMat関数を使ったサンプルを読んでみる

Python for Unity:UnityEditorでPythonを使えるパッケージ

Caffe:読みやすくて高速なディープラーニングのフレームワーク

ツールの補助で効率的に研究論文を読む

OpenCVで動画の手ぶれ補正

Iterator

Math Inspector:科学計算向けビジュアルプログラミングツール

ポイントクラウドコンソーシアム

コメント