Skip to content
This repository has been archived by the owner on Apr 26, 2019. It is now read-only.

miwurster/msc-iot-kaffeekanne

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

IoT Kaffeekanne

The lab exercise in the form of a two-day hackathon, in the course of the lecture Internet of Things, was to use a scale to measure the current coffee level at our institute's coffee pot. The challange was, based on this starting position, to build an IoT solution collecting this data from the scale, processing and providing it in an appropriate form to the end users.

MVP

After a brainstorming, the team agreed to the following requirements in order to provide a minimal viable product:

  • Implement a sensor (Python) reading the measurements from the scale
  • Sensor script has to publish those measurements (one measurement per second) in bulks to IBM's Watson IoT Platform
  • The sensor's time-series data has to be persisted in a NoSQL database
  • A backend function has to check thresholds to trigger additional actions
    • Must: Tweet about the current status of the coffee can
    • Optional: Learn thresholds automatically based on historical data
  • Implement a RESTful interface to request the current state of the coffee can
  • Having a simple but mobile friendly web application utilizing the RESTful interface to visualize the state

Architecture

Overview

The GRAM RZ-30 scale is connected to a Raspberry Pi. Those two parts build our sensor. On the Raspberry Pi, a Python script receives the measurements from the scale and pushes them to IBM Bluemix.

The Device API is implemented as Node-RED Cloud Foundry application and receives the data from our sensor. The data will be persisted into a NoSQL data store. Additionally, the application checks a certain threshold and if this threshold is violated it will tweet in order to inform the end users about its current status.

The Kaffee API is also implemented as Node-RED Cloud Foundry application and is responsible to serve the latest state of the coffee can in a RESTful manner.

Using Cloud Foundry's staticfile buildpack, we are going to serve the end-user's web application. The end-users will access the application simply thru their web browser (optimized for mobile devices).

Components

Links

Contributors (and Responsibilities)

  • Daniel Joos (Python Sensor, Raspberry Pi integration)
  • Eduard Yarolyan (Kaffee API, NoSQL Database Layer)
  • Manuel Breithaupt (Device API, Twitter Integration)
  • Michael Wurster (Raspberry Pi integration, Web Application)
  • Arbnora Selimi (Documentation, Web Application)
  • Emrullah Apaydin (Documentation, IBM Bluemix Setup, supported other team members)

About

IoT Hackathon Result

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages