Conteúdo sugerido

Abra um terminal e digite 

pip install pyserial



E1nE3Km.png

Código do programa do arduino, ele recebe algo pela serial e responde de volta:


void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  String textoEntrada;
  // put your main code here, to run repeatedly:
  if (Serial.available()>0){
    textoEntrada = Serial.readString();
    Serial.print(" O Arduino Recebeu => ");
    Serial.println(textoEntrada);
  }

}


Código Python escreve algo e imprime a resposta:

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
 
import serial
import time

ser = serial.Serial('COM4', 9600)
time.sleep(3)

ser.write(b'hello') 
print(" Olha o que chegou ")
textoEntrada = ser.readline()
print(textoEntrada)
ser.close()

Este link é da documentação do pyserial para você ver outras funções:

Digitando o texto a enviar:

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
 
import serial
import time

ser = serial.Serial('COM5', 9600)
time.sleep(3)
textoSaida = str(input('o que você quer enviar para o arduino? '))
ser.write(textoSaida.encode()) 
print(" Olha o que chegou ")
textoEntrada = ser.readline()
print(textoEntrada.decode('utf-8'))
ser.close()


Código do arduino para comparar string recebida:


String textoEntrada = "";
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(10, INPUT);
  pinMode(13, OUTPUT);
}
 
void loop() {
  char byteEntrada;
  // put your main code here, to run repeatedly:
  while (Serial.available()>0){
    byteEntrada = Serial.read();
    textoEntrada = String( textoEntrada + String(byteEntrada));
    Serial.println(textoEntrada);
  }
  //Serial.println(textoEntrada);
  if (textoEntrada == "acende"){
    Serial.println("pisca o led");
    digitalWrite(13,HIGH);
    delay(1000);
    digitalWrite(13,LOW);
  }
  
  if  (!digitalRead(10)){
     delay(500);
     Serial.println("A");
  }
  
}


import serial
import smtplib, ssl
ser = serial.Serial("COM8", 9600,timeout=2)
line = ser.readline()
while True:
    print(line)
    line = ser.readline()
    linedec = line.decode("utf-8").strip("\n").strip("\r")
    if linedec == "email enviado":
        print("passou")
        port = 465
        smtp_server = "smtp.gmail.com"
        sender_email = "email@server.org"
        receiver_email = "email2@gmail.com"
        password = "[senha]"
        message = "Email Enviado"
        Subject = "VIOLACAO DE COFRE \n Cofre de N 849 foi violado."
        context = ssl.create_default_context()
        with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
            server.login(sender_email, password)
            server.sendmail(sender_email, receiver_email, message)
            print("Email enviado!")
            server.quit()


Esse código ainda não rolou, o programa não passa do while


#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
 
import serial
import time
 
ser = serial.Serial('COM6', 9600)
time.sleep(3)
textoSaida = str(input('o que você quer enviar para o arduino? '))
ser.write(textoSaida.encode())
textoEncoded = ser.readline() 
textoEntrada = textoEncoded.decode('utf-8')
while (textoEntrada != 'ok'):
  textoEncoded = ser.readline() 
  textoEntrada = textoEncoded.decode('utf-8')
  print(" Olha o que chegou => ")
  print(textoEntrada)
  print(" == ok ")
print(" Passou do while ")
ser.close()



Atividades recentes