Inspiration
Did you know the average Canadian household wastes approximately $1,300 worth of food every year? We have all seen it at home. Bananas bought with good intentions that nobody eats. Leftovers pushed to the back of the fridge and forgotten. Yogurt found a week past its date. My mom does this constantly with bananas. The problem is not that people do not care. It is that the fridge gives you no information. You open it, you see stuff, and you have no idea what needs to be eaten first or what has been sitting there for two weeks. With grocery prices going up and food waste becoming a bigger environmental issue, we wanted to fix that. That is why we built FridgeIQ.
What it does
FridgeIQ helps you stop wasting food. It keeps track of everything in your fridge automatically, tells you what is going to expire soon, and helps you use it before it goes bad. No more throwing out food you forgot you had. No more buying milk when you already have milk. The display on your fridge door shows you what needs to be eaten first, so you do not even need to open an app. The web dashboard gives you your full inventory anytime, whether you are in the kitchen or at the grocery store. And if you are not sure what to cook with what you have, the built-in recipe chatbot suggests meals based on what is actually in your fridge, prioritizing whatever is expiring soon. That is it. Open your fridge like normal, and FridgeIQ handles the rest.
How we built it
FridgeIQ is built around one core loop: door opens, camera fires, AI identifies what changed, and the system updates your inventory automatically. The door detection runs on an Arduino Uno R4 WiFi with a Grove light sensor mounted inside the fridge. When the light sensor crosses a brightness threshold, the Arduino flags a door-open event and begins serving that data alongside live temperature readings over its own WiFi HTTP server. On the camera side, a Raspberry Pi 4B with a Pi Camera Module 3 Wide runs a Flask server waiting for capture requests. When the frontend detects a door-open event from the Arduino, it hits the Pi's /capture endpoint, which takes a 1080p still and returns it as JPEG. That image goes straight to the Claude Vision API, which identifies every visible food item and estimates a typical refrigerator shelf life for each one. The frontend then diffs the returned item list against the previous scan, logs newly added items with a timestamp, and removes anything no longer visible. Every item in the database is tracked against its estimated shelf life in real time using a simulated time multiplier for demo purposes. The results display in two places: the web dashboard, which shows the full inventory sorted by what expires soonest, and the Seeed Studio SenseCAP Indicator D1, a touchscreen display on the fridge door showing expiry warnings, live temperature, and door status, all updating continuously over WiFi.
Challenges we ran into
This was our first real hardware project, and almost nothing came easy. Raspberry Pi setup was our first wall. None of us had used one before, and we didn't have the usual accessories — no monitor, no SD card reader, no HDMI cable. We had to flash the OS remotely, configure WiFi credentials by manually editing the network-config file on the SD card from a Windows laptop, and SSH in blind. The Pi kept failing to connect to our mobile hotspot, forcing us through multiple reflashes and config edits before we finally had a stable connection.
The SenseCAP Indicator display was the other major challenge. Getting it working required installing the ESP32 board package via a custom Boards Manager URL in Arduino IDE, then sourcing a specific fork of the Arduino GFX library (Seeed_Arduino_GFX) as a ZIP — the standard library from the Library Manager was incompatible with the display's ST7701 RGB panel driver. Touch input required the TouchLib library targeting the FT5x06 controller at I2C address 0x48 through a PCA9555 IO expander, with the correct SDA/SCL pins and a reset sequence through the expander's P07 port. Smooth scrolling took additional work — we implemented a pixel-accurate float scroll with masked header/footer repaints to prevent row overlap artifacts.
What we learned
Almost everything. This was our first real hardware project. We learned how to architect a multi-device pipeline, how to use Raspberry Pi and SSH, how to read hardware datasheets and debug I2C peripherals, how to use VS Code and GitHub properly, and how to build and deploy a working web app under real time pressure. But the most important thing we learned wasn't technical. We learned that we're capable of a lot more than we thought.
What's next
FridgeIQ is a working prototype, but there is a lot of room to grow if this were a real product. The biggest limitation right now is that the camera identifies food visually, which works well for loose items but struggles with packaged goods. The next step would be receipt scanning, you photograph your grocery receipt after shopping and FridgeIQ automatically adds everything to your inventory with accurate expiry dates from the actual product, rather than generic estimates. This would make the tracking significantly more precise. From there, the natural extensions are things like push notifications when something is about to expire, and waste tracking over time so you can actually see how much food and money you are saving month over month. Longer term, a purpose-built camera module that mounts cleanly inside any fridge would make this a real consumer product rather than a prototype. The core pipeline is already there. It would mostly be a matter of packaging it properly and hardening the computer vision for more fridge environments and lighting conditions.
Built With
- anthropic-claude-api-vision+chat
- arduino
- arduino-gfx-(seeed-fork)
- arduino-uno-r4-wifi
- arduinojson
- c++
- c++-frameworks-flask
- css
- flask
- flask-cors
- flask-cors-hardware-raspberry-pi-4b
- grove
- grove-light-sensor
- grove-temperature-sensor-apis-anthropic-claude-api-(vision-+-chat)-libraries-picamera2
- hotspot
- html
- javascript
- mobile
- networking
- pca95x5
- pca95x5-other-arduino-ide
- pi-camera-module-3-wide
- picamera2
- python
- raspberry-pi-4b
- seeed-studio-sensecap-indicator-d1
- sensor
- ssh
- temperature
- touchlib
Log in or sign up for Devpost to join the conversation.