Abra um terminal e digite
pip install pyserial
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()
Ou