Articles

Projects

SONOFF Firmware

<a href="https://www.itead.cc/" rel="noopener noreferrer nofollow">ITEAD</a>'s&nbsp;<a href="https://sonoff.itead.cc/en/" rel="noopener noreferrer nofollow">SONOFF</a>s are Wi-Fi enabled relays that can be used to turn applicances on and off remotely.
ProjectsIoT

Rebuilding the GUI of this CMS with Nuxt.js

Rebuilding the GUI of this CMS with Nuxt.js thumbnail
I have been using this CMS for several years now and overall, it has served me well. However, as the GUI of the CMS was built as an single page application (SPA), meta tags and other SEO options could not easily be generated for each article.</p><p>To solve this problem, I rebuilt this GUI using Nuxt.js as as to leverage server-side rendering (SSR). Articles are now fetched from the CMS API server-side, which allows meta tags to be set before sending content to clients.
Nuxt.jsProjects

Energy transformation demonstration

Energy transformation demonstration thumbnail
Earlier this year, a friend of mine was organizing an event to promote eco-friendly behaviors. She wanted someone to talk about our relationship with energy and asked me to give a presentation on the topic, which I agreed to. I wanted the presentation to be entertaining so I designed a set of hardware demonstrations aimed at explaining physical concepts related to energy.
EnergyElectronicsWIPProjectsIoT

Bathroom occupancy monitor

Bathroom occupancy monitor thumbnail
One of the companies I used to work for had a serious bathroom issue: My floor had only three toilet stalls for about 200 employees. There were countless times when I would walk all the way to the bathroom only to find all stalls occupied. I built this simple system to quickly identify whether one or more stall were. It consists of an IoT sensor installed on the bathroom stalls' door and an indicator placed somewhere easily visible.
ESP8266IoTElectronicsProjects

Credit card transactions web scraper

Credit card transactions web scraper thumbnail
The company behind my credit card provides a web interface which includes a log of the transactions that have been made. The objective of this project is to automatically retrieve this log everyday and store its data in a database so as to display it on a custom dashboard.
ProjectsPuppeteer

Express authorization middleware

Many applications require some form of authorization mechanism to prevent users from accessing restricted content. Authenticated users are commonly in possession of a cookie containing identification data. With the authentication microservice that I designed, this cookie contains a JWT that contains the user's username. This JWT is sent in the authorization header of HTTP requests. Thus, authorization can be performed easily within each application by simply decoding the JWT. To do so, I designed this simple middleware for ExpressJS.
ProjectsSecurityNPMExpressNode.js

Arduino 7-segment alarm clock

Arduino 7-segment alarm clock thumbnail
This is one of my earliest electronics project: An alarm clock built around an Arduino nano, a real-time clock (RTC) module and a 7-segment display.
ArduinoProjectsElectronics

GPS tracker

GPS tracker thumbnail
When I was in the army, we would often have exercises where we need to setup some equipment in the field and establish a security perimeter around to prevent access from unauthorized personnel. During those exercises, the sergeants and lieutenants would sometimes disguise themselves as enemies and try to access the equipment to see how successful we would be at stopping them. I didn't like the idea of staying alert for long periods of time and instead wanted to receive some kind of warning whenever a superior would be arriving in our vicinity so I designed a GPS tracker that I intended to put on his car.
ElectronicsProjectsArduino

Vocabulary practice web app

Vocabulary practice web app thumbnail
When learning a new language, there is no way around having to learn its vocabulary. This simple web app was made to help with this process by providing a multiple choice question style UI. It was designed mainly for Japanese, which uses Chinese characters that can have multiple readings.
MySQLPHPProjects

Light controller with PIR sensor

Light controller with PIR sensor thumbnail
This is an IoT ceiling light controller which includes an HC-SR501 PIR motion sensor. It is built around a Wemos D1 mini (ESP8266 breakout board), which controls a homemade TRIAC breakout board. TRIACs provide the advantage of switching devices on and off silently, as opposed to a mechanical relay.
IoTESP8266ProjectsElectronicsMQTT