Skip to content

Our coffee machine takes a while to heat up. Standing around the machine waiting for it to get ready is a waste of time. The objective of this project it to create a solution, that will allow me to turn the coffee machine one from anywhere in the house and be notified when the machine is ready.

nielsenamrose/wifi-coffee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wi-Fi enabled coffee machine

iPhone screenshot

The screenshot show the user interface. The machine is on and heating up. When the machine is ready, the grinder will grind enough grounds for one cup of coffee.

Hardware

See section on hardware hacking.

Software

The solution consists of two software components:

  1. A web service implemented using Node.js and BoneScript listing on port 8081.
  2. A static web page served up by the preinstalled Nginx webserver listening on port 8080.

Flashing the BBGW

Flash the BBGW with the Debian 10.3 image

Configure Wi-Fi and static IP address

Connect the BBGW to the PC via USB. Then access it via SSH on 192.168.7.2. Default username:password is debian:temppwd.

$ sudo connmanctl
connmanctl> enable wifi
connmanctl> scan wifi
connmanctl> services
connmanctl> agent on
connmanctl> connect wifi_884aea627540_4e69656c73656e34_managed_psk
connmanctl> services

Confirm there is a *AO or *AR next to the Nexwork ID

connmanctl> config wifi_884aea627540_4e69656c73656e34_managed_psk --ipv4 manual 192.168.1.15 255.255.255.0 192.168.1.1
connmanctl> config wifi_884aea627540_4e69656c73656e34_managed_psk --nameservers 8.8.8.8 8.8.4.4
connmanctl> quit

Reference: https://www.fis.gatech.edu/how-to-configure-bbw-wifi/

Install software

Install required Epoll node module

$ sudo npm install -g epoll --unsafe-perm=true --allow-root

Clone repository and copy files to default locations for NGinx web server and Cloud9 autorun:

$ git clone https://github.com/nielsenamrose/wifi-coffee.git
$ cd wifi-coffee
$ sudo cp html /var/www/ -r
$ sudo cp server.js /var/lib/cloud9/autorun/

Future improvements

As a future improvement I would like to show a total number of cups brewed. The count should include cups brewed using the app and cups brewed by manually pressing the button on the machine. If the server can reliably detect when the machine is brewing, that would also allow the software to correctly handle the case, where brewing is initiated from the app but interrupted by a manual button press on the machine.

About

Our coffee machine takes a while to heat up. Standing around the machine waiting for it to get ready is a waste of time. The objective of this project it to create a solution, that will allow me to turn the coffee machine one from anywhere in the house and be notified when the machine is ready.

Topics

Resources

Stars

Watchers

Forks