#author("2018-07-20T03:26:48+00:00","ocha","ocha") *CherrypyをRaspberrypiにインストールしてGPIOを使う [#jf437582] RaspberryPiのGPIOをpythonから使うのは簡単。Lチカは簡単にできた。だとすると 次に、これをネットワーク越しに実現したいところ。できればhttpでコントロールできたら色々便利。 そこで、ネットワーク越しに別のマシンからGPIOを操る方法を探した。 Pythonでwebサーバを簡単に作れるフレームワークがあるらしいので、それを使って見た。 **Cherrypyで何ができる? [#rb2aa220] - Pythonで書いたサーバが作れる。 - CGIとしても呼び出せるらしい。 **インストール方法 [#d6b28289] - http://kzky.hatenablog.com/entry/2014/11/08/CherryPyまとめ RaspberryPiにCherryPyをインストールする。Rasbianが動いていれば、以下のapt-getで簡単にインストールできる。 $ sudo apt-get install python-cherrypy3 **簡単なサンプル [#yd36e53b] - https://ja.wikipedia.org/wiki/CherryPy #!/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ブラウザで見ると以下のようになる。 http://siio.jp/gyazo/4abd1abdfd32cca6141898fd51de66cd.png