Voice Activated Power Sockets (Home Automation)

A simple system that is based on speech recognition. Works on your voice commands, for an example "Lights ON" can turn ON lights.

Similar projects worth following
Yet another voice controlled home automation system!

As shown in the picture, the system can control any electrical appliance, by turning ON or OFF, that is connected into the electrical socket. The system does this using bespoke voice commands. The system uses a micro-controller board (PIC or Arduino) and a PC/Laptop with the Microsoft Windows Operating System.


I always wanted to make a system that worked on my voice commands. I started working on this project to realize my dream to be able to control gadgets/appliances with my voice commands. I made this project at home from my electronics laboratory in my garage and in my holiday time and on weekends.

System Design

The way this automation system is designed and works is as shown in the figure below. When a voice command (any voice command that I like) is uttered, it is recognized by the Tazti speech recognition software running on a PC with a microphone. Tazti then invokes a 'C' program that sends a command over the PC serial port to which a PIC board is interfaced with. The PIC micro-controller on the PIC board runs a firmware that receives the command from the serial port and interprets it. The PIC controller then toggles an output pin which drives a transistor which in turn drives a relay. The relay then controls any appliance that is connected to it.

The following figure shows the complete system design.

Detailed technical instructions to build this system is provided in the following sections. I will continue to update this project with more details.

Project Video on You Tube:

  • 1 × Windows PC/Laptop with Internal/External Microphone
  • 1 × Serial - RS232 cable
  • 1 × Olimex PIC-MT, 28 pin PIC micro-controller development board with onboard relay & serial port
  • 1 × 12V DC power supply to power the PIC board
  • 1 × Tazti or similar speech recognition software

View all 8 components

  • Going Wireless!

    RajkumarRaval05/08/2015 at 08:46 0 comments

    The main idea is to make the interfacing between the computer and the micro-controller board wireless. It is important to know that there are quite a lot of very cheap different types of off-the-shelf wireless modules available. Many of these modules provide simple serial communication protocol the RS232 over a wireless protocol. For an example, such Bluetooth module can provide serial communication over Bluetooth protocol. Similarly modules providing Serial communication protocol over Wifi and RF are also available. Let's take an example of Bluetooth protocol for making the home automation system wireless.

    1) For the micro-controller board: You can get one of the Bluetooth modules with Serial interface and connect the RX, TX and GND pins to the micro-controller serial interface pins. You need to take care of the voltage levels while interfacing with the micro-controller or a micro-controller board, most of these wireless modules can work with 5 or 3.3V.

    2) For a PC you could use a Bluetooth-USB dongle that emulates serial port over Bluetooth. This means when you connect the dongle to your PC, it will show up as a Serial/COM port. Then it is quite simple, you can use the same 'C' application and same speech recognition software as mentioned in this project to send command to the Bluetooth dongle via the emulated COM port thus making this home automation system wireless. Very simple.

    I leave it upto you to find out various ways to control this home automation system with countless Bluetooth enabled devices.

  • Even Safer Design (Paranoid Safety Level!)

    RajkumarRaval08/20/2014 at 16:57 0 comments

    Additionally in order to make the design even safer (with respect to dealing with the 230V AC supply) I added a second relay. The reason is that if I had used the on-board relay full 230V AC would be arriving on the relay terminals on the board. Instead a second relay is driven using the relay that is on the board. As you can see in the images the on-board relay is orange in color whereas the second relay is separate to the board and has Red tape over it. So whenever the relay on the board is driven it provides supply to the external relay turning the second relay ON or OFF.

  • Project Theme: ! (Re-Inventing the Wheel)

    RajkumarRaval08/20/2014 at 16:55 0 comments

    I strongly believe in not "re-inventing the wheel" therefore most of the components that I have used are off-the-shelf (Hw/Sw both). This enables anybody to create this project very quickly without requiring in depth technical knowledge about electronic circuits and without worrying about the complexity of speech recognition.

    This project is more of an innovation hobby project. The components that I required to build a basic speech recognition based home automation system were a speech recognition software, a PC or an embedded computer with an internal or external microphone to run the speech recognition software, an electronic circuit to control the power to an electrical appliance or a gadget.

  • Disclaimer!!!

    RajkumarRaval08/20/2014 at 16:53 0 comments

    1) Please note that since this project involves controlling of electrical appliances running at very high voltage (230V AC), please do so carefully and at your own risk.

    2) All the instructions and code are provided "as is", please follow/use them at your own risk, I will not be liable for anything what so ever.

    3) Also please let me inform you that I do not have any tie-up with the vendors that I have mentioned below from whom I have acquired, obtained, purchased various software and hardware components, nor do I receive any commission from them. These components carry license agreements from the vendors. Please adhere to their respective license agreements.

View all 4 project logs

  • 1
    Step 1

    Finding the Right Speech Recognition System

    The very first thing that I required was a speech recognition system that would allow me implement my own commands and train my voice on the same commands. In other words I wanted the functionality where the system would accept my own customized voice commands and upon recognizing the commands the system would then run an executable or a program that I have implemented. While I was looking for such system on the internet, I stumbled upon a PC based speech recognition system called "TAZTI". I selected this software as the speech recognition front end is because it satisfied the main two requirements: firstly it allows the user to create their own custom voice commands and secondly the system allows user to run their own program or executable upon recognizing these commands. There are quite a few other useful features in the Tazti speech recognition software (can be obtained from their website ) Older versions of the software were freeware but the current versions are paid however they do provide a trial version for 15 days.

  • 2
    Step 2

    Interfacing with the PC

    he second thing that I needed was a way to interface an electrical appliance with the PC using possibly the parallel or the serial or the USB port . So when a voice command is recognized in the PC a program would be executed which then sent a control command to the interfacing circuit to activate or de-activate a relay that controlled the electrical appliance or the gadget. I chose to use an off-the-shelf PIC micro-controller board that also had a relay and a serial port interface on the same board. You could use any such micro-controller board for an example Arduino.While looking for such micro-controller board I came across PIC-MT a development board for 28 pin PIC microcontroller from Olimex (can be obtained from their website ). This board comes with a Serial/RS232 interface which can directly be connected to a PC serial port and an on-board circuit with a relay. All the details about the board such as schematic/circuit diagram and user manual etc are available from their website. I used PIC 16F876A for my prototype and implemented the firmware for the micro-controller in 'C'. I have also used the PIC boot loader and downloader software from Sparkfun (from ). The boot loader allowed me to download the firmware in hex in to the program memory of the micro-controller over the serial port of the PC without requiring a proper PIC programmer and the special board socket for PIC programmers. Also this was carried out while keeping the micro-controller in the chip socket on the board, i.e. ICSP (In Circuit Serial Programming). Although I did have to program the boot loader for the very first time using the PIC programmer (PIC Start Plus or similar) into the micro-controller.

  • 3
    Step 3

    PC Serial Driver/Client Program

    I implemented a simple 'C' program (essentially a Serial/RS232 driver and a client program) for the PC which would send a control command over to the serial port to the PIC board whenever this program is executed. The PIC serial server program would then listen to the commands arriving on the serial port and upon recognizing a control command it would perform a task(s) such as turning ON the relay or turning OFF the relay.

View all 6 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates