Articles

MQTT

Encrypted Mosquitto broker in Kubernetes

Encrypted Mosquitto broker in Kubernetes thumbnail
Mosquitto can usually be installed on an Ubuntu server fairly easily using the APT package manager. By Default, the broker handles unencrypted MQTT connections but it can be configured to use SSL certificates obtained, for example, using Certbot and thus enable MQTTs connections. This configuration is usually achieved by editing the Mosquitto configuration file in /etc/mosquitto so as to point to certificates obtained independently. However, when deploying Mosquitto to Kubernetes, one would prefer not to edit configuration files manually after install. Moreover, in Kubernetes, one can use Cert-manager to obtain SSL certificates. Thus, this article presents an efficient method to deploy a secure MQTTs broker in Kubernetes.
KubernetesMQTTTutorials

IoT air conditioner controller

IoT air conditioner controller thumbnail
Air conditioners consume a fair amount of electricity. As such, forgetting to turn one off before leaving one's home can result in an expensive electricity bill. This is a Wi-Fi enabled controller for air condtioners, which can turn the unit on or off according to MQTT messages. It is built around an Wemos D1 mini and interfaces with the AC using an IR LED.
ElectronicsMQTTIoTESP8266Projects

Control IoT devices with a Xiaomi Mi Band 2

Control IoT devices with a Xiaomi Mi Band 2 thumbnail
Smartwatches can be rather expensive and tend to be known for their poor battery life. On the other hand, Xiaomi's Mi band 2 is cheap and its battery lasts for up to 20 days. However, the Mi band 2 is mainly limited to fitness tracking functions, at least without the appropriate apps.
ProjectsIoTMQTT

Multi-user MQTT platform

Multi-user MQTT platform thumbnail
Mosquitto is usually the first candidate to come to mind when looking for an MQTT broker. However, by default, Mosquitto manages users using a password file. This makes it difficult to easily add or remove users, especially when the broker is deployed in Kubernetes.
ProjectsKubernetesMQTTWIPSecurity +1

MQTT Logger

MQTT Logger thumbnail
A Node.js application which stores data from IoT devices sent over MQTT into an InfluxDB time-series database. It allows the management of multiple data sources into a MongoDB database.
ProjectsInfluxDBMongooseFeaturedExpress +3

IoT infrared controller

IoT infrared controller thumbnail
Although probably in the decline, infrared is a common way to remotely control household appliances such as air conditioners or TVs. Being able to turn on an AC unit without leaving the sofa is definitely comfortable, but sometimes it would be even better to be able to do it before even getting home. In order to control those various appliances, I designed a simple WiFi controlled IR emitter.
FeaturedElectronicsInfrared3D printingIoT +3

Solar power setup

Solar power setup thumbnail
I got my hands on a 600W 12V inverter so I decided to experiment with generating my own electricity.
Node.jsMQTTExpressProjectsESP32 +3

SONOFF S20 firmware

SONOFF S20 firmware thumbnail
The SONOFF S20 is a cheap Wifi smart socket that enables the remote control of appliances for less than USD 10. Although the hardware is more than decent, its usage requires a proprietary app which most likely involves a third party server between the user and the device. Since the socket uses an ESP8266 at its core, I decided to write my own firmware for it.
ElectronicsIoTWIPMQTT

IoT pan-tilt platform

IoT pan-tilt platform thumbnail
With the COVID-19 pandemic, many of us cannot participate in family gatherings or other similar events in person. Instead, some opt for video-call applications like zoom, but then get constrained to the field of view of camera of the device used for the call.
ElectronicsIoTWIPMQTTProjects

IoT Current consumption monitoring system

IoT Current consumption monitoring system thumbnail
When you don't know how much power your air conditioner draws, it's easy to leave it running without feeling too guilty. And then the electricity bill comes...
MQTTProjectsIoTNode.jsElectronics +1