Broken Buttons: Difference between revisions
Jump to navigation
Jump to search
| Line 52: | Line 52: | ||
service: "Gmail", | service: "Gmail", | ||
auth: { | auth: { | ||
user: "your@ | user: "your@gmail.com", | ||
pass: "yourpassword" | pass: "yourpassword" | ||
} | } | ||
| Line 61: | Line 61: | ||
console.log("Found button"); | console.log("Found button"); | ||
smtpTransport.sendMail({ | smtpTransport.sendMail({ | ||
from: "your@ | from: "your@gmail.com", // sender address | ||
to: "some_other@email.com", // comma separated list of receivers | to: "some_other@email.com", // comma separated list of receivers | ||
subject: "Something is Broken! - This is a test.", // Subject line | subject: "Something is Broken! - This is a test.", // Subject line | ||
Revision as of 11:15, 11 January 2016
What's going on here?
- Problem: People don't email broken@lvl1.org every time something breaks.
- Why?: My guess, no quick access to email/computer to email the group.
- Solution: Deploy a number of Amazon Dash Buttons around equipment. If something breaks or we're out of stock of something, instruct patrons to press the corresponding button.
Setup
As of January 11, 2016:
Hardware
- Raspberry Pi B+
- 4GB+ SD Card
- Dash Button
- Monitor & Keyboard
Steps
- Step 1: Download Raspbian Jessie Lite
- Step 2: Install image to SD card using Win32DiskImager
- Step 3: Insert SD card to Raspberry Pi, connect monitor & keyboard, boot Raspberry Pi
- Step 4: Configure wifi
- https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
- Save wifi settings to wpa_supplicant.conf
- Restart wlan0 using ifdown and ifup to obtain IP address
- Step 5: Update & Upgrade
- sudo apt-get update
- sudo apt-get upgrade
- Step 6: Install Node 4.0.0
- Step 7: Install git and libpcap-dev
- sudo apt-get install git libpcap-dev
- Step 8: Create directory ~/dash and cd there
- mkdir ~/dash
- cd ~/dash
- Step 9: Install nodemailer (version 0.7.1, 1.0.0 (default) is broken at time of writing)
- npm install nodemailer@0.7.1
- Step 10: Install dash button library
- Step 11: Run node-dash-button's findbutton app
- cd ~/dash/node_modules/node-dash-button
- sudo node bin/findbutton
- Step 12: Configure Amazon Dash Button
- Follow the instructions given to you in the box BUT STOP BEFORE YOU SELECT A PRODUCT TO ORDER (hit the back button on your phone, exit the app, etc)
- Step 13: Press the Amazon Dash button once, watch raspberry pi terminal for the button's MAC address
- Step 14: Create application
- nano dash.js
- Enter this code:
var dashbutton = require('node-dash-button');
var nodemailer = require('nodemailer');
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "your@gmail.com",
pass: "yourpassword"
}
});
var dashTest = dashbutton("a0:02:dc:d2:f5:67");
dashTest.on("detected", function(){
console.log("Found button");
smtpTransport.sendMail({
from: "your@gmail.com", // sender address
to: "some_other@email.com", // comma separated list of receivers
subject: "Something is Broken! - This is a test.", // Subject line
text: "Something is broken!"
}, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
});
});
Step 15: Run application
- sudo node dash.js