DIY Smart Augmented Reality Glasses Using Arduino

As technology is growing rapidly and integrating itself to all aspects of people’s life, designers and developers tried to provide a more pleasant experience of technology to people. One of the technology trends which aim to make life easier is wearable computing. Wearable’s aim to assist people to be in control of their life by augmenting the real life with extra information constantly and ubiquitously. One of the growing trends of wearable computing is Head Mounted Displays (HMD), as the head is a great gateway to receive audio, visual and hectic information. Also due to the Google Glass project, wearable’s in form of glasses gained much more attention during last year’s. Google Glass is as futuristic a gadget we’ve seen in recent times. A useful technique for all kinds of people including handicapped/disabled.

Inspired by Google glasses, I made a wearable prototype that can function quite similar to Google Glass. In this project, we will make a wearable extension that can work like Google glasses, and it will be used to send notifications of calls and messages received on mobile phones, and also show time and date, all in front of wearer’s eye.

Google Glasses are available in market at price of $1000-$1500. Here we will make this project under, Rs.1000 or $15.

Smart- Glasses are the wearable computing device used as an extension, which can be attached to the spectacles or sunglasses of the wearer, and can be paired with Smart Phones, via Bluetooth. This extension, contains an Arduino Micro-controller having ATmega328p microprocessor, which is programmed to connect with Smart-Phones through a Smart-phone application. A Bluetooth module, named HC-05 is interfaced with ATmega328p, which is used to connect with smart-phones. A battery / Re-chargeable battery of 5V is used as power supply for Smart-Glass. An SSD1306, 0.96” OLED display is interfaced with ATmega328p, which is used to display the data received from Smart-phones. Smart-Phone application is used to transmit data of the phone, i.e; Date, Time, Notifications of Phone call and Text messages.

The following are the main steps that are implemented during the whole process:

  1. Notifications Received.
  2. Encoding.
  3. Transmitting and Receiving.
  4. Decode and Process.
  5. Execution

The basic principle of this project is to create a working prototype and that too within a very less cost.

Step 1: COMPONENTS REQUIRED :

  1. Arduino Nano, (ATMega328p)
  2. Battery ( we have used 9V battery)
  3. Bluetooth module (HC-05)
  4. OLED display (SSD1306)
  5. Wires for connection
  6. Push Button
  7. Bluetooth Earphone (LG HBS 760) [This is optional. I had a damaged set, so I used it too.]
  8. Toggle switch
  9. Basic Frame ( we made this frame using Sunmica Sheet, by remolding its shape using Solder iron)

Step 2: PROGRAM :

Upload the given program in Arduino Nano. But first, download the library for the program.

For downloading the library, follow these steps; Sketch > Include Library > Manage Library > Search for " SSD1306" and install the Adafruit_SSD1306

Or if the given Arduino program doesn't work, then copy and upload the program given below;

#include <SPI.h>

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

void setup() {

Serial.begin(9600);

display.begin(SSD1306_SWITCHCAPVCC, 0x3D);

display.display();

delay(2000);

display.clearDisplay();

}

void loop() {

while(Serial.available() > 0){

String Date = Serial.readStringUntil('|');

Serial.read();

String Time = Serial.readStringUntil('|');

Serial.read();

String Phone = Serial.readStringUntil('|');

Serial.read();

String Text = Serial.readStringUntil('\n');

Serial.read();

}

if(Text == "text" && Phone == "phone")

{ display.println(Date);

display.display();

display.println(Time);

display.display();

display.clearDisplay();

}

if (Text != "text" && Phone == "phone"){

display.println(Text);

display.display();

delay(5000);

display.clearDisplay();

}

if (Text == "text" && Phone != "phone"){

display.println(Phone);

display.display();

delay(5000);

display.clearDisplay();

}

}

Step 3: APPLICATION :

If the given .apk doesn't work, or you want to create your own customized app. Then you can use app inventor website and make the functional blocks as given above.

OR

Download the .apk and install it.

Step 4: CONNECTION :

Connect the circuit as shown in this schematic diagram.

Connect to the battery and turn on the supply.

Step 5: SETUP :

Pair Bluetooth module with phone’s Bluetooth. The App will show the above image.

Step 6: BODY / FRAME WORK :

Make the frame as shown in the figure, or as per your choice. I made this frame using plywood Sunmica, by using the soldering iron to make the curve. You can make it as per your design.

For Display, you can use the above template as a reference.

Step 7: RESULT :

As a result, something similar to the above image will appear on the Display.

If you have any suggestions to make it better, you can comment down.

Share

    Recommendations

    • Trash to Treasure

      Trash to Treasure
    • Paper Contest

      Paper Contest
    • Weaving Challenge

      Weaving Challenge

    23 Discussions

    2
    None
    LK ChaitanyaK

    14 days ago

    Plz tell me which display module you have used? 7 pin oled 0.96 inch spi or 4 pin i2c

    1 reply
    1
    None
    CarterT7

    5 weeks ago

    If you used lcd instead of oled, you could remove the backlight and put the display right in front of your eye instead of using the cube mirror thing

    2 replies
    0
    None
    Ankit_KuntiCarterT7

    Reply 17 days ago

    1. LCD will affect your eyes more than OLED.
    2. LCD will block your sight, and that is exactly the opposite of what we were planning. That's why we used transparent sheets and mirror.
    Still, we can avoid that mirror, if somehow we can print the mirror image of text on OLED display, still we will need transparent sheets for that.

    0
    None
    CarterT7Ankit_Kunti

    Reply 17 days ago

    you could easily make the lcd transparent by removing thee backlight. At this point, the lcd would require some illumination to be visible. This could be solved by using a transparent electroluminescent panel. Additionally, Alibaba has transparent oleds that could be placed in front of the eye.

    1
    None
    Mahmoudismail96

    6 weeks ago

    We getting the following error in the code
    Text was not declared in this scope???
    Can you help us ?

    1 reply
    0
    None
    Ankit_KuntiMahmoudismail96

    Reply 17 days ago

    add this command in void setup(),
    String Text, Phone, Time, Date;

    If you still face any problem, please share pic/screenshot of that error.

    3
    None
    RSInnovators

    6 months ago

    Getting the following error while uploading the code, plz help

    'Text' was not declared in this scope

    4 replies
    0
    None
    Ankit_KuntiRSInnovators

    Reply 7 weeks ago

    Did you use the ino file?
    Or Else add this command in void setup(),
    String Text, Phone, Time, Date;

    0
    None
    Ankit_KuntiGauravS277

    Reply 17 days ago

    The whole code is already given above.

    If you're still facing any error, please share it's screenshot/pic so that we can work on it properly.

    2
    None
    GauravS277

    20 days ago on Step 3

    we are not getting time update after one second and also sometimes on calling it does not show number.

    1 reply
    0
    None
    Ankit_KuntiGauravS277

    Reply 17 days ago

    This might be because of the application on your phone. In smartphones, background apps are closed automatically for power saving. When this app is closed, it gets disconnected from the Bluetooth Module. So this might be the reason, that your time and notifications are not updating. So you can change settings on your phone or else keep your phone app turned ON.

    If you're still facing the problem, then please share the pic/screenshot of that fault.

    0
    None
    LakshminarasimhanS1

    Question 5 months ago

    i am a 3rd year ece student. we are doing a mini project on iot. we selected to do smart glass. but could not. we need help. the duration is low. we need to submit our project by this week. we have just procured the components. we need help so that someone could help in completing the project. pls. its a gentle request. i am resident of chennai

    1 answer
    0
    None
    Ankit_KuntiLakshminarasimhanS1

    Answer 7 weeks ago

    Try to use Lithium ion Rechargeable batteries, and change the design of your project according to that.

    0
    None
    TehK3

    Question 7 months ago on Step 1

    Hi, this is very amazing tutorial. But I wanted to ask how can I replace the 9V battery with another rechargeable method?

    2 answers
    0
    None
    Ankit_KuntiTehK3

    Answer 7 weeks ago

    You can use any rechargeable batteries, but it should be between 5V to 12V, and design it accordingly.

    0
    None
    akumar76TehK3

    Answer 5 months ago

    Use Lithium batteries (3.3V) and powerbank's Step-up module to 5V

    0
    None
    AlbertoF45

    4 months ago

    Hi, the project Is really nice and i will made it soon, but why not put a pressure, temperature and humidity sensor to obtain simple weather forecast? And maybe a compass? Just to obtain smarter glasses