Hola a todos de nuevo!
Sigo trasteando de nuevo con los módulos ESP8266 pero llevo varios días parado con una cosa sencilla pero que no me deja avanzar.
Me he comprado una RPi4 para tenerla como servidor de los nodos que quiero integrar. Le he instalado todo lo que indica Grafisoft en sus tutoriales:
qos = 0
topics = [
"telegraf/+/mem",
"sensors/#",
"#",
]
persistent_session = true
client_id = "telegraf"
username = "jorge_iot"
password = "jorge_iot"
data_format = "influx"
outputs.influxdb:
[[outputs.influxdb]]
urls = ["http://localhost:8086"] # required
database = "sancris_sensors" # required
retention_policy = ""
write_consistency = "any"
timeout = "5s"
username = "telegraf"
password = "telegraf"
Yo diría que la configuración está bien realizada, porque además puedo subscribirme y publicar desde diferentes terminales y máquinas.
En la figura se ve como desde el ESP se escribe en el tópico sensors el valor 100 (cada 3 segundos). Y desde una terminal el mismo tópico pero con valor 200. Sin embargo, en la RPi solo leo el mensaje con valor 200.
Además, hay algo raro porque el ESP8266 está creando su propia red, cosa que antes nunca había visto al utilizar otros nodos idénticos, y he probado con 2 módulos y los 2 se comportan igual.
Sin embargo, el router me dice que el nodo si está conectado a la red, e incluso puedo hacer ping a la dirección que le asigna.
El código de Arduino que genera el mensaje que envía es el siguiente, que además es el que desarrollado por Grafisoft en API_MQTT.h
La verdad que no sé donde puede estar el fallo en la configuración, lo que más me llama la atención es que el ESP esté creando su propia red, no sé si el fallo puede estar por ahí, pero no logro encontrar el porqué.
Sigo trasteando de nuevo con los módulos ESP8266 pero llevo varios días parado con una cosa sencilla pero que no me deja avanzar.
Me he comprado una RPi4 para tenerla como servidor de los nodos que quiero integrar. Le he instalado todo lo que indica Grafisoft en sus tutoriales:
- Mosquitto + modificación fichero .conf y creación de passwd (user: jorge_iot, pwd: jorge_iot).
- Influx + creación usuario: $influx -execute "CREATE USER "telegraf" WITH PASSWORD 'telegraf' WITH ALL PRIVILEGES;"
- Telegraf + modificación fichero .conf
Inputs.mqtt:
qos = 0
topics = [
"telegraf/+/mem",
"sensors/#",
"#",
]
persistent_session = true
client_id = "telegraf"
username = "jorge_iot"
password = "jorge_iot"
data_format = "influx"
outputs.influxdb:
[[outputs.influxdb]]
urls = ["http://localhost:8086"] # required
database = "sancris_sensors" # required
retention_policy = ""
write_consistency = "any"
timeout = "5s"
username = "telegraf"
password = "telegraf"
Yo diría que la configuración está bien realizada, porque además puedo subscribirme y publicar desde diferentes terminales y máquinas.
En la figura se ve como desde el ESP se escribe en el tópico sensors el valor 100 (cada 3 segundos). Y desde una terminal el mismo tópico pero con valor 200. Sin embargo, en la RPi solo leo el mensaje con valor 200.
Además, hay algo raro porque el ESP8266 está creando su propia red, cosa que antes nunca había visto al utilizar otros nodos idénticos, y he probado con 2 módulos y los 2 se comportan igual.
Sin embargo, el router me dice que el nodo si está conectado a la red, e incluso puedo hacer ping a la dirección que le asigna.
El código de Arduino que genera el mensaje que envía es el siguiente, que además es el que desarrollado por Grafisoft en API_MQTT.h
Código:
void enviarDato(String Dato, String BName, String NName, String TipoDato) {
//String BName = "sensors";
//String NName = "consumo";
//String TipoDato = "Watts";
//Creamos el topic. Sera del estilo: "BName/NName/TipoDato"
TopicMQTT = BName + "/" + NName + "/" + TipoDato;
//Creamos el mensaje. Sera del estilo: "NName TipoDato=";
String payload; //Variable para contener la info de la trama que se envia.
int consumo = 100;
char valConsumo[8];
dtostrf(consumo, 3, 1, valConsumo);
payload = ""; //Limpiamos la variable.
payload += NName;
payload += " " + TipoDato + "=";
payload += Dato;
//Enviamos la trama via MQTT.
client.publish((char*) TopicMQTT.c_str(), (char*) payload.c_str());
Serial.print(TopicMQTT); Serial.println(payload);
delay(3000);
}
La verdad que no sé donde puede estar el fallo en la configuración, lo que más me llama la atención es que el ESP esté creando su propia red, no sé si el fallo puede estar por ahí, pero no logro encontrar el porqué.