Buenas, estoy intentando conectar una placa WEMOS LOLIN32 por puerto serial a un modulo bluetooth BLE AT-09 CC2541 , para configurar este modulo a través del puerto serial del IDE de arduino, usando los comandos AT y no he podido lograr la comunicación.
En internet sale como configurarlo usando un arduino UNO, MEGA, NANO, pero no con un ESP32, para los casos anteriores, se usa una reducción de voltaje, pero para mi caso, como los niveles lógicos del ESP32 son de 3,3 v, estoy haciendo la conexión directa RX-RX y TX-TX , y nada, también probe RX-TX y TX-RX y tampoco, El modulo BLE lo probe alimentarlo con 3,3v y con 5v.
Por otro lado, en el ESP32 tengo un sketch en blanco, ya que en los ejemplos con arduino lo hacen así para lograr la comunicación serial y poder usar el monitor serial del IDE para teclear los comando AT y configurar el BLE AT-09, también en el monitor seria seleccionan la opción AMBOS NL & CR.
Alguien que tenga experiencia con estos módulos bluetooth tendrá alguna sugerencia sobre que estoy haciendo mal?.
Buenas, @b707 y @Surbyte disculpen el doble post, lo que paso fue que el primer post que hice no lo hice en el forum en español. y pensé que ese lo había borrado y por eso realice el otro, estaré mas pendiente de eso.
En relación a lo que me comentaste Surbyte, ya hice la conexión RX ESP32 con TX BT LTE y TX ESP32 con RX BT LTE y no me funciona igual.
Adjunto esta una imagen, donde estoy probando por el COM6 con un arduino mega y si me responde el comando AT, y en el COM12 tengo conectado el esp32 y nada que me responde.
Buenas @Surbyte , gracias por la información, hice algunas pruebas con los códigos que salen allí pero igual no pude lograr la comunicación, buscando y buscando, conseguí en un canal de youtube (Bitwise Ar) un ejemplo que realizo con un modulo HC-05, y probando con mi placa esp32 conseguí la solución:
Primero, mi error principal es que copie un sketch en blanco en el ESP, como se debe hacer en el arduino, y así no me funcionaba, para que trabaje bien, se debe copiar este sketch que coloco a continuación en el esp32
#include <SoftwareSerial.h>
SoftwareSerial mySerial(17,16);
void setup() {
Serial.begin(9600);
Serial.println("listo");
mySerial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}
Segundo, la conexion ESP32 - AT-09 es la siguiente
Ha conectado incorrectamente las líneas serie de dos placas. En cualquier comunicación serie, la línea transmisora de un dispositivo está conectada a la línea receptora del otro y viceversa:
TX <-> RX
RX <-> TX
Además, en los pines 17 y 16 del esp32 hay un hardware Serial2, por lo que no es necesario utilizar la biblioteca SoftwareSerial.
Muchas gracias @b707 , bueno , se que conecte TX con TX y RX con RX, pero de esa forma me funciona, en el ejemplo que vi con el arduino, lo conectan de la misma forma, supuestamente en el arduino es porque la serigrafia de la placa esta invertida, que diga TX quiere decir que allí va el pin de TX del otro dispositivo, y que de verdad ese pin es RX, de todas formas hoy voy a hacer las pruebas con Serial2 y lo conecto como tu me estas indicando y comento mas tarde los resutados.
o mas bien, revisando, fue que yo defini los pines invertidos en SoftwareSerial, voy a modificar eso y a conectar como debe ser, TX con RX y RX con TX, muchas gracias @b707
Exactamente si redefines usando SoftwareSerial que crees que ocurrirá?
Que conviertes un TX en un RX y viceverza, pero el ESP32 tiene 3 puertos Serie Hardware.
1 usado para comunicarse (Monitor Serie y subir los sketch) y otros dos disponibles.
Lo mismo pasa con el MEGA por citar un Arduino que tiene 4 seriales y la gente usa softwareSerial, completa burrada por si me entiendes el modismo.
Nadie nacio sabiendo pero es tan simple como preguntar a tu navegador: ESP32 serial ports y lo pongo en inglés porque es mas amplia la respuesta pero usa español si quieres.