RaspberryPiのGPIOをpythonから使うのは簡単。Lチカは簡単にできた。だとすると 次に、これをネットワーク越しに実現したいところ。できればhttpでコントロールできたら色々便利。 そこで、ネットワーク越しに別のマシンからGPIOを操る方法を探した。 Pythonでwebサーバを簡単に作れるフレームワークがあるらしいので、それを使って見た。
RaspberryPiにCherryPyをインストールする。Rasbianが動いていれば、以下のapt-getで簡単にインストールできる。
$ sudo apt-get install python-cherrypy3
#!/usr/bin/env python class HelloWorld(object): def index(self): return "Hello World!" index.exposed = True cherrypy.quickstart(HelloWorld())
とても簡単。これを起動するとサーバとして動き出す。アドレスはデフォルトで、ローカルホストの8080。 同じマシンからcurlすると以下のようになる。
$ curl http://127.0.0.1:8080 Hello World!
他のマシンからも見られるようにするには、RaspberryPiに割り当てたアドレスを使って公開すればよい。デフォルトを変更するには、cherrypy.config.updateを使う。以下はアドレスが192.168.0.80の場合。
#!/usr/bin/env python import cherrypy cherrypy.config.update({'server.socket_host': '192.168.0.80', 'server.socket_port': 8080, }) class HelloWorld(object): def index(self): return "Hello World!" index.exposed = True cherrypy.quickstart(HelloWorld())
他のマシンからwebブラウザで見ると以下のようになる。