ESP8266 Support WIKI

User Tools

Site Tools


espduino

**This is an old revision of the document!**

Table of Contents


espduino

External Link

This is MQTT client for arduino connect to broker via ESP8266 AT command, port from https://github.com/esar/contiki-mqtt

You can find the Native MQTT client library for ESP8266 work well here: esp_mqtt

Features

  • Support subscribing, publishing, authentication, will messages, keep alive pings and all 3 QoS levels (it should be a fully functional client).
  • Easy to setup and use

Required

You will need V0.2 AT+ commands from Espressif, if you do not have you can download and flash the following: ESP8266 At Command 0.2: https://github.com/espressif/esp8266_at

You will also need the ESPDUINO library for Arduino that can be found here: https://github.com/tuanpmt/espduino

Warning

you have to change the SERIALBUFFERSIZE minimum is 64 bytes in

C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino\HardwareSerial.cpp

Status

WORKING

Usage

#include <espduino.h>
#include <SoftwareSerial.h>
 
SoftwareSerial debugPort(2, 3); // RX, TX
 
ESP esp(&Serial, &debugPort, 13);
 
 
void wifiCb(uint8_t status)
{
  debugPort.println("WIFI: Connected");
  esp.mqttConnect("mqtt.domain.io", 1880);
}
 
void mqttConnected(uint32_t* args)
{
  debugPort.println("MQTT:Connected");
  esp.subscribe("/topic");
}
 
void mqttDisconnected(uint32_t* args)
{
  debugPort.println("MQTT:Disconnected");
}
 
void mqttPublished(uint32_t* args)
{
  debugPort.println("MQTT:Published");
}
 
void mqttData(uint32_t* args)
{
  mqtt_event_data_t *event_data = (mqtt_event_data_t *)args;
  char topic[16];
  char data[32];
 
  memcpy(topic, event_data->topic, event_data->topic_length);
  memcpy(data, event_data->data, event_data->data_length);
  topic[event_data->topic_length] = 0;
  data[event_data->data_length] = 0;
  debugPort.print("Received, topic:");
  debugPort.print(topic);
  debugPort.print(", data:");
  debugPort.println(data);
}
 
const char clientId[] = "clientId";
const char user[] = "user";
const char pass[] = "pass";
 
 
void setup() {
  delay(200);
  Serial.begin(115200);
  debugPort.begin(9600);
 
  /* setup event */
  esp.wifiCb.attach(&wifiCb);
  esp.mqttConnected.attach(&mqttConnected);
  esp.mqttDisconnected.attach(&mqttDisconnected);
  esp.mqttPublished.attach(&mqttPublished);
  esp.mqttData.attach(&mqttData);
 
  /* Init data */
  esp.initMqttClient(clientId, user, pass, 30);
 
  /* wifi connect */
  esp.wifiConnect("DVES_HOME", "yourpassword");
}
 
void loop() {
  esp.process();
}
espduino.1420784724.txt.gz · Last modified: 2015/01/09 06:25 by admin