Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
ESP32 (ESP-WROOM-32) as an MQTT Client Subscribed to Linux Server Load Average Messages
Here we go....
Preface:
Quote:
Rant: After a "very interesting" experience back-and-forth with Blynk yesterday over their "pull money out of your pocket for every tiny widget" business model when I was publishing a quick public service app to help folks in China regarding the Wuhan coronavirus, in also combination with the Blynk "terms of service" which permits Blynk to share all of a user's network data, every message, all user mined behavioral analytical "raw material" and share that data with any and all third parties; I decided to build my own messaging network to test these ESP32.......
..... so in a galaxy far, far, far away from commercial, data sharing corporations.....
For this project, I used the ESP-WROOM-32 as an MQTT (publish / subscribe) client which receives Linux server "load averages" as messages published as MQTT pub/sub messages. Here is the Arduino IDE code I wrote for the MQTT client running on the ESP32:
Crontab entry on Linux:
Here is the crontab PHP file which publishes the server load average messages:
Here is the sample output in the Arduino IDE serial monitor:
So far, no joy in finding a good IOS app for the iPhone to display this data in a nice dashboard.
I did find an OK "MQTT Terminal App" for the iPhone and I did confirm I can subscribe to these messages with MQTT on the iPhone. Unfortunately, all the "pretty dashboard apps for MQTT" I tried in the app store has some problems and none worked well "out of the box". However, the simple MQTT terminal apps work fine (but are not "pretty")
The MQTT terminal app I tested, which managed to work, does not add line breaks at the end of a message, and when I tried to send line breaks over MQTT, the clients stopped receiving the messages, which is expected since these pub/sub client/servers are not really meant for formatted data. Maybe I'm missing something small?
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
Here is an IOS app which is a kind of "debugger" for MQTT messages; and works "OK, more or less" to prove things are working; but it is very far from a "pretty" dashboard app:
Still on the hunt for a "pretty" dashboard app. I could not get IOT-ON-OFF to work (will not receive any messages), even thought it did look promising!
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
Well, it's not really "pretty" yet (as a dashboard) but MQTTool for IOS works, "not bad"... and it's totally free.
I changed the PHP script around a bit to publish all the "Load Averages" (in one message) and all the "Wuhan Coronavirus Stats" (in one message) and subscribed to both of them. In the "Load Average" app, there is the one, five and fifteen minute server load averages (very handy if managing a server, obviously) and in the "Wuhan" app, there are the C (confirmed cases), the S (suspected cases), the D (deaths) and R (recovered cases). You can easily start to image the myriad way to use MQTT for you own private "things" network from this short tutorial, I think.
BTW, I am still searching for a good "dashboard" app for MQTT (for either IOS or macOS), but no joy yet.
When you think about it. MQTT is "the only way to go" if you are developing these kinds of private "IoT" app, every devices can be both a publisher and a subscribe, and if you run your own private MQTT server, you do not have to worry about a third parties mining your data.
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
Update:
After a lot of "messing around" with every combination of settings under the sun, I finally got the IOT-ON-OFF IOS Dashboard app working. Success. It's not a "pretty" as Blynk, but in many ways it is much better. For example we can easily switch between dashboards (see image below) and we don't have to pay for "widgets" foreach new app; and with a one time, very small purchase, we can get UNLIMITED widgets and dashboards. Here are some samples from my two previous mini-apps, (1) Wuhan Coronavirus Status and (2) Server Load Averages, all done with MQTT.
It's really quite remarkable if you think about it. I've built these two apps from scratch in two days, and that included wasting a lot of time evaluating and bumping heads with Blynk yesterday (and the headaches that caused).
Later I will summarize my notes on the "tricks" to get the IOT-ON-OFF app working so you don't have to waste your time fiddling around with all the settings. This iPhone dashboard app is not really "super polished" but it's not bad at all.
Location: Asia Pacific, Cyberspace, in the Dark Dystopia
Posts: 19,118
Thanks Given: 2,351
Thanked 3,359 Times in 1,878 Posts
By the way, I just purchased IoT-OnOff from the Apple app sure, the premium version with unlimited widgets for $2.99 USD. Compare that to Blynk who needed about $1.99 to add only one additional widget!
For everyone who wants a decent MQTT dashboard app with unlimited widgets for about $3 USD, here is the info (however, it is not user friendly to set up, LOL):
I have been wrangling with a small problem on a Ubuntu server which runs a LAMP application.
Linux ubuntu 4.15.0-33-generic #36-Ubuntu SMP Wed Aug 15 16:00:05 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
This server runs fine, basically:
ubuntu:/var/www# uptime
20:17:13 up 105 days,... (45 Replies)
Currently have two ESP8266 modules testing some Blynk apps, whereI'm not so happy with the Blynk business model for developers, but that's another story.
So, with two of my ESP8266s currently "busy", I decided to work on the ESP32, and in particular the ESPWROOM32.
I installed the... (0 Replies)
Hello I am running a liferay application in tomcat on one of my hosted linux machine having 4GB of ram and 1 CPU.
I get the tomcat response really slow and with much digging I found that the cpu might be loaded and can be tracked with top command.
The following is the output of top command:... (0 Replies)
Hello AlL,..
I want from experts to help me as my load average is increased and i dont know where is the problem !!
this is my top result :
root@a4s # top
top - 11:30:38 up 40 min, 1 user, load average: 3.06, 2.49, 4.66
Mem: 8168788k total, 2889596k used, 5279192k free, 47792k... (3 Replies)
Hi
anyone know how to setup a setup a virtual IP to control 2 server load for linux? i only have 2 server, i don want to buy another just for the load balance... is there a way to do it?
Sumemr (0 Replies)
Hello all, I have a question about load averages.
I've read the man pages for the uptime and w command for two or three different flavors of Unix (Red Hat, Tru64, Solaris). All of them agree that in the output of the 2 aforementioned commands, you are given the load average for the box, but... (3 Replies)
we have an unix system which has
load average normally about 20.
but while i am running a particular unix batch which performs heavy
operations on filesystem and database average load
reduces to 15.
how can we explain this situation?
while running that batch idle cpu time is about %60-65... (0 Replies)
Hi all
what are the ways by which we can know and generate a report of the space remaining, memory(ram) used and the load on the server over a period of time. (1 Reply)
Hello,
I'm facing a big problem with my hosting server (Dual Xeon 2.4GHz), I'm having a load in the CPU usage and the memory (maybe it's related) ALSO mySQL:
Server Load 5.34 (2 cpus) (to 22 sometime)
Memory Used 68.4 % (to 70% sometime)
When I go to 'CPU/Memory/MySQL Usage' I found:
... (3 Replies)