Closed jesawyers closed 4 years ago
Going to use Arduino Forums
Hi! Nowadays , I work with ESP32 and ArduinoMqttClient 0.1.8 by Arduino library and WiFi.h library that comes with ESP32 core for Arduino. If you just want to create a publisher from ESP32 this code works for me:
// File main.ino
#include <WiFi.h>
#include <ArduinoMqttClient.h>
// WIFI
WiFiClient wifiClient;
const char *ssid = "WIFI_SSID"; // WiFi ssid
const char *password = "WIFI_PASSWORD"; // WiFi password
// MQTT
MqttClient mqttClient(wifiClient);
const char mqtt_username[] = "MQTT_USERNAME";
const char mqtt_password[] = "MQTT_PASSWORD";
char mqtt_client_id[] = "MQTT_CLIENT_ID";
const char mqtt_broker_url[] = "MQTT_BROKER_URL";
int mqtt_broker_port = "MQTT_BROKER_PORT";
void setupWifi()
{
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.println("Connecting to WiFi ...");
}
Serial.println("WiFi connected");
Serial.println("IP address set: ");
Serial.println(WiFi.localIP());
Serial.println("[wifi] is ok");
}
void setupMqtt()
{
mqttClient.setId(mqtt_client_id);
mqttClient.setUsernamePassword(mqtt_username, mqtt_password);
while (!mqttClient.connect(mqtt_broker_url, mqtt_broker_port))
{
delay(1000);
Serial.print("[mqtt] connection failed! Error code = ");
Serial.println(mqttClient.connectError());
}
Serial.println("[mqtt] is ok");
}
void setup()
{
setupWifi();
setupMqtt();
}
void loop()
{
// To avoid being disconnected by the broker and keep the
// connection alive
mqttClient.poll();
mqttClient.beginMessage("topic");
mqttClient.print("your_msg");
mqttClient.endMessage();
delay(2000);
}
First Comment…It works great to Publish Topics.
I fought PubSubClient for a week and could not get it to work.
I used ArduinoMQTT for 10 minutes and it worked perfect to Publish Topics.
First my setup…
Sparkfun Redboard (I live in Colorado so shipping is cheap) Sparkfun ESP8266 WiFi shield.
No problem connecting to my WiFi and Publishing a topic. I use MQTT Explorer to Subscribe to the Topic I'm publishing (myHome/heartbeat) and there are no issues.
When I publish a topic from MQTT Explorer (myHome/FrontDoor/open) and subscribe from the Redboard, the onMessage routine is not triggered when I publish the topic from MQTT Explorer.
Here is my current code...