The JägerMachine is an IoT shot pouring machine powered by a Raspberry Pi 3B+. It features a full GUI that allows the user to configure the device, pour a shot, and also check previous messages sent to the machine. Once paired with it's own GMail account, the JägerMachine waits for emails containing a secret user defined subject line and a custom message that gets displayed on the screen. Once an email is received a shot is poured :)
Initially this project started as a gift for a friend. We always give each other Jagermeister related gifts as an inside joke, so I figured this would be PERFECT. It started out as a pretty bland render I threw together on Fusion 360 as seen below and slowly started getting more and more complicated.
Unfortunately I didn't finish the project in time for my friends birthday (sorry Jon :( ), but I continued on and kept adding features and I think It's finally done! Some of the features currently supported are as mentioned above are:
- Search for available WiFi connections and connect to them (see Figure 2 & 3).
- Manually pour a shot.
- Pour a shot via email with a a message that gets displayed.
- Hall effect sensor to detect when shot glass is placed/removed.
- Enable/Disable LEDs
To avoid having a ton of wires everywhere I designed a motherboard PCB that the breakout boards can easily pop onto. The files & schematic for this PCB are in the Hardware
folder of this repo. The completed board can be seen below.
Overall I'd say I got pretty close to the render and vision I originally had in mind. Below are a couple pictures of the JägerMachine booting and pouring a shot.
More detailed info on the Raspberry Pi setup can be found below and more pictures are available in the Images
folder.
The build parts consist of:
- 3.5" DSI Touch Screen
- Peristaltic Pump
- WS2812B LED Ring
- Hall Effect Sensor
- Motor Drive Module (for pump)
- 3.3V to 5V Level Shift (for LED ring)
- USB Storage (used to store WiFi info)
- (Optional) Custom PCB (Designed in DipTrace, ordered from PCBWay)
- (Optional) Custom 3D Printed Parts (enclosures, nozzle, pump holder, fan holder)(Designed in Fusion360 ordered from CraftCloud)
- Configure Rpi to Kiosk Mode
- Install NGINX Webserver (w/ PHP Installation)
- Enable Root SSH
- Disable BT (optional)
- Rotate LCD (optional)
- Enable GPIOs
- Setup NeoPixel libraries
- Setup automount usb flash drive
- Add custom splash (optional)
- Remove warranty text and other text
- Give root privilege to custom script
runRoot.sh
- Copy over the folders in the
Software
folder (custom_scripts
,flags
,html
,services
) onto the Raspberry Pi, placing them in/var/www/
Chmod +x
all the scripts undercustom_scripts
folder.- Link the services in the
services
folder to systemdboot_complete.service
:systemctl enable /var/www/services/boot_complete.service
glass_check.service
:systemctl enable /var/www/services/glass_check.service
email_check.service
:systemctl enable /var/www/services/email_check.service
wifi_check.service
:systemctl enable /var/www/services/wifi_check.service
led_boot.service
:systemctl enable /var/www/services/led_boot.service
- Edit the
emailConfig.py
file to your desired email configuration. You must use a GMail account that has two-factor authentication so you can use an app password. More info on app passwords