I am trying to send DHT11 data to Kaa IoT platform using Arduino Uno Wifi Rev2. The version of ArduinoMqttClient that I am using seems to not recognize the <mqttclient.publish/> method. Which version of ArduinoMqttClient library should I use.
#include <ArduinoMqttClient.h>
#include "kaa.h"
#include <WiFiNINA.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
#include <DHT.h>
#include <ArduinoMqttClient.h>
#define WIFI_SSID "Chaz"
#define WIFI_PASSWORD "11111111"
#define KAA_APPLICATION_TOKEN "cgkplvmgthheg922mn5g-v1"
#define KAA_SERVER_HOSTNAME "mqtt.cloud.kaaiot.com"
#define KAA_SERVER_PORT 1883
#define KAA_DEVICE_ID "9f6b3126-f9cc-4de8-a749-0545c142e944"
#define KAA_DEVICE_ACCESS_TOKEN "Arduino1"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
WiFiClient wifiClient;
MqttClient mqttClient(wifiClient);
PubSubClient pubSubClient(KAA_SERVER_HOSTNAME, KAA_SERVER_PORT, wifiClient);
void callback(char* topic, byte* payload, unsigned int length);
void setup() {
Serial.begin(115200);
delay(1000);
Serial.print("Connecting to Wi-Fi...");
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.println(" connected");
Serial.print("Connecting to Kaa...");
pubSubClient.setCallback(callback);
while (!pubSubClient.connected()) {
if (pubSubClient.connect(KAA_DEVICE_ID, KAA_DEVICE_ACCESS_TOKEN, "")) {
Serial.println(" connected");
} else {
Serial.print(" failed, rc=");
Serial.print(pubSubClient.state());
Serial.println(" retrying in 5 seconds");
delay(5000);
}
}
}
void loop() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor");
return;
}
StaticJsonDocument<128> doc;
doc["temperature"] = temperature;
doc["humidity"] = humidity;
char payload[128];
serializeJson(doc, payload);
if (mqttClient.connected()) {
mqttClient.publish("kp1", payload);
Serial.print("Published: ");
Serial.println(payload);
} else {
Serial.println("MQTT client not connected");
}
delay(5000);
}
void callback(char *topic, byte *payload, unsigned int length) {
Serial.print("Received message on topic: ");
Serial.println(topic);
char message[length + 1];
for (int i = 0; i < length; i++) {
message[i] = (char)payload[i];
}
message[length] = '\0';
Serial.print("Payload: ");
Serial.println(message);
}
This is my code and below is the error
C:\Users\Charles\Documents\Arduino\Kaa\Kaa.ino: In function 'void loop()':
C:\Users\Charles\Documents\Arduino\Kaa\Kaa.ino:74:16: error: 'class MqttClient' has no member named 'publish'
mqttClient.publish("kp1", payload);
^~~~~~~
exit status 1
Compilation error: 'class MqttClient' has no member named 'publish'