Pantry Slack Bot

Slack bot for retrieving real time snack supplies from your office kitchen using AWS data streams (Kinesis).

Official submission for the AWS IOT Kinesis Challenge

Check the full open-source repo here: https://github.com/cbonoz/pantryslack

Scale Setup

Concept

Bagels are the most frequently consumed product in our office. We set out to build a solution that would let you know how many bagels were in the office from your mobile or desktop in real time, from anywhere.

No longer do our staff members live in wonder coming into the office over whether there will be bagels or not. Now they can slack a quick message to the office pantry bot and see if they need to make a pitstop at the local Starbucks on their morning commute.

Though we demoed this with bagels, this could be used to remotely monitor other supplies as well.

Technologies used.

  • Nodejs/Express web server
  • Slack sdk
  • AWS-KCl (kinesis consumer sdk)
  • Mosquito (Raspberry pi MQTT broker)

We have the Raspberry Pi setup to sample from the tared (neutraled out with bin weight) stands as quickly as you can get data from the load cells. We take the average of these incoming measurements over 30 seconds and broker them to the AWS Kinesis backend.

On the slack side, we have a remote web server set up as a Kinesis data consumer, which collects and stores the incoming measurements from the data stream. These measurements are then stored locally on the server and made available to end users in the office by communicating with the slack bot.

Equipment

  1. 5 kg load cells (compatible with Raspberry Pi)
  2. Screws, bearings, and plywood square cutouts for the stands
  3. Raspberry Pi Zero W (or equivalent)
  4. Plastic bins for each stand in the setup
  5. Wires and cabling

Images

Front of stand

Dual measurement bin setup

Slack bot live conversation

Dev Notes:

Running the slack server:

yarn
yarn start

Running the container from your local Dockerfile (using port 5000 as the default).

sudo docker build -t pantry-bot .
sudo docker run -p 5000:5000 pantry-bot

Useful links:

Built With

Share this project:
×

Updates