Hola, soy Pablo de Nuevo Mexico, me estoy metiendo mucho con la programacion en microcontroladores, especialmente me estoy enfocando a servidores bajo nodemcu.
Ya he trabajado anteriormente con Arduino, perp jamas con bluetooth y acabo de adquirir un modulo HC05. Una duda, no logro echarlo a andar -no enciende nada de nada- . Adjunto mi codigo de ejemplo por si alguien me puede echar una mano:
#include <SoftwareSerial.h>
SoftwareSerial BTserial(3, 1); // RX | TX
char Bluetooth_Name = ' ';
void setup()
{
// Arduino IDE serial monitor
Serial.begin(115200);
// HC-05 default serial speed for AT mode is 38400
BTserial.begin(38400);
// Wait for hardware to initialize
delay(1000);
// Print debug string
}
void loop()
{
// Keep reading from HC-05 and send to Arduino Serial Monitor
if (BTserial.available())
{
reading = BTserial.read();
Serial.println(reading);
}
// Keep reading from Arduino Serial Monitor and send to HC-05
if (Serial.available())
{
reading = Serial.read();
BTserial.write(reading);
}
}
Mis conexiones son: RX a TX y TX a RX -o sea, invertidos- , el vcc del hc05 a los 3v del nodemcu y el gnd del hc al g de nodemcu.
No aparece ningun dispositivo al escanear, el led del hc05 no enciende y no hay señas de vida del módulo mas que una luz roja tenue que se apaga a los pocos milisegundos de darle energia al nodemcu.
No comprendes!! Un ESP32 es mejor que un ESP8266, tiene BT LTE o sea mejor que el BT 2.0 del HC05 y ademas es mas barato que la suma de un nodemcu y un HC05 pero haz como gustes.
Si tienes un HC05 con seleccion de tensión 5 o 3.3V elige la de 3.3V pero no lo alimentes con el nodemcu.
Deberás proveer de alimentación externa.
Si trabajas en 3.3V no tienes problema pero si el HC05 trabaja a 5V tienes que usar al menos un divisor de tensión o adaptador de niveles, basta con un par de resistencias 2k (entre GND y pin RX del nodemcu) y 1k (entre pin RX del nodemcu y pin Tx del HC05).
El pin Rx del HC05 puede recibir directamente del TX del nodemcu.
Si usas los pines RX y TX del nodemcu que se usan para mostrar el monitor serie tendras probleams.
Gracias @Surbyte , considere el esp que mencionas por comodidad -y costo como bien dices- , pero las especificaciones del proyecto no permiten esa placa:
"This project is made for the ESP8266 and cannot run on an ESP32.".
Ya me perdi un poco, segun el diagrama de los pines, ¿puedo alimentarlo con un cable usb metiendo positivo en VCC y negativo en gnd?, ¿o es forzoso meterle una resistencia como menciona Surbyte?.
Al final pienso alimentar el proyecto con un powerbank, asi que podria enviar la salida al nodemcu y al hc05 directo, o es lo que se me esta ocurriendo.
Pues bien, gracias a ustedes logre hacer andar el modulo con el nodemcu y logre enviar datos. Meti una salida directa de un puerto usb a vcc y funciono de maravilla. No me explico como en la red hay posts de personas que arman proyectos y dicen no utilizar mas que el hc05 y el nodemcu, es todo un misterio para mi. El codigo que utilice fue:
Si desde una terminal bluethoot envio X u O, hace su funcion. Peeeeeero, al querer enviar una cadena no me la respeta, por ejemplo:
if (data_received == "cadena")
Lei en un foro -el cual no recuerdo- sobre una funcion que toma los datos entrantes, los almacena en un buffer y los imprime, su uso era agregar simbolos - donde iniciaba la cadena un < y un > donde terminaba- . Al final desde la terminal bluethoot habia que enviar por ejemplo, y el programa en el nodemcu sabria a partir de donde tomar los datos, y al cerrar la cadena o leer el simbolo >, tomaria esa string y liberaria el buffer. ¿Alguien sabe como se hace todo eso?. Gracias nuevamente.
Que proyecto no se puede adaptar?
Todo proyecto puede adaptarse.
Me la paso adaptando proyectos que eran para NANO, UNO, MEGA o ESP8266 usando HC05 o HC06 y los hago en ESP32 justamente por lo que te dije.
Ademas hace poco adapté uno que usaba un NANO con dos HC06 a un ESP32 usando BT 5.0 LE justamente porque permite manejar varios dispositivos BT que en este caso eran dos tablets.
Para la pròxima considéralo ahora ya tienes tu enfoque. Continúa.
Me parece que dar la información "a cucharaditas" no es la mejor idea.
Empezaste con un simple repetidor entre Serial y bluetooth y terminas con un proyecto, del cual no sabemos nada, cuyo autor (autor de qué?) dice que no es compatible con ESP32.
Ahora, supongamos que el bluetooth integrado del ESP32 no fuese compatible con algo, se agrega un HC-05 y fin de la incompatiblidad.
Pero lo más gracioso es que, de lo que has mostrado hasta ahora, solo cambiar la única librería que usas elimina cualquier incompatibilidad.
Obviamente, si vas a subir a un ESP32 un archivo hex compilado para un 8266, no va a ser compatible. Pero ese no es tu caso, ¿o si?
Te recomiendo que des toda la información relevante así ni tu ni nosotros seguimos perdiendo tiempo.
En realidad no quiero venir a arreglar el proyecto que ya tengo, sino solo estoy comentando el porque uso el nodemcu y no el esp32.
Lo que me interesa solamente es como echar a andar el hc en el nodemcu -pense que alguna configuración estaba mal pero gracias a ustedes vi que era por el voltaje-, y me interesa el como poder intercambiar una cadena via bluethoot (o como hacer que el nodemcu me agarre la cadena).
Mi modificación que le hice un proyecto ya existente -el cual el autor asegura que tengo que usar un nodemcu- ya esta hecha, solo quiero agregar una funcion con la cual poderme comunicar via bluetooth con lo que ya tengo.
Tengo otro proyecto en el cual si usare un esp32, pero igual quiero aprender a leer datos entrantes desde el bluethoot. Saludos.