Eae pessoal, blz?
Nesse post vou mostrar como fazer comunicação entre serial entre um microcontrolador e um programa em python.
O código criado em python envia caracteres pela serial. Esse
s caracteres são lidos pelo ESP8266 e executam uma função determinada de acordo com o caractere que foi enviado.
Essa é a montagem que foi feita, o ESP foi conectado a porta USB do notebook, e o circuito externo é composto de um LED e um servo motor.
Vou deixar aqui o código feito em python para enviar os caracteres e o código do ESP8266 que recebe os caracteres e aciona o LED e/ou servo motor de acordo com o caractere enviado.
CÓDIGO PYTHON
import serial
arduino = serial.Serial('COM6', 9600)
while 1:
dados = input("digite o comando \n")
if dados == '1':
arduino.write(b'1')
print("led ligado")
elif dados == '0' :
arduino.write(b'0')
print("led desligado")
elif dados == '2' :
arduino.write(b'2')
print("0 graus ")
elif dados == '3' :
arduino.write(b'3')
print("90 graus")
elif dados == '4' :
arduino.write(b'4')
print("180 graus")
CÓDIGO ESP8266
#include <Servo.h>
int ledVermelho = 0;
int valor_recebido;
Servo s;
void setup() {
Serial.begin(9600);
pinMode(ledVermelho, OUTPUT);
s.attach(16);
s.write(10);
}
void loop() {
if(Serial.available() > 0)
{
valor_recebido = Serial.read();
}
if(valor_recebido == '1'){
digitalWrite(ledVermelho,HIGH);
}
else if(valor_recebido == '0'){
digitalWrite(ledVermelho,LOW);
}
else if(valor_recebido == '2'){
s.write(10);
}
else if(valor_recebido == '3'){
s.write(90);
}
else if(valor_recebido == '4'){
s.write(170);
}
}
Link do Canal no Youtube:
https://www.youtube.com/c/Eletr%C3%B4nicaePrograma%C3%A7%C3%A3o