Skip to main content

IoT - DC Motor Controlling Using Amazon Echo

In this tutorial, we will learn how to interface DC Motor with NodeMcu by using Relay Module controlling with Alexa echo. with voice API.

A DC motor is any of a class of rotary electrical machines that converts direct current electrical energy into mechanical energy. The most common types rely on the forces produced by magnetic fields. SmallDC motors are used in tools, toys, and appliances.

DC Motor (Overview) 
There are 4 main types of DC motors:

Permanent Magnet DC Motors. The permanent magnet motor uses a permanent magnet to create field flux.

Series DC Motors. In a series DC motor, the field is wound with a few turns of a large wire carrying the full armature current.

  • Shunt DC Motors.
  • Compound DC Motors.

So now we are familiar with the motor let us interface it.
Components Required:
  • DC motor
  • NodeMcu(ESP8266)
  • Alexa echo.
  • Connecting wires(male to male)
  • Breadboard
  • Relay Module

Follow the Image below for circuit connection reference:-
(Interfacing all components)
N.B-(In this circuit connection we have to supply 5volts as the input voltage.)

After making the circuit dump the code given below:-
#include <ESP8266WiFi.h>
#include "fauxmoESP.h"
/* Network credentials */
#define WIFI_SSID "Enter your Wifi Name"
#define WIFI_PASS "Enter Password"
/* Belkin WeMo emulation */
fauxmoESP fauxmo;
/* Set Relay Pins */
#define RELAY_1 D0
void setup()
//setup and wifi connection
//Set relay pins to outputs
pinMode(RELAY_1, OUTPUT);
//Set each relay pin to HIGH ====== NOTE THAT THE RELAYS USE INVERSE LOGIC =====
digitalWrite(RELAY_1, LOW);
// Device Names for Simulated Wemo switches
fauxmo.addDevice("Karkhana Motor");

void loop()

/* ---------------------------------------------------------------------------
Device Callback
void callback(uint8_t device_id, const char * device_name, bool state)
Serial.print("Device "); Serial.print(device_name);
Serial.print(" state: ");
if (state)
//Switching action on detection of device name
if ( (strcmp(device_name, "Karkhana Motor") == 0) )
if (!state)
digitalWrite(RELAY_1, LOW);
digitalWrite(RELAY_1, HIGH);
/* -----------------------------------------------------------------------------
Wifi Setup
void wifiSetup()
// Set WIFI module to STA mode
// Connect
Serial.println ();
Serial.printf("[WIFI] Connecting to %s ", WIFI_SSID);
// Wait
while (WiFi.status() != WL_CONNECTED)
Serial.print(" ==> CONNECTED!" );
// Connected!
Serial.printf("[WIFI] STATION Mode, SSID: %s, IP address: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());

After dumping the code the output is shown on the video below:-

After dumping the code the out put is shown on the image below:-

(During circuit is running)

Join our hands-on training courses.
To know more visit us at Karkhana Training Portal


Popular posts from this blog

IoT - LPG Gas Sensor Logging with NodeMCU and Thingspeak.

In this tutorial, will learn, how to interface MQ-5 Module with Node Mcu(ESP8266).

The Grove - Gas Sensor(MQ5) module is useful for gas leakage detection (in home and industry). It is suitable for detecting H2, LPG, CH4, CO, Alcohol. Due to its high sensitivity and fast response time, measurements can be taken as soon as possible. The sensitivity of the sensor can be adjusted by using the potentiometer.

Components Required
NodeMcu(ESP8266) MQ-5 LPG SENSOR Module Few male to female connecting wires Breadboard  Follow the image below for circuit connection reference:-
After making the circuit dump the code given below:-

// Karkhana Report
// Analyse the volume of the gas using
// Hardware: NodeMCU,MQ-5

#include <ESP8266WiFi.h>
String apiKey = "Enter the API key"; // Enter your Write API key from ThingSpeak
const char *ssid = "Enter ssid"; // replace with your wifi ssid and wpa2 key
const char *pass = "Enter password";
const char* server = &qu…

IoT - Humidity and Temperature Logging using NodeMCU and ThingSpeak

Hey Folks,
In this tutorial, we will learn, how to interface DHT 11 with Node Mcu(ESP8266).
The DHT11 is a basic, ultra low-cost digital temperature and humidity sensor. It uses a capacitive humidity sensor and a thermistor to measure the surrounding air and spits out a digital signal on the data pin (no analog input pins needed).

Components Required
NodeMcu(ESP8266) DHT 11 SENSOR Few male to female connecting wires Breadboard
Follow the image below for circuit connection reference.
In this circuit, we have connected the output pin to the D3 pin of the NodeMcu module and NC pin remain disconnected. After making the circuit dump the code given below.
// Karkhana Report
// temperature and humidity data using
// Hardware: NodeMCU,DHT11
#include <DHT.h> // Including library for dht
#include <ESP8266WiFi.h>
String apiKey = "THINGSPEAK API KEY"; // Enter your Write API key from ThingSpeak
const char *ssid = "ENTER YOUR SSID"; // replace with your wifi ssid a…

Getting Started with Embedded System Design on AVR

In this tutorial, we will learn how to interface LED with Atmega16 using AVR Studio.
An embedded system is built around a processor. The design goals of an embedded system are to reduce size, cost and power consumption and to increase performance and reliability.
The microprocessor we are using is ATMEGA16. The processor has limited internal memory, and if this is not sufficient for a given application external memory devices are used. The hardware also includes any components that facilitate the user-application interaction such as display units, keypad. The light emitting diodes are used for getting status information, such as power on, check output(high/low). You all must have observed led decoration lights, which can glow in different patterns.
First, we will learn to interface a single Led and then 8 LEDs to learn a simple toggling technique.
Components Required:- AVR controller(Atmega16)LEDsConnecting wiresUSBASP Programmer For single Led dump the following code:
#include<avr/io.h> #in…