Skip to content
/ LoboMQ Public

LoboMQ is a lightweight protocol based on MQTT that runs over ESP-NOW on ESP32 boards.

Notifications You must be signed in to change notification settings

rubnium/LoboMQ

Repository files navigation

LoboMQ - TFG

Este proyecto es el resultado del desarrollo del Trabajo de Fin de Grado para el Grado de Ingeniería Informática de la Universidad de Castilla-La Mancha en Talavera de la Reina. Realizado en julio de 2024 por Rubén Gomez Villegas, con la supervisión de los tutores Rubén Cantarero Navarro y Ana Rubio Ruiz, el proyecto se centra en el desarrollo de un protocolo de mensajería ligera para placas ESP32 basado en MQTT y utilizando ESP-NOW, culminando en una librería publicada en el registro de PlatformIO.

Recursos de interés:

A continuación se detalla brevemente la herramienta.


LoboMQ

PlatformIO Registry

LoboMQ is a lightweight protocol based on MQTT that runs over ESP-NOW on ESP32 boards, without the need for an Internet connection! It allows the creation of topic-based message queues where messages are posted to a broker and subscribers receive them.

Note: LoboMQ stands for "LoboMQ offers (the) best of Message Queues"

This library provides the necessary functions to create nodes that are:

  • Broker, an intermediary which process the received messages and redirect the publications to the appropriate subscribers.
  • Clients, allowing to create publish, subscribe and unsubscribe messages, and also offering the ease to identify the type of message and extract the content.

You should see the examples to get a better idea of how to use it.

Features

  • Communication through ESP-NOW, inheriting its benefits, such as distance and the absence of Wi-Fi and Bluetooth networks.
  • Light message queues.
  • Ease of use.
  • Non-blocking communication, subscriber clients do not wait for messages, they only process them when they are received.
  • Support for wildcard characters in topics.
  • Broker security through a whitelist of MAC addresses with authorized access.
  • Detailed log messages.
  • Log filtering according to log level and log storage on SD card.
  • Ability to persist topics and subscribers of the broker on SD card.

Message types and formats

There are 3 types of messages exchanged depending on the action performed: SubscribeAnnouncement, UnsubscribeAnnouncement and PublishContent.

  • type: the type of message.
  • topic: the topic, limited to 24 characters.
  • contentSize: the size of the content.
  • content: the content, limited to 120 bytes.

These messages are created and transmitted automatically with the publish, subscribe and unsubscribe functions.

Why "Lobo"?

A lobo or wolf is an animal known for its ability to communicate effectively with its pack, such as this protocol, that can convey messages quickly to multiple "canine" companions located at far distances.