Escolar Documentos
Profissional Documentos
Cultura Documentos
Smartphones are an integral part of our everyday lives, but remember when they were not so
smart? Those golden days when push-button monochrome LCD screened phones did little more
than call? I'm sure a lot of us still have some of those old dumb phones lying around. And you're
probably wondering...what can I do with it now? What if I told you that you could turn that old cell
phone into a smartwatch!?! Keep reading to find out how!
Not much for reading? Feel free to watch the playlist below instead!
Step 1: Scavenging Parts
What Id like to do for this crazy/ambitions project is turn an old cell phone into a smartwatch. So
obviously an old cell phone is required. The primary reason for this project is simply that I had an
old cell phone laying around and wanted to find a creative way to repurpose it. The one I had is a
Nokia 1100, but most other old cell phones would work, so long as you can find the schematics for
the LCD online. Taking apart the 1100, there werent too many scavenge-able parts to choose from.
First and foremost, there was the LCD screen, then I was also able to extract a vibrating motor, a
small speaker, as well as a protective cover for the LCD. What youre able to scavenge really
depends on what type of phone you have, and how old it is. The older the phone, the more
scavenge-able parts you will find.
#include
void setup() {
lcd.begin(LCD_WIDTH, LCD_HEIGHT);
pinMode(ledPin, OUTPUT);
lcd.print("The LCD Totally Works!");
delay(5000);
lcd.clear();
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("Visit my website");
lcd.setCursor(40, 1);
lcd.print("at:");
lcd.setCursor(0, 2);
lcd.print("www.tinkernut.com");
delay(5000);
}
Plugin your Arduino, upload the code, and if everything works right, you should see your text on
the screen! Now that we have our LCD functioning, we can move on to the next step!
In Our last bit of Arduino code above, we created a basic splash screen to display characters to the
LCD. This time we want to expand the code to give it functionality in response to what the
Smartphone sends it through bluetooth. You can find a copy of the code below. Youll notice at the
top of the code, where the variables are declared, there are a few variables with lots of characters
in them. These are actually coded versions of images. To create the coded version of an image,
youll need a black and white image and youll need to make sure its sized to within the resolution
of your screen and saved as a bitmap file format. For my screen its 96 pixels by 65 pixels. Then you
can download a free image conversion program called LCD Assistant. Just load the image into the
program and save the output. You can then use that output in your code.
Ive commented the code to try and explain how it works and whats going on, but basically in the
setup section, it displays a splash screen with a logo and text and then resets the screen. In the
loop section, it watches the serial console (bluetooth) for input. In the next step, youll see that the
Android phone is sending a text string through bluetooth in this format:
So the code starts by reading the string up until the first | divider and stores it as a variable
(myDate). Then it does the same thing with time (myTime), phone (myPhone) and text (myText).
Now that each section is stored as a variable, we can see what the variable holds and determine
whether to display it to the screen or not. For instance, with the myTime variable, if it equals time,
then that means the Android phone hasnt updated it with the actual time, so we can either display
a comm error or nothing at all. However, if the variable equals something like 12:00:00 PM, then
the Android phone has updated it with the time and we can display that on the screen. Then at the
end of the code, we have the section to make the button work, as well as a backlight loop to keep
the backlight on for a set period of time.
/*******************
* This code requires the PCF8814 library found here:
* https://github.com/cattzalin/Arduino-library-nokia-1100-lcd--PCF8814
*
* This Arduino program is intended to be used as a smartwatch
* using parts from a Nokia 1100 cell phone. It will only work in
* conjunction with the Android app that you can find here:
*
* For more details on how to create your own smartwatch,
* you can visit this website:
* http://tinkernut.com/4keCX
*/
void setup() {
void loop() {
//READ THE STRING TO THE FIRST "|" DIVIDER AND STORE AS A VARIABLE
String myDate = Serial.readStringUntil('|');
Serial.read();
//STORE THE NEXT SECTION OF STRING AS A VARIABLE
String myTime = Serial.readStringUntil('|');
Serial.read();
//STORE THE THIRD SECTION OF STRING AS A VARIABLE
String myPhone = Serial.readStringUntil('|');
Serial.read();
//STORE THE FINAL SECTION AS A VARIABLE
String myText = Serial.readStringUntil('\n');
//CHECK TO SEE WHAT IS STORED IN THE TIME VARIABLE
//AND DISPLAY IT TO THE SCREEN
if(myTime.indexOf('time') >= 0){
lcd.setCursor(0,3);
lcd.print("Comm Error");
}else{
lcd.setCursor(0,3);
lcd.print(" " + myTime);
}
//BACKLIGHT LOOP
if(lcdCount < 15 ){
digitalWrite(ledPin, HIGH);
lcdCount += 1;
}
if(lcdCount >= 15){
digitalWrite(ledPin, LOW);
lcdCount = 20;
}
I had the Arduino micro, the bluetooth module, the motor, and the LCD screen soldered to once
side of the perfboard and the resistors and connecting wires soldered to the back (with the
backlight button wired off to the side). I ended up adding a diode to the motor for protections, and
a 10k Ohm resistor to the momentary button. Another tip for the motor is to make sure that the
head of the motor isnt being obstructed by anything. Otherwise, the vibrating top of the motor
might get stuck. How you arrange everything is completely up to you, your skill level, and what you
have to work with.
I soldered the battery to the charging board. Theres a + and output from the charging board
that goes to the Arduino. I soldered some wires to it, but didnt connect them to the Arduino yet.
On the positive wire, I soldered a mini switch so that the watch can be turned on and off. Then I
hot glue everything to the back of the perfboard (on the resistor side), but I still didnt solder it
the Arduino yet.
Before soldering the charging board to the Arduino, I tweaked the code and made sure
everything was perfect and then re-uploaded it one last time to the Arduino. I say last time
because it will be difficult to upload anything to it after its all been shoved inside of the
smartwatch case. With the code uploaded, you can now solder the charging board wires to the
VCC and GND pins or the RAW and GND pins on the Arduino and then test it out!
We have made it to the final step! This is the fun part where we take our smartwatch monstrosity
and make it look purdy. What I did was take the measurements for the watch, the screen, the
backlight button, the on/off switch, and the micro-USB charger and inputed them into a CAD
program. For simplicities sake, I used Tinkercad, and online CAD program. The watch size ended up
being about 1 3/4 inches wide and tall, which is tolerable. But it also ended up being 1 thick,
which is not as desirable. Most of that space was being used up by the battery I chose. So, in
retrospect, Ill probably end up going with a thinner, but wider battery.
I took the CAD model and printed it out using a 3D printer. It took a couple of tries before I was
able to get everything to fit. To finish things off, I added the screen protector that I salvaged from
the original cell phone, and a watch band. Overall, Im happy with the results. If I were to revisit
this project, Id probably opt for a slimmer battery, smaller bluetooth, and a fabricated PCB.
Hopefully this inspires some of you to upcycle your own old cell phones into something cool!