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)
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
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
|
||||
|
||||
- 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)
|
||||
- Act as as a mqtt broker and/or a mqtt client
|
||||
- Mqtt 3.1.1 / Qos 0 supported
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#include <TinyMqtt.h> // https://github.com/hsaturn/TinyMqtt
|
||||
|
||||
/**
|
||||
* Local broker that accept connections and two local clients
|
||||
*
|
||||
*
|
||||
* +-----------------------------+
|
||||
* | ESP |
|
||||
@@ -9,9 +11,10 @@
|
||||
* | | +--------+ |
|
||||
* | | ^ |
|
||||
* | | | |
|
||||
* | v v |
|
||||
* | +----------+ +----------+ |
|
||||
* | | internal | | internal | |
|
||||
* | | | | -----
|
||||
* | v v | ---
|
||||
* | +----------+ +----------+ | -
|
||||
* | | internal | | internal | +-------* Wifi
|
||||
* | | client | | client | |
|
||||
* | +----------+ +----------+ |
|
||||
* | |
|
||||
|
||||
@@ -1,11 +1,29 @@
|
||||
#include <TinyMqtt.h> // https://github.com/hsaturn/TinyMqtt
|
||||
|
||||
/** TinyMQTT allows a disconnected mode:
|
||||
*
|
||||
* +-----------------------------+
|
||||
* | ESP |
|
||||
* | +--------+ |
|
||||
* | +-------->| 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";
|
||||
|
||||
@@ -5,6 +5,16 @@
|
||||
#define PORT 1883
|
||||
MqttBroker broker(PORT);
|
||||
|
||||
/** Basic Mqtt Broker
|
||||
*
|
||||
* +-----------------------------+
|
||||
* | ESP |
|
||||
* | +--------+ |
|
||||
* | | broker | | 1883 <--- External client/s
|
||||
* | +--------+ |
|
||||
* | |
|
||||
* +-----------------------------+
|
||||
*/
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
|
||||
@@ -1,8 +1,20 @@
|
||||
#include "TinyMqtt.h" // https://github.com/hsaturn/TinyMqtt
|
||||
|
||||
/** Simple Client
|
||||
/** Simple Client (The simplest configuration)
|
||||
*
|
||||
* This is the simplest Mqtt client configuration
|
||||
*
|
||||
* +--------+
|
||||
* +------>| broker |<--- < Other client
|
||||
* | +--------+
|
||||
* |
|
||||
* +-----------------+
|
||||
* | ESP | |
|
||||
* | +----------+ |
|
||||
* | | internal | |
|
||||
* | | client | |
|
||||
* | +----------+ |
|
||||
* | |
|
||||
* +-----------------+
|
||||
*
|
||||
* 1 - edit my_credentials.h to setup wifi essid/password
|
||||
* 2 - change BROKER values (or keep emqx.io test broker)
|
||||
|
||||
@@ -1,22 +1,25 @@
|
||||
#include <TinyMqtt.h> // https://github.com/hsaturn/TinyMqtt
|
||||
#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 <map>
|
||||
|
||||
/**
|
||||
/** Very complex example
|
||||
* Console allowing to make any kind of test.
|
||||
*
|
||||
* pros - Reduces internal latency (when publish is received by the same ESP)
|
||||
* - Reduces wifi traffic
|
||||
* - 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
|
||||
* Upload the sketch, the use the terminal.
|
||||
* Press H for mini help.
|
||||
*
|
||||
* tested with mqtt-spy-0.5.4
|
||||
* TODO examples of scripts
|
||||
*/
|
||||
|
||||
#include <my_credentials.h>
|
||||
@@ -720,7 +723,9 @@ void loop()
|
||||
}
|
||||
|
||||
static long count;
|
||||
#if defined(ESP9266)
|
||||
MDNS.update();
|
||||
#endif
|
||||
|
||||
if (MqttClient::counter != count)
|
||||
{
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "TinyMqtt",
|
||||
"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": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/hsaturn/TinyMqtt.git"
|
||||
},
|
||||
"version": "0.7.3",
|
||||
"version": "0.7.4",
|
||||
"exclude": "",
|
||||
"examples": "examples/*/*.ino",
|
||||
"frameworks": "arduino",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
name=TinyMqtt
|
||||
version=0.7.3
|
||||
version=0.7.4
|
||||
author=Francois BIOT, HSaturn, <hsaturn@gmail.com>
|
||||
maintainer=Francois BIOT, HSaturn, <hsaturn@gmail.com>
|
||||
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
|
||||
url=https://github.com/hsaturn/TinyMqtt
|
||||
architectures=*
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
#else
|
||||
#include <WiFi.h>
|
||||
#endif
|
||||
#else
|
||||
#error "Unsupported platform"
|
||||
#endif
|
||||
#ifdef EPOXY_DUINO
|
||||
#define dbg_ptr uint64_t
|
||||
|
||||
Reference in New Issue
Block a user