Smarter Coffee machine + Raspberry Pi = IoT coffeetime

smarter-coffee-raspberry-pi

The wifi coffee machine by smarter coffee is not a secure device. It can’t be allowed to connect to your main router, but it needs to be controlled by a group remotely …plus it’s fun to play around with right?

Solution:

Connect it to a satellite router with only a RaspberryPi for company. This satellite router can then be locked down to allow only these devices to connect. As no phones can be connected their iOS and Android apps can’t be used, so to make requests we’ll have the RaspberryPi make requests to the coffee machine instead. We can then call they by having Hubot on the Pi we can also have it connected to the office chatroom (hipchat or slack), or run a web server on it and have a secure REST API.

githubLink

You’ll need:

  • 1 Smarter Coffee machine (untested but might also work with iKettle 2.0)
  • 1 Raspberry Pi or Pi Zero
  • 1 Router – highly recommended to be a satellite off your main router

How to install, test and run it:

We’re going to create a project directory, clone the code into it, edit it for your network, and run it to test.

Open the terminal on your RaspberryPi or have it boot to command line.

$mkdir project-coffee

$cd project-coffee

$git clone https://github.com/AdenForshaw/smarter-coffee-api.git

Use Fing app or nmap to find the IP address of your coffee machine. e.g. 192.168.1.61

$cd smarter-coffee-api

$nano smarter-coffee-api.py

$change the IP address to you coffee machines

Now we’ll test it with the ‘reset’ command

$python smarter-coffee-api.py reset

If the machine lit up and says ‘reset’ then test complete!

If not then check the IP address, connections, and router settings.

Now set brew size/ strength/ brew type physically on the machine, and call the brew method –

$python smarter-coffee-api.py brew

Toast to your success!

bill-murry-coffee

Your hack is complete! What next?

Security: With any IoT device, hacked or not, you should do a security audit once its installed. In this case check the wifi router the project is on is locked down

Ai: You could store the date/time each brew method is called, then use this to predict when the next brew would be called!

Expand: You could expand on the basic API i’ve made in GitHub, and add more methods yourself, like brew size/ strength etc, and add it to the repo!

Team access: You could have a web server on the RaspPi, and have this project called as a REST API, or install Hubot and have it called from your team hipchat/slack/etc

Home automation: Create a smartthings device type and control it with your home automation switches, triggers or voice!

Whatever you do please let me know, i’m always interested!

Read More