Files
2023-Webservices_And_Applic…/docs/mqtt_application.md
2023-12-10 15:58:02 +01:00

2.9 KiB

MQTT Application

Table of Contents

Initialisation

The MQTT application should be initialised in the main function:

mqtt_application_init();

In case a check for success is wanted, the function will return a '1' on failure and a '0' on success.

Changing Settings

Server Settings

Depending on how the MQTT broker is set up on the pc some settings might need to be changed in the mqtt_application.c file. Make sure you change the corresponding defines to how you have set everything up:

#define SERVER_IP4_A 192
#define SERVER_IP4_B 168
#define SERVER_IP4_C 69
#define SERVER_IP4_D 11
#define SERVER_PORT 1883

Publish Settings

In case you want to change the QOS and retain attributes of the pulbish done by the application, change the corresponding defines:

#define PUBLISH_QOS 2
#define PUBLISH_RETAIN 1

Text and image position

If you want to display the text and images on a different location you can change the following defines(the starting point is the same for both text and images):

#define PRINT_XPOS 50
#define PRINT_YPOS 50

Getting started

In order to use this application you are going to need an MQTT broker: use this version: mosquitto 1.16.1a: https://mosquitto.org/files/binary/win64/mosquitto-1.6.12a-install-windows-x64.exe

A publisher/subscriber is also required to have: recommended are: https://mqttx.app/ or https://github.com/eclipse/paho.mqtt-spy/wiki/Downloads

Setting up

Before testing the application make sure to run the mosquitto broker before starting and connecting the microcontroller.

Topics

The used topics are:

  • getImageList Upon start up a list of available images will get published here.
  • getGifList Upon start up a list of available gifs will get published here.
  • input/setText Text published here will be displayed on the LCD.
  • input/setImage Publish the correct name + extention for the image/gif you want to display here.
  • input/setColor Publish the color you want the backgroundcolor to be here. This will take effect after changing the text or image/gif.
  • input/setTextColor Publish the color you want the text to be here.

Colors

Colors should be published using the same format as listed below. Available colors are: "LCD_BLUE, LCD_GREEN, LCD_RED, LCD_CYAN, LCD_MAGENTA, LCD_YELLOW, LCD_LIGHTBLUE, LCD_LIGHTGREEN, LCD_LIGHTRED, LCD_LIGHTCYAN, LCD_LIGHTMAGENTA, LCD_LUGHTYELLOW, LCD_DARKBLUE, LCD_DARKGREEN, LCD_DARKRED, LCD_DARKCYAN, LCD_DARKMAGENTA, LCD_DARKYELLOW, LCD_WHITE, LCD_LIGHTGRAY, LCD_GRAY, LCD_DARKGRAY, LCD_BLACK, LCD_BROWN, LCD_ORANGE, LCD_TRANSPARENT"