#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

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS