Acabo de poner diponible para cualquiera un servidor MQTT privado basado en Mosquitto para cada usuario/aplicación creada.
Funciona con los mismos usuarios de la API de datos.
Podéis ver los detalles en la página de documentación: Servidor MQTT v3.1 privado de ForoElectro.Net
Cualquier duda o problema podéis comentarlos aquí.
Servidor MQTT disponible
-
- Administrador del Sitio
- Mensajes: 507
- Registrado: 04 Jul 2016, 11:17
- Agradecido: 110 veces
- Agradecimiento recibido: 134 veces
Re: Servidor MQTT v3.1 disponible
Se ha mejorado la funcionalidad habilitando múltiples topics para cada usuario, de manera que se puedan controlar distintos elementos dentro del mismo.
Además, os dejo un ejemplo de programa, para Arduino y ESP8266:
Podéis actuar con él usando las herramientas del servidor mosquitto; en Linux es el paquete mosquitto-clients
Para susbribirse:
Ese "/+" del topic se añade para suscribirse a TODOS los subtopics.
Para enviar un mensaje:
Además, os dejo un ejemplo de programa, para Arduino y ESP8266:
Código: Seleccionar todo
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
// Update these:
const char* ApiKey = "ApiKey de https://www.foroelectro.net/arduino/es/mqtt-doc";
const char* email = "email corresponding to previous ApiKey";
const char* ssid = "SSID WIFI";
const char* password = "PASSWORD WIFI";
// Other variables
const char* mqtt_server = "foroelectro.net";
char topicOut[200];
char topicIn[200];
WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
char msg[50];
int value = 0;
void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
randomSeed(micros());
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
for (int i = 0; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Attempt to connect
if (client.connect("arduinoClient", ApiKey, email)) {
Serial.println("connected");
client.publish(topicOut, "hello world - connected");
client.subscribe(topicIn);
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
String stopicOut = ApiKey;
stopicOut.concat("/topicOut");
stopicOut.toCharArray(topicOut, 200);
String stopicIn = ApiKey;
stopicIn.concat("/topicIn");
stopicIn.toCharArray(topicIn, 200);
setup_wifi();
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
long now = millis();
if (now - lastMsg > 2000) {
lastMsg = now;
++value;
snprintf (msg, 50, "hello world %ld", value);
Serial.print("Publish message: ");
Serial.println(msg);
client.publish(topicOut, msg);
}
}
Para susbribirse:
Código: Seleccionar todo
mosquitto_sub -i ID_CLIENTE_DESEADA -h foroelectro.net -u API_KEY -P EMAIL -t API_KEY/+
Para enviar un mensaje:
Código: Seleccionar todo
mosquitto_pub -i ID_CLIENTE_DESEADA -h foroelectro.net -u API_KEY -P EMAIL -t API_KEY/SUBTOPIC -m "MENSAJE A ENVIAR"
-
- Administrador del Sitio
- Mensajes: 507
- Registrado: 04 Jul 2016, 11:17
- Agradecido: 110 veces
- Agradecimiento recibido: 134 veces
Re: Servidor MQTT disponible
He actualizado el servidor Mosquitto a la versión 3.6.9.
Esta versión soporta los protocolos MQTT 3.1, 3.1.1 y 5.0
Esta versión soporta los protocolos MQTT 3.1, 3.1.1 y 5.0
-
- Administrador del Sitio
- Mensajes: 507
- Registrado: 04 Jul 2016, 11:17
- Agradecido: 110 veces
- Agradecimiento recibido: 134 veces
Re: Servidor MQTT disponible
Acabo de añadir a la web de servicios dos extras para el servidor MQTT:
1) Un formulario para que, estando identificado, podamos enviar datos a nuestro espacio en el servidor MQTT
2) Una API para hacer lo mismo desde cualquier proyecto IoT, web, o lo que deseemos.
Podéis ver los detalles aquí: arduino/es/mqtt
1) Un formulario para que, estando identificado, podamos enviar datos a nuestro espacio en el servidor MQTT
2) Una API para hacer lo mismo desde cualquier proyecto IoT, web, o lo que deseemos.
Podéis ver los detalles aquí: arduino/es/mqtt
-
- Administrador del Sitio
- Mensajes: 507
- Registrado: 04 Jul 2016, 11:17
- Agradecido: 110 veces
- Agradecimiento recibido: 134 veces
Re: Servidor MQTT disponible
Acabo de añadir a esta misma página un sistema de presets, de manera que puedes tener botones que directamente envían el mensaje que hayas grabado previamente.Naguissa escribió: ↑23 Feb 2022, 15:48 Acabo de añadir a la web de servicios dos extras para el servidor MQTT:
1) Un formulario para que, estando identificado, podamos enviar datos a nuestro espacio en el servidor MQTT
2) Una API para hacer lo mismo desde cualquier proyecto IoT, web, o lo que deseemos.
Podéis ver los detalles aquí: arduino/es/mqtt
-
- Similar Topics
- Respuestas
- Vistas
- Último mensaje
-
- 1 Respuestas
- 23518 Vistas
-
Último mensaje por FelipeAguilar
-
- 0 Respuestas
- 10996 Vistas
-
Último mensaje por Naguissa
-
- 1 Respuestas
- 6293 Vistas
-
Último mensaje por Naguissa
-
- 1 Respuestas
- 9146 Vistas
-
Último mensaje por Naguissa