As mentioned before, we are only able to turn a home appliance on and off with this computer engineering final year project. However, in the very beginning of this project, we were thinking about controlling an appliance not only by turning it on and off. For instance, we thought about sending a text message to set the temperature of the air conditioning at a specific degree. Also, we thought about sending a message to tell the DVR to record a TV program. We are not able to perform these if we are only able to turn an appliance on and off. Therefore, coding the board to perform tasks like these is part of future work.
In addition, there are only two relays on the board, which means we are able to control only two appliances. Although there are extension ports, we didn’t have a chance to try to implement them. Therefore, expanding the capacity of the controlled appliances may be other future work.
The source code we have created has a lot of room for optimization. In the process of creating the flow chart this became increasingly apparent. Passing parameters that contain the particular string we would like to send to the user would greatly reduce the size of the code. This would also add the ability to further expand the program without greatly increasing the size of the program.
Currently the way the code is written all of our strings are predefined within our code. The system could become much more user friendly if the cell phone user could add new strings to the program. For example if we want to add a new phone number that is authorized to use the system, the C code needs to be edited to insert this new phone number. It would be ideal if the user could send a message to the system requesting for its phone number to have access for controlling the system. Right now if a message is received from an unknown phone number the message is just completely ignored and deleted. We could add functionality that will allow an known cell phone number to request access to control the system. The new cell phone might send a message that looks something like “Authorize this phone number to control the system”. The system would respond with, “What is the system password?”. The code will have a built in password which will be in the user manual for the product.. The new cell phone will respond with the built in password, and the cell phone will be added to a data base of cell phone numbers that have authority to control the system. This will require the structure of the program to be recoded. Mainly, the send functions will need to receive parameters with information about who is controlling the system, and what phone number to respond to.
Another beneficial feature to add to this system would be the ability to send a message to the system requesting the current state of each appliance.
Time response of the system could also be improved upon. As of right now, it takes approximately 10 seconds from the time a message is sent from the cell phone to the system and the state of the appliance to be changed. It takes about another 10 seconds for the cell phone to receive the response from the system. One limiting factor in achieving that maximum speed of the process is the amount of time it takes the cell phone service to transmit the message.
One major feature of the board that we did not include in the project is the board’s ability to use TCP/IP. The board has the ability to be controlled from the internet. This could greatly increase the functionality of the board.
This project could be continued for several more semesters if our sponsor chooses to do so; there is an enormous amount of possibilities with the PIC-GSM Development Board.
To build on the concepts and source code of this project, download the source code of this final year project and make it even better!