MQTT in Arduino

Aus hyperdramatik
Zur Navigation springen Zur Suche springen

see also MQTT Brokers and https://www.kobakant.at/DIY/?p=9140

Shiftr has libraries for various platforms including Arduino and Processing that make it very easy to code MQTT Clients.

https://www.shiftr.io/


SHIFTR ONLINE

To code an Arduino Client we use Shiftr's MQTT library for Arduino. There are other MQTT libraries for Arduino that would also work.

Install

the Shiftr.io Arduino MQTT library:

Sketch --> Include Library --> Manage Libraries --> search: "MQTT"

scroll down until you see "MQTT by Joel Gaehwiller"

Open Example

File --> Examples --> MQTT --> "ESP32DevelopmentBoard"

In the example code, enter your Wifi connection information:

const char ssid[] = "yourNetworkName";

const char pass[] = "yourNetworkPassword";

The client.connect function takes the following information:

client.connect("client ID", "name of your instance", "token secret")

It connects you to the online Shiftr Broker's public namespace called "try":

void connect() {

while (!client.connect("arduino", "try", "try")) { ..... }

}

The client.begin function takes the Broker's URL or IP:

void setup() {

client.begin("broker.shiftr.io", net);  //client.begin("URL or IP", net);

.... }

SHIFTR Desktop App

Download the Shiftr MQTT library (see above).

Open the Shiftr MQTT example (see above).

The following items in the code need to be changed:

Leave the "name of your instance" and the "token secret" blank!

void connect() {

//client.connect("client ID", "name of your instance", "token secret")

while (!client.connect("arduino", "", "")) { ..... }

}


Insert your IP address instead of the Shiftr URL:

void setup() {

client.begin("192.168.0.9", net);  //client.begin("URL or IP", net);

.... }


if you need to use a different port number other than the default 1883 (for example 2883), you can specify it like this:

client.begin("192.168.0.10", 2883, net);  ////client.begin("URL or IP", port, net);


more info: https://github.com/256dpi/arduino-mqtt#api