o aduino ama a internet - tdc 2012
DESCRIPTION
Palestra apresentada no TDC 2012 na trilha de Arduino. O Arduino é uma plataforma bem legal, eu sei. Mas só fazer led piscar não é muito empolgante, concordam? Então que tal aprender como integrar o seu Arduino com a Internet? Hoje em dia projeto off-line sux. Vou demonstrar algumas maneiras (simples e complexas) de integrar sua plaquinnha com a Internet usando as principais liguagens de programação livres do mercado, como Java, Python e Ruby. Sim! Com demonstração ;) App de teste: http://turn-me-on.appspot.com/ Projeto no github:TRANSCRIPT
![Page 1: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/1.jpg)
Globalcode – Open4education
Trilha – ArduinoMarco Antonio Maciel
.
![Page 2: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/2.jpg)
Globalcode – Open4education
O Arduino ama a InternetDe várias maneiras
.
![Page 3: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/3.jpg)
Globalcode – Open4education
Agenda
Arduino
Como conectar à Internet
Integrando os mundos
Como começar
DEMO
![Page 4: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/4.jpg)
Globalcode – Open4education
Quem sou eu?
@marcomaciel
http://mmaciel.com.br
http://ArduInRio.cc
![Page 5: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/5.jpg)
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.
![Page 6: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/6.jpg)
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
![Page 7: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/7.jpg)
Globalcode – Open4education
“Falando” com Arduino
Comunicação Serial
# Java
# Ruby
# Python
# .NET
# VB
# Delphi
# Objective-C
# C/C++
Etc. etc. etc..
![Page 8: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/8.jpg)
Globalcode – Open4education
Hello world
![Page 9: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/9.jpg)
Globalcode – Open4education
Hello world
![Page 10: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/10.jpg)
Globalcode – Open4education
What’s so funny?
off-line sux!
![Page 11: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/11.jpg)
Globalcode – Open4education
![Page 12: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/12.jpg)
Globalcode – Open4education
Integrar com a Internet !
Como faz ?
![Page 13: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/13.jpg)
Globalcode – Open4education
Como conectar à Internet?
Ligado a um computadorUSB
Bluetooth
Ethernet Shield
Wifi Shield
![Page 14: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/14.jpg)
Globalcode – Open4education
![Page 15: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/15.jpg)
Globalcode – Open4education
</xml>
#text
![Page 16: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/16.jpg)
Globalcode – Open4education
</xml>
#text
![Page 17: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/17.jpg)
Globalcode – Open4education
</xml>
#text
![Page 18: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/18.jpg)
Globalcode – Open4education
</xml> #text
![Page 19: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/19.jpg)
Globalcode – Open4education
</xml> #text
![Page 20: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/20.jpg)
Globalcode – Open4education
</xml> #text
![Page 21: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/21.jpg)
Globalcode – Open4education
Internet
. Java
. PHP
. Python
. C#
. Java
. Ruby
. Python
. C++
. VB
. Delphi
. Wiring (C / C++)
![Page 22: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/22.jpg)
Globalcode – Open4education
Internet
. Java
. PHP
. Python
. C#
. Wiring (C / C++)
![Page 23: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/23.jpg)
Globalcode – Open4education
Comunicação remota
JavaPythonPHP
![Page 24: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/24.jpg)
Globalcode – Open4education
Java
Servlet para gravar a mensagemString mensagem = req.getParameter("mensagem");ServletContext sc = getServletContext();sc.setAttribute("mensagem", mensagem);resp.sendRedirect("index.jsp");
![Page 25: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/25.jpg)
Globalcode – Open4education
Java
Servlet para gravar a mensagemString mensagem = req.getParameter("mensagem");ServletContext sc = getServletContext();sc.setAttribute("mensagem", mensagem);resp.sendRedirect("index.jsp");
Servlet para ler a mensagemServletContext 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", "");
![Page 26: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/26.jpg)
Globalcode – Open4education
Python (Flask)
Método para gravar a [email protected]('/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 [email protected]('/obtem_mensagem')def obtem_mensagem():
mensagem = read_msg() write_msg('')
return mensagem
Método para escrever e ler a mensagem no arquivodef write_msg(mensagem): f = open('mensagem.txt', 'w’) f.write('%s' % (mensagem))
def read_msg(): f = open('mensagem.txt', 'r') line = f.read()
![Page 27: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/27.jpg)
Globalcode – Open4education
Python (Flask)
Método para gravar a [email protected]('/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 [email protected]('/obtem_mensagem')def obtem_mensagem():
mensagem = read_msg() write_msg('')
return mensagem
Método para escrever e ler a mensagem no arquivodef write_msg(mensagem): f = open('mensagem.txt', 'w’) f.write('%s' % (mensagem))
def read_msg(): f = open('mensagem.txt', 'r') line = f.read()
![Page 28: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/28.jpg)
Globalcode – Open4education
Python (Flask)
Método para gravar a [email protected]('/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 [email protected]('/obtem_mensagem')def obtem_mensagem():
mensagem = read_msg() write_msg('')
return mensagem
Método para escrever e ler a mensagem no arquivodef write_msg(mensagem): f = open('mensagem.txt', 'w’) f.write('%s' % (mensagem))
def read_msg(): f = open('mensagem.txt', 'r') line = f.read()
![Page 29: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/29.jpg)
Globalcode – Open4education
PHP
Programa para gravar a mensagem<?phprequire_once("application.class.php");$mensagem = $_POST['mensagem'];Application::setVar("mensagem",$mensagem);$redirect = "./";header("location:$redirect”)?>
![Page 30: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/30.jpg)
Globalcode – Open4education
PHP
Programa para gravar a mensagem<?phprequire_once("application.class.php");$mensagem = $_POST['mensagem'];Application::setVar("mensagem",$mensagem);$redirect = "./";header("location:$redirect”)?>
#application.class.php
http://tinyurl.com/GlobalVarsInPhp
![Page 31: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/31.jpg)
Globalcode – Open4education
PHP
Programa para gravar a mensagem<?phprequire_once("application.class.php");$mensagem = $_POST['mensagem'];Application::setVar("mensagem",$mensagem);$redirect = "./";header("location:$redirect”)?>
Programa para ler a mensagem<?phprequire_once("application.class.php");$mensagem = Application::getVar("mensagem");echo $mensagem;Application::setVar("mensagem","");?>
#application.class.php
http://tinyurl.com/GlobalVarsInPhp
![Page 32: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/32.jpg)
Globalcode – Open4education
Comunicação local
JavaPythonRuby
![Page 33: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/33.jpg)
Globalcode – Open4education
Java
Jar RXTX (http://rxtx.qbang.org)
![Page 34: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/34.jpg)
Globalcode – Open4education
Java
Jar RXTX (http://rxtx.qbang.org)
![Page 35: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/35.jpg)
Globalcode – Open4education
Ruby
gem serialport (http://ruby-serialport.rubyforge.org/)
![Page 36: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/36.jpg)
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
![Page 37: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/37.jpg)
Globalcode – Open4education
Python
modulo pySerial (http://pyserial.sourceforge.net)
![Page 38: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/38.jpg)
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()
![Page 39: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/39.jpg)
Globalcode – Open4education
Programa Arduino
Lê porta serial e aciona comando
![Page 40: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/40.jpg)
Globalcode – Open4education
DEMOs
![Page 41: O Aduino ama a Internet - TDC 2012](https://reader036.vdocuments.mx/reader036/viewer/2022062405/55661272d8b42a06318b4d1d/html5/thumbnails/41.jpg)
Globalcode – Open4education
OBRIGADO
@marcomaciel
http://mmaciel.com.br
http://ArduInRio.cc