Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
End of year project report on remote sms based voting system by fomagha tatou mohamed
1. - 1 -
DEDICATION
This piece of work is dedicated to the entire staff of the Faculty of Engineering and
Technology as well as to all my classmates
2. - 2 -
ABSTRACT
Electoral fraud is a very big and severe handicap to development. The impact is
severely felt right down at the local level and the consequences are always tragic and
catastrophic. Electronic voting systems have the potential to improve traditional voting
procedures which provide additional advantage of having its flexibility and sophistication.
Numerous electronic voting schemes have been proposed in the past, but this provide real
authentication for the voters. On the other hand, GSM (Global System for Mobile
communications) is the most widely used mobile networking standard. There are more than
one billion GSM users worldwide that represent a large user potential not for mobile
telephony, but also for other mobile applications that exploit the mature GSM infrastructure.
In this project we are presenting electronic voting scheme by using GSM communication. By
integrating an electronic voting scheme with the GSM infrastructure, we are able to modify
existing GSM authentication mechanisms and provide enhanced voter authentication and
mobility in order to maintain voter privacy. The objective and verdict takes of this project is
to avoid the queue in voting time. Voting machines provide easy access to cast the vote by
using mobile phone. The system is interactive as it has the capability to send results to remote
voters at the end of the process.
Keywords: GSM, Mobile, LCD, Subscriber Identity Module (SIM).
3. - 3 -
ACKNOWLEDGEMENTS
I have taken efforts and devoted a lot of energy and time in this project. It will not
have been possible without the kind support of many individuals and organisations. I will like
to extend my sincere thanks to all of them.
My endless appreciations are given to the almighty God for the breath of life, health
and care he has always provided.
I am highly indebted to the entire Faculty of Engineering and Technology staff for the
knowledge they instilled in me in my whole academic programme. Particularly to Mr
Nouadjep Serge who played a vital role in guiding all my steps from the beginning to the end
of this project.
My thanks and kind appreciations go to my parents and my entire family who worked
tooth and nail to make sure I accomplish this project in the most excellent way possible.
My profound and sincere gratitude to all my classmates for the endless co-operative
support we have always given each other.
4. - 4 -
GENERAL INTRODUCTION
Voting is a vital process of the democratic process. As such, the efficiency, reliability,
and security of the Technologies involved are critical. Traditional voting technologies consist
of hand-counted paper ballots. These paper based systems main leads to number of problems,
including: Unacceptable percentages of lost, stolen, or miscounted ballots, Votes lost through
unclear or invalid ballot marks, Limited accommodations for handicapped people.
Today, the development and widespread use of information technologies is changing
the way people perception towards voting processes and, ultimately, the way they vote. At the
forefront of these new technologies is poll-site direct recording electronic (DRE) voting and
remote Internet-based voting. In democratic based societies, voting is an important toll to
Collect and reconsider people opinion… Traditionally, voting is done in centralized or
distributed places called voting booths. Voters go to voting booths and cast their votes under
the supervision of authorized parities. The votes are then counted manually once the election
has finished. With the rapid development of computer technology and cryptographic
methods, electronic voting systems can be employed that replace the unusual and problem
oriented and most importantly error-prone human component. In order to increase efficiency
and accuracy of voting procedures, computerized voting systems were developed to help
colleting and counting the votes. These include lever voting machines, punched cards for
voting, optical mark-sense scanners and direct recording electronic (DRE) type of voting
systems in our purposed use.
For a variety of reasons voters may be unlikely to attend voting booths physically, but
need to vote for the sake of country future. For example, from home or while travelling
abroad. Hence, there is great demand for remote voting procedures that are easy, transparent
and most importantly, secure. Today, the most common and practical way for remote voting is
to use postal voting, where voters cast their votes by post. However, it lacks proper
authentication and involves a time-lapsing procedure. To improve mobility, address security
problems of remote voting procedures and systems. We present an electronic voting using
GSM. With more than one billon users, the GSM authentication infrastructure is the most
widely deployed authentication mechanism so far. We insist to use of well-designed GSM
authentication infrastructure to improve mobility and security of mobile voting procedures.
5. - 5 -
Another very important functionality of this project is its ability to send a feedback
SMS to all subscribers on the statistics of the votes as well as the winner at the end of the
session.
To best accomplish the project, we have structured it into two main parts which are the
software and hardware respectively. The software part contains all the codes and all the
constraints that are linked to a voting process. The hardware is made up of a transmitters and
receivers that receive information from subscribers and decodes them for good use in the
system. All this is done with an Arduino board and a GSM module that are interconnected.
Other components are attached to smoothen the proper functioning of our system.
6. - 6 -
LISTS OF FIGURES AND PHOTOGRAPHS
Figure 1 The GSM module.................................................................................................. - 18 -
Figure 2 The Arduino Board .............................................................................................. - 20 -
Figure 3 The LCD board ..................................................................................................... - 21 -
Figure 4 The relay module .................................................................................................. - 22 -
Figure 5 Organigram of the voting system.......................................................................... - 24 -
Figure 6 Vote test 1 ............................................................................................................. - 25 -
Figure 7 Vote test 2 ............................................................................................................. - 26 -
Figure 8 Vote test 3 ............................................................................................................. - 27 -
Figure 9 Block diagram of the system ................................................................................ - 28 -
Figure 10 power supply of system ...................................................................................... - 29 -
Figure 11 Arduino-GSM connection................................................................................... - 29 -
Figure 12 Back view of prototype....................................................................................... - 30 -
7. - 7 -
LIST OF TABLES
Table 1 Voter's registration ................................................................................................. - 16 -
Table 2 Party registration .................................................................................................... - 16 -
Table 3 AT commands for GSM......................................................................................... - 19 -
Table 4 PDU AT commands ............................................................................................... - 19 -
Table 5 The LCD Pin configuration.................................................................................... - 22 -
8. - 8 -
Table of content
DEDICATION...................................................................................................................... - 1 -
ABSTRACT.......................................................................................................................... - 2 -
ACKNOWLEDGEMENTS.................................................................................................. - 3 -
GENERAL INTRODUCTION............................................................................................. - 4 -
LISTS OF FIGURES AND PHOTOGRAPHS .................................................................... - 6 -
LIST OF TABLES................................................................................................................ - 7 -
CHAPTER I: OVERVIEW OF THE PROJECT................................................................ - 10 -
I.1 Introduction .......................................................................................................... - 10 -
I.2 Literature Review ................................................................................................. - 10 -
I.2.1) Ballot voting and manual counting .................................................................... - 10 -
I.2.2) Direct electronic recording voting systems........................................................ - 11 -
I.2.3) Fingerprint voting systems (Biometric) ............................................................ - 11 -
I.2.4) RFID based voting systems............................................................................... - 12 -
I.2.5) Internet based voting systems ........................................................................... - 12 -
I.2.6) SMS based voting systems................................................................................ - 12 -
I.3) Conclusion................................................................................................................ - 14 -
CHAPTER II: DESIGN AND METHODOLOGY............................................................ - 15 -
II.1) Design philosophy................................................................................................... - 15 -
II.2) Design approach...................................................................................................... - 15 -
II.3) Design tools............................................................................................................. - 17 -
II.3.1) The GSM modem.............................................................................................. - 17 -
II.3.2) The Arduino board............................................................................................ - 20 -
II.3.3) Liquid Crystal Display (LCD) .......................................................................... - 21 -
II.3.4) The 5V relay module......................................................................................... - 22 -
II.3.5) Other components ............................................................................................. - 23 -
II.4) Conclusion ........................................................................................................... - 23 -
CHAPTER III: IMPLEMENTATION, TESTS, RESULTS AND DISCUSSION ............ - 24 -
III.1 Design Test............................................................................................................ - 24 -
III.1.1) Software test .................................................................................................... - 24 -
III.1.1) hard ware test................................................................................................... - 27 -
III.2 Results and Discussion ..................................................................................... - 30 -
10. - 10 -
CHAPTER I: OVERVIEW OF THE PROJECT
I.1 Introduction
The scope of this project is to design a voting remote voting system that can enable to people
to vote where ever they are once they are registered in the system. Our focus is to facilitate the
and easy the entire voting process to both the election body as well the voters. The day of
election the voter need just to send his party of choice to the server number and sit and wait
for the result. No need for any movement. Just a little click on the phone and it is done. A
voter who finds his or herself in another town still has the ability to cast his vote. Other
voting systems actually exist which we are going to compare with this one to show we have
done the best.
I.2 Literature Review
There are many voting systems that exist in the world today which we are going to study one
by, their various advantages as well as disadvantages before we cite specific areas where they
can be applicable.
I.2.1) Ballot voting and manual counting
Traditionally, voting is done in centralized or distributed places called voting booths.
Voters go to voting booths and cast their votes under the supervision of authorized parities.
The votes are then counted manually once the election has finished. It is the case in most
countries in the world and Cameroon in particular. We witness that in municipal, legislatives
and municipal elections. This voting system brings a lot of disadvantages:
Unreliable since results are always contested.
Massive fraud and corruption.
Unfavourable to physically disable people since they find it difficult to move to
pooling stations.
Unfavourable to remote people if they are present in the location where the
election is taking place.
Takes too much procedure and demands a lot of man effort and time
consuming
Prone to mistakes and errors.
11. - 11 -
The list of disadvantages is long and exhaustive. But this it presents some advantages
as well such as:
Cheap to conceive and does not demand so much investment. With just a book,
people can register, ballots papers are easy to print, and the boxes too are easy
are to get.
They can be transparent with a good electoral commission put in place.
They are good for small communities
I.2.2) Direct electronic recording voting systems
With the advent of modern electronic devices, many electronic voting systems have
been designed which are far better than the traditional and archaic voting systems of ballot
boxes and manual counting. Direct recording electronic voting machine is designed to allow a
direct vote on the machine by manual touch of a screen, monitor, wheel, or other devices and
record the individual votes directly into a computer. It does not use a paper ballot. Some of
the advantages include:
There is no need printing wasteful ballot papers.
There is increase in the speed of vote counting.
Easily usable even by handicap people.
It equally presents some drawbacks which include the high cost needed to implement the
machines.
I.2.3) Fingerprint voting systems (Biometric)
The fingerprint voting system is one of the most used electronic recording voting
systems. With this system, the registration is based on the biometric information of the voter
during registration. With this, every voter is identified within the system since one person can
have just a single biometric data. It presents many advantages:
User registration and authentication is unique.
The system is not vulnerable to hackers and intruders. It provides a convenient and
low cost tier of security
Reduce vote fraud by employing hard-to-forge technologies and materials, such as
minimise the opportunity for identification fraud and buddy punching.
Eliminates problems caused by lost ID‟s or forgotten passwords by using
physiological attributes.
12. - 12 -
The main drawback of the biometric system is that it is difficult and very expensive to
implement, particularly at a large scale.
I.2.4) RFID based voting systems
The RFID based voting is a way of authenticating voters and allowing only the
authorised users to vote. The whole system includes RFID scanner to scan the voter‟s ID
cards. The system is equally secured with unique voter‟s authentication. If the RFID of a voter
is missing, it will be difficult to the user to vote. This is a major drawback.
I.2.5) Internet based voting systems
In most advanced countries, internet based voting is mostly applicable since everyone
has access to the internet. A web application is created to enable people to register and cast
the vote when time comes. A website with a large bandwidth can accommodate as many
people as possible. This thus makes easy the voting and as the counting process. These types
of systems suffer a lot of attacks since intruders will look for all way possible to break into the
site and get information or if possible modify the results at time.
I.2.6) SMS based voting systems
This is actually the scope of our project. As earlier mentioned, each and every user has
a unique voting identification and authentication. More to that, the user is equally identified
even at the level of the mobile operator. Hence making it completely impossible for one
person to have more than one identification. Once registered, the user does not need a
displacement the day of the election reaches. Anywhere he finds himself, he is permitted to
cast his vote and it will be counted. One main advantage of this system is that the GSM
network is very crowded with more than one billion subscribers in the world today. In case of
too much traffic, the system can halt and will delay in operation.
I.2.6.1) Characteristic of SMS based voting
Voting system using SMS offer multiple advantages over traditional paper-based
voting systems advantages that increase citizen access to democratic processes and encourage
participation.
Reduced costs - E-voting systems reduce the materials required for printing and
distributing ballots. Internet based voting, in particular, offers superior economies of
scale in regard to the size of the electoral roll.
13. - 13 -
Increased participation and voting options - E-voting offers increased convenience to
the voter, encourages more voters to cast their votes remotely, and increases the
likelihood of participation for mobile voters. Additionally, it permits access to more
information regarding voting options.
Greater speed and accuracy placing and tallying votes -E-voting's step-by-step
processes help minimize the number of miscast votes. The electronic gathering and
counting of ballots reduces the amount of time spent tallying votes and delivering
results.
Flexibility - E-voting can support multiple languages, and the flexible design allows
up-to-the minute ballot modifications.
I.2.6.2) Security features in GSM
Confidentiality and signalling information element confidentiality. They are summarized as
follows: Subscriber identity confidentiality is the property that the subscriber's real identity
remains secret by protecting his International Mobile Subscriber Identity (IMSI), which is an
internal subscriber identity used only by the network, and using only temporary identities for
visited networks. Subscriber identity authentication is the property that ensures that the
mobile subscriber who is accessing the network or using the service is the one claimed. In our
proposed GSM mobile voting scheme, communication between the mobile equipment and the
GSM network uses standard GSM technology. Hence GSM security features apply. Among
which, the subscriber identity authentication feature is particularly used in the protocol. A
random challenge RAND is issued when a mobile subscriber tries to access a visited network.
The Authentication Centre (AC) computes a response SRES from RAND using an algorithm
A3 under the control of a subscriber authentication key Ki, where the key Ki is unique to the
subscriber, and is stored in the Subscriber Identity Module (SIM) on the Mobile Equipment
(ME), as well as the Home Location Register (HLR). The ME also computes a response
SRES from RAND as well. Then the value SRES computed by the ME is signaled to the
visited network, where it is compared with the value SRES computed by the AC. The access
of the subscriber will be accepted or denied depending upon the result of comparing the two
values. If the two values of SRES are the same, the mobile subscriber has been authenticated,
and the connection is allowed to proceed. If the values are different, then access is denied.
14. - 14 -
I.3) Conclusion
In this chapter we have discussed some existing voting systems. However, we are
going to throw our all focus on the SMS based voting system which in the essence of this
project. It is and should remain the reference of choice for all voting systems we have today.
15. - 15 -
CHAPTER II: DESIGN AND METHODOLOGY
II.1) Design philosophy
This voting system will be very useful to the Buea municipality as well as other
councils and communities around Cameroon. Nowadays, with modern instruments of
information and communication, there is no need for people to still rely on traditional and
archaic systems. Reason why this SMS based voting had to pop up to alleviate the burden the
people always have in moving from place to place before casting a simple vote. Whereas,
with just a simple phone and a SIM slotted inside, this can be done in less than no time and at
no cost. Someone registered in Buea can still vote wherever he finds himself the day of
election. The GSM been a universal network with many subscribers, the system is very
flexible and can fit wherever need be. To realise this system, we have deployed both software
and hardware tools which we will study below.
II.2) Design approach
Just as in a normal electoral process, voters have to register. For our system, 20 people
were registered and among the information that was recorded, we have the name, the
telephone contact which is very necessary for the voting process and the national identity
number. These information are stored in the small database created with the use of Arduino
and are used to identify each and every user. We equally believe then user is equally
identified at the level of the mobile network operator. This thus makes the entire voting
procedure unique and secured with a unique voter‟s identification. The table below is the
information recorded during registration.
NAME CONTACT IDENTITY NUMBER
MOHAMED FOMAGHA +237679425420 GHSDHJSDHJSHJAF
TABE ACHERE OBEN +237653777731 GHVSDHKJHSKFNC
NJUACHA HUBERT M +237675921292 HDJDJ HDHDKKSHB
VICTOR MAGHEM Y +237678800691 GHHDHJAGSGDHH
ACHA ROLENCE +237670030932 NHDHSGFDHHDGS
FON RODRIGUEZ CHI +237677521763 GNSDHSHFGSDHH
EMEH ZADOCK +237679284946 HGFHDFKDGFHAJD
TABE BAIYE BISMAC +237670741839 PLSHDBDHDHDJJFG
16. - 16 -
BANGE SEBASTIEN +237671129343 KJHHDGD HHDHDH
OFON CHRIS TUTON +237675778805 QWDGHDHDNVKD
MBUA PETER ESENJU +237679853151 PJFDGSDYDHDJJDJ
ATABOH DONALD +237676101814 HJJFHFHFBHHDHDJ
EMMANUEL AWEJAN +237651361085 LOFOFOFHSGDHDF
AZEH JUNIOR +237672090820 BGDTTDFJFHJFHJFJ
TOUTSOP BOREL +237678765327 XDOODDDDXJJDJD
NDI DENIS NDI +237651312923 MJFFDHDHDHHDH
MR NOUADJEP SERGE +237674857394 JJJDHGHDBGGEER
JUSTINE BANYUY +237671649550 XDERODMDESKSK
FUH EDISON SUH +237670318195 OOPMDNJDHDME
TABIAYUK LIONEL +237674693661 GHTJSDNSJSOFHJE
Table 1 Voter's registration
The above information is now taken into consideration in the design of the system
with the voter‟s phone number the first identifier that enables him/her to cast a valid vote.
Equally, 4 parties were taken for our case study. These parties must also declare their
candidature with their respective candidates during the time at wish the system is been
conceived. For our case, the following table depicts the information recorded from contesting
parties:
NAME CANDIDATE
SDF Mr Akum Prosper of SDF
NPM Mrs Acha Gloria of NPM
CPP Mr Siriki Madin of CPP
NFC Mr Aladin Awan of NFC
Table 2 Party registration
The system is then designed by taking all the constraints that are linked to a voting process
such as:
A non-registered cannot vote. Or if the latter attempts to vote, it will not be valid.
Consequently, the system will send to him or her warning message.
17. - 17 -
Also, a due registered voter cannot vote more than once. Attempting bridge the rule is
punishable by the regulation in force. The system equally sends a warning message to
any defaulter.
The system is opened only during the time of election. Meaning anyone (registered or
not) attempting to vote before or after the schedule time frame for the election is
simply doing a categorical waste of time.
The user has the freedom to vote by an empty ballot by simply sending the SMS
<<no>> to the address of the server which in our case is +237678955564.
At the end of the voting process, if all registered voters cast properly their votes, the
result will be published automatically. Else the ELECAM operator has the duty to
publish it by simply sending an SMS <<end>> to the server.
All users are notified by SMS before the beginning of the process
All users receive all statistics of the election as well as the name of the overall winner
and his party of choice at the end of the entire voting process. Thus there is a
promotion of transparency.
II.3) Design tools
This SMS based voting system was designed around two main components: the GSM
module and an Arduino board. They act as the hub of the system because without them
nothing can work in the system. A liquid crystal display is also attached and is very useful
since it prints out the results once the session is ended. Let us look deeper into the
components used in this project:
II.3.1) The GSM modem
The GSM modem we have used in this project is the SIM900. It is simply a board
having all the functionalities of a mobile phone. It is made to function using AT commands
programmed with the Arduino board. It can be used for call, SMS and internet application
purposes.
The GPRS/GSM Shield provides you a way to use the GSM cell phone network to
receive data from a remote location. The shield allows you to achieve this via any of the three
methods:
• Short Message Service
• Audio
• GPRS Service
18. - 18 -
The GPRS Shield is compatible with all boards which have the same form factor (and
pinout) as a standard Arduino Board. The GPRS Shield is configured and controlled via its
UART using simple AT commands. Based on the SIM900 module from SIMCOM, the
GPRS Shield is like a cell phone. Besides the communications features, the GPRS Shield
has 12 GPIOs, 2 PWMs and an ADC.
Below are some features of the GSM SIM900 module
• Quad-Band 850 / 900/ 1800 / 1900 MHz - would work on GSM networks in all
countries across the world.
• GPRS multi-slot class 10/8
• GPRS mobile station class B
• Compliant to GSM phase 2/2+
• Class 4 (2W@850/900MHz)
• Class 1 (1W@1800/1900MHz)
• Control via commands (GSM 07.07, 07.05 and SIMCOM enhanced AT
Commands)
• Short message service
• Free serial port selection
• RTC supported with Super Cap
• Power on/off and reset function supported by Arduino interface
The figure below shows the front view of the module:
Figure 1 The GSM module
19. - 19 -
The SIM card is slotted behind the GSM module in a jack reserve for it. It is done gently by
respecting the prescribed procedure.
As earlier mentioned, The GSM module functions based on AT commands. AT means
attention. It means we need to use these commands to call the attention of the GSM to execute
a given task. Below are some AT commands that are mostly used while interfacing the GSM
module with the Arduino board.
SMS Text mode :
Command Description
AT+CSMS Select message service
AT+CPMS Preferred message storage
AT+CMGF Message format
AT+CSCA Service centre address
AT+CSCB Select cell broadcast message types
AT+CNMI New message indications to TE
AT+CMGS Send message
AT+CMSS Send message from storage
Table 3 AT commands for GSM
SMS PDU mode :
Command Description
AT+CMGL List Messages
AT+CMGR Read message
AT+CMGS Send message
AT+CMGW Write message to memory
Table 4 PDU AT commands
One important thing to note about the GSM module is the transmit power. The
maximum transmit power of the GSM is 30dBm (1w). We that this is very good as it cannot
cause harming neither to the environment nor to people.
20. - 20 -
In our project, the GSM module is responsible for receiving votes as well as sending
the feedback to voters as well as the winner candidate at the end of each voting session. It is
like the main hub of the entire system.
II.3.2) The Arduino board
The Arduino is an electronic board constructed around the Atmega328
microcontroller. There are many flavours of Arduino but we selected the Arduino Uno in this
project. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6
analogue 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. To
power it, simply connect it to a computer with a USB cable or power it with an AC-to-DC
adapter or battery.
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 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.
Below is a pictorial view of the Arduino Uno board as well as the pin configuration.
Figure 2 The Arduino Board
21. - 21 -
The Arduino board is used in this project as interface the GSM module as well as the
liquid crystal display. It is programmed to interprete the messages received by the GSM. It
determines how the GSM should communicate in general. It passes the results to the display
as well as triggers the external components in the system such as lamps and LED‟s.
II.3.3) Liquid Crystal Display (LCD)
LCD (Liquid Crystal Display) screen is an electronic display module and find a wide range of
applications. A 16x2 LCD display is very basic module and is very commonly used in various
devices and circuits. 16x2 means it has 2 rows and 16 coulombs on which it can display
information. These modules are preferred over seven segments and other multi segment
LEDs. The reasons being: LCDs are economical; easily programmable; have no limitation of
displaying special & even custom characters (unlike in seven segments), animations and so on
The LCD is based upon the liquid crystal technology. By applying Voltage to the LCD it
becomes opaque, but before that it was a transparent material. This property is the main
operating principle of LCD. The figure below shows the pictorial view of the LCD as well as
the pin configuration:
Figure 3 The LCD board
The table below shows the pin description as well as their various functioning:
Pin Number Function Name
1 Ground (0V) Ground
2 Supply voltage 5V (4.7V to 5.3V) VCC
3 Contrast adjustment, through a variable resistor VEE
4 Selects command register when low and dada
when high
Register select
5 Low to write to register, high to read from
register
Read/Write
6 Sends data to data pins when a high to low Enable
22. - 22 -
pulse is given.
7
8 bits data pins
DB0
8 DB1
9 DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 Backlight Vcc (5V) Led+
16 Backlight Ground (0 V) Led-
Table 5 The LCD Pin configuration
In our project, the display is used to transfer the result of the exam to the examiner upon
completion of the session.
II.3.4) The 5V relay module
This module is acting as the switching element between the DC pulse from Arduino and the
AC supply to the system. Below is the look of the 2 relay module:
The relay module is an electrically operated switch that allows
you to turn on or off a circuit using voltage and/or current much
higher than a microcontroller could handle. There is no connection
between the low voltage circuit operated by the microcontroller
and the high power circuit. The relay protects each circuit from
each other. The each channel in the module has three connections
named NC, COM, and NO. Depending on the input signal trigger mode, the jumper cap can
be placed at high level effective mode which „closes‟ the normally open (NO) switch at high
level input and at low level effective mode which operates the same but at low level input.
Specifications
On-board EL817 photoelectric coupler with photoelectric isolating antiinterference ability.
-board 5V, 10A / 250VAC, 10A / 30VDC relays
Figure 4 The relay module
23. - 23 -
and MCU I/O link, with the output signal indicator
Pin Configuration
1. VCC: 5V DC
2. COM: 5V DC
3. IN1: high/low output
4. IN2: high/low output
5. GND: ground
II.3.5) Other components
There are many other components that are needed in the scope of realising the project
such as resistors, capacitors, transistors, diodes, transformers, LED, lamp display… they are
used to serve different purposes in power supply, output display…
II.4) Conclusion
In this chapter, we have discussed the procedures we took to realise our voting system.
We equally talked about the key components that were needed to realise the project and the
role each of them played. It is important for us to go deeper into the implementation and
explain in details what was done.
24. - 24 -
CHAPTER III: IMPLEMENTATION, TESTS, RESULTS AND DISCUSSION
III.1 Design Test
To design this project till completion, we followed to paths which are the software and
hardware respectively. The software consists of the code written using Arduino programming
language. This code is then loaded into the arduino hardware which is interface to a GSM
modem. Let us discuss the details of the project test from software to hardware test.
III.1.1) Software test
No software code can ever work effectively without a good and clear algorithm. It
helps us to structure our code and take into consideration all the constraints that are needed in
each and every voting process.
Figure 5 Organigram of the voting system
The code is written based on the above flowchart with other little constraints attached to it.
Below are all the constraints we took related to an electoral process. The code is compiled and
loaded into the arduino board in Proteus software. A virtual terminal and serial monitor of
Adruino are used to test the behaviour of the entire system .An SMS is sent from a registered
25. - 25 -
number to the server number. The serial monitor is opened and display the entire received
SMS. The system decodes this SMS by extracting the number of the sender as well as the
content of the message. The number is first checked if eligible to vote. If so, then the content
is also checked. If not then it is rejected. The content which contains the party of choice of the
voter is compared with all party codes. If any is true, then the vote is validated and a counter
is incremented as per party. The procedure continues so for all voters till the entire process
ends. The figure below shows the capture of the serial monitor for a valid vote:
Figure 6 Vote test 1
For a user attempting to vote more than once, the serial monitor capture gives the following:
26. - 26 -
Figure 7 Vote test 2
For a non-registered, the serial monitor will display:
At the end of the voting process, the serial monitor will equally print the final result as well as
the winner. The capture is given below:
27. - 27 -
Figure 8 Vote test 3
It is to be noted here that the serial monitor is a very good display tool that helps us during
software and hardware realisation. It enables to view the step-by-steps functioning of the
entire system.
III.1.1) hard ware test
Block diagram of the system
28. - 28 -
Figure 9 Block diagram of the system
The block diagram above permits us to see the way all components are connected to each
other and facilitate the building and construction of the entire system
Circuit diagram of power supply
As from the block diagram, we used two power supplies: one for the arduino board and the
other for the GSM module.
29. - 29 -
Figure 10 power supply of system
When measure we have 12.1V and 4.97V respectively which are around the desired values for
our system.
Arduino and GSM
The figure below shows the connection of the GSM and Arduino boards
Figure 11 Arduino-GSM connection
30. - 30 -
All other components such as relay, the LCD display were connected around the arduino
board. Below is a back view of the prototype:
Figure 12 Back view of prototype
Overall system testing
The overall system is mounted and everything connected in its respective position. An SMS is
sent as normal. The only thing that changes this time is the LCD to display at any time the
status of the system as well as the recorded result per party. The serial monitor is still the main
display of the entire system since can be used for both software and hardware testing. The
results above discussed in the software test are the same with the hardware test. The
particularity of this system is its ability to store results of the election and transfer them back
again to remote voters by SMS. This was a big innovation.
III.2 Results and Discussion
The voting system we conceived worked perfectly in all aspects. With main difficulties at the
level of the GSM module. When the mobile network quality is not the best, it does not receive
SMS. And thus the entire system is down in such cases since it acts as the main hub of the
system. For future scope, some other features can be added such as:
A memory device is attached to the system to keep track of all data. This is to make
sure that no data is loss even when the voting process has ended and results are
published.
31. - 31 -
A website can be added to the system and enable remote voters to keep track of the
process.
Since the GSM module has the ability to connect to the internet, the same election can
done offline and online. This will increase the number of voters and equally give the
opportunity for voters not present in the country to cast their votes with ease.
And many others.
32. - 32 -
CONCLUSION
Voting is a very good process in collective decision making. Putting in place the right
voting system is a promotion of transparency as well as democracy. To incorporate digital
voting systems such as that with SMS in most countries in Africa can help to eliminate some
of the crises that arise in most countries at the end of each electoral process. E-Voting System
Using GSM Mobile SMS is an excellent program to receive SMS messages this is the best
solution and reference. The manual voting process can be very tedious, prone to electoral
fraud and costly. The time that is been consumed and the resources often times runs into
expensive projects. With all this, security is compromised because of the inability of all the
human factors to provide efficient security needed for robust operation of the system.
33. - 33 -
REFERENCES
[1] T. M. Carbaugh, “Secretary of State Kevin Shelley Announces Directives To Ensure
Voter Confidence in Electronic
Systems,” California Secretary of State, 2003.
[2] D. L. Chaum, “Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms,”
Communications of the
ACM, Vol.24, No.2, 1981, pp.84-88.
[3] C. T. Chiou, “A Study of Election Reform in Taiwan: An Observation from e-Voting
Experiences in Developed
Countries,” Journal of Research, Development and Evaluation Commission, Vol. 28, No. 4,
2004, pp.25-35 (in
Chinese).
[4] Compuware Corporation, “Direct Recording Electronic (DRE) Technical Security
Assessment Report,” Ohio
Secretary of State, 2003.
[5] C. A. Gaston, “A Better Way to Vote,” Proceedings of the 38th Annual Hawaii
International Conference on System
Sciences, 2005, p.117c.
[6] C. A. Gaston, SAVIOC Voting Systems, [Online], Available: http://www.savioc.com/,
2007.
[7] Institute Policy Institute, “Report of the National Workshop on Internet Voting: Issues and
Research Agenda,”
Proceedings of the 2000 Annual National Conference on Digital Government Research, 2000,
pp.1-59.
[8] A. M. Keller, A. Dechert, K. Auerbach, D. Mertz, A. Pearl, and J. L. Hall, “A PC-based
Open-Source Voting
Machine with an Accessible Voter-Verifiable Paper Ballot,” Proceedings of the USENIX
Annual Technical
Conference, U.S.A., 2005, p.52.
[9] T. Kohno, A. Stubblefield, A. D. Ribin, and D. S. Wallach, “Analysis of an Electronic
Voting System,” IEEE
Computer Society, 2004, pp.27-40.
34. - 34 -
APPENDICES
Appendix I: glossary
SMS: Short Message Service
SIM: Subscriber Identity Module
USB: Universal Serial Bus
FDD: Frequency Division Duplexing
TDD: Time Division Duplexing
GSM: Global System for Mobile
UMTS: Universal Mobile Telecommunication Service
LTE: Long Term Evolution
SMS: Short Message Service
LCD: Liquid Crystal Display
LED: Light Emitting Diode
I2C: Inter-Intergrated Circuit
GPRS: General Package Radio Services
PWM: Pulse Width Modulation
RAM: Random-Access Memory
RF: Radio Frequency
Rx: Receiver
SIM: Subscriber Identity Module
SPI: Serial Peripheral Interface
TX: Transmitter
USART: Universal Asynchronous Receiver Transmitter
WAP wireless application protocol
WSN Wireless Sensor Network
Appendix II: Code
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27,2,1,0,4,5,6,7,3,POSITIVE);
#include<SoftwareSerial.h> // include the serial library that can be accessed for all codes
35. - 35 -
SoftwareSerial mySerial(51,52); //pin 51 the received pin of Arduino and pin 52 is the
transmit pin (we are using software serial mode)
int LED1=11; // declare LED as pin 13 of arduino
int LED2=12;
int Buzzer=2;
String text=""; // text will be a variable to store characters
String Receive=""; // a string of TEXT
String AllMessage=""; // a String of characters
String AllMessageread=""; // a String of characters
String NewMessage=""; // a String of characters
String SimNumber="";
String Answer=""; // string to store answer
int i; // i is integer for looping
int Voters_Number=20; // variable to host total number of voters
int Candidate_Number=4; // number of candidates
int a=0; // int variable
int VoteCounter[]={ // counter for the various votes
0,0,0,0
};
int VoteTransfer[]={ // final counter for the votes
0,0,0,0
};
36. - 36 -
int NoCount=0; //variable for no vote
int VoteCount=0; // variable for total vote
int SMS_Count[20]={ // variable to store vote count of each voter
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
char* Parties[]= // parties registereted
{
"SDF", "NPM", "CPP", "NFC"
};
char *Voters_Contact[20]= // voter registration
{
"+237679425420","+237653777731","+237675921292","+237678800691","+237670030932
",
"+237677521763","+237679284946","+237670741839","+237671129343","+237675778805
",
"+237679853151","+237676101814","+237651361085","+237672090820","+237678765327
",
"+237651312923","+237674857394","+237671649550","+237670318195","+237674693661
"};
void setup() // set up function setting
{
mySerial.begin(9600); // setting the baud rate of the GSM modem
Serial.begin(9600); // setting the baud rate of Arduino
trash();
37. - 37 -
mySerial.println("AT+CMGD=4r"); // issue the delete message command to the
delay(1000);
mySerial.println("AT+CMGF=1r"); // setting the GSM module to TEXT mode
trash();
ReceiveSMS();
trash();
}
// The receive function to alert the GSM module
void ReceiveSMS()
{
mySerial.println("AT+CNMI=2,2,0,0,0r");
delay(1000);
Serial.println("Waiting to Receive the votes");
}
// The initial function to clear the GSM module
void trash()
{
while(mySerial.available()>0)
{
AllMessage = char (mySerial.read());
AllMessageread+=AllMessage;
}
AllMessageread="";
38. - 38 -
AllMessage="";
}
// function to publish the results
void Publish()
{
Answer="";
SimNumber="";
digitalWrite(LED2,LOW);
VoteTransferCount();
FinalVoteDisplay();
SendResult();
delay(4000);
Check();
digitalWrite(LED2,HIGH);
delay(4000);
LampFinal();
VoteCount=0;
}
// function to send the results to all voters
void Winner1(){
for(int i=0; i<20 ; i++)
{
Serial.println(i);
39. - 39 -
Winner1ToAll(Voters_Contact[i]);
delay(5000);
}
}
void Winner1ToAll(String PhoneContact)
{
mySerial.print("AT+CMGS=""); // the number that has to
receive the text
delay(200);
mySerial.print(PhoneContact);
delay(200);
mySerial.println(""r");
delay(1000);
mySerial.println("The Winner Of The Election is Mr Akum Prosper of SDF");
delay(200);
mySerial.println((char)26); // identifies end of SMS content
delay(1000);
}