Password Protected SIM900 GSM/GPRS Modem based SMS Controlled Wireless Robot with ATmega16
In this project, we will learn how to make a Password Protected SIM900 GSM/GPRS Modem based SMS Controlled Wireless Robot with AVR ATmega16 Microcontroller. Here, we will control the direction of movement of a robot wirelessly using SIM900 GSM/GPRS modem and ATmega16 microcontroller. The robot is controlled by sending SMS to the SIM900 GSM/GPRS modem of the robot and the direction of the movement of the robot is displayed in a 16X2 alphanumeric LCD. But before the robot can be controlled through SMS by anyone, a password needs to be sent by SMS to gain access of the robot control.
When the SIM900 GSM/GPRS modem power is turned on, the ATmega16 microcontroller reads the initial status data sent by the SIM900 GSM/GPRS modem through USART protocol. After reading the status data, the ATmega16 microcontroller processes the SIM900 GSM/GPRS modem status data and displays the status of the modem and SIM in the alphanumeric LCD. If SIM card is not present, then "Plz Insert SIM" is displayed, if SIM card is present and modem is ready, then "SIM900 is Ready" is displayed and for other conditions, "SIM900 Error" is displayed in the alphanumeric LCD.
Now, when the SIM900 GSM/GPRS modem is ready, the LCD displays "Send Password:" in it. The robot treats all SMS received as password SMS till the correct password SMS is not received. Once correct password SMS is received and password is authincated, all SMS received after password SMS are treated as control SMS. When the SIM900 GSM/GPRS modem receives any SMS, it sends new SMS notification to the ATmega16 microcontroller. But if the ATmega16 microcontroller receives some other notification(other then SMS like Call and others), then "Unknown Error" is displayed in the alphanumeric LCD. The ATmega16 microcontroller reads the new SMS notification. After reading the SMS notification, ATmega16 microcontroller checks whether password authentication is pending or over. If password authentication is pending, then "PasswordRecieved" is displayed in the LCD display. Then, the ATmega16 microcontroller reads the SMS and if it reads the SMS successfully, then it will compare the content of the SMS with the stored password else it will display"Empty location" when the read memory location is empty and "Error" when there is error in reading the SMS. When the password SMS is read successfully, the ATmega16 microcontroller compares the received password with the the stored password. If the received password and the set password are same, then "Correct Password" is displayed in the alphanumeric LCD else "Re-send Password" is displayed in the LCD. The robot will request user to send password SMS till the correct password is sent. Once correct password is sent, the robot will request the user to send robot control SMS and the LCD displays "Send Ctrl SMS:" in 1st row and "Stopped" in the 2nd row(As the robot is in stopped condition initially). The robot waits for the control SMS to drive the robot in different direction. The control SMS are predefined sets of strings(Message of SMS). The predefined set of strings(Message of SMS) to control the Robot are shown below:-
Control SMS | Robot Movement |
FORWARD | Forwar Direction |
BACKWARD | Backward Direction |
LEFT | Left Direction |
RIGHT | Right Direction |
STOP | Stopped |
When the SIM900 GSM/GPRS modem receives any SMS after password authentication, it sends new SMS notification to the ATmega16 microcontroller. The ATmega16 microcontroller reads the new SMS notification and displays "New Ctrl SMS" in the alphanumeric LCD. But if the ATmega16 microcontroller receives some other notification(other then SMS like Call and others), then "Unknown Error" is displayed in the alphanumeric LCD. After receiving new SMS notification, the ATmega16 microcontroller will read the SMS from the SIM900 GSM/GPRS modem memory. if it reads the SMS successfully, then it will compare the content of the SMS with the predefined set of strings else it will display"Empty location" when the read memory location is empty and "Error" when there is error in reading the SMS. When the control SMS is read successfully, the ATmega16 microcontroller compares the received control SMS with the predefined ones, if received control SMS matches with any of the predefined strings, then the microcontroller sends the required control signal to the DC motor driver to drive the robot accordingly and it displays the new direction of movement of robot in the alphanumeric LCD. But if the received control SMS does not matches with any of the predefined strings, then "Invalid SMS" is displayed in the alphanumeric LCD.
Now, send different SMS to the SIM900 GSM/GPRS modem of the robot and see the password comparision and direction of movement of the robot and its status in the alphanumeric LCD.
Softwares Required
Hardwares Required
Name | Quantity |
AVR Trainer Board-100 with ATmega16 | 1pc |
AVR USB Programmer | 1pc |
SIM 900 GSM/GPRS Modem | 1pc |
RG1602A 16X2 Alphanumeric LCD Green | 1pc |
DC Motor Driver | 1pc |
Robot V 4.0 | 1pc |
12V, 2A SMPS Adaptor | 1pc |
10 to 10 FRC Female to Female Connector | 3pc |
1 to 1 Connector-Female to Female | 6pc |
Post a Comment