Arduino001 110911083100-phpapp02

185 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
185
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Arduino001 110911083100-phpapp02

  1. 1. WWoorrkksshhoopp AArrdduuiinnoo Francisco Marcelino Almeida franciscomarcelinoalmeida@gmail.com Marcus Vinícius de Sousa Lemos marvinlemos@gmail.com
  2. 2. AApprreesseennttaaççããoo Sobre o professor: Marcus Vinícius de Sousa Lemos Mestre em Informática Aplicada pela Universidade de Fortaleza – Unifor Professor da Universidade Estadual do Piauí – Uespi Pesquisador do Laboratório de Inteligência Computacional – Laic - Uespi Auditor Fiscal de Controle Externo (Informática) – TCE/PI Áreas de Interesse: Redes de Sensores, Inteligência Computacional, Robótica marvinlemos@gmail.com http://www.marvinlemos.net @marvinlemos
  3. 3. AApprreesseennttaaççããoo Sobre o professor: Francisco Marcelino Almeida de Araújo Mestrando em Biotecnologia pela Universidade Federal do Piauí - UFPI Professor do Instituto Federal do Piauí – IFPI Áreas de Interesse: Inteligência Computacional, Processamento de Imagens, Microeletrônica, Nanotecnologia franciscomarcelinoalmeida@gmail.com http://www.arduinopi.net @keyjin
  4. 4. AArrdduuiinnoo
  5. 5. MMoottiivvaaççããoo Convergência: tecnologia, criação e arte Baixo custo de microcontroladores Plataformas de hardware abertas sendo criados Febre Do It Yourself
  6. 6. MMoottiivvaaççããoo Diversas aplicações práticas Robôs Roupas eletrônicas Desenvolvimento de celulares customizados Instrumentos musicais Paredes interativas Redes de Sensores
  7. 7. MMiiccrrooccoonnttrroollaaddoorr Também conhecido como MCU (Microcontroller Unit) “Computador em um chip” Programado para funções específicas (geralmente para interagir com atuadores) Geralmente embarcados em outros dispositivos
  8. 8. MMiiccrrooccoonnttrroollaaddoorr PIC 16F628A ATmega328 Basic Stamp
  9. 9. AATTMMeeggaa332288PP Características do Atmega328: RISC Processador: 8-bit Flash (Kbytes): 32 EEPROM (Bytes): 1K SRAM (Bytes): 2K PWM Channels: 6 Vcc (V): 1.8 – 5.5
  10. 10. AATTMMeeggaa332288PP
  11. 11. AArrdduuiinnoo Placa + Microcontrolador + USB + Sockets Pode ser conectado a uma grande variedade de dispositivos: Sensores: Luz, temperatura, presença, etc. Displays: LCD, touchscreen Motores e servos GPS Comunicação sem fio: 802.15.4, Zigbee, Bluetooth Ethernet Alimentação: Bateria de 9V ou por meio da USB
  12. 12. Da página oficial (www.arduino.org): Arduino is an open­source electronics prototyping platform based on flexible, easy­to­use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators. The microcontroller on the board is programmed using the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing). Arduino projects can be stand­alone or they can communicate with software on running on a computer (e.g. Flash, Processing,MaxMSP). ”
  13. 13. AArrdduuiinnoo éé OOppeenn--SSoouurrccee
  14. 14. AArrdduuiinnoo ccoomm PPrroottoobbooaarrdd
  15. 15. AArrdduuiinnoo eemm PPaappeell
  16. 16. AArrdduuiinnoo Criado na Itália (em 2005) pelo Mássimo Banzi, no Interaction Design Ivrea Baixo custo de produção e alta aplicabilidade Computação física e redes de sensores Permite que os programas (ou sketches) sejam escritos em uma linguagem de alto nível chamada Processing Processing é um ambiente e linguagem de programação para criar imagens, animação e interação http://processing.org/
  17. 17. VVeerrssõõeess ddoo AArrdduuiinnoo Arduino Uno
  18. 18. VVeerrssõõeess ddoo AArrdduuiinnoo Arduino Nano
  19. 19. VVeerrssõõeess ddoo AArrdduuiinnoo Arduino Mega
  20. 20. VVeerrssõõeess ddoo AArrdduuiinnoo Arduino Lilypad
  21. 21. VVeerrssõõeess ddoo AArrdduuiinnoo Arduino Romeo All-in-one
  22. 22. CCaarraacctteerrííssttiiccaass ddoo AArrdduuiinnoo UUnnoo Microcontrolador ATmega328P Tensão Operacional 5 V Tensão de Alimentação 7-12 V Pinos de I/O digitais 14 (dos quais 6 podem ser saídas PWM) Pinos de entrada analógica 6 Corrente contínua por pino de I/O 40 mA Corrente contínua para o pino de 3.3 V 50 mA Memória Flash 2KB EEPROM 1K Frequência de clock 16 MHz
  23. 23. AArrdduuiinnoo DDiieecciimmiillaa//UUnnoo
  24. 24. OOkk...... bbuutt ffiirrsstt,, lleett''ss ggoo sshhooppppiinngg
  25. 25. KKiitt PPaarraa IInniicciiaannttee
  26. 26. OOuuttrrooss CCoommppoonneenntteess
  27. 27. SSeennssoorreess
  28. 28. ““HHeelllloo WWoorrlldd””
  29. 29. AAmmbbiieennttee ddee DDeesseennvvoollvviimmeennttoo O ambiente de desenvolvimento pode ser baixado em: ● http://arduino.cc/en/Main/Software ● A última versão é a 0022 O arquivo compactado deve ser extraído em qualquer diretório do sistema Será criado um diretório arduino-XXXX, onde XXXX é a versão baixado (por exemplo: arduino-0022).
  30. 30. AAmmbbiieennttee ddee DDeesseennvvoollvviimmeennttoo Executar o arquivo 'arduino'
  31. 31. AAmmbbiieennttee ddee DDeesseennvvoollvviimmeennttoo
  32. 32. CCoonnffiigguurraannddoo oo AAmmbbiieennttee Linux Conecte o Arduino ao seu computador, por meio da porta USB e espere alguns segundos até que o sistema recoheça o dispositivo Para confirmar se o dispositivo foi reconhecido, abra um terminal e execute o comando abaixo: $ dmesg Procure, nas últimas linhas, por uma linha mais ou menos parecida com a de baixo: [56999.967291] usb 5-2: FTDI USB Serial Device converter now attached to ttyUSB0 Essa mensagem indica que o kernel reconheceu um novo dispositivo conectado na porta /dev/ttyUSB0. O sistema nem sempre reconhece como /dev/ttyUSB0, mas em geral é /dev/tty<alguma_coisa>
  33. 33. CCoonnffiigguurraannddoo oo AAmmbbiieennttee Windows: http://arduino.cc/en/Guide/Windows Mac OSX: http://arduino.cc/en/Guide/MacOSX
  34. 34. CCoonnffiigguurraannddoo oo AAmmbbiieennttee Configurar o ambiente de desenvolvimento para utilizar a porta detectado pelo sistema: “Tools” → “Serial Port” Configurar a placa utilizada: “Tools” → “Board” e escolher a opção “Arduino Uno”
  35. 35. ““HHeelllloo WWoorrlldd”” O primeiro projeto será o equivalente “Hello World” para dispositivos embarcados Como não há um terminal, iremos fazer piscar (blink) um LED. A placa do Arduino vem com um LED embutido, conectado ao pin digital 13 Esta conexão faz com que o pin 13 seja sempre de saída, mas como o LED usa pouca corrente, ainda é possível conectar outras coisas na saída
  36. 36. ““HHeelllloo WWoorrlldd”” Código: int ledPin = 13; void setup() { // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(ledPin, LOW); // set the LED off delay(1000); // wait for a second }
  37. 37. ““HHeelllloo WWoorrlldd”” Para fazer o upload para a placa, deve-se clicar no botão específico:
  38. 38. EExxpplliiccaannddoo oo ccóóddiiggoo Um sketch Arduino possui, no mínimo duas funções: setup(): Executada apenas uma vez, durante a inicialização loop(): Função principal
  39. 39. EExxpplliiccaannddoo oo ccóóddiiggoo setup() pinMode(ledPin, OUTPUT); A função pinMode define o modo de operação do pino. Neste caso, definimos que o pino 13 (ledPin) será de saída
  40. 40. EExxpplliiccaannddoo oo ccóóddiiggoo loop() digitalWrite(ledPin, HIGH); Permite ligar (5V) ou desligar (0V) um pino digital Neste código especifico, estamos ligando (constante HIGH) o pino 13 (ledPin) Por meio da constante LOW, podemos desligar o pino delay(200) A função delay() faz com que o processado fique X milisegundos em espera
  41. 41. RReevviissaannddoo CCoommppoonneenntteess:: BBrreeaaddbbooaarrdd,, RReessiissttoorr && LLEEDD
  42. 42. BBrreeaaddbbooaarrdd ((PPrroottoobbooaarrdd)) Breadboard (ou protoboard ou Matriz de Contato) Dispositivo que permite a construção de circuitos sem a necessidade de solda Fácil prototipação Na superfície há uma base de plástico com vários orifícios onde são encaixados os componentes Na parte inferior há contatos metálicos que interligam os componentes inseridos na placa
  43. 43. BBrreeaaddbbooaarrdd ((PPrroottoobbooaarrdd)) Breadboard (ou protoboard ou Matriz de Contato) Os furos das linhas verticais estão interligados
  44. 44. RReessiissttoorr Resistor: Componente projetado para gerar uma resistência à corrente elétrica e, consequentemente, diminuir a tensão entre os dois terminais Medido em Ohm e é representado pela letra grega Omega ( Ω ) Os pinos digitais geram uma tensão de 5 V (DC) a 40mA LEDs geralmente precisam de uma tensão de 2 V e corrente de 10mA (para brilhar razoavelmente bem)
  45. 45. RReessiissttoorr Resistor: Precisamos de um resistor capaz de reduzir a tensão de 5 para 2 (Voltage Drop) e a corrente de 40mA para 10mA Para descobrir o valor do resistor apropriado, vamos utilizar a Lei de Ohm: I = V/R ou R = V/ I ou R = (Tensão fornecida – Tensão apropriada) / I ● R = (5 – 2)/0.01 = 3/0.01 = 300 Ω
  46. 46. RReessiissttoorr Como ler os valores dos resistores:
  47. 47. RReessiissttoorr
  48. 48. LLEEDD LED: Light Emmiting Diode Diodo é um componente que permite que a corrente siga apenas uma direção Um LED é um diodo que emite luz
  49. 49. PPrroojjeettoo 000011:: LLEEDD FFllaasshheerr
  50. 50. LLEEDD FFllaasshheerr Componentes:
  51. 51. LLEEDD FFllaasshheerr Conexão:
  52. 52. LLEEDD FFllaasshheerr
  53. 53. LLEEDD FFllaasshheerr Código: int ledPin = 10; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); }
  54. 54. RReevviissaannddoo CCoommppoonneenntteess:: PPootteenncciiôômmeettrroo
  55. 55. PPootteenncciiôômmeettrroo O potenciômetro é simplesmente um resistor cuja resistência pode ser ajustada Por exemplo: em um potenciômetro de 4K7, a resistência pode variar entre 0 e 4700 Ω Possui três pernas: Conectando apenas duas, o potenciômetro transforma-se em um resistor variável Conectando 3 e aplicando uma tensão, o potenciômetro transforma-se em um divisor de tensão (voltage divider)
  56. 56. PPrroojjeettoo 000022:: IInntteerraaccttiivvee LLEEDD CChhaassee EEffffeecctt
  57. 57. IInntteerraaccttiivvee LLEEDD CChhaassee EEffffeecctt Componentes:
  58. 58. IInntteerraaccttiivvee LLEEDD CChhaassee EEffffeecctt Conexão:
  59. 59. IInntteerraaccttiivvee LLEEDD CChhaassee EEffffeecctt byte ledPin[] = {11,12,13}; int ledDelay; //delay between changes int direcao = 1; int currentLed = 0; unsigned long changeTime; int potPin = 2; //select the input pin for the pot void setup() { for (int x = 0; x < 3; x++){ pinMode(ledPin[x], OUTPUT); } changeTime = millis(); } void loop(){ ledDelay = analogRead(potPin); if ((millis() - changeTime) > ledDelay){ changeLed(); changeTime = millis(); } } void changeLed(){ for (int x = 0; x < 3; x++){ digitalWrite(ledPin[x], LOW); } digitalWrite(ledPin[currentLed], HIGH); currentLed += direcao; if (currentLed == 2) { direcao = -1; } if (currentLed == 0) { direcao = 1; } }
  60. 60. IInntteerraaccttiivvee LLEEDD CChhaassee EEffffeecctt Considerações: Inicialmente declaramos uma variável para o potenciômetro: int potPin = 2; O potenciômetro está conectado a uma porta analógica Para ler o valor de uma porta analógica, utilizamos a função analogRead Um Arduino possui 6 portas análogicas com um conversor analógico-digital de 10bits Uma porta análogica pode ler tensão entre 0V e 5V em valores inteiros entre 0 (0V) e 1023 (5V). Resolução de: 5V / 1024 unidades ou 0.0049V (4.9mV) por unidade
  61. 61. RReevviissaannddoo CCoommppoonneenntteess:: TTaaccttiillee SSwwiittcchh
  62. 62. TTaaccttiillee SSwwiittcchh Tactile Switch
  63. 63. TTaaccttiillee SSwwiittcchh Tactile Switch
  64. 64. TTaaccttiillee SSwwiittcchh Tactile Switch Fonte: http://www.ladyada.net/learn/arduino/lesson5.html
  65. 65. TTaaccttiillee SSwwiittcchh Além de controlar a corrente, funcionam como ótimos dispositivos de entrada No próximo exemplo, vamos configurar a corrente em um pino para 5V ou terra e usar a função digitalRead para consultar o estado do pino: HIGH ou LOW
  66. 66. TTaaccttiillee SSwwiittcchh /* * Switch test program */ // Switch connected to digital pin 2 int switchPin = 2; void setup() { // set up Serial library at 9600 bps Serial.begin(9600); // sets the digital pin as input to read switch pinMode(switchPin, INPUT); } void loop() { Serial.print("Valor do Switch: "); // Read the pin and display the value Serial.println(digitalRead(switchPin)); delay(100); }
  67. 67. TTaaccttiillee SSwwiittcchh Agora, vamos utilizar um fio para alternar a conexão do pino 2 entre 5V e o terra: Fonte: http://www.ladyada.net/learn/arduino/lesson5.html
  68. 68. TTaaccttiillee SSwwiittcchh Switch input tied HIGH (5v) Switch input tied LOW (ground)
  69. 69. TTaaccttiillee SSwwiittcchh
  70. 70. TTaaccttiillee SSwwiittcchh Fonte: http://www.ladyada.net/learn/arduino/lesson5.html
  71. 71. FFllooaattiinngg hhiigghh aabboovvee tthhee cclloouuddss Vamos substituir os fios pelo tactile switch O problema é que o switch só pode conectar e desconectar dois fios. Ele não pode alternar conexões Two alternative switch wiring possibilities
  72. 72. FFllooaattiinngg hhiigghh aabboovvee tthhee cclloouuddss For example, in these schematics we can connect and disconnect pin 2 to 5V, or we can connect and disconnect pin 2 to ground. In both cases, as long as the button is held down, the pin is connected to a valid input voltage. When the button is released, though, pin 2 is not connected to anything. This is called a floating input voltage. Basically, it's invalid input!
  73. 73. RReessiissttoorr PPuullll--ddoowwnn//PPuullll--uupp Uma solução é usar um switch que alterna conexões, como o utilizado no diagrama abaixo: Fonte: http://www.ladyada.net/learn/arduino/lesson5.html
  74. 74. RReessiissttoorr PPuullll--ddoowwnn//PPuullll--uupp Outra solução seria utilizar um recurso conhecido como resistor pull-down: No esquema abaixo, o resistor pull-down está representado pelo resistor de 10Kohm Fonte: http://www.ladyada.net/learn/arduino/lesson5.html
  75. 75. RReessiissttoorr PPuullll--ddoowwnn//PPuullll--uupp Quando o switch for pressionado, o resistor de 100Ω estará conectado diretamente ao 5V. Quando o switch for liberado, o resistor de 100Ω estará conectado ao resistor de 10K, o qual “puxa-o” (pull-down) para o terra
  76. 76. RReessiissttoorr PPuullll--ddoowwnn//PPuullll--uupp Fonte: http://www.ladyada.net/learn/arduino/lesson5.html
  77. 77. RReessiissttoorr PPuullll--ddoowwnn//PPuullll--uupp
  78. 78. RReessiissttoorr PPuullll--ddoowwnn//PPuullll--uupp Resistor pull-up: Fonte: http://www.ladyada.net/learn/arduino/lesson5.html
  79. 79. RReessiissttoorr PPuullll--ddoowwnn//PPuullll--uupp
  80. 80. PPrroojjeettoo 000033:: IInntteerraaccttiivvee LLEEDD FFllaasshheerr
  81. 81. IInntteerraaccttiivvee LLEEDD FFllaasshheerr Componentes:
  82. 82. IInntteerraaccttiivvee LLEEDD FFllaasshheerr Conexão:
  83. 83. IInntteerraaccttiivvee LLEEDD FFllaasshheerr ● Código int ledPin = 4; // choose the pin for the LED int inPin = 5; // choose the input pin (for a pushbutton) int val = 0; // variable for reading the pin status void setup() { pinMode(ledPin, OUTPUT); // declare LED as output pinMode(inPin, INPUT); // declare pushbutton as input } void loop(){ val = digitalRead(inPin); // read input value if (val == HIGH) { // check if the input is HIGH digitalWrite(ledPin, LOW); // turn LED OFF } else { digitalWrite(ledPin, HIGH); // turn LED ON } }
  84. 84. EExxeerrccíícciioo Criar um projeto semelhante ao demonstrado no video: Video 001
  85. 85. PPrroojjeettoo 000044:: TTeemmppeerraattuurree SSeennssoorr
  86. 86. LLMM3355//LLMM3366 –– TTPPMM3355//TTPPMM3366 Sensor de temperatura analógico Estado-sólido (não usa mércurio) A medida que a temperatura muda, a tensão que atravessa um diodo cresce a uma taxa conhecida Não precisa ser calibrado Barato e fácil de usar
  87. 87. LLMM3355//LLMM3366 –– TTPPMM3355//TTPPMM3366 a) LM35 b) LM36 Fonte: http://www.ladyada.net/learn/sensors/tmp36.html
  88. 88. LLMM3355//LLMM3366 –– TTPPMM3355//TTPPMM3366 Para converter a tensão em temperatura: LM35: Temp in ºC: (V in mV) / 10 LM36: – Temp in ºC: [(V in mV - 500)] / 10
  89. 89. LLeennddoo aa TTeemmppeerraattuurraa
  90. 90. LLeennddoo aa TTeemmppeerraattuurraa Devemos conectar o pino do saída do sensor diretamente em uma porta analógica do Arduino A tensão de saída do sensor será de 0 a 1.75 (aproximadamente) O tensão lida pelo Arduino é convertido em um valor binário pelo Conversor Analógico Digital Assim, para descobrirmos a temperatura, devemos fazer uma conversão:
  91. 91. LLeennddoo aa TTeemmppeerraattuurraa Voltage at pin in milliVolts = (reading from ADC) * (5000/1024) This formula converts the number 0-1023 from the ADC into 0- 5000mV (= 5V) Voltage at pin in milliVolts = (reading from ADC) * (3300/1024) This formula converts the number 0-1023 from the ADC into 0- 3300mV (= 3.3V) Para converter a tensão em temperatura, basta utilizarmos a fórmulas definidas anteriormente...
  92. 92. LLeennddoo aa TTeemmppeerraattuurraa int temperaturaPin = 0; int ledPin = 12; float vIn = 5.0; //Tensao de entrada void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(ledPin, HIGH); //ler o valor do sensor float leitura = analogRead(temperaturaPin); float voltagem = (leitura * vIn) / 1023.0; //Imprimir a tensão Serial.print(voltagem); Serial.println(" volts"); //Converter tensao para temperatura float temperaturaC = voltagem * 100.0; delay(1000); Serial.print(temperaturaC); Serial.println(" graus em C"); Serial.println(" "); digitalWrite(ledPin, LOW); delay(1000); }
  93. 93. PPrroobblleemmss yyoouu mmaayy eennccoouunntteerr wwiitthh mmuullttiippllee sseennssoorrss...... If, when adding more sensors, you find that the temperature is inconsistant, this indicates that the sensors are interfering with each other when switching the analog reading circuit from one pin to the other. You can fix this by doing two delayed readings and tossing out the first one
  94. 94. PPrroojjeettoo 000055:: SSeennssiinngg LLiigghhtt
  95. 95. SSeennssiinngg LLiigghhtt Uma forma bastante prática de medir a intensidade da luz é usando um LDR LDR = Light-Dependent Resistor Podem ser chamados de Photoresistores Quanto maior a intensidade da luz, menor a resistência 20MΩ = Ambiente “muito escuro” 20KΩ = Ambiente “muito iluminado”
  96. 96. SSeennssiinngg LLiigghhtt
  97. 97. LLDDRR aass aa VVoollttaaggee DDiivviiddeerr A voltage divider is just two resistors in series connected between a voltage supply and ground. If R1 is connected to the voltage supply and R2 is connected to ground then the voltage at the junction between the two resistors is: V =V cc∗ R2 R1+ R2
  98. 98. LLDDRR aass aa VVoollttaaggee DDiivviiddeerr If R1 is the photoresistor, the voltage will increase with increasing light intensity. If R2 is the photoresistor, the voltage will decrease with increasing light intensity. V =V cc∗ R2 R1+ R2
  99. 99. SSeennssiinngg LLiigghhtt int ledPin = 13; int sensorPin = 1; int period = 400; int limit = 1000; int acesso = 0; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { int rawValue = analogRead(sensorPin); if (rawValue < limit){ digitalWrite(ledPin, LOW); if (acesso != 1){ acesso = 1; Serial.println("ligado"); } } else{ digitalWrite(ledPin, HIGH); Serial.println(rawValue); if (acesso != 0){ acesso = 0; Serial.println("apagado"); } } delay(period); }
  100. 100. PPrroojjeettoo 000066:: EEnnvviiaannddoo IInnffoorrmmaaççõõeess ppaarraa oo AArrdduuiinnoo vviiaa SSeerriiaall
  101. 101. EEnnvviiaannddoo IInnffoorrmmaaççõõeess VViiaa SSeerriiaall int ledPin = 13; int tempoEspera = 500; void setup(){ pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop(){ char ch; if (Serial.available()){ ch = Serial.read(); if (ch == '0'){ digitalWrite(ledPin, LOW); }else{ digitalWrite(ledPin, HIGH); } } delay(tempoEspera); }
  102. 102. EEnnvviiaannddoo IInnffoorrmmaaççõõeess VViiaa SSeerriiaall
  103. 103. PPrroojjeettoo 000077:: PPyySSeerriiaall
  104. 104. apt-get install python-serial -y
  105. 105. PPyySSeerriiaall from serial import Serial porta = '/dev/ttyACM1' ser=Serial(porta, 19200, timeout=10) ser.readline() #descartar a primeira leitura info=ser.readline() ser.close() print info
  106. 106. FFuunnççããoo UUttiilliittáárriiaa:: EEnnvviiaarr EE--MMaaiill import sys import smtplib from email.MIMEText import MIMEText to = 'marvin.lemos@tce.pi.gov.br' user = 'marvinlemos@gmail.com' password = 'senhaaqui' def mandar_email(mensagem): msg = MIMEText(mensagem) msg['Subject'] = 'Teste' msg['From'] = "Marvin Lemos" msg['Reply-to'] = "Marvin Lemos " msg['To'] = to smtpserver = smtplib.SMTP("smtp.gmail.com",587) smtpserver.ehlo() smtpserver.starttls() smtpserver.ehlo smtpserver.login(user, password) try: smtpserver.sendmail(user,to, msg.as_string()) print "e-mail encaminhado" except: print "falha ao transmitir e-mail" print sys.exc_info() smtpserver.close()
  107. 107. RReeffeerrêênncciiaass Arduino Starter Kit Manual: A Complete Beginners Guide To The Arduino http://www.ladyada.net/learn/arduino/ http://blog.justen.eng.br/

×