James Caska
Published © MIT

Virtual Breadboard Smart Home Alexa Skill + Edge:Bit Gadget

Effortlessly roll your own smart home applications with drag-and-drop Alexa 'aware' controls in the Virtual Breadboard Microsoft Store App.

BeginnerProtip30 minutes8,431

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
Seeed Studio Grove - Infrared Emitter
Grove - Relay
Seeed Studio Grove - Relay
Virtual Breadboard Edge:Bit
Seeed Studio Grove - Infrared Receiver

Software apps and online services

Virtual Breadboard App


Read more


Virtualized Test Application

The virtual breadboard layout of a Alexa endpoint, Infrared encoder and virtual arduino infrared decoder application driving a remote relay

Alexa Home Controller with infrared Edge:Bit

A deployable home controller configuration which passes through Alexa commands to a real Arduino Infrared receiver that is controlling a relay

Arduino UNO Remote Relay Controller

Schematic for configuring the real Arduino Uno with the IR and Relay modules


Infrared Controlled Relay Lamp

An Arduino Infrared receiver application to remotely control a relay which can be connected to LAMP or anything else
* Infrared Controlled Relay Lamp
#include <IRremote.h>
const long IR_CODE_ON   = 0xFFA25D;
const long IR_CODE_OFF  = 0xFF629D;
const int PIN_IR_RECEIVE = 7; //SIG of receiver module attach to pin7 
const int PIN_LED  = 13;      //built-in led on Pin 13
const int PIN_LAMP_RELAY = 12;//Lamp Relay on pin 12 

IRrecv irrecv(PIN_IR_RECEIVE); //Creates a variable of type IRrecv
decode_results results;
void setup()
  digitalWrite(PIN_LAMP_RELAY,HIGH);  //turn off the Lamp - Active Low
  pinMode(PIN_LED,OUTPUT);            //set ledpin as OUTPUT
  Serial.begin(9600);                 //initialize serial 
  Serial.println("Starting Lamp");
  irrecv.enableIRIn();                //enable ir receiver module 
  irrecv.blink13(1);                  //Flash Pin 13 when receiving IR data 
void loop() 
  if (irrecv.decode(&results)) //if the ir receiver module receiver data
    Serial.print("Received Code: ");  
    Serial.println(results.value, HEX);  
    irrecv.resume(); // Receive the next value 
  delay(600); //delay 600ms
  if(results.value == IR_CODE_ON)//if receiver module receive OxFFA25D
    digitalWrite(PIN_LAMP_RELAY,LOW);//turn on the led
    Serial.println("Alexa, Lamp On");
  else if(results.value == IR_CODE_OFF)
    digitalWrite(PIN_LAMP_RELAY,HIGH);//turn off the led
    Serial.println("Alexa, Lamp Off");
   results.value = 0;


James Caska

James Caska

18 projects • 32 followers
Creator of VirtualBreadboard