Why would anyone point a camera at a screen when the numbers already live inside the device? Tomasz Burzy asked himself the same thing after hours of probing a secondhand blood pressure monitor, and the answer turned out to be a cheap ESP32-CAM. Hackster News covered the build.
What the hack does
Burzy bought a used monitor on eBay and wanted its readings to land in a self-hosted health tracker without retyping them. The ESP32-CAM watches the LCD, reads the systolic pressure, diastolic pressure, and pulse, then sends them over Wi-Fi. The firmware is open source and can push data to Home Assistant, Node-RED, or any HTTP endpoint.
Why the camera won
His first plan was to tap the board directly. Under the case he found an Epson microcontroller, a pressure sensor, and the pump and valve drivers. A budget logic analyzer captured raw sensor data, but the final blood pressure values are computed inside the MCU, and his own AI-assisted algorithm was not accurate enough to trust.
So the ESP32 skips OCR entirely. Each of the 7 segments in a digit sits at a known spot in the frame, and the firmware samples those spots for brightness. Eight digits on the screen become eight small lookup tables, which is far lighter than text recognition on a chip with limited RAM. A calibration tool maps the segment positions once per monitor.
The gotcha: glare from the transparent window over the display confused the detection, so Burzy removed that plastic. Two extra buttons choose between user profiles, an LED confirms the pick, and deep sleep wakes the board when the start button is pressed.
Try it on your bench
Start with a cheap monitor you do not mind opening, mount the camera at a fixed distance, and run the calibration utility before touching the firmware. Check each reading against the original display, because the camera can misread a digit. An ESP32-CAM module runs around PHP 450 to 600 at circuit.rocks, and the full write-up is at the source article.
Frequently Asked Questions
How does the ESP32-CAM read the monitor’s display?
It checks fixed pixel locations for each of the seven segments in every digit and decodes the lit pattern into a number, instead of running OCR.
Where do the readings go?
Over Wi-Fi to a self-hosted health tracker, and the open source firmware also supports Home Assistant, Node-RED, and generic HTTP endpoints.
What will I learn if I build this?
You will practice camera alignment, seven-segment decoding, deep sleep wake on a button press, and pushing sensor data to an HTTP endpoint from an ESP32.
