Busan IT/로봇제어2015. 10. 26. 16:16

==================================Outline====================================

플라스크 기반의 GPIO 포트 제어

스마트홈

----------------------------------------------------------------------------

 

플라스크 기반의 GPIO 포트 제어

교재 p/211

 

웹의 링크를 통해 GPIO를 제어 하는 코딩을 해보자.

 

[leds.py]


 from flask import Flask, render_template, request
 import RPi.GPIO as GPIO

 app = Flask(__name__)

 GPIO.setmode(GPIO.BCM)

 leds = {
 23 : {'name' : 'RED LED''state' : GPIO.LOW},
 24 : {'name' : 'GREEN LED''state' : GPIO.LOW},
 25 : {'name' : 'BLUE LED''state' : GPIO.LOW},
 }

 for led in leds:
     GPIO.setup(led, GPIO.OUT)
     GPIO.output(led, GPIO.OUT)

 def getGpioState():
     for led in leds:
         leds[led]['state']=GPIO.input(led)

     return leds

 @app.route("/")
 def main():
     gpioState = {
         'leds' : getGpioState()
     }

     return render_template('main.html', **gpioState)

 @app.route("/<led>/<act>")
 def action(led, act):
     led = int(led)
     leds = getGpioState()
     dev = leds[led]['name']
     if act == "on":
         GPIO.output(led, GPIO.HIGH)
         msg = "Turned " + dev + " on. "
     elif act == "off":
         GPIO.output(led, GPIO.LOW)
         msg = "Turned " + dev + " off. "
     elif act == "toggle":
         GPIO.output(led, not GPIO.input(led))
         msg = "Toggled " + dev + "."
     else:
         msg = "Undefined action!"

     gpioState = {
         'msg' : msg,
         'leds' : getGpioState()
     }

     return render_template('main.html', **gpioState)

 if __name__ == "__main__":
     app.run(host='192.168.0.173', port=8888, debug=True)



                                                                            

 

[main.html]

 

 <html>
 <head>
     <title>RGB LED Status</title>
 </head>

 <body>
     <h1>RGB Led Status</h1>

     {% for led in leds %}
     <p>
     {{ leds[led].name }}
     {% if leds[led].state == true %}
         is currently on (<a href="/{{led}}/off">turn off</a>)
     {% else %}
         is currently off (<a href="/{{led}}/on">turn on</a>)
     {% endif %}
     </p>
     {% endfor %}

     {% if msg %}
     <h2>{{ msg }}</h2>
     {% endif %}

 </body>
 </html>

 

 

 

 

스마트홈

교재 p/221 

 

캐리어 주파수는 통신 내용을 전송하기 위해 만들어져 있는 주파수이다. 이 때 캐리어 주파수에 내용을 싣기 위한 작업을 변조라고 하고 변조된 내용을 해석하는 것을 복조라고 한다.


LonWork 



 

LonWork는 네트워크로 가전을 제어하는데 따로 랜선과 네트워크 수신 장치를 사용하지 않고 제어하는 방법을 고안해냈다.

 

 

 

반응형
Posted by newind2000