# MQTT Communication with Mosquitto Broker (Non Secure MQTT, Port 1883)

## L*ab Objective:*

&#x20;     In this lab, participants will explore the fundamentals of **MQTT (Message Queuing Telemetry Transport)** communication using the **Mosquitto public broker** at <https://test.mosquitto.org> on **port 1883**, with a **PSoC6 board**.

<figure><img src="/files/YsSGODRU6KEy3OE9sjIt" alt=""><figcaption></figcaption></figure>

The PSoC-6 board connects to the internet through a **Wi-Fi hotspot**, publishes a message such as **“TURN ON LED”**, and the PSoC-6 board will subscribes to receive the message and turns on its LED.

## 🔥 Requirements

<table><thead><tr><th width="429">Resources</th><th>Links</th></tr></thead><tbody><tr><td>Computer</td><td>💻</td></tr><tr><td>ModusToolbox™ software v3.0 or later</td><td><a href="https://www.infineon.com/modustoolbox">Link</a></td></tr><tr><td>CY8CKIT-062S2-43012 Infineon Board</td><td><a href="https://github.com/Advance-Innovation-Centre-AIC/BIIL_MTB-100_Hello_World_and_LED_Blinking_Programming_Template/assets/88732241/0215501d-b774-4045-8e64-ef49e28d8404">Link</a></td></tr><tr><td>Technical Report</td><td><a href="https://www.dropbox.com/scl/fi/amaxc94pte0ut2i1r5ewx/Technical-Report-Lab00.paper?rlkey=b3xm3vrerz9xgv1glb30cvy9z&#x26;dl=0">dropbox</a></td></tr></tbody></table>

## 🚩 Let start

### Create Application

<figure><img src="/files/EMUtqywL7b93r0afwbDI" alt=""><figcaption><p>Create Application</p></figcaption></figure>

### Coding

#### 1. Edit wifi\_config.h

* Use your mobile hotspot as an access point. Edit “wifi\_config.h” to match your mobile SSID setting:
  * \#define WIFI\_SSID “mobile\_ssid”&#x20;
  * \#define WIFI\_PASSWORD “password”

<figure><img src="/files/3r2uE8ToYmGqN4DHAfg3" alt=""><figcaption></figcaption></figure>

#### 2. Edit file mqtt\_client.h

Edit the following in “configs/mqtt\_client.h”:

* MQTT\_BROKER\_ADDRESS to “test.mosquitto.org”&#x20;
* Set the macros MQTT\_PORT to 1883
* MQTT\_SECURE\_CONNECTION to 1&#x20;
* MQTT\_USERNAME to “” MQTT\_PUB\_TOPIC to “unique\_topic”&#x20;
* MQTT\_SUB\_TOPIC to “unique\_topic”&#x20;
* MQTT\_SNI\_HOSTNAME to “test.mosquitto.org”

<figure><img src="/files/WDEqz3fsT7JxjmS5dqiX" alt=""><figcaption></figcaption></figure>

#### 3. Save the file

#### 4. Build and Launch the Application

### Open Putty, baud rate 115200

### Result&#x20;

* Press user button
* The GPIO interrupt service routine (ISR) notifies the publisher task.
* The publisher task publishes a message on a topic.
* The MQTT broker sends back the message to the MQTT client because it is also subscribed to the same topic.
* When the message is received, the subscriber task turns the LED ON or OFF. As a result, the user LED toggles every time the user presses the button.

<figure><img src="/files/TMakNue4cDqsJFaRA2E3" alt=""><figcaption></figcaption></figure>

> #### 🎉 <mark style="color:blue;">Congratulations! You can now complete this lab</mark>

## Supported toolchains (make variable 'TOOLCHAIN')

* GNU Arm® embedded compiler v10.3.1 (`GCC_ARM`) - Default value of `TOOLCHAIN`
* Arm® compiler v6.16 (`ARM`)
* IAR C/C++ compiler v9.30.1 (`IAR`)

## Supported kits (make variable 'TARGET')

* [PSoC™ 62S2 Wi-Fi Bluetooth® pioneer kit](https://www.infineon.com/CY8CKIT-062S2-43012) (`CY8CKIT-062S2-43012`)
* [PSoC™ 62S1 Wi-Fi Bluetooth® pioneer kit](https://www.infineon.com/CYW9P62S1-43438EVB-01) (`CYW9P62S1-43438EVB-01`)
* [PSoC™ 62S1 Wi-Fi Bluetooth® pioneer kit](https://www.infineon.com/CYW9P62S1-43012EVB-01) (`CYW9P62S1-43012EVB-01`)
* [PSoC™ 62S3 Wi-Fi Bluetooth® prototyping kit](https://www.infineon.com/CY8CPROTO-062S3-4343W) (`CY8CPROTO-062S3-4343W`)

## Related resources

| Resources                       | Links                                                                                                                                                      |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ModusToolbox™ Software Training | [link](https://www.dropbox.com/sh/waj898o4o8eccx0/AAB3hBBaIQo2OvJ5-fubGJIha/training-modustoolbox-level1-getting-started-master/Manual/Ch2-Tools.pdf?dl=0) |

## Other resources

Infineon provides a wealth of data at [www.infineon.com](http://www.infineon.com) to help you select the right device, and quickly and effectively integrate it into your design.

## Document history

<table><thead><tr><th width="149">Version</th><th>Description of change</th></tr></thead><tbody><tr><td>1.0.0</td><td>MQTT via Mosquitto broker</td></tr></tbody></table>

## Authors:

* *Assoc. Prof. Wiroon Sriborrirux*
* *Mr. Sriengchhun Chheang*
* *Mr. Sabol Socare*<br>

<br>

***

© BDH Corporation, 2022-2023


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aic-eec.com/iot-development-with-infineon-psoc-tm-6-and-bdh-platform/iot-connectivity/mqtt-communication-with-mosquitto-broker-non-secure-mqtt-port-1883.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
