Compare commits
9 Commits
AsyncAndWi
...
0.7.4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
20292b7b7b | ||
|
|
26de3befa8 | ||
|
|
1098466055 | ||
|
|
2d3663e78c | ||
|
|
5e16282ad0 | ||
|
|
e35a43c4a4 | ||
|
|
087a203ba0 | ||
|
|
5d313bbf5e | ||
|
|
ce896f02c4 |
18
.github/workflows/ci.yml
vendored
Normal file
18
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
name: "CI"
|
||||||
|
on:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ci:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout this repository
|
||||||
|
uses: actions/checkout@v2.3.4
|
||||||
|
- name: Cache for arduino-ci
|
||||||
|
uses: actions/cache@v2.1.3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.arduino15
|
||||||
|
key: ${{ runner.os }}-arduino
|
||||||
|
- name: Install nix
|
||||||
|
uses: cachix/install-nix-action@v12
|
||||||
|
- run: nix-shell -I nixpkgs=channel:nixpkgs-unstable -p arduino-ci --run "arduino-ci"
|
||||||
@@ -4,15 +4,16 @@
|
|||||||
[](https://github.com/hsaturn/TinyMqtt/actions/workflows/aunit.yml)
|
[](https://github.com/hsaturn/TinyMqtt/actions/workflows/aunit.yml)
|
||||||

|

|
||||||

|

|
||||||
|

|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
ESP 8266 is a small, fast and capable Mqtt Broker and Client
|
TinyMqtt is a small, fast and capable Mqtt Broker and Client for Esp8266 / Esp32 / Esp WROOM
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Very (very !!) fast broker I saw it re-sent 1000 topics per second for two
|
- Very (very !!) fast broker I saw it re-sent 1000 topics per second for two
|
||||||
clients that had subscribed (payload ~15 bytes). No topic lost.
|
clients that had subscribed (payload ~15 bytes ESP8266). No topic lost.
|
||||||
The max I've seen was 2k msg/s (1 client 1 subscription)
|
The max I've seen was 2k msg/s (1 client 1 subscription)
|
||||||
- Act as as a mqtt broker and/or a mqtt client
|
- Act as as a mqtt broker and/or a mqtt client
|
||||||
- Mqtt 3.1.1 / Qos 0 supported
|
- Mqtt 3.1.1 / Qos 0 supported
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#include <TinyMqtt.h> // https://github.com/hsaturn/TinyMqtt
|
#include <TinyMqtt.h> // https://github.com/hsaturn/TinyMqtt
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Local broker that accept connections and two local clients
|
||||||
|
*
|
||||||
*
|
*
|
||||||
* +-----------------------------+
|
* +-----------------------------+
|
||||||
* | ESP |
|
* | ESP |
|
||||||
@@ -9,9 +11,10 @@
|
|||||||
* | | +--------+ |
|
* | | +--------+ |
|
||||||
* | | ^ |
|
* | | ^ |
|
||||||
* | | | |
|
* | | | |
|
||||||
* | v v |
|
* | | | | -----
|
||||||
* | +----------+ +----------+ |
|
* | v v | ---
|
||||||
* | | internal | | internal | |
|
* | +----------+ +----------+ | -
|
||||||
|
* | | internal | | internal | +-------* Wifi
|
||||||
* | | client | | client | |
|
* | | client | | client | |
|
||||||
* | +----------+ +----------+ |
|
* | +----------+ +----------+ |
|
||||||
* | |
|
* | |
|
||||||
|
|||||||
@@ -1,12 +1,30 @@
|
|||||||
#include <TinyMqtt.h> // https://github.com/hsaturn/TinyMqtt
|
#include <TinyMqtt.h> // https://github.com/hsaturn/TinyMqtt
|
||||||
|
|
||||||
/** TinyMQTT allows a disconnected mode:
|
/** TinyMQTT allows a disconnected mode:
|
||||||
*
|
*
|
||||||
* In this example, local clients A and B are talking together, no need to be connected.
|
* +-----------------------------+
|
||||||
* A single ESP can use this to be able to comunicate with itself with the power
|
* | ESP |
|
||||||
* of MQTT, and once connected still continue to work with others.
|
* | +--------+ |
|
||||||
*
|
* | +-------->| broker | |
|
||||||
*/
|
* | | +--------+ |
|
||||||
|
* | | ^ |
|
||||||
|
* | | | |
|
||||||
|
* | v v |
|
||||||
|
* | +----------+ +----------+ |
|
||||||
|
* | | internal | | internal | |
|
||||||
|
* | | client | | client | |
|
||||||
|
* | +----------+ +----------+ |
|
||||||
|
* | |
|
||||||
|
* +-----------------------------+
|
||||||
|
*
|
||||||
|
* In this example, local clients A and B are talking together, no need to be connected.
|
||||||
|
*
|
||||||
|
* A single ESP can use this to be able to comunicate with itself with the power
|
||||||
|
* of MQTT, and once connected still continue to work with others.
|
||||||
|
*
|
||||||
|
* The broker may still be conected if wifi is on.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
std::string topic="sensor/temperature";
|
std::string topic="sensor/temperature";
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,16 @@
|
|||||||
#define PORT 1883
|
#define PORT 1883
|
||||||
MqttBroker broker(PORT);
|
MqttBroker broker(PORT);
|
||||||
|
|
||||||
|
/** Basic Mqtt Broker
|
||||||
|
*
|
||||||
|
* +-----------------------------+
|
||||||
|
* | ESP |
|
||||||
|
* | +--------+ |
|
||||||
|
* | | broker | | 1883 <--- External client/s
|
||||||
|
* | +--------+ |
|
||||||
|
* | |
|
||||||
|
* +-----------------------------+
|
||||||
|
*/
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
|||||||
@@ -1,9 +1,21 @@
|
|||||||
#include "TinyMqtt.h" // https://github.com/hsaturn/TinyMqtt
|
#include "TinyMqtt.h" // https://github.com/hsaturn/TinyMqtt
|
||||||
|
|
||||||
/** Simple Client
|
/** Simple Client (The simplest configuration)
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* +--------+
|
||||||
|
* +------>| broker |<--- < Other client
|
||||||
|
* | +--------+
|
||||||
|
* |
|
||||||
|
* +-----------------+
|
||||||
|
* | ESP | |
|
||||||
|
* | +----------+ |
|
||||||
|
* | | internal | |
|
||||||
|
* | | client | |
|
||||||
|
* | +----------+ |
|
||||||
|
* | |
|
||||||
|
* +-----------------+
|
||||||
*
|
*
|
||||||
* This is the simplest Mqtt client configuration
|
|
||||||
*
|
|
||||||
* 1 - edit my_credentials.h to setup wifi essid/password
|
* 1 - edit my_credentials.h to setup wifi essid/password
|
||||||
* 2 - change BROKER values (or keep emqx.io test broker)
|
* 2 - change BROKER values (or keep emqx.io test broker)
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,22 +1,25 @@
|
|||||||
#include <TinyMqtt.h> // https://github.com/hsaturn/TinyMqtt
|
#include <TinyMqtt.h> // https://github.com/hsaturn/TinyMqtt
|
||||||
#include <MqttStreaming.h>
|
#include <MqttStreaming.h>
|
||||||
#include <ESP8266mDNS.h>
|
#if defined(ESP8266)
|
||||||
|
#include <ESP8266mDNS.h>
|
||||||
|
#elif defined(ESP32)
|
||||||
|
#include <ESPmDNS.h>
|
||||||
|
#else
|
||||||
|
#error Unsupported platform
|
||||||
|
#endif
|
||||||
|
#include <ESPmDNS.h>
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
/**
|
/** Very complex example
|
||||||
* Console allowing to make any kind of test.
|
* Console allowing to make any kind of test.
|
||||||
*
|
*
|
||||||
* pros - Reduces internal latency (when publish is received by the same ESP)
|
* Upload the sketch, the use the terminal.
|
||||||
* - Reduces wifi traffic
|
* Press H for mini help.
|
||||||
* - No need to have an external broker
|
|
||||||
* - can still report to a 'main' broker (TODO see documentation that have to be written)
|
|
||||||
* - accepts external clients
|
|
||||||
*
|
|
||||||
* cons - Takes more memory
|
|
||||||
* - a bit hard to understand
|
|
||||||
*
|
*
|
||||||
|
* tested with mqtt-spy-0.5.4
|
||||||
|
* TODO examples of scripts
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <my_credentials.h>
|
#include <my_credentials.h>
|
||||||
@@ -720,7 +723,9 @@ void loop()
|
|||||||
}
|
}
|
||||||
|
|
||||||
static long count;
|
static long count;
|
||||||
|
#if defined(ESP9266)
|
||||||
MDNS.update();
|
MDNS.update();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (MqttClient::counter != count)
|
if (MqttClient::counter != count)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "TinyMqtt",
|
"name": "TinyMqtt",
|
||||||
"keywords": "ethernet, mqtt, m2m, iot",
|
"keywords": "ethernet, mqtt, m2m, iot",
|
||||||
"description": "MQTT is a lightweight messaging protocol ideal for small devices. This library allows to send and receive MQTT messages. It does support MQTT 3.1.1 with QOS=0.",
|
"description": "MQTT is a lightweight messaging protocol ideal for small devices. This library allows to send and receive and host a broker for MQTT. It does support MQTT 3.1.1 with QOS=0 on ESP8266 and ESP32 WROOM platfrms.",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hsaturn/TinyMqtt.git"
|
"url": "https://github.com/hsaturn/TinyMqtt.git"
|
||||||
},
|
},
|
||||||
"version": "0.7.3",
|
"version": "0.7.4",
|
||||||
"exclude": "",
|
"exclude": "",
|
||||||
"examples": "examples/*/*.ino",
|
"examples": "examples/*/*.ino",
|
||||||
"frameworks": "arduino",
|
"frameworks": "arduino",
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
name=TinyMqtt
|
name=TinyMqtt
|
||||||
version=0.7.3
|
version=0.7.4
|
||||||
author=Francois BIOT, HSaturn, <hsaturn@gmail.com>
|
author=Francois BIOT, HSaturn, <hsaturn@gmail.com>
|
||||||
maintainer=Francois BIOT, HSaturn, <hsaturn@gmail.com>
|
maintainer=Francois BIOT, HSaturn, <hsaturn@gmail.com>
|
||||||
sentence=A tiny broker and client library for MQTT messaging.
|
sentence=A tiny broker and client library for MQTT messaging.
|
||||||
paragraph=MQTT is a lightweight messaging protocol ideal for small devices. This library allows to send and receive MQTT messages and to host a broker in your ESP. It does support MQTT 3.1.1 with QoS=0.
|
paragraph=MQTT is a lightweight messaging protocol ideal for small devices. This library allows to send and receive MQTT messages and to host a broker in your ESP 8266 and 32 WROOM. It does support MQTT 3.1.1 with QoS=0.
|
||||||
category=Communication
|
category=Communication
|
||||||
url=https://github.com/hsaturn/TinyMqtt
|
url=https://github.com/hsaturn/TinyMqtt
|
||||||
architectures=*
|
architectures=*
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#else
|
#else
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
#endif
|
#endif
|
||||||
#else
|
|
||||||
#error "Unsupported platform"
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef EPOXY_DUINO
|
#ifdef EPOXY_DUINO
|
||||||
#define dbg_ptr uint64_t
|
#define dbg_ptr uint64_t
|
||||||
|
|||||||
Reference in New Issue
Block a user