Pular para o conteúdo principal

Interface Simples Web com IntelEdison (Flask+Modulo Rele)

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 115200 
Quando 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-pip 
Com o pip instala e biblioteca flask

root@edison# pip install flask
OK, 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 templates

Com 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

Depois rode a aplicação usando o comando

root@edison:~/WebInterface/# python main.py 










Bom é isso The End ^_^

Comentários

Postagens mais visitadas deste blog

modelo de previsão de imoveis boston dataset

Modelo de previsão do preço de imoveis em boston Nanodegree Engenheiro de Machine Learning ¶ Modelo de Avaliação e Validação ¶ Projeto 1: Estimando Preços dos Imóveis de Boston ¶ Bem-vindo ao primeiro projeto do Nanodegree de Engenheiro de Machine Learning! Neste Notebook, alguns templates de código estão sendo fornecidos para você, e você irá precisar implementar funcionalidades adicionais para completar este projeto com sucesso. Você não vai precisar modificar o código que foi incluído além do que está sendo pedido. Seções que começam com 'Implementação' no cabeçalho indicam que o bloco de código seguinte vai exigir que você providencie funcionalidade adicional. Instruções serão fornecidas para cada seção e as especificidades da implementação são marcadas no bloco de código com o comando 'TODO'. Não esqueça de ler as instruções atentamente! github code http://github.com/juanengml/boston_housing Além do có...

Dicas rápidas !!!!!

Olá Humanos HOJE vamos aprender a criar um pendrive de boot com windows 7 tipo assim mt mt mt mt mt rapido #NoobAlert Requisitos: 1 - Pendrive de 4GB 1 - PC Windows 7 1 - Internet 1 - Cafe 1º Download ISO windows All-in-on  faça  o download do iso pelo site do Windows 7 All in on, se você não sabe usar o torrent acesse a  esta pagina https://kickass.to/windows-7-all-in-one-pre-activated-excellent-t7661549.html 2º Download do  A Bootable USB  http://www.baixaki.com.br/download/a-bootable-usb.htm OK com o download do arquivo BootableUSB.zip  extraia usando sua ferramente de extração, e acessando a pasta basta executar, abrindo a tela igual a de cima. Clique em  3º Criando Pendrive de Boot Seguindo a sequencia de passo 1 - Clique em Check USB para checar se em realmente um pendrive ali(por favor esteja ja com seu pendrive na porta usb neh) 2 - Clique em Format USB(Sera formatado seu pendrive então e bom que tenha um bkp)...

Scratch for Arduino Servo Motor Basic One(Controland Servo Motor com S4A)

Olá Humanos, aqui vamos brincar com arduino usando Scratch, neste pequeno teste vamos trabalhar com: /* 1 Arduino Uno */   /*  1 Micro Servo */ >>> print "Com este Circuito bem basico " >>> print  "Com o circuito montado inicie o Scratch for arduino e Programe o controle e movimentos dessa forma. " >>> exit()