Brincando com rele via interface Web(flask)
Olá Humanos, decidi brincar um pouco mais com meu Intel Edison, resolvi explorar ao maximo o modulo rele que tenho, nos post anteriores brincamos com basicamente tudo, desde de bluetooth com arduino, servidor simples com flask, para ligar e desligar uma lampada, e pensei, "Vou brincar com o Edison" por que faz um tempo que não mexo nele.Vamos usar o mesmo esquema que usamos no tutorial do arduino as ligações e os pinos sãos os menos segue o exemplo abaixo.
Nesse tutorial, vamos usar uma biblioteca especifica pra ele libmraa, ja usamos ela em outros posts ^_^, antes de qualquer coisa vamos adicionar alguns repositorios, para o Edison entender que precisamos de uma biblioteca que ele não tem.
$ sudo screen /dev/ttyUSB0 115200Quando estiver logado no seu edison acesso o arquivo base-feeds.conf
root@edison# vi /etc/opkg/base-feeds.conf
Adicione essas 3 linhas
src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
Em seguida atualize e instale o pacote python-pip
root@edison# opkg update root@edison# opkg install python-pipCom o pip instala e biblioteca flask
root@edison# pip install flaskOK, Proximo passo e criar uma arvore de pastas
root@edison# mkdir WebInterface
root@edison# mkdir WebInterface
root@edison# cd WebInterface
root@edison:~/WebInterface# mkdir static templatesCom a arvore de pastas pronta cria dentro de WebInterface, uma arquivo chamado main.py
root@edison:~/WebInterface# touch main.py
Codigo do Main.py
from flask import Flask, request, render_template import mraa pin = 7 p = mraa.Gpio(pin) p.dir(mraa.DIR_OUT) app = Flask(__name__) @app.route("/",methods=["POST","GET"]) def index(): if request.method == "POST": if request.form['submit'] == 'ON': print "Luz Ligada\n" p.write(0) elif request.form['submit'] == "OFF": print "Luz Desligada\n" p.write(1) return render_template("index.html") if __name__ == "__main__": app.run(host="0.0.0.0",port=8080,debug=True)
OK, agora acesse a pasta templates e edite o arquivo index.html
root@edison:~/WebInterface# cd templates
root@edison:~/WebInterface/templates# vi index.html
<html><head>
<title>Intel Luz</title>
</head>
<center><img src="/static/edison.png" alt="intel-edison" style="width: 500px; height: 400xp"></center>
<body><center>
<h1>Intel Edison (Luz)</h1>
<form action="/" method="post">
<input type="submit" name="submit" value="ON" style="width: 100px; height: 100px">
<input type="submit" name="submit" value="OFF" style="width: 100px; height: 100px">
</form>
</center></body>
</html>
Bem simples neh?, agora por que a pasta static ? resolvi colocar uma imagem fofa do edison, para o flask entender que queremos uma imagem precisamos criar uma pasta static e dentro dela colocar a imagem.
Apenas faça um wget direto na pagina no seu edison.
root@edison:~/WebInterface/# cd static
root@edison:~/WebInterface/static/# wget https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqjZ5czY9fNHisMsJRCgVQwY02hdoiX5jWDkhg5Xbe_GuGErNSg6ie3e9kDvBASW0iDYpCBdSS6Frz6nDg5kcykPRQRzc0hB2tYTMcAORBPUudMGxPdLka8HXviy2ungryQztgqzVIoEna/s1600/edison.png
root@edison:~/WebInterface/# python main.py
Bom é isso The End ^_^
Comentários
Postar um comentário