Arduino_GSM_Project_Report
Arduino_GSM_Project_Report
INTRODUCTION
Many users find it challenging to utilize GSM modules for basic functions such as calling and texting,
particularly when interfacing with microcontrollers.
This project addresses this issue by creating a simple mobile phone using Arduino, incorporating a
GSM module for basic telecommunication functions—making calls, answering calls, sending SMS, and
reading SMS.
The device also integrates a microphone and speaker for voice communication.
This project provides a comprehensive understanding of interfacing a GSM module with an Arduino
Uno, complemented by the necessary code to operate the fundamental functions of a mobile phone.
COMPONENTS REQUIRED
Arduino Uno
GSM Module (SIM900)
16x2 LCD
4x4 Keypad
Breadboard or PCB
Connecting jumper wires
Power supply
Speaker
Microphone (MIC)
SIM Card
SYSTEM OVERVIEW
The project utilizes the Arduino Uno to control the entire system and interface the various
components.
A 4x4 alphanumeric keypad is used for input operations such as entering phone numbers, typing
messages, and initiating or receiving calls.
The GSM module handles communication with the network for calling and messaging purposes.
A microphone and speaker are incorporated for voice communication, while a 16x2 LCD displays
messages, instructions, and alerts.
KEY FEATURES
1. MAKE A CALL
Press the ‘C’ key. Enter the mobile number using the alphanumeric keypad. Press ‘C’ again to initiate
the call.
AT Command Used: ATDxxxxxxxxxx;
2. RECEIVE A CALL
Incoming calls are displayed on the LCD with the caller’s number. Press ‘A’ to answer the call.
AT Command Used: ATA
3. SEND SMS
Press ‘B’ to initiate SMS. Enter the recipient’s number and press ‘D’. Type the message using the
alphanumeric keypad.
Press ‘D’ again to send the SMS. AT Commands Used:
AT+CMGF=1
AT+CMGS="xxxxxxxxxx"
The 16x2 LCD is connected to Arduino pins 14, 15, 16, 17, 18, and 19. GSM module RX and TX pins
are connected to Arduino pins D3 and D2.
The keypad rows (R1-R4) are connected to Arduino pins 11, 10, 9, and 8, while columns (C1-C4) are
connected to pins 7, 6, 5, and 4.
The microphone and speaker are directly connected to the GSM module’s MIC+/- and SP+/- pins.
PROGRAMMING IMPLEMENTATION
2. Sending AT commands to the GSM module for communication with the network.
3. Displaying user interactions and statuses on the LCD.
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}};
void alfakey() {
int x = 0, y = 0;
char key;
while (1) {
key = customKeypad.getKey();
if (key) {
// Logic for multi-functional key inputs
}
}
}
CONCLUSION
This project successfully demonstrates the implementation of a simple mobile phone using Arduino
and a GSM module.
It provides users with an easy and functional way to interact with GSM modules for basic
telecommunication purposes.
Additionally, it serves as an excellent example of component interfacing and programming
techniques for embedded systems.
FUTURE IMPROVEMENTS
1. Adding functionalities for MMS.
2. Enhancing voice quality with better microphones and speakers.
3. Integrating a touchscreen interface.
4. Developing a compact PCB for portability.