"With U Smart Sole" DIY GPS Embedded Smart Shoe Sole

by Chitlange Sahas in Circuits > Wearables

38063 Views, 283 Favorites, 0 Comments

"With U Smart Sole" DIY GPS Embedded Smart Shoe Sole

New folder (2)1.jpg
IMG_1460 - Copy.JPG
IMG_1469 - Copy.JPG
IMG_1475 - Copy.JPG

Ever found yourself in a sticky situation, wondering how to let someone know you need help without making it obvious? Forget crossed fingers – I've got a more practical answer.

Introducing the 'With U' smart soles, a game-changer in personal safety. When trouble knocks or you're off the beaten path, a simple gesture, crossing your feet in a specific way, activates a discreet mechanism. Before you know it, your exact location is pinged to your family. And here's the kicker – your folks can check where you are just by calling your shoe. The shoe hangs up the call and shoots back its current GPS location via SMS. It's safety at your fingertips, literally.

But comfort doesn't take a back seat. These smart soles are so comfy; you won't even notice they're there.

Behind the scenes, a cool algorithm with a knack for recognizing unique foot gestures does the magic. Cross your feet, and it sets off a chain reaction, sending your GPS coordinates to a remote server. Need a real-time update? Just check Google Maps.

My initial prototype rocked MDF wood, but the goal is to upgrade to a more foot-friendly material. The 3D CAD model is ready to roll, but the local 3D printing scene is a bit slow. Still, the commitment to refining the design is unwavering.

Here's the kicker – no off-the-shelf circuits here. I've crafted a complete circuit using Atmega 328P and SIM 808, ditching the easy route for a customized touch. And yes, the design is a work in progress, always striving for better.

Watch the Video!

With U Smart Shoe Sole -- Build Video
With U shoe! -- Never Go missing again. #BetterLifeWithIOT

The Build video: Timelapse of the 3.5 Month process in under 10 mins.

The Intro video : Quick video that shows off the features of the With U Smart Shoe sole.

Cross Your Feet, Inform Your Family!

Creoos.png

Let's dive into the game-changing feature of the With U smart shoe sole – a shoe armed with GPS and a magnetic gesture recognition system.

So, what exactly is this magnetic gesture recognition? Early in the project, I considered a push button as the activator switch to kickstart the location update process. But there was a hitch – pressing a button way down near your feet felt awkward. How could we make it hands-free? Moreover, imagine situations where reaching your shoe to press a button is just not feasible – hands tied or something.

Enter the Hall Effect sensor – the game-changer in this scenario. This three-legged electronic part alters its voltage at the "sense" pin based on the magnetic field in its proximity.

The rough plan of action is as follows: We embed a dummy sole into the second shoe, housing a Rare Earth neodymium magnet. When the shoes align in a way that the voltage at the sense pin hits a predefined threshold, the Arduino Pro Mini takes notice, triggering the activation of the location update process. It's a hands-free solution for all kinds of scenarios.

Ping the Sole to Get the Location

IMG_1389.JPG

In the event that crossing your feet is impractical, the With U smart shoe sole comes equipped with an invaluable fail-safe – a supplementary communication channel. This feature ensures that, regardless of the situation, your family can easily retrieve your location when needed. The diagram above illustrates how this additional functionality is intended to operate.

Comfort Assurance

Rest assured, comfort is a top priority with the With U smart shoe sole.

Drawing inspiration from height raisers, which share a similar size profile, I've designed the smart sole with wearer comfort in mind. With this consideration, I anticipate that comfort won't be an issue for the majority of users.

Bill of Materials

MVI_7773.00_00_00_12.Still002.jpg
MVI_7773.00_00_03_04.Still003.jpg
MVI_7773.00_00_49_22.Still004.jpg

Materials needed:

  1. Arduino Pro Mini
  2. FTDI 3.3V (for programming the Pro Mini)
  3. Adafruit FONA 808 (GPS + GSM Module)
  4. Copper Clad PCB (Double Sided)
  5. Active SIM Card with Sufficient Credit
  6. 6mm MDF Board (for sole support)
  7. Aluminum Foil (for the antenna)
  8. A4 Sized Plain Paper
  9. 3-Inch Shielded Wire
  10. Micro USB Female Charging Port
  11. 3.7 Volt 2100mAh Flat Battery
  12. Hall Effect Sensor


Good to have:

  1. Intermediate Knowledge of Electronics and Arduino Programming (or similar)
  2. Some Experience in PHP (for creating a dedicated web page with real-time updates)
  3. Basic Hardware Tools and a Generous Amount of Time

The Circuit Schematic

3.png

Above is the schematic for the circuit that powers With-U Shoe.

Print and Transfer PCB Artwork

PCB.png

To get started on the PCB for your project, follow these steps:


  1. Download the Eagle CAD PCB file. [attached below]
  2. Print the file on a glossy photo paper.
  3. Clean both sides of the Copper clad PCB board.
  4. Transfer the artwork to both sides of the double-sided PCB. Ensure proper alignment.


Note: This guide doesn't cover the detailed steps of PCB fabrication, as there are excellent tutorials available for reference. Creating a double-sided PCB demands additional effort, especially with the need for precise alignment. Thus, it is assumed that you possess the necessary expertise.


The footage of the ironing process is unfortunately and hence there are no accompanying pictures for this step. Apologies for inconvenience.

Chemically Etch the PCB

MVI_7773.00_01_13_10.Still010.jpg

Once you've successfully transferred the artwork to both sides of the PCB, it's time to proceed with the etching process:

  1. Retrieve your prepared PCB.
  2. Prepare an etching solution by mixing warm water and etching powder in sufficient quantities. I use Ferric Chloride.
  3. Carefully immerse the PCB into the etching solution.
  4. Allow the PCB to stay in the etching solution for an adequate duration, providing ample time for the copper to dissolve.
  5. Extract the PCB from the etching solution.
  6. Remove the masking toner using acetone.

The PCB is now ready for the next steps.

You could consider using a small DC waterproof motor to circulate the etching solution around the copper continuously. While optional, I found this technique to reduce etching time and enhance the quality of the final product.

Drill the PCB Through Holes

MVI_7773.00_02_01_16.Still016.jpg

I highly recommend using a Dremel or a similar rotary tool. Using a manual drill might make the process tedious, considering the number of holes you'll need to drill.

Here's the drill (pun intended):

  1. Get your drill ready. A Dremel or a rotary tool is ideal for this task.
  2. Start drilling the holes in the PCB. Be patient and ensure accuracy.
  3. Take breaks as needed to avoid fatigue, but keep the momentum going. There's a fair number of holes to cover!

By opting for a Dremel, you'll find the task more efficient and, dare I say, even a bit more fun.

Drill Out the SIM Slot

MVI_7773.00_01_34_09.Still014.jpg
MVI_7773.00_01_38_15.Still015.jpg
MVI_7773.00_01_36_12.Still013.jpg
MVI_7773.00_02_15_10.Still017.jpg

To accommodate a feature allowing seamless SIM card swapping, the next step involves creating a slot on the PCB for this purpose:

  1. Locate the area marked with a rectangle on the PCB, indicating where the slot needs to be made.
  2. Utilize a drilling tool to carefully remove the material from the designated area on the PCB.

Precision and patience are key here. Take your time during this process to prevent any chips or cracks from developing on the PCB.

Solder Small SMD Components to the PCB

MVI_7773.00_02_18_18.Still018.jpg
MVI_7773.00_02_22_15.Still019.jpg
MVI_7773.00_02_26_17.Still020.jpg
MVI_7773.00_02_33_15.Still022.jpg
MVI_7773.00_02_29_02.Still021.jpg

Before tackling the larger components on the PCB, it's time to solder the smaller SMD (Surface-Mount Device) components:


  1. Identify the four SMD components that need to be soldered onto the PCB.
  2. Utilize a pinpoint soldering tip for precision during the soldering process.
  3. Employ small-sized tools to handle the SMD components effectively. It makes the job more manageable.


Why SMD? Here's a snippet from Wiki: Surface-mount technology (SMT) involves mounting electronic components directly onto the surface of printed circuit boards (PCBs). SMD components are typically smaller than their through-hole counterparts, contributing to a more compact design.


For this project, where space considerations matter, opting for SMD components plays a crucial role in minimizing component footprints. While soldering SMD components might seem challenging initially, with practice, it becomes a manageable task. Size does matter in this project, and choosing SMD components aligns with the goal of achieving a compact design.

Mounting Arduino Pro Mini

MVI_7773.00_02_40_13.Still023.jpg
MVI_7773.00_03_05_12.Still024.jpg
MVI_7773.00_03_05_18.Still025.jpg
MVI_7773.00_03_07_11.Still026.jpg
MVI_7773.00_03_11_15.Still027.jpg

Now that the SMD components are assembled, the next step involves mounting the Arduino Pro Mini:

  1. Start by pushing the black plastic part of the header pins to one extreme. (Why and how? Explained in step 2)
  2. Solder the header pins to the Arduino Pro Mini.
  3. Gently push the Pro Mini into the designated holes. Take your time with this step.
  4. Ensure it goes as far as possible, compressing it without causing any damage.
  5. Proceed to solder the board in place.
  6. Voila! That's pretty much it. The Arduino Pro Mini is successfully mounted.

For a more detailed understanding, please refer to the accompanying video for additional insights into this particular step.

Soldering the FONA 808 Module

MVI_7773.00_03_23_22.Still028.jpg
MVI_7773.00_03_25_12.Still029.jpg
MVI_7773.00_03_30_08.Still030.jpg
MVI_7773.00_03_35_04.Still031.jpg
MVI_7773.00_03_35_22.Still032.jpg
MVI_7773.00_03_41_18.Still033.jpg

It's now time to solder the FONA 808 module to the PCB:

  1. Push the header pins of the FONA 808 module as far as possible. This aids in saving space and contributes to making the circuit more compact.
  2. When soldering, apply solder from both sides. Unlike professionally manufactured PCBs, our homemade PCB lacks metal vias, so this ensures a secure connection.

Important Note: You are dealing with static-sensitive electronics. Exercise caution to avoid any missteps such as applying excessive pressure or mishandling, as these can swiftly lead to damaging the components.

Designing a GPS Antenna

Yes, you read it right – designing our own GPS antenna. But why? Here's the scoop:

I stumbled upon a GPS chip patch antenna initially. However, there were two major concerns. First, the GPS antenna had a dismal gain of around -4dbi, making it so weak that I had to go to the terrace for a feeble signal. Considering our shoe sole with our body potentially obstructing satellite signals, this low gain could worsen the situation.

Second, the antenna was excessively thick, a luxury we couldn't afford in terms of space. Not to mention, the frustration with such limitations.

So, I embarked on the journey of creating my own antenna. The process wasn't exactly intuitive, and online resources were scarce. With minimal guidance, experimentation became the name of the game.

Let me introduce you to some key terms to help demystify the process:

  1. Antenna Gain: This is the factor by which input power to the antenna multiplies to provide higher output power. In simpler terms, it's the power transmitted over the air as electromagnetic waves.
  2. Antenna Radiation Pattern: This refers to the electromagnetic waves emitted from the antenna, visualized as a major lobe and one or more side lobes. The region near the antenna is the near-field region, while the region far away is the far-field region.
  3. Antenna Impedance: It's the ratio of voltage to the current at the antenna input. It indicates how efficiently the antenna can transfer power from the transmitter to free space.
  4. Active Antenna: Requires an external power supply to function.
  5. Passive Antenna: Does not need an external power supply.

This is just a brief introduction to some basic antenna terminology. You don't need to memorize them, but a basic understanding helps when I refer to these terms later. If you want more insights, feel free to explore further on Google.

Building Our Own GPS Antenna

MVI_7773.00_03_43_20.Still035.jpg
MVI_7773.00_03_46_07.Still037.jpg
MVI_7773.00_03_46_29.Still038.jpg
MVI_7773.00_03_44_17.Still036.jpg
MVI_7773.00_03_48_18.Still039.jpg
MVI_7773.00_03_49_10.Still040.jpg
MVI_7773.00_03_58_29.Still042.jpg
MVI_7773.00_03_51_22.Still041.jpg
MVI_7773.00_04_00_14.Still043.jpg
MVI_7773.00_04_02_16.Still045.jpg
MVI_7773.00_04_20_17.Still047.jpg
MVI_7773.00_04_18_23.Still046.jpg
MVI_7773.00_04_02_05.Still044.jpg
MVI_7773.00_04_26_00.Still049.jpg
MVI_7773.00_04_23_03.Still048.jpg

We're aiming for a two-layer tin foil setup, creating a sandwich with a thin paper layer nestled between the two layers of tin foil. Here's how you make it – Tin Foil __ Paper __ Tin Foil.

  1. Select a thin aluminum or tin box for this process. The box should be thin enough for the tin foil to sustain wear and tear.
  2. Flatten out the box to create a sheet of tin foil.
  3. Take your shoe sole and mark the front half (not exactly half, but you get the idea) on the tin foil.
  4. Using scissors, cut along the markings.
  5. Now, cut another shape similar to the ''first half'' but with an offset of about 2 cm.
  6. Glue all the pieces together to form the sandwich – Tin Foil __ Paper __ Tin Foil.
  7. Punch a hole in the middle of the sandwich. This hole is where the wires will pass through.
  8. Solder two wires, one to each layer – the top aluminum foil (Patch) and the bottom part (Ground Plane). This is why it's called a Patch antenna.

Note: Ensure there is no short circuit between the Ground Plane and the Patch (Top) layers. Short circuits could potentially damage the internal circuitry of the FONA module. Be meticulous in your connections.

Make the Shoe Sole Insert

MVI_7773.00_04_36_16.Still051.jpg
MVI_7773.00_04_37_25.Still052.jpg
MVI_7773.00_04_43_22.Still053.jpg
MVI_7773.00_04_46_12.Still054.jpg
MVI_7773.00_04_54_24.Still055.jpg

Let's have some fun and craft the sole of our smart shoe:

Cutting the MDF:

  1. Take the 6mm MDF sheet and mark the size of your heel. (Don't worry if this sounds abstract; it will become clearer as we progress.)
  2. Place the battery on the MDF sheet, using your intuition to find the approximate center of the half-heel.
  3. Mark the battery outline on the MDF.
  4. Cut out the outer outline of the MDF sheet to obtain the crude shape. Repeat these steps until you have four layers of heel-shaped pieces. (Starting to make sense now?)

Shaping the MDF:

  1. Prepare your bench vice.
  2. Clamp all four pieces in the vice.
  3. Attach your sander with 100 grit paper.
  4. Sanding time! Keep at it until you achieve the desired shape.
  5. Voila! Done. (For even more insights, check out the accompanying video.)
Note: The quality of the final build heavily relies on this step. Take your time to ensure the best finishing and details possible. As Steve Jobs wisely said, "Details matter; it's worth getting them right."

Creating Battery Pocket in the Sole

MVI_7773.00_05_41_28.Still061.jpg
MVI_7773.00_05_42_28.Still062.jpg
MVI_7773.00_05_54_13.Still066.jpg
MVI_7773.00_06_05_28.Still068.jpg
MVI_7773.00_06_11_13.Still069.jpg
MVI_7773.00_05_56_14.Still067.jpg
MVI_7773.00_06_15_27.Still070.jpg
MVI_7773.00_06_32_00.Still072.jpg
MVI_7773.00_06_36_27.Still073.jpg
MVI_7773.00_05_05_10.Still056.jpg
MVI_7773.00_05_12_06.Still057.jpg
MVI_7773.00_05_18_21.Still059.jpg
MVI_7773.00_05_20_06.Still060.jpg
MVI_7773.00_05_14_01.Still058.jpg

let's focus on making a pocket for the battery in the sole:

  1. Bore a hole in the center of the battery outline you marked earlier.
  2. Begin by drilling a hole large enough to accommodate the jigsaw blade.
  3. Utilize a jigsaw to cut out the material and create a pocket for the battery.
  4. Carefully use the jigsaw to saw the material until you achieve the desired pocket shape.
  5. Refine the pocket using a file.
  6. Once the hole is sufficiently large, employ a file to smooth out the edges and attain a polished finish.
  7. Perform a test fit of the battery in the pocket.
  8. The fit should be just right – not too loose that the battery falls out, and not too tight either.


Creating Wire Channels for Antenna

MVI_7773.00_07_01_16.Still080.jpg
MVI_7773.00_07_00_29.Still079.jpg
MVI_7773.00_06_59_19.Still078.jpg
MVI_7773.00_06_55_19.Still077.jpg
MVI_7773.00_06_53_18.Still076.jpg
MVI_7773.00_06_51_07.Still075.jpg
IMG_1393.JPG

For a neat transition of wires, here's how to pass the wires for the antenna:

  • On the 2nd Layer of the sole, use a hobby knife to make a slot approximately 5mm wide and 1mm deep.This slot will serve as a channel, allowing the wires to pass through seamlessly without being prominently visible.

Charging Port

MVI_7773.00_07_07_11.Still081.jpg
MVI_7773.00_07_10_17.Still085.jpg
MVI_7773.00_07_09_29.Still084.jpg
MVI_7773.00_07_08_21.Still083.jpg
MVI_7773.00_07_08_13.Still082.jpg
MVI_7773.00_07_12_03.Still086.jpg
MVI_7773.00_07_12_25.Still087.jpg
IMG_1397.JPG
IMG_1396.JPG
IMG_1395.JPG

Charging the device is a straightforward process. The Adafruit FONA 808 comes with an inbuilt lithium-ion battery charging system. Here's how you can extend the charging port (Micro USB):

  1. Solder the positive and negative supplies of the USB to the respective polarities.
  2. Connect these to the +5V expansion port on the PCB.
  3. Make a small slot for the female USB port to rest into.
  4. Done! The charging port is now added.

As for the Micro USB port, you can find it in abundance – most commonly on your mobile phone. No, I'm not suggesting you dismantle your phone for the port, but you can inquire at a phone service center or find spare parts suppliers.

Assembling the Layers

IMG_7791.JPG
IMG_7792.JPG
IMG_7795.JPG
IMG_7801.JPG
MVI_7773.00_07_15_28.Still088.jpg
MVI_7773.00_07_16_22.Still089.jpg
MVI_7773.00_07_23_20.Still090.jpg
IMG_7805.JPG
IMG_7806.JPG
IMG_7804.JPG

With all the individual layers prepared, it's time to glue them together:

  1. Apply glue to each layer and stack them one by one.
  2. Take your time to ensure proper alignment.
  3. Allow the glue to dry.
  4. If available, consider using clamps for better bonding. If not, placing a weight on top can also be effective.
  5. Don't forget to insert the Female USB port before attaching all the layers.
  6. It's essential to do this before gluing all the MDF layers together, as it becomes challenging to add the port later.

Once the glue dries, you'll have a solid, multi-layered structure for your smart shoe sole.

Haptic Feedback Motor

IMG_1377.JPG
IMG_1379.JPG
IMG_1380.JPG
IMG_1382.JPG
IMG_1383.JPG
IMG_1384.JPG

Enhancing the functionality, a little vibrator motor is incorporated into the design to provide haptic feedback. This motor serves to notify the user when they cross their feet, indicating that a distress message has been sent. Here's how to wire up the motor to Pin 13 of the ProMini:

  1. Obtain a small vibrator motor, perhaps salvaged from an old cell phone or buy online.
  2. Connect the motor to Pin 13 of the ProMini.


Note: The motor draws some current and it's not the ideal approach to directly connect it to the ATmega328 pins, the risk being destroying the pins due to overcurrent draw.

This addition adds a tactile notification element to the smart shoe, enhancing its overall functionality.

Integrating Hall Effect Sensor

IMG_1406.JPG
MVI_7773.00_07_25_23.Still091.jpg
MVI_7773.00_07_26_06.Still092.jpg
MVI_7773.00_07_31_17.Still094.jpg
MVI_7773.00_07_30_24.Still093.jpg
MVI_7773.00_07_35_21.Still095.jpg

The circuit is designed to detect the gesture of crossing the feet by integrating a Hall Effect sensor, which converts changes in the magnetic field induced by the rare earth magnet in the second foot to analog values. Here's how to set up the Hall Effect sensor:

  1. Refer to the datasheet to obtain the appropriate pinouts for the Hall Effect sensor.
  2. Solder jumper wires to the legs of the Hall Effect sensor.
  3. Connect the sensor to the Arduino with the following configurations:
  • HALL SENSOR Vcc to ARDUINO +3.3V
  • HALL SENSOR GND to ARDUINO GND
  • HALL SENSOR Sense to ARDUINO Analog Pin 1

Note: The PCB connections for the Hall sensor are pre-wired for the necessary pins. The connection chart above is for reference purposes.

Don't forget to add heat shrink tubing to the connections to prevent shorts. This setup allows the Arduino to detect the crossing of feet and initiate the distress message sending process.

Soldering the GPS Antenna

GPS antenna.png
MVI_7773.00_07_50_07.Still101.jpg
MVI_7773.00_07_46_17.Still099.jpg
MVI_7773.00_07_44_06.Still098.jpg
MVI_7773.00_07_40_20.Still097.jpg
MVI_7773.00_07_56_26.Still102.jpg

Connect the GPS antenna to the FONA module. Note that there is no separate breakout for this, so you'll need to trace the GPS wiring. Pin number 35 on the SIM808 is the one responsible for GPS.

  1. Identify Pin 35 on the SIM808 module. It's the one near the corner, as indicated in the picture.
  2. Carefully solder the GPS antenna to Pin 35 on the SIM808.

Be cautious not to short adjacent pins with solder splashes, as this could damage the SIM808 chip.

Add the Battery Connector and Switch

MVI_7773.00_07_57_29.Still103.jpg
MVI_7773.00_08_00_14.Still104.jpg
MVI_7773.00_08_13_29.Still106.jpg
MVI_7773.00_08_07_23.Still105.jpg
IMG_1394.JPG
IMG_1390.JPG

To enhance ease of use by being able to easily change the battery and turn on/off the circuitry, a 3-pin battery connector and a switch are used in the design.

  1. Obtain a 3-pin battery connector.
  2. This connector facilitates the removal of the battery when needed, adding practicality to the design.
  3. Create a slot for the connector in the sole of the shoe.
  4. Solder the positive (+) and negative (-) wires to the battery connector, ensuring correct polarity.
  5. Glue the connector into the slot you've made. This completes the battery connections.
  6. Add a switch for operation between the circuit and the battery.

Learning From Failed Attempts

Early try.png
MVI_7774.MOV.00_00_13_05.Still001.jpg
MVI_7774.MOV.00_00_24_29.Still002.jpg
MVI_7774.MOV.00_00_27_18.Still003.jpg
MVI_7765.MOV.00_01_12_16.Still001.jpg
MVI_7765.MOV.00_03_07_18.Still002.jpg
MVI_7765.MOV.00_03_58_02.Still005.jpg
MVI_7765.MOV.00_04_13_16.Still003.jpg
MVI_7765.MOV.00_04_50_27.Still006.jpg
MVI_7765.MOV.00_05_22_12.Still004.jpg
MVI_7766.MOV.00_00_05_18.Still001.jpg
MVI_7766.MOV.00_00_06_18.Still002.jpg

In the course of crafting the shoe sole, I encountered a few setbacks worth noting. One of these involved an attempt at fiberglass molding to create a preliminary sole shape, with the intention of refining it through follow-up sanding. Unfortunately, the resin proved to be far less control-able than I had anticipated, resisting any efforts to conform to the desired shape.

While the outcome was not as hoped, the experience gained from this process is still valuable.

GSM Antenna.

IMG_1406.JPG
IMG_1405.JPG
IMG_1404.JPG
IMG_1403.JPG
IMG_1402.JPG
IMG_1400.JPG
IMG_1398.JPG
IMG_1393.JPG
IMG_1392.JPG
IMG_1391.JPG
IMG_1385.JPG

Now, let's delve into crafting another crucial component—the GSM antenna. While it might seem tempting to opt for a ready-made antenna, our application introduces a critical consideration: Electromagnetic Interference (EMI). To tackle this issue, we'll construct our antenna using shielded wire. Here's how:

  1. Get a small piece of shielded wire.
  2. Strip the wire, exposing the inner core which will serve as the antenna.
  3. Connect the outer shielding to GROUND. This effectively shields our circuit board from the antenna radiations.

Why does EMI occur? It's a result of radio waves, and while the exact mechanisms might be elusive, the key is to mitigate its effects.

RF Shielding, is a technique based around the Faraday cage effect, leveraging grounded metal to block unwanted electromagnetic interference. To put it simply, it's like providing a warm sweater to shield our circuit from the "winds" of RF.

For a deeper dive into the technicalities, check out this resource: Electromagnetic Interference and How to Deal With It.

Addressing Weight and Battery Protection

IMG_1406.JPG
IMG_1405.JPG
IMG_1404.JPG
IMG_1402.JPG
IMG_1401.JPG
IMG_1400.JPG
IMG_1398.JPG

To address problem of battery receiving excessive force from the feet of the wearer, I had to come up with a protective plate built using resilient fiberglass PCB. This acts as a force re-director, efficiently distributing the weight evenly across the entire sole and thereby shielding the battery from receiving the entire weight of the human.

Understanding AT Commands

At_COMMAND.png

AT commands, derived from the term ATtention, serve as instructions to control a cellular modem. The prefix "AT" or "at" initiates every command line. Originally designed for wired dial-up modems, common AT commands include ATD (Dial), ATA (Answer), ATH (Hook control), and ATO (Return to online data state).

In the context of GSM/GPRS modems and mobile phones, an extended set of AT commands specific to GSM technology exist. This set contains commands such as AT+CMGS (Send SMS message), AT+CMSS (Send SMS message from storage), AT+CMGL (List SMS messages), and AT+CMGR (Read SMS messages).

This introduction lays the groundwork for utilizing AT commands in our project, offering control and communication capabilities essential for interfacing with GSM/GPRS modems and mobile phones.

The Embedded Code

Shot016.png
Shot017.png
Shot018.png

I attached the embedded code to be flashed onto the Arduino Pro Mini.

Set Up the Phone Number in the Code

Shot015.png

To enable SMS notifications using the GSM service of the SIM card, follow these steps:

Note: Ensure your SIM card has sufficient credit (working SIM).

  1. Note down the number of the SIM card.
  2. Open the code.
  3. Locate the following lines in the code:
...
Serial.println(content);<br> FONA.print("AT+CMGS=\"+************\""); FONA.println("");
Serial.print("SMS INITIALIZED");
digitalWrite(9 ,LOW);
...

Replace the asterisks (**********) with your phone number in the format: +(country code) (your number).

  • Example: If your number is 0000000000 and the country code is 11, modify the line as follows:
...
Serial.println(content);<br> FONA.print("AT+CMGS=\"+110000000000\""); FONA.println("");

Bearer Service and APN Settings

Shot020.png

In telecommunications, Bearer Service, or data service, facilitates the transmission of information signals between network interfaces. These services empower subscribers with the capacity needed to transmit signals between specific access points, such as user network interfaces.

Each SIM operator defines its BEARER and APN settings, crucial for activating GPRS services. To set the bearer and APN:

  1. Locate and replace "your-apn" with your network's APN.
// bearer settings<br>  FONA.print("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");FONA.println("");
Serial.print("BEARER IS SET ==> ");
delay(2000);
toSerial1();

// bearer settings
FONA.print("AT+SAPBR=3,1,\"APN\",\"your-apn\"");FONA.println("");
Serial.print("APN SETTINGS ARE SET ==>");
delay(2000);
toSerial1();

PHP for Real-Time Tracking Web Page

bd2_6f5_636_330-1-original.jpg

To create the real-time tracking web page, we'll be utilizing PHP, a powerful scripting language that enables the development of dynamic web content. PHP, which stands for "PHP: Hypertext Preprocessor," originated in 1994 as an open-source project by Rasmus Lerdorf and has since become widely adopted.

What is PHP?

  • PHP is a scripting language that is executed on the server.
  • It is open source and free to download and use.

What Can PHP Do?

  • Generate dynamic page content.
  • Create, open, read, write, delete, and close files on the server.
  • Collect form data.
  • Send and receive cookies.
  • Add, delete, modify data in your database.
  • Control user access.
  • Encrypt data.

Why PHP?

  • PHP runs on various platforms (Windows, Linux, Unix, Mac OS X, etc.).
  • Compatible with most servers (Apache, IIS, etc.).
  • Supports a wide range of databases.
  • Free to use.
  • Easy to learn and efficient for server-side processing.

To get started, we will use PHP to develop a web page that displays the real-time location of the wearer, accessible from anywhere in the world.

Web App Code

Below is the PHP script I've crafted for the With U Sole project. In the following steps I'll walk through the process of setting the web app step by step. For now, go ahead and download this code into your Notepad++ editor.

Get Google Maps JavaScript API Key

Shot001.png
Shot003.png
Shot002.png

In our project, we rely on Google Maps, and for that to function, we require an API KEY. The process to obtain one is very straightforward, and the best part is, it's free. Follow these simple steps to acquire your API KEY:

  1. Visit the Google Developer link: Google Maps API.
  2. Look for the box labeled "GET KEY."
  3. Click on it.
  4. Provide your project name (e.g., With U Shoe).
  5. Click on "Enable API."
  6. A generated API key will be displayed; make sure to copy and paste it to a secure location.

Add the KEY to the PHP Code

Shot005.png
Shot004.png

After obtaining your API key, it's time to integrate it into the code. Follow these steps:

  1. Locate the code lines in your script:
<script src="http://maps.googleapis.com/maps/api/js?key=<your key here>&sensor=false">


Replace <your key here> with the API key you obtained from Google.

That's all there is to it. Your API key is now integrated into the code, ensuring Google Maps component can be integrated into the web app.

Set Up the Whole Website

Shot006.png
Shot007.png
Shot008.png
Shot009.png
Shot010.png
Shot021.png

To host the code and run it, you can consider setting up an Apache server on a spare computer, enabling port forwarding for external access, and storing the code there. However, for a more straightforward solution, you can opt for a free web hosting service.

Here are the steps:

  1. Visit https://www.000webhost.com.
  2. Create a free account.
  3. Log in to your account.
  4. Create a domain (any name will suffice, as it's free).
  5. Access the CPanel by clicking "Go to CPanel."
  6. In the FILE MANAGER section, select any file manager option available (there are three, and they function similarly).
  7. You'll be directed to an FTP server page; log in.
  8. Once the page loads, create a new file and paste the PHP code into it.
  9. Save the file with a ".php" extension.

Now, follow these crucial steps:

  1. Return to the directory where you saved the initial PHP file in the file manager.
  2. Create a blank file named "gps.php." Please make sure not to change the file name, as this file will store coordinates received from the shoe and use them to plot the map.

That's it! Save all the files and exit.

Adding Server Information to Embedded Code

Shot022.png

Because we are sending the coordinates to the server, and your server address is different than mine, you will have to make the appropriate change to the code.

1) Find the lines:

FONA.print("AT+HTTPPARA=\"URL\",\"http:///<your_domain_here>/<PHP_file_name>.php?");

and replace the with your server address.

Flash Code to Arduino

To upload the provided code to the Arduino Pro Mini, follow these steps:

  1. Obtain an FTDI chip (3.3V).
  2. Open the Arduino code environment.
  3. Load the provided sketch.
  4. Configure the settings for your Arduino Pro Mini.
  5. Click on the upload button.
  6. You're done!

Note: Ensure the voltage settings on the FTDI chip are set to 3.3V to prevent damage to your components. Refer to this guide for additional information: Using the Arduino Pro Mini (3.3V).

Test the Server

4.jpg

To test the server functionality, open your web browser and type the following URL:

<Your_Domain>/<PHP_file_name>.php?latitude=0.00&longitude=0.00&satellites=10

You should see a page that says that your data has been saved. This means that the server side of things work.

DATA recieved: Latitude: 0.00 Longitude: 0.00 Time: Satellites: 10 Data saved Succesfully!

What Next?

2.png
3.png

There are several potential enhancements that could be implemented to improve the With U shoe. Here are some suggested priorities:

  1. Optimize Code Efficiency: Enhance the existing code for better performance and efficiency. This will make the system more responsive and reliable.
  2. Develop an Android App: Create a dedicated Android application for the With U shoe, providing users with a convenient way to track real-time location, receive updates, and access additional features like geofencing.
  3. Custom PCB Design: Move from prototyping with Arduino and FONA to designing a custom PCB at the chip level. This can reduce the size and complexity of the circuit, making it more suitable for mass production.
  4. 3D Print the Sole: Explore the possibility of using 3D printing technology to create custom soles for the shoes. This can enhance the overall design, comfort, and aesthetics of the With U shoe.

These enhancements would contribute to the evolution and improvement of the With U smart shoe, making it more efficient, user-friendly, and suitable for mass production.