IoT Home Automation Using Blynk & NodeMCU ESP8266

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 21

IoT Home Automation using Blynk & NodeMCU

ESP8266

In this project we learn how to make IoT Based Home Automation Project using Blynk
& NodeMCU ESP8266 ESP8266. One of the most common & popular hobby projects you will
come across the internet is Smart Home Automation Project. By Home Automation we mean
controlling lighting, climate, entertainment systems, and appliances without a manual switch. It
may also include home security such as access control and alarm systems. When connected with
the Internet, home devices are an important constituent of the Internet of Things (“IoT”).

In this Home Automation System, we will control 4 home appliances as Tv, Fan, Bulb, Motor,
Refrigerator connected to Relay using Blynk Application. The Wifi Module NodeMCU
ESP8266 ESP8266 will Receive commands from the smartphone wirelessly through the
internet. To encode the ON/OFF signal and send it to Server and to ESP8266 Board we need
the best IoT Platform. So we chose Blynk as no other application can be better than this one.
This project requires internet connectivity & can’t work without Internet connection.

Block diagram:

Node mcu
Relay module
Power supply
Circuit Diagram & Connection
The circuit diagram for Blynk Controlled Home Automation using ESP8266 is given below.
Using this circuit diagram you can assemble the circuit on Breadboard using 4 channel Relay and
NodeMCU Board.
Home Automation PCB & Gerber File
If you don’t want to assemble the circuit on breadboard and you want PCB for the project, then
here is the PCB for you. The PCB Board for the Home Automation Project is designed
using EasyEDA online Circuit Schematics & PCB designing tool. The front side and back side
of the PCB is given below.

Setting up Blynk Application


Now let’s learn about the Blynk Application. In this project, all the control is done by the Blynk
Application. Blynk is a Platform with IOS and Android apps to control Arduino, Raspberry Pi,
and the likes over the Internet. It’s a digital dashboard where you can build a graphic interface
for your project by simply dragging and dropping widgets.
You can download the Blynk Application from Playstore if you an Android User. You can also
install the Blynk Application on IOS from App Store.
Now lets setup the Blynk App for IoT Home Automation Project. First, open the application
and create a new account using your Email ID. Then click on “New Project“.
Now you can follow the images below for the complete setup guide.
From above when you click on “Email All”, an authentication token will be sent to your mail
address. This token is very important as it is required in the program/code. So open your email
ID & check for the token.
ource Code/Program
Here is a Blynk Based Home Automation Code, you can copy the code and paste it in
your Arduino IDE. But before that, you need to add Blynk Library to Arduino IDE.

Download Blynk Library


From the below code change the WiFi SSID, Password & Blynk Authentication Code.

#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.


// Go to the Project Settings (nut icon).
char auth[] = "pGE7Rb1n3v2SOd9CZvY6RlkeKItyalUR";

// Your WiFi credentials.


// Set password to "" for open networks.
char ssid[] = "*****************";
char pass[] = "*****************";

int relay1 = 12; // D6 pin


int relay2 = 14; // D2 pin
int relay3 = 4; // D1 pin
int relay4 = 5; // D5 pin

void setup()
{
// Debug console
Serial.begin(115200);

pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
pinMode(relay3,OUTPUT);
pinMode(relay4,OUTPUT);

digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);

Blynk.begin(auth, ssid, pass);


// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
}
void loop()
{
Blynk.run();
}

IoT Home Automation using Blynk & NodeMCU ESP8266 ESP8266


After uploading the code successfully to the NodeMCU Board, you can start controlling the
Home Appliances using the Blynk App. All you need is to click on ON/OFF Button on Android
App.

IOT

The Internet of Things (IoT) refers to the use of intelligently connected devices and systems to
leverage data gathered by embedded sensors and actuators in machines and other physical
objects. IoT is expected to spread rapidly over the coming years and this convergence will
unleash a new dimension of services that improve the quality of life of consumers and
productivity of enterprises, unlocking an opportunity that the GSMA refers to as the ‘Connected
Life’. For consumers, the IoT has the potential to deliver solutions that dramatically improve
energy efficiency, security, health, education and many other aspects of daily life.

For enterprises, IoT can underpin solutions that improve decision-making and productivity in
manufacturing, retail, agriculture and other sectors. Machine to Machine (M2M) solutions - a
subset of the IoT – already use wireless networks to connect devices to each other and the
Internet, with minimal direct human intervention, to deliver services that meet the needs of a
wide range of industries. In 2013, M2M connections accounted for 2.8% of global mobile
connections (195 million), indicating that the sector is still at a relatively early stage in its
development. An evolution of M2M, the IoT represents the coordination of multiple vendors’
machines, devices and appliances connected to the Internet through multiple networks.

Understanding the Internet of Things

While the Internet of Things (IoT) will ultimately have an enormous impact on consumers,
enterprises and society as a whole, it is still at an early stage in its development. As mobile
operators and their partners pilot new services across multiple sectors, ranging from health to
automotive, they have identified several distinctive features of the Internet of Things. A common
understanding of the distinctive nature of this nascent opportunity should help hasten the
development of this market.

The Internet of Things can enable the next wave of life enhancing services across several
fundamental sectors of the economy.

As the Internet of Things evolves, the proliferation of smart connected devices supported by
mobile networks, providing pervasive and seamless connectivity, will unlock opportunities to
provide life-enhancing services for consumers while boosting productivity for enterprises. As
can be seen in Figure 5 below, thirteen industry sectors are likely to show significant adoption of
IoT services.

In cities, the development of smart grids, data analytics and autonomous vehicles will provide an
intelligent platform to deliver innovations in energy management, traffic management and
security, sharing the benefits of this technology throughout society.
IoT Service Segmentation

While the potential impact of the IoT is considerable, a concerted effort is required to move
beyond this early stage. In order to optimise the development of the market, a common
understanding of the distinct nature of the opportunity is required.

Another important characteristic of IoT services can be the deployment of a large number of the
same type of devices and applications. Each device and application performs the same activity
and transports information to a service centre at the same time. Regardless of the amount of data
transmitted by each device, this simple operation could cause network congestion. Mobile
networks need to provide several mechanisms to protect and better utilise their capabilities for
delivering such M2M/IoT services. Mechanisms for remotely managing such devices and
applications could allow intelligent scheduling, which would facilitate an appropriate application
development and reduce the vulnerability of the network to application misbehavior.

An additional feature of the IoT market is, that in some scenarios, devices and applications may
be deployed and actively work for a large number of years, operating on batteries or using
limited power. In this case, the communication module needs to consume very little energy to
guarantee a longer device lifetime.

In summary, the IoT will require mobile networks to offer a much more diversified set of
capabilities, while providing protection mechanisms for identifying and blocking any application
misbehaviour and guaranteeing all other services. Mobile operators are working to identify these
requirements and develop appropriate capabilities in order to support the vast range of IoT
applications.

APPLICATIONS

Internet of Things industry sector categories

For consumers, connectivity provided by the IoT could enhance their quality of life in multiple
ways, such as, but not limited to, energy efficiency and security at home and in the city. In the
home, the integration of connected smart devices and cloud-based services will help address the
pressing issue of energy efficiency and security. Connected smart devices will enable a reduction
in utility bills and outages, while also improving home security via remote monitoring.

IoT smart cities applications

In cities, the development of smart grids, data analytics and autonomous vehicles will provide an
intelligent platform to deliver innovations in energy management, traffic management and
security, sharing the benefits of this technology throughout society.

IoT health applications

The IoT will also help widen access and improve quality of education and health. As demand for
healthcare doubles8, connected smart devices will help address this challenge by supporting a
range of e-health services that improve access and enable monitoring of chronic diseases and
age-related conditions in the home. In doing so, they will improve the quality of care and quality
of life for patients, while reducing the strain on the wider healthcare system.

IoT education applications


In education, mobile-enabled solutions will tailor the learning process to each student’s needs,
improving overall proficiency levels, while linking virtual and physical classrooms to make
learning more convenient and accessible.

Mobile education solutions have already been shown to improve learners’ proficiency rates and
reduce dropout rates, and have the potential to enable, by 2017, the education of up to 180
million additional students in developing countries who will be able to stay in school due to
mEducation.

IoT productivity applications

For enterprises, the ability of IoT to combine innovations in data analytics, 3D printing and
sensors, will improve productivity by enabling a step change in the quality of decision making,
efficiency of production, personalisation of retail and productivity of food production.

ADVANTAGES

The IoT will increase the range of services, each requiring varying levels of bandwidth, mobility
and latency. For example, services that are related to public safety or personal safety will
generally require low latency, but not high bandwidth per se. alternatively, services that provide
surveillance might also require high bandwidth. Due to the differing level of service demand,
mobile networks may need the ability to identify the service which is generating traffic and meet
its specific needs. For example, alert services related to public safety or personal health would
require a higher priority compared to metering information, which is a normal monitoring
activity. Varying levels of mobility (the degree to which devices and applications need to be
nomadic) is another important characteristic of IoT service demand. For nomadic services,
location information and geo-fencing becomes a crucial enabler.

Proximity services in general will play an important role in the IoT ecosystem. In this context,
the mobile network faces the challenge of being able to recognise different type of devices. For
example, in the automotive sector, only cars in the proximity of an accident need to be notified,
rather than every vehicle. Conversely, there are devices and applications that are not mobile by
nature, such as a smart meter or a street lamp. Any movement of such devices/applications might
indicate an anomaly in the service.
Conclusion

The Internet of Things promises to deliver a step change in individuals’ quality of life and
enterprises’ productivity. Through a widely distributed, locally intelligent network of smart
devices, the IoT has the potential to enable extensions and enhancements to fundamental services
in transportation, logistics, security, utilities, education, healthcare and other areas, while
providing a new ecosystem for application development. A concerted effort is required to move
the industry beyond the early stages of market development towards maturity, driven by common
understanding of the distinct nature of the opportunity. This market has distinct characteristics in
the areas of service distribution, business and charging models, capabilities required to deliver
IoT services, and the differing demands these services will place on mobile networks. GSMA’s
Connected Living Programme is an industry initiative which seeks to expedite the development
of mobile-enabled IoT services. It is hoped that a common understanding of the characteristics of
IoT will enable industry stakeholders to collaborate more effectively in order to propel the
market forward for the benefit of consumers and society.

ARDUINO UNO

The Arduino Uno is a microcontroller board based on the ATmega328 (datasheet). It has 14
digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz
crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button. It
contains everything needed to support the microcontroller; simply connect it to a computer with
a USB cable or power it with a AC-to-DC adapter or battery to get started. The Uno differs from
all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it
features the Atmega8U2 programmed as a USB-to-serial converter. "Uno" means one in Italian
and is named to mark the upcoming release of Arduino 1.0. The Uno and version 1.0 will be the
reference versions of Arduno, moving forward. The Uno is the latest in a series of USB Arduino
boards, and the reference model for the Arduino platform; for a comparison with previous
versions, see the index of Arduino boards.

TECHNICAL SPECIFICATIONS

Microcontroller ATmega328

Operating Voltage 5V
Input Voltage (recommended) 7-12V

Input Voltage (limits) 6-20V

Digital I/O Pins 14 (of which 6 provide PWM output)

Analog Input Pins 6

DC Current per I/O Pin 40 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 32 KB of which 0.5 KB used by bootloader

SRAM 2 KB

EEPROM 1 KB

Clock Speed 16 MHz

POWER
The Arduino Uno can be powered via the USB connection or with an external power supply. The
power

source is selected automatically. External (non-USB) power can come either from an AC-to-DC
adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-
positive plug into the board's power jack. Leads from a battery can be inserted in the Gnd and
Vin pin headers of the POWER connector. The board can operate on an external supply of 6 to
20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and
the board may be unstable. If using more than 12V, the voltage regulator may overheat and
damage the board. The recommended range is 7 to 12 volts.

The power pins are as follows:

 VIN. The input voltage to the Arduino board when it's using an external power source (as
opposed to 5 volts from the USB connection or other regulated power source). You can
supply voltage through this pin, or, if supplying voltage via the power jack, access it
through this pin.

 5V. The regulated power supply used to power the microcontroller and other components
on the board. This can come either from VIN via an on-board regulator, or be supplied by
USB or another regulated 5V supply.

 3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50
mA.

 GND. Ground pins.

MEMORY

The Atmega328 has 32 KB of flash memory for storing code (of which 0,5 KB is used for the
bootloader); It has also 2 KB of SRAM and 1 KB of EEPROM (which can be read and written
with the EEPROM library.

INPUT OUTPUT

Each of the 14 digital pins on the Uno can be used as an input or output, using pinMode(),
digitalWrite(), and digitalRead() functions. They operate at 5 volts. Each pin can provide or
receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of
20-50 kOhms. In addition, some pins have specialized functions

 Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data.
TThese pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL
Serial chip .
 · External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a
low value, a rising or falling edge, or a change in value. See the attachInterrupt() function
for details·

 PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function.

 SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI


communication, which,although provided by the underlying hardware, is not currently
included in the Arduino language.

 · LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH
value, the LED is on, when the pin is LOW, it's off.

The Uno has 6 analog inputs, each of which provide 10 bits of resolution (i.e. 1024 different
values). By default they measure from ground to 5 volts, though is it possible to change the
upper end of their range using the AREF pin and the analogReference() function. Additionally,
some pins have specialized functionality.

 I2C: 4 (SDA) and 5 (SCL). Support I2C (TWI) communication using the Wire library.

There are a couple of other pins on the board:

· AREF. Reference voltage for the analog inputs. Used with analogReference().

· Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to
shields which block the one on the board.

COMMUNICATION

The Arduino Uno has a number of facilities for communicating with a computer, another
Arduino, or other microcontrollers. The ATmega328 provides UART TTL (5V) serial
communication, which is available on

digital pins 0 (RX) and 1 (TX). An ATmega8U2 on the board channels this serial communication
over USB and appears as a virtual com port to software on the computer. The '8U2 firmware
uses the standard USB COM drivers, and no external driver is needed. However, on Windows,
an *.inf file is required..

The Arduino software includes a serial monitor which allows simple textual data to be sent to
and from the
Arduino board. The RX and TX LEDs on the board will flash when data is being transmitted via
the USB-toserial chip and USB connection to the computer (but not for serial communication on
pins 0 and 1).

A SoftwareSerial library allows for serial communication on any of the Uno's digital pins.

The ATmega328 also support I2C (TWI) and SPI communication. The Arduino software
includes a Wire

library to simplify use of the I2C bus; see the documentation for details. To use the SPI
communication,

please see the ATmega328 datasheet.

PROGRAMMING

Arduino Uno can be programmed with the Arduino software (download). Select "Arduino Uno
w/

ATmega328" from the Tools > Board menu (according to the microcontroller on your board).
For details,

see the reference and tutorials.

The ATmega328 on the Arduino Uno comes preburned with a bootloader that allows you to
upload new code to it without the use of an external hardware programmer. It communicates
using the original STK500 protocol (reference, C header files).

You can also bypass the bootloader and program the microcontroller through the ICSP (In-
Circuit Serial

Programming) header; see these instructions for details.


The ATmega8U2 firmware source code is available . The ATmega8U2 is loaded with a DFU
bootloader,

which can be activated by connecting the solder jumper on the back of the board (near the map
of Italy) and then resetting the 8U2. You can then use Atmel's FLIP software (Windows) or the
DFU programmer (Mac OS X and Linux) to load a new firmware. Or you can use the ISP header
with an external programmer (overwriting the DFU bootloader).

AUTOMATIC SOFTWARE RESET

Rather than requiring a physical press of the reset button before an upload, the Arduino Uno is
designed in a way that allows it to be reset by software running on a connected computer. One of
the hardware flow control lines (DTR) of the ATmega8U2 is connected to the reset line of the
ATmega328 via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line
drops long enough to reset the chip. The Arduino software uses this capability to allow you to
upload code by simply pressing the upload button in the Arduino environment. This means that
the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with
the start of the upload.

This setup has other implications. When the Uno is connected to either a computer running Mac
OS X or

Linux, it resets each time a connection is made to it from software (via USB). For the following
half second or so, the bootloader is running on the Uno. While it is programmed to ignore
malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes
of data sent to the board after a connection is opened. If a sketch running on the board receives
one-time configuration or other data when it first starts, make sure that the software with which it
communicates waits a second after opening the connection and before sending this data.

The Uno contains a trace that can be cut to disable the auto-reset. The pads on either side of the
trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to
disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line.

USB OVER CURRENT PROTECTION


The Arduino Uno has a resettable polyfuse that protects your computer's USB ports from shorts
and

overcurrent. Although most computers provide their own internal protection, the fuse provides an
extra layer of protection. If more than 500 mA is applied to the USB port, the fuse will
automatically break the connection until the short or overload is removed.

PHYSICAL CHARECTERISTICS

The maximum length and width of the Uno PCB are 2.7 and 2.1 inches respectively, with the
USB connector and power jack extending beyond the former dimension. Three screw holes allow
the board to be attached to a surface or case. Note that the distance between digital pins 7 and 8
is 160 mil (0.16"), not an even multiple of the 100 mil spacing of the other pins.

You might also like