52 lines
1.8 KiB
Markdown
52 lines
1.8 KiB
Markdown
# MQTT Client library for ESP8266 Arduino
|
|
|
|
This is MQTT client library for ESP8266, using mqtt_msg package from [MQTT client library for Contiki](https://github.com/esar/contiki-mqtt) and use for ESP8266 NON-OS SDK [esp_mqtt](https://github.com/tuanpmt/esp_mqtt)
|
|
|
|
Features:
|
|
|
|
- Support subscribing, publishing, authentication, will messages, keep alive pings and all 3 QoS levels (it should be a fully functional client).
|
|
|
|
## Requirements
|
|
- ESP8266WiFi
|
|
- WiFiClientSecure
|
|
|
|
## Status
|
|
- Support 3 type of qos (0, 1, 2) and outbox
|
|
- only mqtt over TCP
|
|
|
|
## MQTT URI Scheme
|
|
|
|
- `mqtt://[username][:password@]hostname[:port][#clientId]`
|
|
+ `mqtt` for MQTT over TCP
|
|
+ `ws` for MQTT over Websocket
|
|
- Example:
|
|
+ **Full** `mqtt://username:password@test.mosquitto.org:1883#my_client_id`
|
|
+ **Websocket** `ws://username:password@test.mosquitto.org:1883/mqtt#my_client_id`
|
|
+ **Minimal** `mqtt://test.mosquitto.org`, with `user`, `pass` = NULL, port = 1883, client id = "ESP_" + ESP.getChipId()
|
|
|
|
## API
|
|
### Setup
|
|
- bool begin(String uri);
|
|
- bool begin(String uri, int keepalive, bool clean_session);
|
|
- bool begin(String uri, LwtOptions lwt);
|
|
- bool begin(String uri, LwtOptions lwt, int keepalive, bool clean_session)
|
|
|
|
### Events
|
|
- void onConnect(THandlerFunction fn);
|
|
- void onDisconnect(THandlerFunction fn);
|
|
- void onSubscribe(THandlerFunction_PubSub fn);
|
|
- void onPublish(THandlerFunction_PubSub fn);
|
|
- void onData(THandlerFunction_Data fn);
|
|
|
|
### Pub/Sub
|
|
- int subscribe(String topic);
|
|
- int subscribe(String topic, uint8_t qos);
|
|
- int publish(String topic, String data);
|
|
- int publish(String topic, String data, int qos, int retain);
|
|
|
|
## License
|
|
|
|
Copyright (c) 2016 Tuan PM (https://twitter.com/tuanpmt)
|
|
ESP8266 port (c) 2016 Ivan Grokhotkov (ivan@esp8266.com)
|
|
|
|
License Apache License |