User Tools

Site Tools


raspberry_pi:web_service

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

raspberry_pi:web_service [2019/02/24 17:48] (current)
Line 1: Line 1:
 +====== 개요 ======
 +Raspberry Pi는 웹 연결이 비교적 쉽고 기본 파이썬이 설치 되어 있기 때문에 파이썬을 통해 Rest 서버를 구현하여 쉽게 포트들을 제어할 수 있습니다. 그러기 위해서는 web.py Library를 설치해야 합니다. ​
  
 +====== Web Library 설치 ======
 +아래와 같은 코드를 실행합니다(Root 계정에서 실행)
 +<​code>​
 +wget http://​webpy.org/​static/​web.py-0.37.tar.gz
 +tar -xzf web.py-0.37.tar.gz
 +cd web.py-0.37/​
 +python setup.py install
 +</​code>​
 +
 +====== Example Code ======
 +  * output port로 제어 하기 : http://​FQDN_or_ip/​on/​25 , http://​FQDN_or_ip/​off/​26
 +  * input port로 제어 하기(26번포트) : http://​FQDN_or_ip/​get26
 +<​code>​
 +#​!/​usr/​bin/​env python
 +import web
 +import random
 +import RPi.GPIO as GPIO
 +GPIO.setmode(GPIO.BCM)
 +urls = (
 +    '/​get26',​ '​get26',​
 +    '/​on/​(.*)',​ '​portOn',​
 +    '/​off/​(.*)',​ '​portOff'​
 +)
 +app = web.application(urls,​ globals())
 +class get26: ​       ​
 +    def GET(self):
 +        GPIO.setup(26,​ GPIO.IN)
 +        return '''​{"​port26":​%d}'''​%GPIO.input(26)
 +class portOn:
 +    def GET(self,​port):​
 +        p=int(port)
 +        GPIO.setup(p,​ GPIO.OUT)
 +        GPIO.output(p,​True) ​   ​
 +        return "​OK--on"​
 +class portOff:
 +    def GET(self, port):
 +        p=int(port)
 +        GPIO.setup(p,​ GPIO.OUT)
 +        GPIO.output(p,​False) ​   ​
 +        return "​OK--off"​
 +if name == "​main":​
 +    app.run()
 +</​code>​
raspberry_pi/web_service.txt · Last modified: 2019/02/24 17:48 (external edit)