Articles
MQTThree
A simple framework using Three.js and MQTT to easily create digital twins
IoT sensor module
Although a wide variety of sensing devices can be envisioned for home automation systems, motion and temperature sensors are among the most widespread. This is mostly due to their low cost and simplicity of use. In order to equip multiple rooms of my apartment with such sensors, I designed a simple IoT sensing module that can easily be produced in any quantity.
MQTT Logger
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.
Encrypted Mosquitto broker in Kubernetes
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.
MQTT control dashboard
With the cloud native multi-user MQTT platform deployed, I started designing IoT devices that I could distribute to end users. However, without a GUI, interacting with those devices would be difficult. Of course, one could install applications like MQTT dash or similar but this would require tedious configuration such as MQTT broker and topics. I wanted to give users a simpler UX so I made this simple control interface that automatically displays a users devices and allows those to be controlled.
SONOFF S20 firmware
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.
Multi-user MQTT platform
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.
IoT infrared controller
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.
IoT pan-tilt platform
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.
Encrypting Mosquitto using Certbot
This article presents how to encrypt a Mosquitto MQTT broker using SSL certificates obtained with Let's Encrypt