Smart Dial is an intelligent auto-correct telephone created for seniors with special needs, and it enables seniors to dial directly from traditional telephones they are used to.
It was only through volunteering at a local seniors care center that I really came to understand the difficulties faced by a population of elderly people in performing daily tasks we all take for granted. Therefore, I created the “Smart Dial”, an auto-correct function added to traditional telephones which ensures incorrectly dialed numbers are automatically adjusted to match the numbers on the caller’s Smartphone contact list.
Step 1: Setup, Arduino UNO
In this first step, we are building the circuit shown above. The wires will be connected other parts in the following steps, and they will be referred by the PIN number.
Arduino UNO x1
Step 2: Blue Board (Bluetooth)
In this step, we are going to connect the Bluetooth module.
PlayRobot Bluetooth module x1
resistors x2 (1k ohm, 2k ohm)
Step 3: Yellow Board (Telephone, RJ11)
In the third step we are going to connect the traditional telephone to Arduino UNO using RJ11 jack.
RJ11 jack x1
9V battery & connector x1
PC817 photocoupler x1 (Its not in the materials photo, sorry.)
resistor x1 (220 ohm)
Step 4: White Board (DTMF Decoder)
Now, we are going to connect the DTMF (Dual-Tone Multiple Frequency) decoder.
CMD8870 DTMF decoder x1
Crystal Oscillator (Xtal) 3.58MHz x1
resistor x3 (10k ohm, 100k ohm, 330k ohm)
capacitor x2 (0.1 microF)
To test if the DTMF decoder is working, I connected a LED light to it. If you also wish to connect the LED, you would need two additional materials.
Materials for LED:
resistor x1 (220 ohm)
Step 5: We're Done With the Hardware!
Congratulations! The finished work should look like this. Now, moving on with the software!
Step 6: Arduino Board Code
I use the default Arduino IDE. Here I have provided the source code and a flow chart for your information. Basically, the program read the digits entered and sent them to the smartphone through Bluetooth.
Step 7: Smartphone App Code
For the app, I used Android Studio. Again, I have provided the source code and included flow charts. Basically, the app uses Edit Distance algorithm to check for the correct number from the contact list .
FAQ: Wouldn't the auto-correct function call the wrong person if the numbers are similar?
If you are wondering, my logic is that the elderly with deteriorated abilities would most likely not have a bunch of people on their contact list (probably just their family members), so I don't think calling the wrong person who happens to have a similar number would be much of a problem. If you have a better algorithm in mind, I would be happy to hear it!
Step 8: Done!
Connect everything together and test it! Also, feel free to share your ideas here!