Difference between revisions of "Component: MQTT Client (Comms: IoT/Cloud)"
(3 intermediate revisions by the same user not shown) | |||
Line 15: | Line 15: | ||
A component providing access to MQTT IoT client. The client can connect to a MQTT server such as ThingSpeak. Allowing IoT type data to be published and read back. | A component providing access to MQTT IoT client. The client can connect to a MQTT server such as ThingSpeak. Allowing IoT type data to be published and read back. | ||
− | == | + | ==Version information== |
− | + | Library Version, Component Version, Date, Author, Info | |
− | + | 7, 1.1, 23-07-24, BR, Added Max Packet Size property to allow the size of a single packet to be altered by the user | |
− | + | 8, 1.1, 30-07-24, BR, Resolved ESP compile error due to missing return and added TopicTooLong error | |
==Detailed description== | ==Detailed description== | ||
Line 127: | Line 127: | ||
Click here for instructions on creating your own [[Raspberry_Pi_MQTT_Broker|Raspberry Pi MQTT Broker]]. | Click here for instructions on creating your own [[Raspberry_Pi_MQTT_Broker|Raspberry Pi MQTT Broker]]. | ||
+ | |||
+ | |||
+ | |||
+ | |||
Line 147: | Line 151: | ||
| colspan="2" | Connect to the MQTT Server. Returns the connected state. 0 if not connected, 1 if successful connection, or already connected. | | colspan="2" | Connect to the MQTT Server. Returns the connected state. 0 if not connected, 1 if successful connection, or already connected. | ||
|- | |- | ||
+ | |- | ||
+ | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | ===ConnectTo=== | ||
+ | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
+ | |- | ||
+ | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
+ | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ConnectTo''' | ||
+ | |- | ||
+ | | colspan="2" | Connect to a variable MQTT Server, overriding the Host and Port properties. Returns the connected state. 0 if not connected, 1 if successful connection, or already connected. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
+ | | width="90%" | Host | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" | Port | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
+ | | width="90%" | ClientID | ||
+ | |- | ||
+ | | colspan="2" | Client identifier name - must be unique on server | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | ||
Line 296: | Line 329: | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
Line 399: | Line 418: | ||
|- | |- | ||
| colspan="2" | Selects if the broker is open or if the broker requires a username and password. | | colspan="2" | Selects if the broker is open or if the broker requires a username and password. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | Max Packet Size | ||
+ | |- | ||
+ | | colspan="2" | Sets the number of bytes that can be sent and received in a single packet. A single packet consists of 4 header bytes, plus the topic and payload string data. | ||
|} | |} | ||
+ | |||
+ | ==Component Source Code== | ||
+ | |||
+ | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_MQTT_Client.fcfx FC_Comp_Source_MQTT_Client.fcfx] | ||
+ | |||
+ | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_MQTT_Client.fcfx FC_Comp_Source_MQTT_Client.fcfx] |
Latest revision as of 09:05, 30 July 2024
Author | Matrix TSL |
Version | 1.1 |
Category | Comms: IoT/Cloud |
Contents
MQTT Client component
A component providing access to MQTT IoT client. The client can connect to a MQTT server such as ThingSpeak. Allowing IoT type data to be published and read back.
Version information
Library Version, Component Version, Date, Author, Info 7, 1.1, 23-07-24, BR, Added Max Packet Size property to allow the size of a single packet to be altered by the user 8, 1.1, 30-07-24, BR, Resolved ESP compile error due to missing return and added TopicTooLong error
Detailed description
No detailed description exists yet for this component
Examples
The MQTT component requires connection to a Network Comms component via the "Network Component" property, to provide the bridge for simulated TCP/IP communication.
The Network Comms component can then be linked to an embedded TCP/IP component to provide embedded TCP/IP support.
Here is a typical setup for using MQTT on a Raspberry Pi.
Local Weather
A simple example demonstrating how to use MQTT with Flowcode SCADA to get the local weather conditions.
The example shows temperatures from Halifax in the UK and from Sydney in Australia.
Publish
Raspberry Pi
Here we have an embedded Raspberry Pi project connected to an I2C Sensor, the sensor is sampled and the data is published to a MQTT server.
ESP8266 Module
Here we have an embedded project using an ESP8266 wifi module, an analogue input is sampled and the data is published to a MQTT server.
Subscribe
ESP8266 Module
Here we subscribe to a topic and receive it back into Flowcode embedded using an ESP8266 module.
Flowcode App Developer
Here we subscribe to a topic and receive it back into Flowcode App Developer.
Making your own Raspberry Pi based MQTT Broker
Click here for instructions on creating your own Raspberry Pi MQTT Broker.
Macro reference
Connect
![]() |
Connect |
Connect to the MQTT Server. Returns the connected state. 0 if not connected, 1 if successful connection, or already connected. | |
![]() |
Return |
ConnectTo
Disconnect
![]() |
Disconnect |
Disconnects from the MQTT server and the network | |
![]() |
Return |
ErrorAsString
![]() |
ErrorAsString |
![]() |
Error |
![]() |
Return |
GetPayload
![]() |
GetPayload |
Get the Payload of the last received (Read) packet. Returns the number of bytes for the Payload | |
![]() |
Payload |
![]() |
Size |
Byte count the Payload buffer | |
![]() |
Return |
GetTopic
![]() |
GetTopic |
Get the Topic of the last received (Read) packet. Returns the number of bytes for the Topic | |
![]() |
Topic |
![]() |
Size |
Byte count the Topic buffer | |
![]() |
Return |
Initialise
![]() |
Initialise |
![]() |
Return |
LastError
![]() |
LastError |
Returns the last error | |
![]() |
Return |
Ping
![]() |
Ping |
Ping packet is sent to the Server and checks for a reply. Returns non-zero value if successful | |
![]() |
Return |
Publish
![]() |
Publish |
Publish data to the server (broker) Returns non-zero if successful | |
![]() |
Topic |
![]() |
Payload |
![]() |
Return |
Subscribe
![]() |
Subscribe |
Subscribe to a Topic. Must be Connected first Returns non-zero if successful | |
![]() |
Topic |
![]() |
Return |
Unsubscribe
![]() |
Unsubscribe |
Unsubscribe from a Topic. Must be Connected first Returns non-zero if successful | |
![]() |
Topic |
![]() |
Return |
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_MQTT_Client.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_MQTT_Client.fcfx