← Back to list

A technical storytelling format that walks through your architecture and the hardware…

Building a Smart Fridge IoT Pipeline: When Hardware Fails, Build the Logic

Pramod Kumar Upperpally · 2026-06-27 20:50 · 0 claps · 1.5 min read
#toi
Open on Medium ↗
Wiki topics: LIT · Literature & Writing 📟 · Gadgets & IoT 🏛️ · Architecture

A technical storytelling format that walks through your architecture and the hardware troubleshooting process.

Building a Smart Fridge IoT Pipeline: When Hardware Fails, Build the Logic

As someone who works with cloud data pipelines, dealing with clean, predictable data is the norm. But when you move to the “edge” and start building IoT devices from scratch, you quickly realize that the physical world is messy.

My current project is an automated Smart Fridge Camera. The architecture is straightforward: an ESP32-CAM sits inside the fridge. When the door opens, the onboard light turns on. A photoresistor detects this light, triggers the camera to snap a JPEG, and streams the binary data over Wi-Fi to a Google Cloud Run endpoint, which ingests it into BigQuery for tracking.

The Cloud Pipeline Success

The software side was a massive success. I wrote a C++ script for the ESP32 that handles memory allocation for the frame buffer, establishes a secure Wi-Fi link, and executes an HTTP POST request to my Cloud Run URL. The data was flowing beautifully.

The Hardware Hurdle: Error 0x106

Then came the hardware reality check. The ESP32-CAM chip kept throwing an ESP_ERR_NOT_SUPPORTED (0x106) crash on boot. After testing power drops with a multimeter (and discovering my "new" 9V battery was completely dead at 4.5V), lowering the $I^2C$ clock speed to 10MHz to clear line noise, and reseating the ribbon cable, I diagnosed a physical hardware failure inside the tiny OV2640 camera lens module.

The Pivot: Building the Trigger Engine

While waiting for a replacement lens, I didn’t stop. The camera is just the payload; the trigger is the brain.

I wired up a Photoresistor (LDR) and a 10kΩ resistor into a voltage divider circuit on a breadboard, connecting it to the ESP32’s Analog-to-Digital Converter (ADC) on Pin 13. I wrote a continuous polling loop that tracks the raw voltage. When the room goes from dark to bright (simulating the fridge door opening), the system state flips to “Armed,” connects to the network, and fires a simulated 5KB dummy payload to Google Cloud. To prevent spamming the database, it utilizes hysteresis — refusing to upload again until the light level drops back down.

Hardware will always break, but the logic engines don’t have to wait. Now, when the new camera lens arrives, my cloud pipeline and trigger system are 100% ready to go. I will post my final project details soon. Stay tuned.


메타데이터
post_id
65c0ff339ff3
slug
a-technical-storytelling-format-that-walks-through-your-architecture-and-the-hardware-65c0ff339ff3
url
https://medium.com/@pramodmechan/a-technical-storytelling-format-that-walks-through-your-architecture-and-the-hardware-65c0ff339ff3
canonical_url
https://medium.com/@pramodmechan/a-technical-storytelling-format-that-walks-through-your-architecture-and-the-hardware-65c0ff339ff3
author_url
https://medium.com/@pramodmechan
status
ok
fetched_at
2026-07-11 00:45:12