Difference between revisions of "Find My Kid page"
|Line 228:||Line 228:|
== Tutorial ==
== Tutorial ==
[[How To Connect an HC-06 Bluetooth Module to an Arduino | Link to Tutorial: How to Connect an HC-06 Bluetooth Module to an Arduino]]
[[How To Connect an HC-06 Bluetooth Module to an Arduino | Link to Tutorial: How to Connect an HC-06 Bluetooth Module to an Arduino]]
Revision as of 00:10, 5 May 2018
- 1 Overview
- 2 Members
- 3 Objectives
- 4 Challenges
- 5 Gantt Chart
- 6 Budget
- 7 In-Class Presentation
- 8 Design & Solutions
- 9 Results
- 10 Tutorial
- 11 Repositories
Our project aims to reconnect parents back to their missing children. If a child wanders off in a crowded place, in can be scary for both the parent and the child. Our project will allow parents to reunite with their kids quickly and efficiently.
The child will carry an Arduino + bluetooth module device, which will communicate through bluetooth to the parent’s cellphone. When the child and parent are separated by a pre-set distance, both the child’s device and the parent’s phone will respond. The child’s device, which will be carried in a small, portable, and kid-friendly box, will alert the child through flashing lights or noises. Meanwhile, the parent will get a notification on his or her cellphone.
- Alexa Rakusin
- Anaïs Quach
- Manohar Pradhan
- TA: Sam Hoff
- Instructor: Professor Mell
Our main goal for our project is to successfully establish communication between two devices: one being carried by the parent and one being carried by the child. Our project is successful if the devices can indicate to the users that they are separated beyond a specified range. At the end of this semester, we will demonstrate our project by separating the home device and the receiver by the necessary range to make the devices respond accordingly.
Technical Skills: The biggest challenge we will face is our overall lack of coding knowledge. We don't have experience working with Arduino or with coding phone applications. We needed to learn the code to set up signal communication between the Arduino, bluetooth module, and the phone. Devising the project and list of goals also posed some difficulties, because we lacked the experience and background knowledge to grasp what the project specifically entailed.
Size: Another concern is the ergonomic integrity of the device; we want the receiver to be wearable, durable, and safe for a child. Ultimately, the receiver is meant to be worn by a child in a situation in which the child might be active and running around. Realistically, our device should be small and sturdy so that it could not be easily broken by the user. Ideally, we would have liked our device to be small enough to wear as a bracelet or accessory; however, upon realizing that the size could not be reduced we decided to make a portable box instead.
Distance: The HC-06 Bluetooth Module that we purchased only has a short range of ~10 meters (around 30 feet), which limits the scope of our project. There is also no feature on the HC-06 that allows us to modify its range.
Distance Tracking: The HC-06 Bluetooth Module was not able to explicitly measure its distance from the phone. We solved this issue by coding the Arduino to recognize when the signal strength is declining and alert the users when the signal is lost.
Cost: Another challenge to consider is the cost of the final product. Realistically, consumers would not be willing to pay a large sum for a product that they would only use for occasional situations or emergent situations. While some parents experience anxiety about losing their children in crowded places, many parents might not feel the need to purchase an emergency-oriented device that would only be useful during unplanned circumstances.
- Arduino (Provided)
- 3D Printing Materials (Provided)
- HC-06 Module Wireless Serial Communication x2: $17.98
- Alarm Buzzer Sensor Module for Arduino: $7.08
- 9 volt batteries: $9.99
- 9 volt battery clips with bare leads: $5.39
- Mini toggle switch: $5.29
- HC-05 Module Wireless Serial Communication: $9.99
- Schematic design of Find My Kid system
We presented our project in class on February 24th. Link to Project Presentation
Design & Solutions
Our design consists of two main devices: the phone and the Arduino. We also 3D printed a portable box to carry the Arduino.
The Arduino set-up consists of three main components: the HC-06 bluetooth module, an LED, and a 9-volt battery.
- Bluetooth Module:
- Initially, a breadboard was used to make a connection between the HC-06 bluetooth module and the Arduino Uno.
- The Bluetooth Vcc was connected to the 5V pin of the Arduino in order to provide the supply voltage for the module.
- The module was grounded by connecting the module GND pin to the Arduino GND pin.
- The Tx and Rx pins on the bluetooth module were connected to the Rx and Tx pins on the Arduino Uno (pins 0 and 1). A voltage divider circuit was set up between the Rx pin of the module and the Tx pin on the Arduino so that the voltage used for the serial communication is 3.3 V. Thus, we used two resistors in series with R1= 2R2 and the Tx of the Arduino being connected across R2. The Tx pin of the HC-06 was connected to the Rx pin of the Arduino.
- The red light on the Bluetooth Module indicates connection to the phone. When the Arduino and the phone lose connection due to distance separation, the red light begins to flash quickly. This light indicates to the child that they are out of range from the parent and need to return.
- The bluetooth is password protected, so other people can’t connect to the device. This should help alleviate some concerns about safety and security.
- Why we chose this module: We thought about using ultrasonic sensors but had multiple concerns, including: (a) lack of full 360 degree range, (b) physical space/portability, (c) problems with interference (our device is meant to be used in busy places where we’d expect lots of interference). The bluetooth module is good because it has better coverage.
- (For more in-depth set-up details, you can read our tutorial.)
- LED: The LED, which was our actuator, was connected to Pin 13 and the GND pin of the Arduino. We set it up so that the LED could be controlled through the Find My Kid app on the phone. Typing a "1" command on the app causes the LED to blink. Subsequently typing a "0" command on the app causes the LED to stop blinking. This is a useful feature because it adds an element of user interface and communication between the two devices. This feature can be used by the parent to communicate to the child to return to the parent before going out of range.
- Battery: We connected a battery clip with leads to the 9-volt alkaline battery. The + end of the battery is connected to Arduino Vin and the - end of the battery is connected to Arduino GND. A toggle switch is attached in series with the battery that allows us to switch the Arduino on and off. We added the toggle for the purpose of battery efficiency; it lets us turn on/off the battery so it’s not always running. We soldered the pins of the toggle switch to the red and black leads of the battery connector. We followed the instructions found on this website.
- Set-Up Phase: Using the Breadboard to Connect the Arduino and Modules While Uploading the Code
- Diagram of Arduino with attached modules
The HC-06 Bluetooth Module was only compatible with Android devices. After setting up the connections and the circuit and uploading the Arduino sketch, the Android device is paired with the HC-06 via a simple bluetooth connection. The password is set to a specific code using the AT command mode of the HC-06 module so that only the Android device used by the parent can pair with the HC-06 module. Once paired, the app on the phone ‘FindMyKid’ is opened and the HC-06 is connected to the app. Once done, the app is able to send inputs to the HC-06 and the actuators connected on the Arduino respond accordingly. The app was created using MIT App Inventor 2.
- MIT App Inventor Code for Find My Kid Phone App for Android
- Press 0 on app: Welcome message
- Press 2 on app: “Kid is in range” (or no message if unpaired)
- Press 1 on app: Kid’s LED will start blinking → tells your kid to come find you if they are still within range
- Press 0 on app to turn off LED blinking
- Bluetooth module light will start blinking when out of range
- “Phone has disconnected” message will appear on phone when out of range
- App header with "Not Connected" message when phone is separated out of range from bluetooth module
3D Printed Box Design
The box was modeled using Autodesk Inventor. We chose to print a box to carry the Arduino because if a child is intended to carry the device, it needs to be durable and portable.
We modeled the box to look like a treasure chest. The lid slides horizontally into one side of the box and was modeled by negative extrusions to the inner wall of the box. The box also included a measured space to place an alarm buzzer module with a small hole through the wall of the box so the alarm buzzer can be heard while the box is closed. We also made a separate hole on the opposite end of the box to stick an LED light. For decorative purposes, we embossed the Find My Kid logo on one side, and designed a lock on the other side to make it look more like a treasure chest.
We also decided to solder the wires connecting the Arduino, bluetooth module, LED, and battery in order to make sure it could fit inside the box. To prevent the exposed wires from touching while inside the box, we also added black tubing to coat all of the wire attachments. We specifically cut the black tubing and shrunk it with heat so that it was tight around the wires to take up as minimal room as possible.
- 3D Models of Case on Autodesk Inventor
Our project was successful because we were able to accomplish our main goal of establishing connection between the phone and the Arduino + Bluetooth Module device. We also succeeded in creating a dynamic and aesthetically pleasing case for the device, which was able to fit the Arduino and its attachments. At the demonstration session, we were able to show the functionality of the Find My Kid app and its different features. Our app had the ability to communicate with the Arduino to control the different modules, including the bluetooth module and LED light.
- Arduino and Modules inside 3D Printed Treasure Box
- Demonstration of Find My Kid App Functions and Device when Out of Range
- Demonstration of Phone when Out of Range
In the beginning of the demonstration session we decided to keep the Arduino plugged into the computer for power rather than using the battery. We made this decision because during the previous night, upon connecting our device to the battery and putting it into the box the bluetooth module blew out unexpectedly. We believe this happened because there may have been exposed wires touching, which would have messed up the circuit. We investigated the issue by checking all of our wires with a multimeter and found that the wires were all functioning; this allowed us to conclude that the bluetooth module had blown out. To fix our project, we went back and completely re-wired our circuit. This time we added black protective tubing around all parts of the exposed wire sections.
Despite our conclusion that the malfunction was caused by the wires, we were hesitant to hook up the circuit to the battery because we only had one working HC-06 Bluetooth Module remaining. (If we blew out this last module we would not be able to demo our project at all.) Thus we decided to power the battery with the computer for the rather than the battery for the initial duration of the demonstration as a precaution. Later in the demo session, we were able to successfully switch from the computer power to the battery power and our device worked exactly the same. (This can be seen in the demonstration video above.)
Originally we had also intended to use an alarm speaker module on the Arduino so that it could emit a noise to alert the child. However, when we set up the device and connected the speakers, they were extremely quiet and difficult to hear. We recognized that if they were difficult to hear in an empty lab, they'd be impossible to hear during a loud demonstration session, so we decided to use an LED light rather than the speaker.
- Coding: Sending out AT commands from the HC-06 module was a big challenge. One of the approaches we were planning to take was to send AT commands to the HC-06 and get the signal strength values of the bluetooth connection between the Arduino Uno and the Android device. However, this was not possible through the Arduino IDE and AT commands to get the signal strengths could not be sent in a loop every second. Thus, we had to stick to a simpler model and code to build our system.
- Distance Tracking: The HC-06 Bluetooth Module was not able to explicitly measure its distance from the phone. We solved this issue by coding the Arduino to recognize when the signal strength is declining and alert the users when the signal is lost following a declining signal. This prevents false alarms from going off if the bluetooth connection is lost for a confounding reason, such as interference, that might cause the device to indicate the child is out of range when they are not actually out of range.
- Size: In the beginning of the semester, we had really hoped we'd be able to use the mini Arduino for our project. Later in the semester, however, we realized that the mini Arduino did not have enough pins to support all of the modules we wanted to add. We eventually had to make the decision to switch to the standard Arduino Uno because we needed the final dimensions for the 3D model.
- 3D Printing: We encountered a slight issue after printing the first case and realizing it was 0.3 inches too short. The measurements of the Arduino had not included the slight added length of the USB port which hangs off the side of the Arduino Uno. This was only a slight obstacle and we were able to make the correct adjustments and re-print the box before the demo.
Future versions of our project should improve on reducing its size and improving the range of communication between the devices. Other potential improvements include measures to promote power efficiency, user interface to describe battery level, ability for the user to set different range settings, and improving overall design and wearability. More specifically:
- Avoid using HC-06 Bluetooth Module
- If someone wanted to re-make our project from scratch, they would be better off finding a different kind of Arduino-compatible bluetooth module
- Throughout the semester we went through 4 bluetooth modules (2 arrived deficient, and 2 were blown for unclear reasons)
- Have adjustable ranges
- Depending on where you’re going you might have different preferences of how far you want your child to be able to wander.
- You’d have to use a different sensor module (not the HC-06)
- Smaller size
- We weren’t able to make it work on a mini Arduino, but ideally this device should be as small as possible
- Improve the user interface
- We’d want the user interface to be more “user friendly” in general, specifically in regards to the phone app
- Getting a louder speaker alarm for the kid’s device. The ones we had were too quiet and would not have been loud enough at the demo session.
One ethical concern that we had was the security of our project. If a stranger was able to connect to the Bluetooth device, the results could be bad. We mitigated this issue by making the Bluetooth connection password-protected. Further, the HC-06 Bluetooth module can only connect to a single phone at a time, so other people would not be able to intercept this connection.
Another ethical concern we have is the issue of liability. If a parent chooses to use Find My Kid to keep track of their child, the safety of the child relies on the Find My Kid device. Should a technical issue or malfunction occur while the device is in use, Find My Kid would be responsible for a potentially missing child. Find My Kid could also permit or even encourage parents to be less attentive to their kids when they are in public, because they are relying on the device to do that for them.
A third ethical issue about our project relates to its environmental impact. The case that we 3D printed, as well as the battery and other hardware used, are not eco-friendly products. Incorrect disposal of the Find My Kid device would indubitably harm the environment.
- Link to Repository with Arduino Code
- Link to Repository with .STL File for Box (Uploaded to Thingiverse)