Thing Dispenser

From MC Chem Wiki
Jump to navigation Jump to search

This is not an easy project, but i believe it is doable (?). This project will create a physical device that will dispense a "thing" (dog treat or dry erase marker) when a txt message is sent to a phone number. The physical device contains a Raspberry Pi micro-computer.

This project was described in the March 2018 MAKE magazine (MAKEzine), here

To get started, I found the following video to be useful; if this physical device is going to respond to a txt message, then there must be some link between the act of sending the txt and the dispensing of the thing. In the following video, a basic description of something called an API (Application Programming Interface) is presented here

In this above video, the analogy of a restaurant is presented. As you sit at a table, you need to send information (your order) to the kitchen to get food. The "API" is the waitperson.

STEP 1...you tell the waitperson what you want to order,
STEP 2...the waitperson goes to the kitchen and tells to cook what to prepare, then
STEP 3...the waitperson then brings you your food.

Similarly, as i sit at my work desk, and i want a device to do something (like dispense a treat to my dog) the API controls the communications between me and the device...

STEP 1...I send a txt to the device,
STEP 2...the device executes the command, and then
STEP 3...the device sends a txt back to me indicating the commend has bee executed.

On to the actual setup...

Hardware configuration (the easy part)

You will need to build a device. In the original article a Raspberry Pi is connected to an Arduino board, which is in turn connected to a servo motor to actuate the dispensing. This is actually the easiest part of the project. Here are a few pictures (Note: the RP is not connected to mouse, keyboard, or monitor):

IMG 0320.JPG

IMG 0321.JPG

IMG 0322.JPG

IMG 0323.JPG

IMG 0324.JPG

Software configuration (the hard part)

a) setup a raspberry pi (see this page).
b) install Ardruino software (this is also described at the end of this page).
c) visit Rich Nelson's GitHub page and select the dog-treat-dispenser
d) follow the directions shown in the Readme WARNING: this tutorial is not yet complete*:)
Here is a summary of a few "Terminal" inputs:
$ git clone https://github.com/rmn388/dog-treat-dispenser (this copies files needed from the developers website)
$ cd dog-treat-dispenser (to move into the project directory)
$ python3 -m pip install --user virtualenv (1st step to install a virtual environment for convenience)
$ python3 -m virtualenv env (2nd step to install a virtual environment for convenience)
$ source env/bin/activate (THIS NEEDS TO BE DONE EACH TIME YOU WANT TO WORK IN THIS ENVIRONMENT)
$ pip install -r requirements.txt (needs to only be done once)
Now you will need to make a file called config.py
During the editing of the config.py configuration file, you will be asked for:
twilio_phone_number = "+###########" #Your unique Twilio phone number
twilio_account_sid = "#################################" #Your Twilio Account SID
twilio_auth_token = "################################" #Your Twilio Auth Token
All of the items above can be found from your Twilio Account (see below) You do not need all the API Credentials in order to continue...
$ python app.py (this starts the server running; the server is then shut down by typing CTRL+C)

HERE ENDS PART 1 OF THE SOFTWARE INSTALLATION

How to get Twilio Account/Phone Number

YouTube Video: Getting Started with Twilio

1) Go to Twilio.com
2) Select "Sign up"...and then "Get Started"
- when asked, "which product do you plan to use first?" choose I'm just exploring
- when asked "what are you building?" choose I don't have a project in mind
- you will need to give Twilio an existing phone number, like your personal cell number.
- After the intro, you will want to select Programmable SMS in the left tool bar while in the Console...then choose get started...by the way SMS means simple message system.
- then follow the directions in order to get a new phone number...


File:Screen Shot 2018-06-19 at 1.26.24 PM.png

setting up the phone number to respond to a txt message
setting up ngrok in order to setup a "tunnel" to a local computer

1) First off, you need to have a phone number which can receive a txt message which is ultimately connected to the device. This is done by setting up an account with a online company called Twilio. Getting a phone number is relatively easy...a trail Twilio account give you a credit of $15 to spend before you need to connect a credit card to the account.

Web Resources