How to Create a Home Automation Kit

Home automation in the simplest term is the use of digital devices to control home functions and features automatically or remotely. It is also referred as smart home.

“Every problem is an opportunity to create something new, something fresh and something unique.”

Our Concept — DIY Home Automation

Our vision for Junkiri is to make a useful DIY home automation kit with the simplest of feature — an ability to control lights from our mobile and web apps.

junkiri 1

We initially brainstormed for couple of ideas.

  • Option #1: Bring light switches at a single place and design a system to control these switches. However, the cost for this option turned out to be expensive.
  • Option #2: Create a virtual centralized switching system using an IoT devicethat would integrate with all the electric switch box and communicate with a server. The solution was cheaper and convenient. We could also control the lights from a web and a mobile app.

First Step

We brought together a small team of engineers to develop the home automation using I0T system. The team had the freedom to hack around. We had to choose an appropriate IoT device and technology stack.

junkiri 2

How we built Junkiri

Right IoT device

Open source and IoT was close to our heart. We have already had played with IoT devices such as Arduino and Raspberry Pi to built some interesting projects. But after further research, we found NodeMCU to be the most affordable option with all the functionalities required for the project.

junkiri 3

Junkiri Prototype

NodeMCU is a cheap, open source IoT platform. It includes firmware which runs on the ESP8266Wi-FiSoC and hardware based on the ESP-12 module. The term “NodeMCU” by default refers to the firmware rather than the dev kits. It supports MQTT protocol to communicate between IoT devices or any machines.

junkiri 4

Supporting server side technology stack

Since NodeMCU follows Nodejs style event-driven API, the obvious choice for back-end became Node.js.

Node.js is an open source platform to build fast and scalable server applications using JavaScript. It has an event-driven, non-blocking I/O model that makes it lightweight and efficient.

For real-time API, we selected WebSocket over MQTT protocol because its simpler and well-known among front end developers.

WebSocket is a full-duplex communication channels over a single TCP connection. It enables interaction between a browser and a web server with lower overheads, facilitating real-time data transfer from and to the server.

Building a prototype

We built the prototype in a month and deployed Junkiri for our Leapfrog office. Everyone can now switch lights from the comfort of their seat.


More in Insights

8 DevOps Tools and Services We Love Technology

8 DevOps Tools and Services We Love

The core focus of any DevOps team is evolving and improving products rapidly. At Leapfrog, we value the speed at

Read more
How We Moved Towards Serverless Architecture Technology

How We Moved Towards Serverless Architecture

The scalability, flexibility and reduced cost promised by serverless architecture resulted in a massive growth rate of 75% compared to

Read more
Enhancing Git Workflow with Smart Commit Open Source Tool Technology

Enhancing Git Workflow with Smart Commit Open Source Tool

When you have a predefined process, it is generally a good idea to automate the things that can be and

Read more