How-tos

IoT application that monitors your food pantry

Share this post:

What goes together better than the Internet and food? But there’s more to this delicious combination than just posting photos of last night’s meal on Instagram. Continuing our theme around the “Internet of Things,” we present another possibility from this game-changing tech. In this post, we’re going to use IBM Bluemix and PubNub to build an application that will transform any dumb kitchen by enabling automatic inventory tracking. You’ll never run out of bacon again!

Project Overview

This application relies on sensing the weight of a kitchen storage container to track food consumption. This data can provide valuable insights around consumption patterns and help chefs predict and replenish their inventory just in time. There are three components of this application:

  • Inventory Tracking Server (ITS): Monitors all the kitchen containers and records daily consumption and replenishment statistics
  • IoT hardware: Detects the weight changes in containers and connects them to ITS
  • Mobile app: Provides an easy interface to see the current state of inventory and also offers analytics to view inventory history for the last seven days.

The reference architecture of the entire application is show below:

Communication between the components of this application is handled by PubNub’s realtime Data Stream Network.

ITS is a Python-based application server running on Bluemix. In order to keep track of the inventory records, this application provisions a dashDB instance, which is IBM’s in-house data warehousing service on the Bluemix cloud. The mobile interface is a Cordova & JavaScript-based Android app.

The hardware is powered by a combination of Arduino UNO and Mediatek Linkit ONE. For sensing the weight of kitchen storage containers, two piezoelectric load cells are used.

In order to produce the desired strain for determining the container’s weight, the load cell needs to be mounted between two flat surfaces (such as plywood) with the help of the two threaded holes on each side of it. Once mounted, the flat surface can act as a scale for measuring the weight of a storage container.

Application Use Cases

For a restaurant or large hotel, tracking kitchen inventory is one of those tasks that’s crucial to their business. It can be quite inefficient and error prone due to human intervention. In such cases, having such inventory tracking application makes perfect sense. There are three main use cases of this application:

  • Track inventory – Provide automatic, realtime updates about the current availability of inventory
  • Expiration Notification – Notify the user in case of expiration of food
  • Analytics – Access historical inventory usage data for better prediction and planning.

Conclusion

That’s it for this post. To continue from idea to implementation, see the second part of this project where we discuss and present the detailed setup and internal workings of this application.

Add Comment
No Comments

Leave a Reply

Your email address will not be published.Required fields are marked *

More Internet of Things Stories

Running Go Programs as IBM Cloud Functions

IBM Cloud Functions is a functions-as-a-service platform that is powered by Apache OpenWhisk. It is a readily extensible serverless platform that supports functions authored in various programing languages including Node.js,Python, Swift, Java, and PHP. A feature of IBM Cloud Functions that has been around for some time but not well documented is support for native binaries: any executable that is binary compatible […]

Continue reading

Build and deploy a MEAN stack application on IBM Cloud

MEAN is a collection of JavaScript-based technologies — MongoDB, Express.js, AngularJS, and Node.js — used to develop web applications. From the client and server sides to databases, MEAN is a full-stack development toolkit. This tutorial walks you through the creation of a web application using the popular MEAN stack. It is composed of a Mongo DB, Express web framework, Angular front-end framework and a Node.js runtime.

Continue reading

A hybrid Cordova mobile app with Push and Analytics in minutes

As promised while introducing "Tutorials to get your mobile development up and running", we are continuing our efforts to add more mobile solution tutorials. After quickly scaffolding a native iOS-Swift and Android mobile app with Push and Analytics, it's time to bring in the hybrid mobile app development flavor to the game with Cordova - Apache Cordova is an open-source mobile development framework. It allows you to use standard web technologies - HTML5, CSS3, and JavaScript for cross-platform development.

Continue reading