Trilha – Arduino
  Marco Antonio Maciel
           .




                         Globalcode – Open4education
O Arduino ama a Internet
      De várias maneiras
              .




                           Globalcode – Open4education
Agenda
 Arduino
 Como conectar à Internet
 Integrando os mundos
 Como começar
 DEMO




                            Globalcode – Open4education
Quem sou eu?

       @marcomaciel

       http://mmaciel.com.br

       http://ArduInRio.cc




                               Globalcode – Open4education
Arduino
  Criado por Massimo Banzi.
  Plataforma open source (hardware
  e software).

Projeto simples, popular e
acessível com eletrônica e
programação embarcada de alto
nível.



                                     Globalcode – Open4education
Arduino
 Microcontrolador com sistema embarcado
 IDE e bibliotecas de alto nível
 Comunidade grande e atuante
 Multiplataforma (Linux, Mac e Windows)
 Linguagem é essencialmente C/C++ (Wiring)
 Transferência via USB
 Comunicação serial



                                    Globalcode – Open4education
“Falando” com Arduino
  Comunicação Serial

# Java                 # VB
# Ruby                 # Delphi
# Python               # Objective-C
# .NET                 # C/C++
                       Etc. etc. etc..



                                         Globalcode – Open4education
Hello world




              Globalcode – Open4education
Hello world




              Globalcode – Open4education
What’s so funny?




               off-line sux!

                               Globalcode – Open4education
Globalcode – Open4education
Integrar com a Internet !




                Como faz ?

                             Globalcode – Open4education
Como conectar à Internet?
 Ligado a um computador
   USB
   Bluetooth
 Ethernet Shield
 Wifi Shield




                            Globalcode – Open4education
Globalcode – Open4education
</xml>




#text




         Globalcode – Open4education
</xml>




#text




         Globalcode – Open4education
</xml>




#text




         Globalcode – Open4education
</xml> #text




               Globalcode – Open4education
</xml> #text




               Globalcode – Open4education
</xml> #text




               Globalcode – Open4education
. Java
. PHP      Internet
. Python
. C#



                                                 . Java
                                                 . Ruby
                                                 . Python
                                                 . C++
                                                 . VB
                                                 . Delphi




                      . Wiring (C / C++)

                                   Globalcode – Open4education
. Java
. PHP           Internet
. Python
. C#




    . Wiring (C / C++)
                           Globalcode – Open4education
Comunicação remota
 Java
 Python
 PHP




                     Globalcode – Open4education
Java
Servlet para gravar a mensagem
         String mensagem = req.getParameter("mensagem");
         ServletContext sc = getServletContext();
         sc.setAttribute("mensagem", mensagem);
         resp.sendRedirect("index.jsp");




                                                           Globalcode – Open4education
Java
Servlet para gravar a mensagem
         String mensagem = req.getParameter("mensagem");
         ServletContext sc = getServletContext();
         sc.setAttribute("mensagem", mensagem);
         resp.sendRedirect("index.jsp");

Servlet para ler a mensagem
         ServletContext sc = getServletContext();
         PrintWriter saida = resp.getWriter();
         String mensagem = String.valueOf(sc.getAttribute("mensagem")).trim();
         if (mensagem.equals("")) {
              saida.print("");
         } else {
              saida.print(mensagem);
         }
         sc.setAttribute("mensagem", "");




                                                            Globalcode – Open4education
Python (Flask)
Método para gravar a mensagem
          @app.route('/envia_mensagem', methods=['POST', 'GET'])
          def grava_mensagem():
              mensagem = request.args.get('mensagem', '')
              write_msg(mensagem)
              return redirect(url_for('index'))

Método para ler a mensagem
          @app.route('/obtem_mensagem')
          def obtem_mensagem():
              mensagem = read_msg()
              write_msg('')
              return mensagem

Método para escrever e ler a mensagem no arquivo
          def write_msg(mensagem):
              f = open('mensagem.txt', 'w’)
              f.write('%s' % (mensagem))

          def read_msg():
              f = open('mensagem.txt', 'r')
              line = f.read()

                                                                   Globalcode – Open4education
Python (Flask)
Método para gravar a mensagem
          @app.route('/envia_mensagem', methods=['POST', 'GET'])
          def grava_mensagem():
              mensagem = request.args.get('mensagem', '')
              write_msg(mensagem)
              return redirect(url_for('index'))

Método para ler a mensagem
          @app.route('/obtem_mensagem')
          def obtem_mensagem():
              mensagem = read_msg()
              write_msg('')
              return mensagem

Método para escrever e ler a mensagem no arquivo
          def write_msg(mensagem):
              f = open('mensagem.txt', 'w’)
              f.write('%s' % (mensagem))

          def read_msg():
              f = open('mensagem.txt', 'r')
              line = f.read()

                                                                   Globalcode – Open4education
Python (Flask)
Método para gravar a mensagem
          @app.route('/envia_mensagem', methods=['POST', 'GET'])
          def grava_mensagem():
              mensagem = request.args.get('mensagem', '')
              write_msg(mensagem)
              return redirect(url_for('index'))

Método para ler a mensagem
          @app.route('/obtem_mensagem')
          def obtem_mensagem():
              mensagem = read_msg()
              write_msg('')
              return mensagem

Método para escrever e ler a mensagem no arquivo
          def write_msg(mensagem):
              f = open('mensagem.txt', 'w’)
              f.write('%s' % (mensagem))

          def read_msg():
              f = open('mensagem.txt', 'r')
              line = f.read()

                                                                   Globalcode – Open4education
PHP
Programa para gravar a mensagem
         <?php
         require_once("application.class.php");
         $mensagem = $_POST['mensagem'];
         Application::setVar("mensagem",$mensagem);
         $redirect = "./";
         header("location:$redirect”)
         ?>




                                                      Globalcode – Open4education
PHP
Programa para gravar a mensagem
         <?php                                        #application.class.php
         require_once("application.class.php");
                                                      http://tinyurl.com/GlobalVarsInPhp
         $mensagem = $_POST['mensagem'];
         Application::setVar("mensagem",$mensagem);
         $redirect = "./";
         header("location:$redirect”)
         ?>




                                                         Globalcode – Open4education
PHP
Programa para gravar a mensagem
         <?php                                          #application.class.php
         require_once("application.class.php");
                                                        http://tinyurl.com/GlobalVarsInPhp
         $mensagem = $_POST['mensagem'];
         Application::setVar("mensagem",$mensagem);
         $redirect = "./";
         header("location:$redirect”)
         ?>

Programa para ler a mensagem
         <?php
         require_once("application.class.php");
         $mensagem = Application::getVar("mensagem");
         echo $mensagem;
         Application::setVar("mensagem","");
         ?>




                                                           Globalcode – Open4education
Comunicação local
 Java
 Python
 Ruby




                    Globalcode – Open4education
Java
 Jar RXTX (http://rxtx.qbang.org)




                                    Globalcode – Open4education
Java
 Jar RXTX (http://rxtx.qbang.org)




                                    Globalcode – Open4education
Ruby
 gem serialport   (http://ruby-serialport.rubyforge.org/)




                                              Globalcode – Open4education
Ruby
    gem serialport      (http://ruby-serialport.rubyforge.org/)


  Instalação
> gem install serialport

    Testando
>   irb
>   require “serialport”
>   ser = SerialPort.new “/dev/ttyUSB0”
>   ser.write “1”
>   ser.close




                                                    Globalcode – Open4education
Python
 modulo pySerial (http://pyserial.sourceforge.net)




                                         Globalcode – Open4education
Python
    modulo pySerial (http://pyserial.sourceforge.net)

  Instalação
> pip install pyserial ou easy_install pyserial

    Testando
>   python
>   import serial
>   ser = serial.Serial(“/dev/ttyUSB0”)
>   ser.write(“1”)
>   ser.close()




                                                  Globalcode – Open4education
Programa Arduino
 Lê porta serial e aciona comando




                                    Globalcode – Open4education
DEMOs




        Globalcode – Open4education
OBRIGADO

     @marcomaciel

     http://mmaciel.com.br

     http://ArduInRio.cc




                             Globalcode – Open4education

O Aduino ama a Internet - TDC 2012

  • 1.
    Trilha – Arduino Marco Antonio Maciel . Globalcode – Open4education
  • 2.
    O Arduino amaa Internet De várias maneiras . Globalcode – Open4education
  • 3.
    Agenda Arduino Comoconectar à Internet Integrando os mundos Como começar DEMO Globalcode – Open4education
  • 4.
    Quem sou eu? @marcomaciel http://mmaciel.com.br http://ArduInRio.cc Globalcode – Open4education
  • 5.
    Arduino Criadopor Massimo Banzi. Plataforma open source (hardware e software). Projeto simples, popular e acessível com eletrônica e programação embarcada de alto nível. Globalcode – Open4education
  • 6.
    Arduino Microcontrolador comsistema embarcado IDE e bibliotecas de alto nível Comunidade grande e atuante Multiplataforma (Linux, Mac e Windows) Linguagem é essencialmente C/C++ (Wiring) Transferência via USB Comunicação serial Globalcode – Open4education
  • 7.
    “Falando” com Arduino Comunicação Serial # Java # VB # Ruby # Delphi # Python # Objective-C # .NET # C/C++ Etc. etc. etc.. Globalcode – Open4education
  • 8.
    Hello world Globalcode – Open4education
  • 9.
    Hello world Globalcode – Open4education
  • 10.
    What’s so funny? off-line sux! Globalcode – Open4education
  • 11.
  • 12.
    Integrar com aInternet ! Como faz ? Globalcode – Open4education
  • 13.
    Como conectar àInternet? Ligado a um computador USB Bluetooth Ethernet Shield Wifi Shield Globalcode – Open4education
  • 14.
  • 15.
    </xml> #text Globalcode – Open4education
  • 16.
    </xml> #text Globalcode – Open4education
  • 17.
    </xml> #text Globalcode – Open4education
  • 18.
    </xml> #text Globalcode – Open4education
  • 19.
    </xml> #text Globalcode – Open4education
  • 20.
    </xml> #text Globalcode – Open4education
  • 21.
    . Java . PHP Internet . Python . C# . Java . Ruby . Python . C++ . VB . Delphi . Wiring (C / C++) Globalcode – Open4education
  • 22.
    . Java . PHP Internet . Python . C# . Wiring (C / C++) Globalcode – Open4education
  • 23.
    Comunicação remota Java Python PHP Globalcode – Open4education
  • 24.
    Java Servlet para gravara mensagem String mensagem = req.getParameter("mensagem"); ServletContext sc = getServletContext(); sc.setAttribute("mensagem", mensagem); resp.sendRedirect("index.jsp"); Globalcode – Open4education
  • 25.
    Java Servlet para gravara mensagem String mensagem = req.getParameter("mensagem"); ServletContext sc = getServletContext(); sc.setAttribute("mensagem", mensagem); resp.sendRedirect("index.jsp"); Servlet para ler a mensagem ServletContext sc = getServletContext(); PrintWriter saida = resp.getWriter(); String mensagem = String.valueOf(sc.getAttribute("mensagem")).trim(); if (mensagem.equals("")) { saida.print(""); } else { saida.print(mensagem); } sc.setAttribute("mensagem", ""); Globalcode – Open4education
  • 26.
    Python (Flask) Método paragravar a mensagem @app.route('/envia_mensagem', methods=['POST', 'GET']) def grava_mensagem(): mensagem = request.args.get('mensagem', '') write_msg(mensagem) return redirect(url_for('index')) Método para ler a mensagem @app.route('/obtem_mensagem') def obtem_mensagem(): mensagem = read_msg() write_msg('') return mensagem Método para escrever e ler a mensagem no arquivo def write_msg(mensagem): f = open('mensagem.txt', 'w’) f.write('%s' % (mensagem)) def read_msg(): f = open('mensagem.txt', 'r') line = f.read() Globalcode – Open4education
  • 27.
    Python (Flask) Método paragravar a mensagem @app.route('/envia_mensagem', methods=['POST', 'GET']) def grava_mensagem(): mensagem = request.args.get('mensagem', '') write_msg(mensagem) return redirect(url_for('index')) Método para ler a mensagem @app.route('/obtem_mensagem') def obtem_mensagem(): mensagem = read_msg() write_msg('') return mensagem Método para escrever e ler a mensagem no arquivo def write_msg(mensagem): f = open('mensagem.txt', 'w’) f.write('%s' % (mensagem)) def read_msg(): f = open('mensagem.txt', 'r') line = f.read() Globalcode – Open4education
  • 28.
    Python (Flask) Método paragravar a mensagem @app.route('/envia_mensagem', methods=['POST', 'GET']) def grava_mensagem(): mensagem = request.args.get('mensagem', '') write_msg(mensagem) return redirect(url_for('index')) Método para ler a mensagem @app.route('/obtem_mensagem') def obtem_mensagem(): mensagem = read_msg() write_msg('') return mensagem Método para escrever e ler a mensagem no arquivo def write_msg(mensagem): f = open('mensagem.txt', 'w’) f.write('%s' % (mensagem)) def read_msg(): f = open('mensagem.txt', 'r') line = f.read() Globalcode – Open4education
  • 29.
    PHP Programa para gravara mensagem <?php require_once("application.class.php"); $mensagem = $_POST['mensagem']; Application::setVar("mensagem",$mensagem); $redirect = "./"; header("location:$redirect”) ?> Globalcode – Open4education
  • 30.
    PHP Programa para gravara mensagem <?php #application.class.php require_once("application.class.php"); http://tinyurl.com/GlobalVarsInPhp $mensagem = $_POST['mensagem']; Application::setVar("mensagem",$mensagem); $redirect = "./"; header("location:$redirect”) ?> Globalcode – Open4education
  • 31.
    PHP Programa para gravara mensagem <?php #application.class.php require_once("application.class.php"); http://tinyurl.com/GlobalVarsInPhp $mensagem = $_POST['mensagem']; Application::setVar("mensagem",$mensagem); $redirect = "./"; header("location:$redirect”) ?> Programa para ler a mensagem <?php require_once("application.class.php"); $mensagem = Application::getVar("mensagem"); echo $mensagem; Application::setVar("mensagem",""); ?> Globalcode – Open4education
  • 32.
    Comunicação local Java Python Ruby Globalcode – Open4education
  • 33.
    Java Jar RXTX(http://rxtx.qbang.org) Globalcode – Open4education
  • 34.
    Java Jar RXTX(http://rxtx.qbang.org) Globalcode – Open4education
  • 35.
    Ruby gem serialport (http://ruby-serialport.rubyforge.org/) Globalcode – Open4education
  • 36.
    Ruby gem serialport (http://ruby-serialport.rubyforge.org/) Instalação > gem install serialport Testando > irb > require “serialport” > ser = SerialPort.new “/dev/ttyUSB0” > ser.write “1” > ser.close Globalcode – Open4education
  • 37.
    Python modulo pySerial(http://pyserial.sourceforge.net) Globalcode – Open4education
  • 38.
    Python modulo pySerial (http://pyserial.sourceforge.net) Instalação > pip install pyserial ou easy_install pyserial Testando > python > import serial > ser = serial.Serial(“/dev/ttyUSB0”) > ser.write(“1”) > ser.close() Globalcode – Open4education
  • 39.
    Programa Arduino Lêporta serial e aciona comando Globalcode – Open4education
  • 40.
    DEMOs Globalcode – Open4education
  • 41.
    OBRIGADO @marcomaciel http://mmaciel.com.br http://ArduInRio.cc Globalcode – Open4education

Notas do Editor

  • #5 Atualmente dedica seu tempo para estudos de robótica e aplicativos móveis usando plataformas livres.
  • #6 Profissional de TI há 16 anosClipper, Pascal, VB, Delphi, ASP, PHP, JavaAdministrador do grupo ArduInRio (arduinrio.cc)Organizador do Hack’n Rio (hacknrio.org)Não sou especialista, sou mais um generalistaPai de duas filhas lindas
  • #8 Robóticaé a computaçãofísicamaisconhecida.Novo nome da mecatrônica.
  • #13 Vmoscolocarumagraçanisso!
  • #20 Váriasmaneiras de conectarosseusaparelhosaoarduino.
  • #21 Váriasmaneiras de conectarosseusaparelhosaoarduino.
  • #22 Váriasmaneiras de conectarosseusaparelhosaoarduino.
  • #23 Váriasmaneiras de conectarosseusaparelhosaoarduino.
  • #24 Váriasmaneiras de conectarosseusaparelhosaoarduino.