I would like to thank DFRobot for sponsoring this project.
Here is a list of the parts used:
Silicon Labs CP2102 USB to UART Bridge ×1
MCP73831 Li-Ion Charger IC ×1
LM317BD2T Adjustable Regulator ×1
0805 4.7uF Capacitor ×2
0805 100nF Capacitor ×1
0805 1uF Capacitor ×1
WS2812b LED ×1
1206 LED ×4
Micro USB Connector ×1
0805 470 ohm Resistor ×1
0805 2k ohm Resistor ×1
0805 510 ohm Resistor ×1
0805 300 ohm Resistor ×1
0805 10k ohm Resistor ×2
0805 270 ohm Resistor ×2
6mm x 6mm Pushbutton ×2
SMD 6mm x 6mm Tall Pushbutton ×1
Step 1: Previous Project
Back in August of 2017, I imagined a device that could alert users if one of their loved ones experienced a fall or pressed a “panic” button. It used an ESP8266 and was assembled on a piece of perf-board. It had a single LED that would indicate if a fall had occurred. The device also featured a very basic LiPo charging circuit that had no indicators.
Step 2: New Idea
Since my last fall detector was so rudimentary, I wanted to make drastic improvements. The first one was making it USB programmable, so I used a CP2102 USB to UART converter IC to handle the USB to UART serial connection.
I also wanted there to be more indications of the operations, so I added an LED for charging, one for power, and two for the USB status. I chose to use an ESP32 due to its increased power and Bluetooth connectivity, which can allow for future expansion, such as an accompanying app.
Step 3: PCB Design
All these new features would require a lot of additional circuitry, and a simple piece of perf-board would not cut it. This required a PCB, which I designed in EagleCAD. I began by laying out the connections with their schematic editor. Then I moved onto making the actual board and traces.
Step 4: Soldering
This was the most difficult part because of the fine-pitched pins. The hardest component to solder was the CP2102, which comes in a QFN-28 package. Each pin is just .5mm apart, and without a stencil, this was fairly tricky to attach. I solved this problem by applying a generous amount of liquid flux to the pads and then running a small amount of solder over the pins.
Step 5: Usage
The device works by checking the acceleration measured by the MPU6050 at set intervals. Once it detects a fall, it sends an email to a set contact. I have found out that the battery lasts about three days, so it must be charged regularly. There is also a button that is connected to a hardware interrupt that can send an email when pressed.