<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Episode 10: Migrating to HiveMQ broker]]></title><description><![CDATA[<p dir="auto"><strong>NOTE</strong>: The following tutorial applies to IoT (MQTT) connection mode only.</p>
<p dir="auto">By default, GUI-O application uses a MQTT test broker that is running on our own server. The broker listens on ports 1883 (unencrypted), 8883 (encrypted with client certificates) and 8884 (encrypted). This is perfect for testing and some smaller use cases, but some IoT scenarios require using a broker platform that gives you finer control over additional settings (e.g., managing credentials for different clients).</p>
<p dir="auto">There are numerous platforms that offer managed cloud MQTT broker, such as HiveMQ, EMQX, CloudMQTT, etc. This episode focuses on migrating from GUI-O broker to HiveMQ broker using ESP32 board.</p>
<p dir="auto"><strong>Software prerequisites:</strong></p>
<ul>
<li>
<p dir="auto">Arduino IDE (<a href="https://www.arduino.cc/en/software" rel="nofollow ugc">https://www.arduino.cc/en/software</a>)</p>
</li>
<li>
<p dir="auto">ESP32 Arduino board support (see <a href="https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html" rel="nofollow ugc">https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html</a>)</p>
</li>
<li>
<p dir="auto">Arduino Client for MQTT(<a href="https://github.com/knolleary/pubsubclient" rel="nofollow ugc">https://github.com/knolleary/pubsubclient</a>)<br />
You can follow the setup instructions or directly download and include the <strong><a href="https://drive.google.com/uc?export=download&amp;id=1yRJCDFR2xQDodyIA_lqKfcYdU6pAFy1C" rel="nofollow ugc">PubSubClient.zip</a></strong> library within the Arduino IDE (Sketch -&gt; Include Library -&gt; Add .ZIP library)</p>
</li>
<li>
<p dir="auto">GUI-O application (<a href="https://play.google.com/store/apps/details?id=com.guio.guioapp" rel="nofollow ugc">https://play.google.com/store/apps/details?id=com.guio.guioapp</a>)</p>
</li>
</ul>
<p dir="auto"><strong>Components needed:</strong></p>
<ul>
<li>ESP32-WROOM-32 (or any other Arduino supported WiFi capable board; see <a href="https://github.com/knolleary/pubsubclient#compatible-hardware" rel="nofollow ugc">https://github.com/knolleary/pubsubclient#compatible-hardware</a> for compatible hardware)</li>
</ul>
<p dir="auto"><strong>The entire tutorial is split into various steps. All necessary information is given in each step</strong>.</p>
<h3>1. SETUP HIVEMQ</h3>
<ol>
<li>
<p dir="auto">Navigate to <a href="https://www.hivemq.com/downloads/" rel="nofollow ugc">https://www.hivemq.com/downloads/</a> and signup to (free) HiveMQ cloud plan</p>
</li>
<li>
<p dir="auto">Login to HiveMQ cloud console and navigate to "Clusters"</p>
</li>
<li>
<p dir="auto">Create a new cluster selecting any cloud service provider</p>
</li>
<li>
<p dir="auto">Select "MANAGE CLUSTER" (NOTE: The "Cluster URL" is required later)</p>
</li>
<li>
<p dir="auto">Select "ACCESS MANAGEMENT" tab and add new credentials (at least one)</p>
</li>
</ol>
<p dir="auto">All steps are shown in the video below.</p>
<p dir="auto"></p><div class="video-embed"><iframe allowfullscreen src="//www.youtube.com/embed/lF21bb3GcSg"></iframe></div><p></p>
<h3>2. SETUP GUI-O FOR HIVEMQ</h3>
<ol>
<li>
<p dir="auto">Open GUI-O application, open settings and navigate to "Connections -&gt; IoT -&gt; IoT Settings"</p>
</li>
<li>
<p dir="auto">Set the "Server name" using the HiveMQ "Cluster URL" (see 1. SETUP HIVEMQ).</p>
</li>
<li>
<p dir="auto">Set the "SSL port number" to 8883</p>
</li>
<li>
<p dir="auto">Set the "User name" and "User password" based on the HiveMQ credentials (see 1. SETUP HIVEMQ)</p>
</li>
<li>
<p dir="auto">Navigate to "Connections -&gt; IoT" and press "Connect" to test the connection</p>
</li>
</ol>
<p dir="auto">All steps are shown in the video below.</p>
<p dir="auto"></p><div class="video-embed"><iframe allowfullscreen src="//www.youtube.com/embed/gy7jAbex3FQ"></iframe></div><p></p>
<h3>3. SETUP ESP32 FOR HIVEMQ</h3>
<ol>
<li>
<p dir="auto">Download <a href="https://drive.google.com/uc?export=download&amp;id=13eGCiI8tlx_EMHODwBjUvnQ5MxINc5Iv" rel="nofollow ugc">BasicMQTT_HiveMQ.ino</a> sketch and open it in Arduino IDE</p>
</li>
<li>
<p dir="auto">Get the certificate of your HiveMQ broker (see video below)</p>
<ul>
<li>On Linux, open the terminal and enter command:</li>
</ul>
<blockquote>
<p dir="auto">openssl s_client -connect &lt;hivemq_url&gt;:8883 -showcerts</p>
</blockquote>
<p dir="auto">replacing the &lt;hivemq_url&gt; with the "Cluster URL" (see 1. SETUP HIVEMQ)</p>
<ul>
<li>
<p dir="auto">You can alternatively use an online Linux terminal (e.g., <a href="https://www.tutorialspoint.com/linux_terminal_online.php" rel="nofollow ugc">https://www.tutorialspoint.com/linux_terminal_online.php</a>) to execute the same command</p>
</li>
<li>
<p dir="auto">After running the command, copy the last certificate displayed in the terminal and replace the one in the downloaded Arduino sketch (keep same certificate formatting)</p>
</li>
</ul>
<p dir="auto"></p><div class="video-embed"><iframe allowfullscreen src="//www.youtube.com/embed/XxxOeyom_6c"></iframe></div><p></p>
</li>
<li>
<p dir="auto">Use the downloaded Arduino sketch (i.e.,  <strong>BasicMQTT_HiveMQ.ino</strong>) while referring to the video below. Make sure that the <strong>server url</strong>, <strong>user name</strong> and <strong>password</strong> are set <strong>according to HIVEMQ setup</strong> (see  1. SETUP HIVEMQ)</p>
<p dir="auto"></p><div class="video-embed"><iframe allowfullscreen src="//www.youtube.com/embed/yuswQMyzg6A"></iframe></div><p></p>
</li>
</ol>
<hr />
<p dir="auto">If you have any questions or run into any problems, please let me know!</p>
<p dir="auto">Best regards,<br />
kl3m3n</p>
]]></description><link>https://forum.gui-o.com/topic/95/episode-10-migrating-to-hivemq-broker</link><generator>RSS for Node</generator><lastBuildDate>Sun, 17 May 2026 05:40:09 GMT</lastBuildDate><atom:link href="https://forum.gui-o.com/topic/95.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Dec 2022 17:41:15 GMT</pubDate><ttl>60</ttl></channel></rss>