Wearable Space Bubble
What is the Wearable Space Bubble
The Wearable Space Bubble is an IoT project that detects other people's Bluetooth devices to give you more personal space! Check out the definitely real commercial below!
The Space Bubble uses Bluetooth protocols to detect nearby Bluetooth devices, and then estimate their distance to the wearer. If a new Bluetooth Device is detected within the space bubble it activates a warning siren telling them to move away! In this case, the sound chosen was "Can't Touch This" by MC Hammer. If a device is detected getting close to the user, LEDs on the user's jacket will light up warning them to step away.
This device utilizes an ESP32 microcontroller, a NeoPixel LED Ring, and an Adafruit Sound FX board and guitar amplifier. The ESP32 performs Bluetooth sensing and sampling, and activates the LED ring and Sound FX board when your space bubble is violated!
The LED Ring is controlled using PWM (Pulse Width Modulation), you can learn more about PWM on the Arduino page!
The Adafruit Sound FX board is activated with a digital output pin on the ESP, and can be set to play multiple sounds. At first, I wanted to store the sound files on the ESP32, but when I compressed them to fit available memory I found the quality dropped too much to be usable. Here's a great project from Hackaday on storing WAV files on an ESP32.'
Almost everyone nowadays has a Bluetooth device on them, that is identifiable with a MAC address, whether it’s their phone or headphones these devices can be accessed and detected without directly connecting to them or interfering with them at all.
To determine the location of nearby devices, the Space Bubble sends out an “inquiry packet”, asking nearby devices to identify themselves. Bluetooth devices that receive this request will respond with their identification, and the social distancing device can determine how far away these devices are depending on the strength of the returned request. This is called RSSI, received signal strength indicator, and it’s measured in decibels.
Testing this method on the ESP32, I found that the RSSI varied depending on the distance of devices, and proximity to other Bluetooth devices. Bluetooth devices all operate on the 2.45 GHz frequency, which is close to Wi-Fi, so some noise is expected. To prevent the majority of the noise, Bluetooth Devices utilize adaptive frequency hopping. Basically, it's like if you were using a radio channel with your friend, and someone else hopped on and started talking. You tell your friend you're moving to a different channel and you both move to a new, clear channel.