Report - Advanced Electronic Voting Machine Using Finger Print Module

You might also like

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

ADVANCED ELECTRONIC VOTING MACHINE USING FINGER

PRINT MODULE
ABSTRACT

India being the largest democracy faces a lot of issues during elections. Lot of

controversies are reported about voting system, voting machines, authentication

of voting, corruptions during elections etc. In our paper we have described a

secured system that can eliminate such controversies involving elections in our

country. In our present work we have developed a prototype and tested

successfully an Arduino UNO based Aadhar facilitated electronic voting

machine possessing a Two-Tier fingerprint security. The main purpose of this

system is to give a straight and fair elections and to curb all other factors that

affect it, this goal has been achieved by providing dual verification of the voters

based on their fingerprint and unique id. In this System all the relevant

information is taken from the voters and are stored in the database, then they are

provided with unique ID. The process of verification involves matching of this

id and fingerprint from the database. This is a faster and more secured way of

holding elections. Our system is secured, reliable and also cost- effective.
CHAPTER-1

INTRODUCTION

This system is divided between the following terms: Electronic voting:


Electronic machines are used to facilitate vote without using paper ballots. We
used biometric system for voting. Biometric is form of print made by an
impression of the ridges of the skin of a finger. The module is a biometric finger
print reader module (R305) that interface with Arduino directly. We have
implemented a system which is based on fingerprint scanning which would
replace a traditional voting system i.e., ballot paper system. Fingerprint sensor
is a module which captures fingers print image and then convert it into
equivalent format and stores them into its memory on selected location in
Arduino. Here all the processes are controlled by Arduino. Another name for
fingerprint scanning is biometric. Biometric points towards the technologies that
analyse human body characteristics such as finger print and many more for
authentication purpose. Every single person has unique biometric impression. In
organizations, educational institutes, co-operative banks, votes decided the
committee and head of organization that is responsible for bright future. So, we
have implemented a new method of voting system to increase standard of
living. Votes could be counted manually in current system so that there is more
opportunity of manipulation and fraud such as duplicate counting and
completely missed counting. False counting of votes could lead to impact on
people mind-set towards the system.

1.1 EMBEDDED SYSTEM

An embedded system is a combination of computer hardware and software,


either fixed in capability or programmable, designed for a specific function or
functions within a larger system. Industrial machines, agricultural and process
industry devices, automobiles, medical equipment, cameras, household
appliances, airplanes, vending machines and toys, as well as mobile devices, are
possible locations for an embedded system.

Embedded systems are computing systems, but they can range from having no
user interface (UI) -- for example, on devices in which the system is designed to
perform a single task -- to complex graphical user interfaces (GUIs), such as in
mobile devices. User interfaces can include buttons, LEDs, touchscreen sensing
and more. Some systems use remote user interfaces as well.

Embedded system hardware (microprocessor-based, microcontroller-


based)

Embedded system hardware can be microprocessor- or microcontroller-based.


In either case, an integrated circuit is at the heart of the product that is generally
designed to carry out computation for real-time operations. Microprocessors are
visually indistinguishable from microcontrollers, but while the microprocessor
only implements a central processing unit (CPU) and, thus, requires the addition
of other components such as memory chips, microcontrollers are designed as
self-contained systems.

Microcontrollers include not only a CPU, but also memory and peripherals such
as flash memory, RAM or serial communication ports. Because
microcontrollers tend to implement full (if relatively low computer power)
systems, they are frequently put to use on more complex tasks. For example,
microcontrollers are used in the operations of vehicles, robots, medical devices
and home appliances, among others. At the higher end of microcontroller
capability, the term system on a chip (SoC) is often used, although there's no
exact delineation in terms of RAM, clock speed and so on.
The embedded market was estimated to be in excess of $140 billion in 2013,
with many analysts projecting a market larger than $20 billion by 2020.
Manufacturers of chips for embedded systems include many mainstays of the
computer world, such as Apple, IBM, Intel and Texas Instruments, as well as
numerous other companies less familiar to those outside the field. Arm has been
a highly influential vendor in this space.
The company began as an outgrowth of Acorn, a U.K. maker of early PCs. Arm
chips, produced under license by other companies, are based on the reduced
instruction set computer (RISC) architecture and are often used in mobile
phones; they remain the most widely deployed SoC in the embedded world,
with billions of units fielded.

Embedded system software

A typical industrial microcontroller is unsophisticated compared to the typical


enterprise desktop computer and generally depends on a simpler, less-memory-
intensive program environment. The simplest devices run on bare metal and are
programmed directly using the chip CPU's machine code language.

Often, embedded systems use operating systems or language platforms tailored


to embedded use, particularly where real-time operating environments must be
served. At higher levels of chip capability, such as those found in SoCs,
designers have increasingly decided the systems are generally fast enough and
the tasks tolerant of slight variations in reaction time that near-real-time
approaches are suitable. In these instances, stripped-down versions of the Linux
operating system are commonly deployed, although other operating systems
have been pared down to run on embedded systems, including Embedded
Javaand Windows IoT (formerly Windows Embedded).

Generally, storage of programs and operating systems on embedded devices


make use of either flash or rewritable flash memory.

Embedded firmware

The firmware on embedded systems, referred to as embedded firmware, is


specific software written into the memory of a device that serves the purpose of
ROM, but can be updated more easily. Firmware can be stored in non-volatile
memory devices including ROM, programmable ROM, erasable PROM or flash
memory. Embedded firmware is used to control various device and system
functions, for example, telling the device how to communicate with other
devices, perform specific functions and provide input and output functionality.

The delineation between the terms embedded firmware and embedded


software are blurring, but embedded software often refers to the only code
running on a piece of hardware, while firmware can also refer to the chip that
houses a device's basic input/output system (BIOS) or Unified Extensible
Firmware Interface (UEFI), which connect software and a system's operating
system.

Embedded systems vs. VLSI

Very-large-scale integration, or VLSI, is a term that describes the complexity of


an integrated circuit. VLSI is the process of embedding hundreds of thousands
of transistors into a chip, whereas LSI (large-scale integration) microchips
contain thousands of transistors, MSI (medium-scale integration) contain
hundreds of transistors, and SSI (small-scale integration) contain tens of
transistors. ULSI, or ultra-large-scale integration, refers to placing millions of
transistors on a chip.

VLSI circuits are common features of embedded systems. Many ICs in


embedded systems are VLSI, and the use of the VLSI acronym has largely
fallen out of favour.

Debugging embedded systems


One area where embedded systems part ways with the operating systems and
development environments of other, larger-scale computers is in the area
of debugging. While programmers working with desktop computer
environments have systems that can run both the code being developed and
separate debugger applications that monitor the actions of the development code
as it is executed, embedded system programmers generally cannot.

Some programming languages run on microcontrollers with enough efficiency


that rudimentary interactive debugging is available directly on the chip.
Additionally, processors often have CPU debuggers that can be controlled --
and, thus, control program execution -- via a JTAG or similar debugging port.

In many instances, however, programmers of embedded systems need tools that


attach a separate debugging system to the target system via a serial or other
port. In this scenario, the programmer can see the source code on the screen of a
conventional personal computer just as would be the case in the debugging of
software on a desktop computer. A separate, frequently used approach is to run
software on a PC that emulates the physical chip in software, thus making it
possible to debug the performance of the software as if it were running on an
actual, physical chip.

Broadly speaking, embedded systems have received more attention to testing


and debugging because a great number of devices using embedded controls are
designed for use in situations where safety and reliability are top priorities.

The internet of things builds on an embedded systems base

While some embedded systems can be relatively simple, a growing number


either supplant human decision-making or offer capabilities beyond what a
human could provide. For instance, some aviation systems, including those used
in drones, are able to integrate sensor data and act upon that information faster
than a human could, permitting new kinds of operating features.

1.2 INTERNET OF THINGS:

 The term Internet of Things generally refers to scenarios where network


connectivity and computing capability extends to objects, sensors and
everyday items not normally considered computers, allowing these devices
to generate, exchange and consume data with minimal human intervention.
There is, however, no single, universal definition.

 Enabling Technologies: The concept of combining computers, sensors,


and networks to monitor and control devices has existed for decades. The
recent confluence of several technology market trends, however, is
bringing the Internet of Things closer to widespread reality. These
include Ubiquitous Connectivity, Widespread Adoption of IP-based
Networking, Computing Economics, Miniaturization, Advances in Data 

 Connectivity Models: IoT implementations use different technical


communications models, each with its own characteristics. Four common
communications models described by the Internet Architecture Board
include: Device-to-Device, Device-to-Cloud, Device-to-Gateway,
and Back-End Data-Sharing. These models highlight the flexibility in the
ways that IoT devices can connect and provide value to the user.
IoT devices are implemented using both hardware and software components.
Dedicated hardware components are used to implement the interface with the
physical world, and to perform tasks which are more computationally complex.
Microcontrollers are used to execute software that interprets inputs and controls
the system. This module discusses the roles of both the hardware and software
components in the system. The functions of common hardware components are
described and the interface between the software and hardware through the
microcontroller is explained. IoT devices often use an operating system to
support the interaction between the software and the microcontroller. We will
define
the role of an operating system in an IoT device and how an IoT operating
system differs from a standard one. 
How IoT works

An IoT ecosystem consists of web-enabled smart devices that use embedded


processors, sensors and communication hardware to collect, send and act on
data they acquire from their environments. IoT devices share the sensor data
they collect by connecting to an IoT gateway or other edge device where data is
either sent to the cloud to be analyzed or analyzed locally. Sometimes, these
devices communicate with other related devices and act on the information they
get from one another. The devices do most of the work without human
intervention, although people can interact with the devices -- for instance, to set
them up, give them instructions or access the data.

The connectivity, networking and communication protocols used with these


web-enabled devices largely depend on the specific IoT applications deployed .
Benefits of IoT

The internet of things offers a number of benefits to organizations, enabling


them to:

 monitor their overall business processes;

 improve the customer experience;

 save time and money;

 enhance employee productivity;

 integrate and adapt business models;

 make better business decisions; and

 generate more revenue.


IoT encourages companies to rethink the ways they approach their businesses,
industries and markets and gives them the tools to improve their business
strategies.

Consumer and enterprise IoT applications

There are numerous real-world applications of the internet of things, ranging


from consumer IoT and enterprise IoT to manufacturing and industrial IoT
(IoT). IoT applications span numerous verticals, including automotive, telco,
energy and more.

In the consumer segment, for example, smart homes that are equipped with


smart thermostats, smart appliances and connected heating, lighting and
electronic devices can be controlled remotely via computers, smartphones or
other mobile devices.

Wearable devices with sensors and software can collect and analyze user data,
sending messages to other technologies about the users with the aim of making
users' lives easier and more comfortable. Wearable devices are also used for
public safety -- for example, improving first responders' response times during
emergencies by providing optimized routes to a location or by tracking
construction workers' or firefighters' vital signs at life-threatening sites.

In healthcare, IoT offers many benefits, including the ability to monitor patients
more closely to use the data that's generated and analyze it. Hospitals often use
IoT systems to complete tasks such as inventory management, for both
pharmaceuticals and medical instruments.
CHAPTER-2

LITERATURE SURVEY

ARDUINO BASED SMART ELECTRONIC VOTING MACHINE

The basic idea of this project is to create an electronic voting machine that will
help to eradicate defrauding of the manual voting systems and prior versions of
electronic voting. The thesis looks into and proposes a system that includes
multiple layers of verifications to ensure the reliability of the device. With the
inclusion of biometric fingerprint sensor, each voter is entered into the system
only after being recognized and checked with the given database of enlisted
voters. Once the corresponding fingerprint is matched with the information
provided, the voter will be allowed to proceed for choosing their preferred
candidate from the panel of buttons. The final vote is then displayed onto a
LCD for the satisfaction of voters. The proposed project displays transparency
and also carries the feature of being autonomous during the course of operation.

BIOMETRICALLY SECURED ELECTRONIC VOTING MACHINE

Voting is one of the fundamental rights of every citizen of a democratic country.


By utilizing the right of the voting, people elect their most suitable leader who
will lead them. In this modern era where technology is being used in every
aspect of life, election is a place to apply the best technology. In this project, we
have developed a system which will be suitable for elections in countries like
Bangladesh. The usual system for voting in Bangladesh is ballot paper-based
voting system, where voting is sometimes unfair. In this proposed system we
have used Arduino and Finger Print Scanner that can identify each voter, count
votes and can prevent fake votes. The proposed system is more digital,
technology-based and secured system

E-SMART VOTING MACHINE WITH SECURE DATA


IDENTIFICATION USING CRYPTOGRAPHY

ESVS utilizes Aadhar number of users for identification and verification of


voter. With smart voting system, voter can cast their vote with mobile phone
and avoid all kind of queues at polling booth. At first, user must punch in its
Aadhar number in the ESVS. The ESVS utilizes the Aadhar number to
authenticate the user through OTP which will be received on their registered
Aadhar linked mobile number. People without Smart phones can vote through
ESVS with an additional step of authentication through highly sophisticated
Aadhar based biometric authentication.

FINGERPRINT VOTING SYSTEM USING ARDUINO

Fingerprint Voting System was implemented with the Arduino technology. In


this System a voter can poll his vote easily. In this database server all voters'
information was stored to register in this system, the voter should fill a
registration form with the help of a user id and password. This information will
be checked by the database server. Because all the information about the voter
would be already there is anything wrong, the system will not allow the voter to
poll his or her vote. This system is helpful to the voter's decreases the time of
voting process also. It is more Secured way. Fingerprint is an important identity
of the user. Fingerprint Voting System is user-friendly. It has simple
architecture, responses very quickly manner, it reduces the polling time, Easy to
carrying to polling center from the polling box, Reduce the staff of voting
center, it provides easy and accurate counting without any troubles.
ELECTRONIC VOTING SYSTEM USING FINGER PRINT BASED ON
AADHAR

The primary proposition of this venture is to build up a safe Electronic voting


machine utilizing Finger print distinguishing proof technique, for unique mark
getting to we utilize AADHAR card database. At the season of voting in the
races, the e-voting process confirmation should be possible utilizing finger vein
detecting, which empowers the electronic poll reset for enabling voters to cast
their votes. Additionally, the voted information and voter’s subtle elements can
be sent to the adjacent Database.

A PROPOSED FRAMEWORK FOR BIOMETRIC ELECTRONIC


VOTING SYSTEM

In this modern age of digitization, Bangladesh Election Commission (EC) still


uses manual system during election for vote casting. Recently, it is considering
to introduce Electronic Voting Machine (EVM) in parliamentary elections
though EVM is not entirely automated and has many limitations. In this work,
we have designed an automated biometric voting system with a convenient user
interface and integrated database system containing all voters' information.
Casted votes will be counted automatically at the end of the voting process and
result will be generated centrally with less time. Therefore, the proposed system
will improve the voting management of Bangladesh by ceasing fraudulent
activities, corruptions, ensuring security, transparency, fairness, accuracy and
keeping backup trails of voting process.
CHAPTER-3

PROJECT DESCRIPTION

3.1 EXISTING SYSTEM

• In existing system, they use ARM7 processor-based voting machine.

• The system is complex, it doesn't tend to scale up well in the high-


performance segment since they don’t have extensions

Disadvantage:

• ARM is not compatible with X86 hence it cannot be used in


Windows.

• The speeds are limited in some processors which might create


problems.

• Scheduling instructions is difficult in case of ARM processors.

• There must be proper execution of instructions by programmer.

• ARM Processor needs very highly skilled programmers.

3.2 PROPOSED SYSTEM:

• In the proposed system, we are using an Arduino UNO based Aadhar


facilitated electronic voting machine possessing a Two-Tier fingerprint
security.
• In this System all the relevant information is taken from the voters and
are stored in the database, then they are provided with unique ID.

Advantage

• Simple, easy to use, effortless function, large community.

3.3 BLOCK DIAGRAM:

3.4 HARDWARE REQUIREMENTS

• ARDUINO UNO
• IOT
• RFID READER
• RFID TAG
• BUZZER
• FINGER PRINT SENSOR
3.5 SOGTWARE REQUIREMENTS:
• ARDUINO IDE
• EMBEDDED C
CHAPTER-4
HARDWARE DESCRIPTION
4.1 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 ceramic resonator, 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 Atmega16U2 (Atmega8U2 up to version R2)
programmed as a USB-to-serial converter. Revision 2 of the Uno board has a
resistor pulling the 8U2 HWB line to ground, making it easier to put into DFU
mode. Revision 3 of the board has the following new features:

 1.0 pinout: added SDA and SCL pins that are near to the AREF pin and two
other new pins placed near to the RESET pin, the IOREF that allow the shields
to adapt to the voltage provided from the board. In future, shields will be
compatible both with the board that use the AVR, which operate with 5V and
with the Arduino Due that operate with 3.3V. The second one is a not connected
pin, that is reserved for future purposes.

 Stronger RESET circuit.

 Atmega 16U2 replace the 8U2. "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 Arduino, 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.
POWER:

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. This pin outputs a regulated 5V from the regulator on the board. The
board can be supplied with power either from the DC power jack (7 - 12V), the
USB connector (5V), or the VIN pin of the board (7-12V). Supplying voltage
via the 5V or 3.3V pins bypasses the regulator, and can damage your board. We
don't advise it.

 3V 3. A 3.3-volt supply generated by the on-board regulator. Maximum


current draw is 50 mA.

 GND. Ground pins.

ARDUINO UNO:
Memory

The ATmega328 has 32 KB (with 0.5 KB used for the bootloader). It also has 2
KB of SRAM and 1 KB of EEPROM (which can be read and written with the
EEPROM library). Input and Output Each of the 14 digital pins on the Uno can
be used as an input or output, using pin Mode (), digital Write (), and digital
Read () 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 kilo Ohms.

In addition, some pins have specialized functions:

 Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial
data. These 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
attach Interrupt () function for details.

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

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


communication using the SPI library.

 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, labeled A0 through A5, 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 analog Reference () function. Additionally, some pins have
specialized functionality:

 TWI: A4 or SDA pin and A5 or SCL pin. Support 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 analog Reference
().

 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. See also the mapping
between Arduino pins and ATmega328 ports. The mapping for the Atmega8,
168, and 328 is identical. 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 ATmega16U2 on the board
channels this serial communication over USB and appears as a virtual com port
to software on the computer. The '16U2 firmware uses the standard USB COM
drivers, and no external driver is needed.

However, on Windows, a .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-to-serial chip and USB connection to the
computer (but not for serial communication on pins 0 and 1). A Software Serial
library allows for serial communication on any of the Uno's digital pins. The
ATmega328 also supports I2C (TWI) and SPI communication. The Arduino
software includes a Wire library to simplify use of the I2C bus; see the
documentation for details. For SPI communication, use the SPI library.
PIN CONFIGURATION:

USB Overcurrent Protection

The Arduino Uno has a resettable poly fuse 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 Characteristics

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. Four 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.

4.2 WIFI MODULE:

The ESP8266 is a low-cost Wi-Fi microchip with full TCP/IP


stack and microcontroller capability produced by manufacturer Espressif
Systems[1] in Shanghai, China.

The chip first came to the attention of western makers in August 2014 with
the ESP-01 module, made by a third-party manufacturer Ai-Thinker. This small
module allows microcontrollers to connect to a Wi-Fi network and make simple
TCP/IP connections using Hayes-style commands. However, at first there was
almost no English-language documentation on the chip and the commands it
accepted.[2] The very low price and the fact that there were very few external
components on the module, which suggested that it could eventually be very
inexpensive in volume, attracted many hackers to explore the module, chip, and
the software on it, as well as to translate the Chinese documentation

FEATURE:

 Memory:
 32 KiB instruction RAM
 32 KiB instruction cache RAM
 80 KiB user-data RAM
 16 KiB ETS system-data RAM
 External QSPI flash: up to 16 MiB is supported (512 KiB to 4 MiB
typically included)
 IEEE 802.11 b/g/n Wi-Fi
 Integrated TR switch, balun, LNA, power amplifier and matching
network
 WEP or WPA/WPA2 authentication, or open networks
 16 GPIO pins
 SPI
 I²C (software implementation)[6]
 I²S interfaces with DMA (sharing pins with GPIO)
 UART on dedicated pins, plus a transmit-only UART can be enabled on
GPIO2
 10-bit ADC (successive approximation ADC)

ESP8266 is Wi-Fi enabled system on chip (SoC) module developed by


Espressif system. It is mostly used for development of IoT (Internet of Things)
embedded applications.

ESP8266-01 WIFI Module

ESP8266 comes with capabilities of

 2.4 GHz Wi-Fi (802.11 b/g/n, supporting WPA/WPA2),


 general-purpose input/output (16 GPIO),
 Inter-Integrated Circuit (I²C) serial communication protocol,
 analog-to-digital conversion (10-bit ADC)
 Serial Peripheral Interface (SPI) serial communication protocol,
 I²S (Inter-IC Sound) interfaces with DMA(Direct Memory Access)
(sharing pins with GPIO),
 UART (on dedicated pins, plus a transmit-only UART can be
enabled on GPIO2), and
 pulse-width modulation (PWM).
It employs a 32-bit RISC CPU based on the Tensilica Xtensa L106 running at
80 MHz (or overclocked to 160 MHz). It has a 64 KB boot ROM, 64 KB
instruction RAM and 96 KB data RAM. External flash memory can be accessed
through SPI.

ESP8266 module is low cost standalone wireless transceiver that can be used
for end-point IoT developments.

To communicate with the ESP8266 module, microcontroller needs to use set of


AT commands. Microcontroller communicates with ESP8266-01 module using
UART having specified Baud rate.

There are many third-party manufacturers that produce different modules based
on this chip. So, the module comes with different pin availability options like,

 ESP-01 comes with 8 pins (2 GPIO pins) – PCB trace antenna.


(shown in above figure)
 ESP-02 comes with 8 pins, (3 GPIO pins) – U-FL antenna connector.
 ESP-03 comes with 14 pins, (7 GPIO pins) – Ceramic antenna.
 ESP-04 comes with 14 pins, (7 GPIO pins) – No ant.
etc.

For example, below figure shows ESP-01 module pins


ESP8266-01 Module Pin Description

ESP8266-01 Module Pins

3V3: - 3.3 V Power Pin.

GND: - Ground Pin.

RST: - Active Low Reset Pin.

EN: - Active High Enable Pin.

TX: - Serial Transmit Pin of UART.

RX: - Serial Receive Pin of UART.

GPIO0 & GPIO2: - General Purpose I/O Pins. These pins decide what mode
(boot or normal) the module starts up in. It also decides whether the TX/RX
pins are used for Programming the module or for serial I/O purpose.

To program the module using UART, Connect GPIO0 to ground and GPIO2 to
VCC or leave it open. To use UART for normal Serial I/O leave both the pins
open (neither VCC nor Ground).

4.3 RFID:
RFID is an acronym for “radio-frequency identification” and refers to a
technology whereby digital data encoded in RFID tags or smart labels (defined
below) are captured by a reader via radio waves. RFID is similar to barcoding in
that data from a tag or label are captured by a device that stores the data in a
database. RFID, however, has several advantages over systems that use barcode
asset tracking software. The most notable is that RFID tag data can be read
outside the line-of-sight, whereas barcodes must be aligned with an optical
scanner. 
WORKING

RFID belongs to a group of technologies referred to as Automatic Identification


and Data Capture (AIDC). AIDC methods automatically identify objects,
collect data about them, and enter those data directly into computer systems
with little or no human intervention. RFID methods utilize radio waves to
accomplish this. At a simple level, RFID systems consist of three components:
an RFID tag or smart label, an RFID reader, and an antenna. RFID tags contain
an integrated circuit and an antenna, which are used to transmit data to the
RFID reader (also called an interrogator). The reader then converts the radio
waves to a more usable form of data. Information collected from the tags is then
transferred through a communications interface to a host computer system,
where the data can be stored in a database and analyzed at a later time.

Defining RFID:

RFID or Radio Frequency Identification System is a technology-based


identification system which helps identifying objects just through the tags
attached to them, without requiring any light of sight between the tags and the
tag reader. All that is needed is radio communication between the tag and the
reader.
A Basic RFID System:

3 Main Components of a RFID System

 A RFID tag: It consists of a silicon microchip attached to a small


antenna and mounted on a substrate and encapsulated in different materials
like plastic or glass veil and with an adhesive on the back side to be attached
to objects.

RFID Tag

 A reader: It consists of a scanner with antennas to transmit and receive


signals and is responsible for communication with the tag and receives the
information from the tag.
 A Processor or a Controller: It can be a host computer with a
Microprocessor or a microcontroller which receives the reader input and
process the data.
An RFID Reader

2 Types of RFID Systems:

 Active RFID system: These are systems where the tag has its own power
source like any external power supply unit or a battery. The only constraint
being the life time of the power devices. These systems can be used for larger
distances and to track high value goods like vehicles.
 Passive RFID system: These are systems where the tag gets power
through the transfer of power from a reader antenna to the tag antenna. They
are used for short range transmission.
Here we are mostly concerned with the passive RFID system as it is most
widely used in regular applications like in retail market organizations.

A brief idea about How the Passive RFID System Works:

The tag can be powered either using inducting coupling method or through EM
wave capture method. Lets us have a brief knowledge about the system using
these two methods.

A Passive RFID system using Induction coupling method: In this approach


the RFID tag gets power from the reader through inductive coupling method.
The reader consists of a coil connected to an AC supply such that a magnetic
field is formed around it. The tag coil is placed in the vicinity of the reader coil
and an electromotive force is induced it by the virtue of Faraday’s law of
induction. The EMF causes a flow of current in the coil, thus producing a
magnetic field around it. By the virtue of Lenz law, the magnetic field of the tag
coil opposes the reader’s magnetic field and there will be a subsequent increase
in the current through the reader coil. The reader intercepts this as the load
information. This system is suitable for very short distance communication. The
AC voltage appearing across the tag coil is converted to DC using rectifier and
filter arrangement. 

Passive RFID using Inductive Coupling

 A Passive RFID system using EM wave propagation method: The


antenna present in the reader transmits electromagnetic waves which are
received by the antenna present in the tag as potential difference across the
dipole. This voltage is rectified and filtered to get the DC power. The
receiver antenna is kept at different impedance which causes it to reflect a
part of the received signal. This reflected signal is received by the reader and
monitored accordingly. 

Passive RFID using EM-wave transmission

An Idea about How the Active RFID System Works:

In the active RFID system, the reader sends signal to the tag using an antenna.
The tag receives this information and resends this information along with the
information in its memory. The reader receives this signal and transmits to the
processor for further processing.
An Active RFID system

RFID TAGS AND SMART LABELS

As stated above, an RFID tag consists of an integrated circuit and an antenna.


The tag is also composed of a protective material that holds the pieces together
and shields them from various environmental conditions. The protective
material depends on the application. For example, employee ID badges
containing RFID tags are typically made from durable plastic, and the tag is
embedded between the layers of plastic. RFID tags come in a variety of shapes
and sizes and are either passive or active. Passive tags are the most widely used,
as they are smaller and less expensive to implement. Passive tags must be
“powered up” by the RFID reader before they can transmit data. Unlike passive
tags, active RFID tags have an onboard power supply (e.g., a battery), thereby
enabling them to transmit data at all times. For a more detailed discussion, refer
to this article: Passive RFID Tags vs. Active RFID Tags.

Smart labels differ from RFID tags in that they incorporate both RFID and
barcode technologies. They’re made of an adhesive label embedded with an
RFID tag inlay, and they may also feature a barcode and/or other printed
information. Smart labels can be encoded and printed on-demand using desktop
label printers, whereas programming RFID tags are more time consuming and
requires more advanced equipment.

RFID APPLICATIONS

Although RFID technology has been in use since World War II, the demand for
RFID equipment is increasing rapidly, in part due to mandates issued by the
U.S. Department of Defense (DoD) and Wal-Mart requiring their suppliers to
enable products to be traceable by RFID. Whether or not RFID compliance is
required, applications that currently use barcode technology are good candidates
for upgrading to a system that uses RFID or some combination of the two.
RFID offers many advantages over the barcode, particularly the fact that an
RFID tag can hold much more data about an item than a barcode can. In
addition, RFID tags are not susceptible to the damages that may be incurred by
barcode labels, like ripping and smearing. From the read distance to the types of
tags available, RFID has come a long way since World War II and there is a
bright future ahead. Review the evolution of RFID. For more information about
how RFID works and how to integrate this technology into your business
processes, read our RFID Basics.

4.4 BUZZER

A buzzer or beeper is an audio signaling device, which may


be mechanical, electromechanical, or piezoelectric (piezo for short). Typical
uses of buzzers and beepers include alarm devices, timers, and confirmation of
user input such as a mouse click or keystroke.

TYPES

Electromechanical

Early devices were based on an electromechanical system identical to


an electric bell without the metal gong. Similarly, a relay may be connected to
interrupt its own actuating current, causing the contacts to buzz. Often these
units were anchored to a wall or ceiling to use it as a sounding board. The word
"buzzer" comes from the rasping noise that electromechanical buzzers made.

Mechanical

A joy buzzer is an example of a purely mechanical buzzer and they require


drivers. Other examples of them are doorbells.

Piezoelectric

A piezoelectric element may be driven by an oscillating electronic circuit or


other audio signal source, driven with a piezoelectric audio amplifier. Sounds
commonly used to indicate that a button has been pressed are a click, a ring or a
beep.

A piezoelectric buzzer/beeper also depends on acoustic cavity resonance


or Helmholtz resonance to produce an audible beep

APPLICATIONS

While technological advancements have caused buzzers to be impractical and


undesirable, there are still instances in which buzzers and similar circuits may
be used. Present day applications include:

 Novelty uses
 Judging panels
 Educational purposes
 Annunciator panels
 Electronic metronomes
 Game show lock-out device
 Microwave ovens and other household appliances
 Sporting events such as basketball games
 Electrical alarms
 Joy buzzer (mechanical buzzer used for pranks)

Simple Piezo Buzzer circuit diagram

Piezo buzzers are one of the most common buzzers available around, they got
their name from the piezoelectric material used as the active element.

These buzzers are usually driven at a relatively higher voltage but low current,
consumes a little power, but still capable of producing very high sound.

The Piezo element must be a three terminal one, like in the picture.

The blue wire is connected to feedback(F) terminal, red wire to the main (M)
terminal and the black wire to the piezo element’s ground(G) plate.
The inductor coil’s value and shape is not crucial. You can use any coil
from 1mH to 10mH or more, or even no measured value at all. I used a 40 turn
coil on a small ferrite toroid in the final design.

Circuit diagram and construction


Lets have a look at the circuit diagram,

Note the piezoelectric element’s pinout, M is the main terminal, F is the


feedback terminal and G is the ground plate.

The circuit is fairly simple, you can use a little piece of strip board to make it.
As this piezo buzzer circuit uses very few components, so it also could be
constructed by soldering the components to each other.
When A voltage is applied to the electrodes of the piezo element, they produces
flex in either way. This flex force bends the ground plate up and down.

The exact opposite thing happens too, when a a piezoelectric element is


subjected to varying pressure, it produces voltage.

As you’ve seen before, self drive piezo buzzers are constructed with an extra
electrically isolated feedback electrode. The voltage created by the flex force is
available in the feedback terminal.

The piezo buzzer is placed in a resonant cavity, there is a hole in the opposite
side of the resonant cavity from where the buzzing sound  comes out.

The driver circuit and piezo buzzer co-operates soon between themselves and
they starts oscillating on the resonant frequency of the piezo buzzer.

Piezo Buzzer Characteristics

 Wide operating voltage: 3~250 V

 Lower current consumption: less than 30 mA higher rated frequency

 Larger footprint
 Higher sound pressure level

STRUCTURE OF PIEZO BUZZER

There are two types of piezo buzzers - transducers and indicators. Transducers
consist of a casing, a piezoceramic element and a terminal. In order to operate a
transducer, the user must send a square wave signal to the buzzer. Indicators
consist of a casing, a piezoceramic element, a circuit board and a terminal. In
order to operate an indicator, the user must send the buzzer a specified dc
voltage.

4.5 FINGER PRINT SENSOR:

Fingerprint scanners are security systems of biometrics. They are used to


unlock doors and in other security applications. During the 2010s fingerprint
scanners became commonplace on mobile phones.
TYPES

Optical reflexive

They are based on the oldest technique, that consists of placing your finger on a
glass surface or a prism that is illuminated by a led diode. When the ridges of
fingerprints touch the surface, the light is absorbed, while between these crests a
total reflection occurs. The resulting light and dark areas are recorded in an
image sensor.

In practice there are some difficulties with this technique: the images obtained
with wet and dry fingers are very different and, in addition, the system is
sensitive to dust and dirt on the surface. The unit has a considerable size,
impractical and expensive. This system is easy to cheat and if the skin is
damaged, the fingerprint is not recognized correctly. The recognition of the
fingerprint of older people is also difficult to do because the skin is not elastic
enough. In some circumstances this may result in false recognition. If the stored
fingerprint was taken with less pressure, false acceptances may occur.

Capacitive

The sensor is a silicon integrated circuit with a surface that is covered by a large
number of transducer elements (or pixels), with a typical resolution of 500 dpi.
Each element contains two adjacent metal electrodes. The capacity between the
electrodes, which forms a feedback path for an inverting amplifier, is reduced
when the finger is applied to said surface: it is further reduced when it detects
ridges and less reduced when it detects the space between them.

The sensor is susceptible to electrostatic discharge. These sensors only work


with normal healthy skins, they are not operative being used on skins with hard
areas, calluses or scars. Moisture, grease or dust can also affect its operation.

Mechanical

It consists of tens of thousands of tiny pressure transducers that are mounted on


the surface of the sensor. An alternative design uses switches that are closed
when pressed by a ridge, but that stay open when they are under a valley. This
only provides one bit of information per pixel, instead of working with a gray
scale.

Thermal

In this case the heat driven by the finger is detected, which is greater when there
is a ridge than when there is a valley. A silicon component has been developed
with a matrix of pixels called "Finger Chip", that is, "finger integrated circuit",
each of which is covered with a layer of pyroelectric material in which a change
in temperature translates into a change in the load distribution of its surface. The
image is in the gray scale that has the right quality even with the finger worn,
with dirt, with grease or with humidity. The sensor has a robust protective layer
and can provide a dynamic output.

Dynamic output

Most of the sensors described have been altered in the past. To avoid this, a new
operating mode has been added. Instead of simply placing your finger statically
on the sensor, the finger moves slowly along it. The sensor only has a narrow
sensitive area, and generates a complete sequence of images, which can be
reassembled, by means of a processor, in a complete image. The benefits are
improved appreciably and the elimination of any residual grease is guaranteed.

Uses

The most important use area is in access control for computers. This is
especially important for laptops and PDAs. Thanks to the price falling, more
and more devices are equipped with sensors. Other devices with built-in
fingerprint sensors include USB hard drives, USB memory modules and card
readers. They are also available in mice and keyboards.

Sensors are increasingly used to secure financial transactions and change


machines for "online" banking. In the future, the owner's fingerprint will be
stored securely on identity cards and credit cards and may also be used for
authentication of emails using digital signatures.

Direct physical access to rooms and devices can also be ensured by coupling
fingerprint sensors with door opening systems.
CHAPTER-5

SOFTWARE DESCRIPTIONS

ARDUINO IDE:

The Arduino IDE is incredibly minimalistic, yet it provides a near-complete


environment for most Arduino-based projects. The top menu bar has the
standard options, including “File” (new, load save, etc.), “Edit” (font, copy,
paste, etc.), “Sketch” (for compiling and programming), “Tools” (useful
options for testing projects), and “Help”. The middle section of the IDE is a
simple text editor that where you can enter the program code. The bottom
section of the IDE is dedicated to an output window that is used to see the
status of the compilation, how much memory has been used, any errors that
were found in the program, and various other useful messages.

Projects made using the Arduino are called sketches, and such sketches are
usually written in a cut-down version of C++ (a number of C++ features are
not included). Because programming a microcontroller is somewhat different
from programming a computer, there are a number of device-specific
libraries (e.g., changing pin modes, output data on pins, reading analog
values, and timers). This sometimes confuses users who think Arduino is
programmed in an “Arduino language.” However, the Arduino is, in fact,
programmed in C++. It just uses unique libraries for the device.

The 6 Buttons

While more advanced projects will take advantage of the built-in tools in the
IDE, most projects will rely on the six buttons found below the menu bar.

The button bar

1. The check mark is used to verify your code. Click this once you have
written your code.
2. The arrow uploads your code to the Arduino to run.
3. The dotted paper will create a new file.
4. The upward arrow is used to open an existing Arduino project.
5. The downward arrow is used to save the current file.
6. The far-right button is a serial monitor, which is useful for sending
data from the Arduino to the PC for debugging purposes.
The source code for the IDE is released under the GNU General Public License,
version 2. The Arduino IDE supports the languages C and C++ using special
rules of code structuring. The Arduino IDE supplies a software library from
the Wiring project, which provides many common input and output procedures.

User-written code only requires two basic functions, for starting the sketch and
the main program loop, that are compiled and linked with a program
stub main() into an executable cyclic executive program with the GNU
toolchain, also included with the IDE distribution. The Arduino IDE employs
the program avrdude to convert the executable code into a text file in
hexadecimal encoding that is loaded into the Arduino board by a loader
program in the board's firmware

Projects made using the Arduino are called sketches, and such sketches are
usually written in a cut-down version of C++ (a number of C++ features are
not included). Because programming a microcontroller is somewhat different
from programming a computer, there are a number of device-specific
libraries (e.g., changing pin modes, output data on pins, reading analog
values, and timers). This sometimes confuses users who think Arduino is
programmed in an “Arduino language.” However, the Arduino is, in fact,
programmed in C++. It just uses unique libraries for the device.

The Arduino IDE supports the languages C and C++ using special rules of code


structuring. The Arduino IDE supplies a software library from
the Wiring project, which provides many common input and output procedures.
User-written code only requires two basic functions, for starting the sketch and
the main program loop, that are compiled and linked with a program
stub main() into an executable cyclic executive program with the GNU
toolchain, also included with the IDE distribution.

The Arduino IDE employs the program avrdude to convert the executable code
into a text file in hexadecimal encoding that is loaded into the Arduino board by
a loader program in the board's firmware.

5.2 EMBEDDED C:

Embedded C Programming is the soul of the processor functioning inside each


and every embedded system we come across in our daily life, such as mobile
phone, washing machine, and digital camera.
Each processor is associated with an embedded software. The first and foremost
thing is the embedded software that decides functioning of the embedded
system. Embedded C language is most frequently used to program the
microcontroller.

Earlier, many embedded applications were developed using assembly level


programming. However, they did not provide portability. This disadvantage was
overcome by the advent of various high-level languages like C, Pascal, and
COBOL. However, it was the C language that got extensive acceptance for
embedded systems, and it continues to do so. The C code written is more
reliable, scalable, and portable; and in fact, much easier to understand.

C language was developed by Dennis Ritchie in 1969. It is a collection of one or


more functions, and every function is a collection of statements performing a
specific task.
C language is a middle-level language as it supports high-level applications and
low-level applications. Before going into the details of embedded C
programming, we should know about RAM memory organization.

Salient features of the language

 C language is a software designed with different keywords, data types,


variables, constants, etc.
 Embedded C is a generic term given to a programming language written
in C, which is associated with a particular hardware architecture.
 Embedded C is an extension to the C language with some additional
header files. These header files may change from controller to controller.
 The microcontroller 8051 #include<reg51.h> is used.
The embedded system designers must know about the hardware architecture to
write programs. These programs play prominent role in monitoring and
controlling external devices. They also directly operate and use the internal
architecture of the microcontroller, such as interrupt handling, timers, serial
communication and other available features.

The basic additional features of the embedded software

Data types
The data type refers to an extensive system for declaring variables of different
types like integer, character, float, etc. The embedded C software uses four data
types that are used to store data in the memory.
The ‘char’ is used to store any single character; ‘int’ is used to store integer
value, and ‘float’ is used to store any precision floating point value.
The size and range of different data types on a 32-bit machine is given in the
following table. The size and range may vary on machines with different word
sizes.

Keywords
There are certain words that are reserved for doing specific tasks. These words
are known as keywords. They are standard and predefined in the Embedded C.
Keywords are always written in lowercase. These keywords must be defined
before writing the main program. The basic keywords of an embedded software
are given below:

Keywords
sbit: This data type is used in case of accessing a single bit of SFR register.
 Syntax: sbit variable name = SFR bit;
 Ex: sbit a=P2^1;
 Explanation: If we assign p2.1 as ‘a’ variable, then we can use ‘a’ instead
of p2.1 anywhere in the program, which reduces the complexity of the
program.
Bit: This data type is used for accessing the bit addressable memory of RAM
(20h-2fh).
 Syntax: bit variable name;
 Ex: bit c;
 Explanation: It is a bit sequence setting in a small data area that is used
by a program to remember something.
SFR: This data type is used for accessing a SFR register by another name. All
the SFR registers must be declared with capital letters.
 Syntax: SFR variable name = SFR address of SFR register;
 Ex: SFR port0=0x80;
 Explanation: If we assign 0x80 as ‘port0’, then we can use 0x80 instead
of port0 anywhere in the program, which reduces the complexity of the
program.
SFR Register: The SFR stands for ‘Special Function Register’. Microcontroller
8051 has 256 bytes of RAM memory. This RAM is divided into two parts: the
first part of 128 bytes is used for data storage, and the other of 128 bytes is used
for SFR registers. All peripheral devices like I/O ports, timers and counters are
stored in the SFR register, and each element has a unique address.

The Structure of an Embedded C Program

 comments
 preprocessor directives
 global variables
 main() function
{

 local variables
 statements
 …………..
 …………..
}

 fun(1)
{

 local variables
 statements
 …………..
 …………..
}
CHAPTER-6

CONCLUSION

To make the voting system of faster and more secure, an attempt has been taken
so that the voting system can be acceptable to all kind of citizen of the nation.
The security was the main concern of the whole project. More security has been
added compared to usual electronic voting machine by adding the fingerprint
feature so that there cannot be any kind of cheating. By using this system, the
national voting system will be more secure, faster, easy to use and more
economical. The system also consumes very low power and the device is easy
to carry. The total cost of one machine would be less than BDT 5500. In one
word, the system will make voting system more reliable and more secure. It is
better than traditional ballot-paper system.
REFERENCE

[1] V. Kiruthika Priya , V. Vimaladevi , B. Pandimeenal , T. Dhivya,


“Arduino based smart electronic voting machine”, 2017 International
Conference on Trends in Electronics and Informatics (ICEI) Year: 2017,
conference Paper, Publisher: IEEE.

[2] Rahil Rezwan, Huzaifa Ahmed, M. R. N. Biplo, S. M. Shuvo, Md.


Abdur Rahman, “Biometrically secured electronic voting machine”, 2017
IEEE Region 10 Humanitarian Technology Conference (R10- HTC).

[3] Prof. Sunita Patil, Amish Bansal, Utkarsha Raina, Vaibhavi Pujari,
Raushan Kumar, “E-Smart Voting Machine with Secure Data
Identification Using Cryptography”, 2018 Publisher: IEEE

[4] Annalisa Franco, “Fingerprint: Technologies and Algorithms for


Biometrics Applications”, Year: 2011 , Course , Publisher: IEEE.

[5] A. Piratheepan, S. Sasikaran, P. Thanushkanth, S. Tharsika, M.


Nathiya, C. Sivakaran, N. Thiruchchelvan and K. Thiruthanigesan,
“Fingerprint Voting System Using Arduino”, College of Technology Jaffna,
Sri Lanka University College of Anuradhapura, University of Vocational
Technology, Sri Lanka.

[6] ieeexplore.ieee.org,”fingerprintImageenhancement and miniature


extraction”Raymond thai.

[7] J.Ramprabu, G.Sindhuja "Performance Analysis of Open-Source Real


Time Operating Systems" International Journal of Advanced Research in
Computer Engineering & Technology (IJARCET) Volume 4 Issue 2,
February 2015, ISSN: 2278 – 1323
[8] J Ramprabu, Kamini D”Remote Monitoring And Controlling Of Green
House Via GPRS”, International Journal Of Computer Science And
Information Technologies,Vol 4,2012

[9] P. Keerthana, B.G. Geetha, 3 P. Kanmani,” Crustose Using Shape


Features And Color Histogram With Knearest Neighbour Classifiers”,
International Journal Of Innovations In Scientific And Engineering
Research, Vol. 4, Iss. 9,2017,Pp. 199-203

[10] K.Malarvizhi, R.Kiruba,” A Novel Method Of Supervision And


Control Of First Order Level Process Using Internet Of Things”, Journal
Of Advanced Research In Dynamical And Control Systems, Vol. 9, Sp– 6 ,
2017, Pp. 1876-1894.

[11] Latha.L, Suriya.P And Sindhuja.V.P,” Automating The Irrigation


System”, International Journal Of Pure And Applied Mathematics,
Vol.116, No. 11,2017, Pp. 211- 219.

[12] Rohan Patel, Vaibhav Ghorpade, Vinay Jain and Mansi Kambli,
“Fingerprint Based e-Voting System using Aadhar Database”, 2015.

[13] S Wolchok, E Wustrow, JA Halderman. “Security analysis of India's


electronic voting machines” 2010.

[14] Qijun Zhao, Lei Zhang, David Zhang and Nan Luo, “Adaptive Pore
Model for Fingerprint Pore Extraction”, IEEE, 978-1-4244-2175 - 6/08.

[15] Md. Mahboob Karim, Nabila Shahnaz Khan, Ashratuz Zavin,


Shusmoy Kundu, Asibul Islam, Brazab Nayak, “A proposed framework for
biometric electronic voting system”, IEEE International conference on
2017.
[16] Soumyajit Chakraborty, Siddhartha Mukherjee, Bhaswati
Sadhukhan, Kazi Tanvi Yasmin,“Biometric Voting System using Adhar
Card in India” 2016.

[17] Afrina Ali, “Is Bangladesh going for e-voting?”, [Online] 06


February, 2017.

[18] Remmert, M. (2004): “Toward European Standards on Electronic


Voting”, The Council of Europe [accessed 23 March 2017].

[19] Bhuvanapriya R., Rozil Banu S., Sivapriya P. and Kalaiselvi V. K.


G., "Smart voting" , 2017 2nd International Conference on Computing and
Communications Technologies (ICCCT), Chennai, 2017, pp. 143-147.

[20] Arduino Website http://arduino.cc/en/Main/arduinoBoardUno


[accessed 8 August 2017]

You might also like