Maker.io main logo

Upgrading My Smart Growth Chart with RFID, LEDs, a Camera, and More!

2025-03-21 | By Zach Hipps

License: See Original Project Camera Displays Imaging LCD / TFT LEDs / Discrete / Modules

 

Let's dive back into the saga of my over-engineered growth chart. If you recall from part ‎one, I definitively established my height as a solid 5'10". It turns out I could've been ‎rounding up this whole time! The original chart was, let's be honest, a bit… bare bones. ‎We needed to inject some Byte Sized Engineering bells & whistles. I want to add RGB ‎LEDs, a receipt printer, and, most importantly, a camera to send those adorable growth ‎updates to Grandma and Grandpa.‎

part1_1

part1_2

leds_3

printer_4

camera_5

This isn't just for me; it's also for the kiddos, and they definitely don't share my "lofty" ‎‎5'10" stature, so we need to have a way to differentiate who is being measured. My first ‎idea was to use buttons, but I would only have enough buttons to measure three ‎people. That won’t cut it. Next, I thought about using RFID tags, and I found some ‎RFID cards similar to the kind they use for hotel rooms, but it felt a bit corporate. My kids ‎aren't checking into a conference; they're growing! Then, I found some colorful ‎keychain RFID tags, which were way more fun but not exactly what I was looking for. ‎Finally, I discovered RFID bracelets. Colorful, fun, and kid-friendly. Perfect! However, ‎my existing microcontroller couldn't read them. I would have to swap to another!

bracelets_6

bracelets_7

bracelets_8

bracelets_9

bracelets_10

Enter the M5Stack Dial. It has the same ESP32 guts but with a built-in RFID reader. Of ‎course, this meant tearing down everything I'd already built. Classic engineering, right? ‎Thankfully, the code transferred over with only a few minor tweaks. I changed some ‎code for the different display and swapped around some GPIO pin declarations. ‎Naturally, I whipped out my DIY portable soldering station. Now, with a test twist of the ‎rotary encoder, the height displayed on the screen is changing again. This ‎microcontroller swap was a success.‎

display_11

display_12

display_13

display_14

display_15

display_16

display_17

display_18

The M5Stack Dial's real magic is its ability to read the RFID bracelets and display ‎names on the screen. Each bracelet has a unique ID, which I mapped to a name in the ‎software. Now, I can scan the blue bracelet, and then "Zach" pops up. Next up is the ‎red bracelet, which is "Patrick" (our camera operator). Last up is the orange bracelet, ‎and boom, it’s "Bob" (the producer). User identification has been sorted.‎

Time for RGB LEDs. My plan is to have a vibrant rainbow light show along the ‎aluminum extrusion as the carriage moves up and down but running wires that need to ‎move up and down would be tricky. Not the solution I am looking for. I think a second ‎stationary microcontroller to control the LEDs would be a better fit. This also opens the ‎door for the addition of a thermal printer and camera. For the second microcontroller, I ‎explored ESP32 camera modules and the M5Stack Timer X. Ultimately, I landed on a ‎Raspberry Pi 5. Why? For its processing power, ample GPIO pins, top-notch camera ‎modules, and ease of use. I know, I know, using a single-board computer when a ‎microcontroller could technically do the job… Sacrilege! But after wrestling with those ‎ESP32 modules, the Raspberry Pi was a breath of fresh air. Plug and play, baby! ‎Programming the RGB strip to the Pi was not as easy as I expected. Many libraries are ‎tailored for older Pi models. After some searching, I found a semi-updated Adafruit ‎library that worked with my Pi 5. After testing various rainbow animations, I settled on a ‎simple, elegant one. Nothing too flashy, just a smooth, dynamic rainbow display. Next, I ‎wanted to figure out how to make a varying animation length based on the measured ‎height. This was way outside my comfort zone. Python scripts & HTTP requests? I'm ‎more of a PCB and circuit guy. Let's just say ChatGPT and I became very well ‎acquainted. After some debugging (and a tweaked HTTP request), it worked! Spinning ‎the dial adjusted the length of the LED animation in real-time. Pure magic. I swear I ‎have no business making something this cool.

leds_19

leds_20

leds_21

leds_22

leds_23

leds_24

leds_25

With the LED animations sorted, it was time to extend the length of the LED strip. To ‎ensure a clean transition, I trimmed off the first LED and the connector on the end and ‎the beginning of two strips. Then, after a quick solder job and a test run, we were back ‎in business—and, of course, a quick "5'10" check for good measure.

measure_26

measure_27

measure_28

measure_29

measure_30

measure_31

measure_32

measure_33

After talking to my daughter one night, she dropped an idea I couldn’t pass up. "It's ‎going to print out a piece of paper with my height, right?" Such a great idea, and I ‎couldn’t let her down, so a receipt printer was added to the project. Surprisingly, the ‎printer I got had a USB connection, so I plugged it into the Raspberry Pi, looked up a ‎Python library for it, and it worked on the first try. That was smooth. A rare win! ‎

win_34

win_35

win_36

Finally, it was time to add the camera, the heart of this project. Capturing those ‎precious growth moments for Grandma and Grandpa, who live on the other side of the ‎country. I opted for the Raspberry Pi Camera Module 3. After doing some tests with a ‎quick test Python script, I successfully got a test photo from the camera (don't judge my ‎dorky self)! ‎

camera_37

camera_38

camera_39

camera_40

But… I couldn't resist a little scope creep. I needed to add a Raspberry Pi touchscreen ‎display. This would be perfect for a preview before snapping a photo. How else would ‎we know when it was going to take the picture? I designed a 3D-printed enclosure, and ‎now I have a smartphone-like selfie experience.‎

I reassembled all the upgrades and additions together, and it was time for the grand ‎reveal. I gathered the kids, called Grandpa, and… well, you'll have to watch the video to ‎see their reactions. Let's just say there were smiles, receipts, and a whole lot of ‎heartwarming moments.

reveal_41

reveal_42

reveal_43

reveal_44

reveal_45

reveal_46

reveal_47

This project was a rollercoaster. From RFID bracelets to Python scripts, it pushed me ‎way out of my comfort zone. Even though we live on opposite sides of the country this ‎project helped close the physical gap, and bring my kids and me closer to my parents. ‎And who knows, maybe I'll even add a laser show next time. Just kidding… mostly.‎

project_48

project_49

project_50project_51

project_52

project_53

制造商零件编号 K130-V11
M5DIAL V1.1
M5Stack Technology Co., Ltd.
制造商零件编号 4043
RFID TAG R/W 13.56MHZ
Adafruit Industries LLC
制造商零件编号 2328
ADDRESS LED STRIP SERIAL RGB
Adafruit Industries LLC
制造商零件编号 SC1112
SBC 2.4GHZ 4 CORE 8GB RAM
Raspberry Pi
制造商零件编号 SC1223
RASPBERRY PI CAMERA 3
Raspberry Pi
制造商零件编号 SC1635
RASPBERRY PI TOUCH DISPLAY 2
Raspberry Pi
制造商零件编号 SC1159
RASPBERRY PI 5 CASE RED/WHITE
Raspberry Pi
Add all DigiKey Parts to Cart
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.