728x90
라즈베리 파이 웹으로 LED 제어 하는법 예제 (on/off )
python에 Flask 로 web 구현
<폴더는 구조>
아래의 주소 에서 참고 하시면 좋을듯
https://inbearblog.blogspot.com/2018/10/diy-led.html
style 은 따로 빼서 해보려 했으나 css파일 이 안불러 와져서 그냥 진행 했어요
라즈베리에서 home 밑에 index.py 랑 tempates 폴더을 만든다
회로도는 라즈베리 8번핀 이랑 9번핀(GND)을 사용
#pin 번호는 8 로 해야함 GPIO번호랑은 다름.. 잘 확인 하구요!
index.py
from flask import Flask, request
from flask import render_template
import RPi.GPIO as GPIO
app = Flask(__name__)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(8, GPIO.OUT, initial=GPIO.LOW)
@app.route("/")
def home():
return render_template("index.html")
@app.route("/led/on")
def led_on():
try:
GPIO.output(8, GPIO.HIGH)
return "ok"
except expression as identifier:
return "fail"
@app.route("/led/off")
def led_off():
try:
GPIO.output(8, GPIO.LOW)
return "ok"
except expression as identifier:
return "fail"
if __name__ == "__main__":
app.run(host="0.0.0.0")
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HOME NETWORK</title>
<style>
body{
background-color: rgb(88, 157, 221);
}
.container{
width: 700px;
margin: 0 auto;
text-align: center;
}
.main{
display: flex;
}
.main div {
flex:1;
}
.main div button{
background-color: rgb(000, 144, 100);
width: 150px;
height: 80px;
border-radius: 10px;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h2>HELLO HOME IoT</h2>
</div>
<div class="main">
<div>
<button onclick="led_on()">LED ON</button>
</div>
<div>
<button onclick="led_off()">LED OFF</button>
</div>
</div>
<div id="result">
</div>
</div>
<script>
function led_on(){
fetch("/led/on")
.then(response=> response.text())
.then(data=>{
console.log(data);
let result = document.querySelector("#result");
if(data=="ok"){
result.innerHTML = "<h1>LED is running</h1>";
}else{
result.innerHTML = "<h1>error</h1>";
}
});
}
function led_off(){
fetch("/led/off")
.then(response=> response.text())
.then(data=>{
console.log(data);
let result = document.querySelector("#result");
if(data=="ok"){
result.innerHTML = "<h1>LED is stopping</h1>";
}else{
result.innerHTML = "<h1>error</h1>";
}
});
}
</script>
</body>
</html>
</DOCTYPE>
실행은 python index.py 로 실행 하면 됩니다
Web browser 에 들어가서 localhost:5000 을 입력하면
우리가 만든 웹을 볼 수있고 동작 결과는
LED ON / LED OFF 버튼을 누를 경우
사용 안 할 떄에는 ctrl + c 로 꺼야합니다.
안그러면 계속 포트을 잡고있어용
# 폴더 구조을 잘 보고 해보자 꼭 tempates 폴더 아래에 index.html 이 있어야 합니다
hom 을 home 으로 수정 하시길 잘못씀..ㅈㅅ
728x90
'play > Raspberry&Arduino' 카테고리의 다른 글
아두이노 DHT11 온습도 센서 예제을 해보자 (2) | 2020.04.05 |
---|---|
아두이노 시작 개발 환경 설치 (0) | 2020.04.04 |