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

Introdução ao Intel Edison: First Hello Word in Intel Edison

Introdução ao Intel Edison Olá Humanos hoje descidi que iria fazer um post sobre Intel Edison é mostrar um blink/HelloWord usando essa plataforma incrivel ^_^, sabe ? antes de codarmos em si, vamos ver 2 pontos simples, Software e Hardware. Software O.S: primeiro ! ele não usa um OS, ele usa uma build para construir OS, um projeto chamado Yoct, oque ser build ? Pense em um pacote para construir um sistema é pronto ^_^, simples porem tem uma documentação e um pacote completo no link https://www.yoctoproject.org/ Bibliotecas: Inicialmente trabalhamos com a libmraa, fornece uma PWM, GPIO, ADC, e outras interfaces para acesso mais baixo a componentes complexos como sensores e coisas legais. OBS: usamos API python para trabalhar com ela Hardware  Essa e intel Brekout o Edison é apenas o ship pegueno no canto esquerdo da imagem, uma arquitetura baseada no arduino porem com processador e uma microproscessador, bom basicamente é isso, porem o que chama atenção é que ele e um co...

Redirecionamento de Porta usando ngrok (Port Forward with ngrok) SSH

Olá Humanos, estou no pensionato e aqui não tenho acesso ao roteador para fazer um redirencionamento de porta digno affs ¬__¬, sim pensei em Hackear rsrsrs, porem minha preguiça minha preguiça não deixa hauhauha, então encontrei uma ferramenta bem legal chamada ngrok que faz com que eu possa acessar remotamente meu servidor local para brincar com IoT. Instalação e ngrok  link: https://ngrok.com/ Para se cadastrar é bem simples basta logar com conta sua conta do git ou google depois faça download e na https://dashboard.ngrok.com/auth na aba auth pegue seu authtoken e valide no terminal # unzip ngrok-stable-linux-amd64.zip # ./ngrok authtoken <YOUR AUTHTOKEN> Instalando SSH no seu computador  Bom se você usa Ubuntu basta rodar  comando  # apt-get install openssh-server Para testar se o serviço digite  # service ssh status Iniciando SSH no Ngrok Rode o ngrok em protocolo tcp na porta 22  # ./ngrok tcp 22 ...

Instalando VirtualBox no Linux Mint

Olá Humanos, lé eu aqui apanhando para instalar o Virtualbox quando me deparei com um ingua nojenta de linha de comando, seguinte no Linux Mint tive que rodar 2 comadinhos para instalar a VirtualBox, tomate@blue ~# apt-get install virtualbox  blz ate aqui normal neh?? Sqn !!!! Sapo*** da pau neh roda affs precisei rodar o comando virtualbox-qt tomate@blue ~# apt-get install virtualbox-qt Assim funfou e consegui brincar com a telinha linda da Oracle ^____^