Difference between pages "Projects" and "Projects/RFIDpop"

From ENTS
(Difference between pages)
Jump to: navigation, search
 
(Useful Links)
 
Line 1: Line 1:
ENTS has '''Projects!'''
 
  
[[MasterControl|MasterControl]] RFID door access/space usage system
+
== RFID Enabled Pop Machine AKA Project "Pop-pi"==
  
[[EnviroPod|EnviroPod]] Modular, extendable environmental monitoring and control
 
  
[[ArduinoMBus|ArduinoMBus]] an Arduino based solution for communicating with mid 1990's Honda stereos over their M-Bus interface
+
== History ==
  
[[Space Wish List|Space Wish List]] Discussion and collection of ideas doe the existing and/or future space
+
After the kind donation of a 70'sish Coca-Cola Vending machine, we started tearing into it to get it working.  While there were a few issues off the start, it's in good mechanical order and tests showed it's power consumption was >50% less than the existing smaller pop machine in the space.
  
[[RaspberryPi|RaspberryPi]] Place for all our Raspberry Pi projects
+
One major problem was that the coin mechanism would not accept newer loonies and toonies.  A replacement mechanism would be $200 or more.  A bit pricy for a starving hackerspace, so we are doing what all good hackers do, overengineer a solution with parts at hand.  In this case, utilize the door RFID tags the members have anyways and use them to debit from a pre paid pop account.
  
[[Media Player|Media Player]] ENTS has an entertainment center
+
== Help Wanted ==
  
[[DeltaPrinter|Delta Geometry 3D Printer]]
+
Want to help out? Interested in learning something new and expanding your skill set? Have a cool idea you want to include into the project?
  
[[Projects/RFIDpop]] RFID enabled pop vending machine at the space "AKA Project POP-PI"
+
Join the Pop-PI project!
 +
Do you know PHP, would you like to learn PHP?
 +
 
 +
We are looking for people with an interest in helping out with the following phases of the project. We will offer assistance and training for any piece involved.
 +
 
 +
Display Design - ART - Replace the coke sign with a plexiglass version, needs to be able to show a screen.
 +
Screen Saver - Screen saver that would display fake ad's
 +
Screen mount - Mount a monitor to the outer door
 +
Outer Shell Design - self explanatory
 +
PHP Web Interface - only needs to interface with Pay Pal and save transaction records in the database
 +
 
 +
== Mechanics ==
 +
 
 +
The machine is a Vendo V384. [http://soda-machines.com/index.php?option=com_content&task=view&id=554&Itemid=14 Soda-Machines.com]
 +
 
 +
Orcinus did much of the work to figure out the mechanics of the machine and how to bypass the coin mech to allow us to dispense product.  It's actually very easy.  On the connector to the coin mech, short pins 1-7 together (all the time) and then momentarily contact pins 1-3 and then make your selection.
 +
 
 +
The original coke sign is a plexiglass insert, easily replaced.  Behind it is a florecent ballast with a 120v supply line running to it.
 +
 
 +
Photo of the internal electromechanical schematic:
 +
[[Media:RFIDpop_mech_schematic.jpg]]
 +
 
 +
== Goal ==
 +
 
 +
With the participation and collaboration of the ents membership, bring the donated Pop machine back into service.
 +
 
 +
To provide a project for multiple members to collaborate together to create a near 0 administration pop machine/pop account tracking system.
 +
 
 +
To create a low hassle method of buying caffeine.
 +
 
 +
To promote more collaborative team building projects within the membership that cross disciplines and foster education and participation.
 +
 
 +
== Feature Roadmap ==
 +
 
 +
Planned and Implemented features, if you would like to participate or learn about any of the features contact the people who are associated with the feature or talk to one of us.
 +
 
 +
 
 +
   
 +
<table border = 1 width = 100%>
 +
    <tr>
 +
        <th>Feature
 +
        </th>
 +
        <th>Description
 +
        </th>
 +
        <th>Version
 +
        </th>
 +
        <th>Complete
 +
        </th>
 +
        <th></th>
 +
    </tr>
 +
    <tr>
 +
        <td>Read RFID
 +
        </td>
 +
        <td>
 +
            Ability to read members&#39;s RFID tag</td>
 +
        <td>1
 +
        </td>
 +
        <td>Yes
 +
        </td>
 +
      <td>Render, Colin
 +
        </td>
 +
    </tr>
 +
 
 +
    <tr>
 +
        <td>Credit Vending Machine</td>
 +
        <td>
 +
            Ability to credit the vending machine to allow the dispencing of caffeene</td>
 +
        <td>1</td>
 +
        <td>Yes</td>
 +
    </tr>
 +
 
 +
    <tr>
 +
        <td>Track Member Account</td>
 +
        <td>
 +
            Ability to track member&#39;s pop account balance</td>
 +
        <td>1</td>
 +
        <td>Yes</td>
 +
<td>Colin
 +
        </td>
 +
    </tr>
 +
 
 +
    <tr>
 +
        <td>Deduct From Member Account</td>
 +
        <td>
 +
            Ability to deduct a credit from a members&#39;s account balance</td>
 +
        <td>1</td>
 +
        <td>Yes</td>
 +
<td> Colin
 +
        </td>
 +
    </tr>
 +
 
 +
    <tr>
 +
        <td>Email Balance to Member</td>
 +
        <td>
 +
            Ability to email a balance to a member&#39;s account from pop.pi@ents.ca</td>
 +
        <td>2</td>
 +
        <td>No</td>
 +
<td>Render, Colin
 +
        </td>
 +
    </tr>
 +
 
 +
    <tr>
 +
        <td>Member Account Top Up</td>
 +
        <td>
 +
            Ability to top up a members account.</td>
 +
        <td>2</td>
 +
        <td>No</td>
 +
<td>Colin
 +
        </td>
 +
    </tr>
 +
 
 +
    <tr>
 +
        <td>Pay Pal Top Up</td>
 +
        <td>
 +
            Ability to top up a members account from paypal payment</td>
 +
        <td>TBD</td>
 +
        <td>No</td>
 +
<td>        </td>
 +
    </tr>
 +
 
 +
    <tr>
 +
        <td>Video Display Balance</td>
 +
        <td>
 +
            Video display member balance information</td>
 +
        <td>3</td>
 +
        <td>No</td>
 +
<td></td>
 +
    </tr>
 +
 
 +
    <tr>
 +
        <td>Video Advertizing</td>
 +
        <td>
 +
            Make use of the video monitor for displaying ad&#39;s</td>
 +
        <td>4</td>
 +
        <td>No</td>
 +
<td></td>
 +
    </tr>
 +
 
 +
    <tr>
 +
        <td>Mounting Brackets</td>
 +
        <td>3D Printed Mounting Brackets Modeled to hold the PI and Relay</td>
 +
        <td>2</td>
 +
        <td>No</td>
 +
<td></td>
 +
    </tr>
 +
    <tr>
 +
        <td>RFID Mounting</td>
 +
        <td>3D Printed Mounting Brackets Modeled to hold the RFID where the Change was inserted.</td>
 +
        <td>3</td>
 +
        <td>No</td>
 +
<td></td>
 +
    </tr> 
 +
    <tr>
 +
        <td>Bitcoin Payments</td>
 +
        <td>Have the ability to take bitcoin payments.</td>
 +
        <td>TBD</td>
 +
        <td>No</td>
 +
<td></td>
 +
</tr>
 +
    <tr>
 +
        <td>Speaker Feedback</td>
 +
        <td>Make use of the audio jack on the pi to output auditory feedback on payment.</br>
 +
Sounds to be determined.
 +
(Lottery Machine noises, Portal Sounds)
 +
</td>
 +
        <td>TBD</td>
 +
        <td>No</td>
 +
<td></td>
 +
 
 +
    </tr>
 +
    <tr>
 +
        <td>Motion Detector</td>
 +
        <td>Make use of a motion detector as a type of Occupancy sensor for the display screen as well as feedback on when to enable/disable the rfid reader.</td>
 +
        <td>TBD</td>
 +
        <td>No</td>
 +
<td></td>
 +
    </tr>
 +
</table>
 +
 
 +
API to interface to paypapal.
 +
 
 +
3D Printed mount for the RFID reader.
 +
 
 +
Pop Level Management.
 +
 
 +
Include a web cam to be hosted on live hacker spaces. "Live from the pop machine!"
 +
 
 +
== PI Pinout Assignments ==
 +
 
 +
In Progress.
 +
<Table>
 +
<tr>
 +
<th>Assignment</th>
 +
<th>Pin</th>
 +
<th>Pin</th>
 +
<th>Assignment</th>
 +
</tr>
 +
<tr>
 +
<td>3v3 to LV on Logic Converter</td><td>1</td><td>2</td><td>5V to HV on logic converter</td>
 +
</tr>
 +
<tr>
 +
<td></td><td>3</td><td>4</td><td>5V to + on Relay</td>
 +
</tr>
 +
<tr>
 +
<td></td><td>5</td><td>6</td><td></td>
 +
</tr>
 +
<tr>
 +
<td></td><td>7</td><td>8</td><td>GND to Logic Converter</td>
 +
</tr>
 +
<tr>
 +
<td></td><td>9</td><td>12</td><td>To S on Relay</td>
 +
</tr>
 +
<tr>
 +
<td></td><td>11</td><td>14</td><td></td>
 +
</tr>
 +
<tr>
 +
<td></td><td>13</td><td>14</td><td></td>
 +
</tr>
 +
<tr>
 +
<td></td><td>15</td><td>16</td><td></td>
 +
</tr>
 +
<tr>
 +
<td></td><td>17</td><td>18</td><td></td>
 +
</tr>
 +
<tr>
 +
<td></td><td>19</td><td>20</td><td></td>
 +
</tr>
 +
<tr>
 +
<td></td><td>21</td><td>22</td><td></td>
 +
</tr>
 +
<tr>
 +
<td></td><td>23</td><td>24</td><td></td>
 +
</tr>
 +
<tr>
 +
<td></td><td>25</td><td>26</td><td></td>
 +
</tr>
 +
</table>
 +
 
 +
 
 +
 
 +
== Database ==
 +
 
 +
Table: MemberAccount
 +
<table>
 +
<tr>
 +
<th>Column</th>
 +
<th>DataType</th>
 +
<th>Description</th>
 +
</tr>
 +
<tr>
 +
<td>Id</td>
 +
<td>int</td>
 +
<td>auto increment id for the account table</td>
 +
</tr>
 +
<tr>
 +
<td>RFID</td>
 +
<td>varchar</td>
 +
<td>decimal value of the member's rfid</td>
 +
</tr>
 +
<tr>
 +
<td>Account</td>
 +
<td>int</td>
 +
<td>account balance</td>
 +
</tr>
 +
<tr>
 +
<td>Email</td>
 +
<td>varchar</td>
 +
<td>used to email users when their account is low</td>
 +
</tr>
 +
</table>
 +
 
 +
== Fritzing Schematic ==
 +
Fritzing can be found at http://fritzing.org/download/
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
https://github.com/adafruit/Fritzing-Library
 +
 
 +
== V1 ==
 +
 
 +
Version 1 is to basically setup the nessecary hardware to replace the coin mech and to use the RFID tags to debit from an account with little or no modification to the existing electro mechanical dispensing system.  Various options were considered but parts on hand and flexibility came together in the following:
 +
 
 +
*Raspberry Pi running Raspian 2013-09-25 (Render)
 +
*Parallax Serial RFID Reader (Render)
 +
*TTL level shifter for 5v RFID reader to talk to 3.3v Pi serial gpio pins (Colin)
 +
*Solid state relay board (on order)
 +
*HDMI to DVI Adapter (Render)
 +
*Random LCD monitor from around the space
 +
*Powered USB hub (Render)
 +
 
 +
 
 +
Current goals: Users provide cash or paypal to director who adds to account for thier tag via web interface or 'credit' tags on the pi.
 +
 
 +
On scan, Pi checks database for balance.  If sufficient balance, deduct $1 and dispense product.  If insufficent balance, then display an unhappy message .  Once product is dispensed display the username and balance remaining for 15 seconds.  When 'idle' the screen will goto a slide show of comical and ficticious beverages (Duff, Slurm, Nukacola, etc)
 +
 
 +
Curent Status: In prototype.  RFID via GPIO working.  GPIO relay control working. Rough software  proof of concept working.
 +
 
 +
To-Do:
 +
*Clean machine mechanics.  Lube everything inside.  Test all mechanics
 +
*Paypal integration
 +
*Web Front End for manual account balance adjustment
 +
*Custom graphics for sides, front
 +
*Custom made circut boards for sturdy integration
 +
*3d print mounting brackets once layout confirmed
 +
 
 +
== V2 ==
 +
 
 +
Feature requests/ideas:
 +
 
 +
*Product remaining display
 +
*Tie in with mastercontrol
 +
*Ability to paypal monies directly to the pi to increase balance (or user added code via web interface)
 +
*Random dispense mode (slot machine)
 +
*Ability to dispense products at different prices (water $.25, beer $5)
 +
*Consumption graphs
 +
 
 +
 
 +
== Useful Links ==
 +
 
 +
[http://www.susa.net/wordpress/2012/06/raspberry-pi-relay-using-gpio/ http://www.susa.net/wordpress/2012/06/raspberry-pi-relay-using-gpio/]
 +
 
 +
[http://soda-machines.com/index.php?option=com_content&task=view&id=554&Itemid=14 http://soda-machines.com/index.php?option=com_content&task=view&id=554&Itemid=14]
 +
 
 +
[http://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-database-in-python http://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-database-in-python]
 +
 
 +
[http://www.sundh.com/blog/2013/09/connect-parallax-rfid-to-raspberry-pi/ http://www.sundh.com/blog/2013/09/connect-parallax-rfid-to-raspberry-pi/]
 +
 
 +
[http://zetcode.com/db/mysqlpython/ http://zetcode.com/db/mysqlpython/]
 +
 
 +
[http://openmicros.org/index.php/articles/94-ciseco-product-documentation/raspberry-pi/217-getting-started-with-raspberry-pi-gpio-and-python http://openmicros.org/index.php/articles/94-ciseco-product-documentation/raspberry-pi/217-getting-started-with-raspberry-pi-gpio-and-python]
 +
 
 +
[https://developer.paypal.com/ https://developer.paypal.com/]
 +
 
 +
[http://www.learn2crack.com/2013/10/setup-apache-web-server-php-mysql-raspberry-pi.html]
 +
 
 +
== Notes ==
 +
 
 +
Power is no problem.  The existing light ballast for the original backlight is 120v line that is perfectly placed to power everything.
 +
 
 +
There is lots of room to mount everything behind plexiglass on the outer door or against the inner door.  Approximatly 4" depth is available
 +
 
 +
Need to also write up how to properly load product or else bad things happen
 +
 
 +
A large number of vending machines use the same interface for the 'credit' function.  This project can be easily adapted to other models of vending machines.  Could be useful for other hackerspaces.
 +
 
 +
== Code Repository ==
 +
 
 +
Code is GPLv2 and available on Github at [https://github.com/renderlab/ENTS-Pop-Pi https://github.com/renderlab/ENTS-Pop-Pi]

Revision as of 09:28, 20 November 2013

Contents

RFID Enabled Pop Machine AKA Project "Pop-pi"

History

After the kind donation of a 70'sish Coca-Cola Vending machine, we started tearing into it to get it working. While there were a few issues off the start, it's in good mechanical order and tests showed it's power consumption was >50% less than the existing smaller pop machine in the space.

One major problem was that the coin mechanism would not accept newer loonies and toonies. A replacement mechanism would be $200 or more. A bit pricy for a starving hackerspace, so we are doing what all good hackers do, overengineer a solution with parts at hand. In this case, utilize the door RFID tags the members have anyways and use them to debit from a pre paid pop account.

Help Wanted

Want to help out? Interested in learning something new and expanding your skill set? Have a cool idea you want to include into the project?

Join the Pop-PI project! Do you know PHP, would you like to learn PHP?

We are looking for people with an interest in helping out with the following phases of the project. We will offer assistance and training for any piece involved.

Display Design - ART - Replace the coke sign with a plexiglass version, needs to be able to show a screen. Screen Saver - Screen saver that would display fake ad's Screen mount - Mount a monitor to the outer door Outer Shell Design - self explanatory PHP Web Interface - only needs to interface with Pay Pal and save transaction records in the database

Mechanics

The machine is a Vendo V384. Soda-Machines.com

Orcinus did much of the work to figure out the mechanics of the machine and how to bypass the coin mech to allow us to dispense product. It's actually very easy. On the connector to the coin mech, short pins 1-7 together (all the time) and then momentarily contact pins 1-3 and then make your selection.

The original coke sign is a plexiglass insert, easily replaced. Behind it is a florecent ballast with a 120v supply line running to it.

Photo of the internal electromechanical schematic: Media:RFIDpop_mech_schematic.jpg

Goal

With the participation and collaboration of the ents membership, bring the donated Pop machine back into service.

To provide a project for multiple members to collaborate together to create a near 0 administration pop machine/pop account tracking system.

To create a low hassle method of buying caffeine.

To promote more collaborative team building projects within the membership that cross disciplines and foster education and participation.

Feature Roadmap

Planned and Implemented features, if you would like to participate or learn about any of the features contact the people who are associated with the feature or talk to one of us.


Feature Description Version Complete
Read RFID Ability to read members's RFID tag 1 Yes Render, Colin
Credit Vending Machine Ability to credit the vending machine to allow the dispencing of caffeene 1 Yes
Track Member Account Ability to track member's pop account balance 1 Yes Colin
Deduct From Member Account Ability to deduct a credit from a members's account balance 1 Yes Colin
Email Balance to Member Ability to email a balance to a member's account from pop.pi@ents.ca 2 No Render, Colin
Member Account Top Up Ability to top up a members account. 2 No Colin
Pay Pal Top Up Ability to top up a members account from paypal payment TBD No
Video Display Balance Video display member balance information 3 No
Video Advertizing Make use of the video monitor for displaying ad's 4 No
Mounting Brackets 3D Printed Mounting Brackets Modeled to hold the PI and Relay 2 No
RFID Mounting 3D Printed Mounting Brackets Modeled to hold the RFID where the Change was inserted. 3 No
Bitcoin Payments Have the ability to take bitcoin payments. TBD No
Speaker Feedback Make use of the audio jack on the pi to output auditory feedback on payment.</br>

Sounds to be determined. (Lottery Machine noises, Portal Sounds)

TBD No
Motion Detector Make use of a motion detector as a type of Occupancy sensor for the display screen as well as feedback on when to enable/disable the rfid reader. TBD No

API to interface to paypapal.

3D Printed mount for the RFID reader.

Pop Level Management.

Include a web cam to be hosted on live hacker spaces. "Live from the pop machine!"

PI Pinout Assignments

In Progress.

Assignment Pin Pin Assignment
3v3 to LV on Logic Converter125V to HV on logic converter
345V to + on Relay
56
78GND to Logic Converter
912To S on Relay
1114
1314
1516
1718
1920
2122
2324
2526


Database

Table: MemberAccount

Column DataType Description
Id int auto increment id for the account table
RFID varchar decimal value of the member's rfid
Account int account balance
Email varchar used to email users when their account is low

Fritzing Schematic

Fritzing can be found at http://fritzing.org/download/




https://github.com/adafruit/Fritzing-Library

V1

Version 1 is to basically setup the nessecary hardware to replace the coin mech and to use the RFID tags to debit from an account with little or no modification to the existing electro mechanical dispensing system. Various options were considered but parts on hand and flexibility came together in the following:

  • Raspberry Pi running Raspian 2013-09-25 (Render)
  • Parallax Serial RFID Reader (Render)
  • TTL level shifter for 5v RFID reader to talk to 3.3v Pi serial gpio pins (Colin)
  • Solid state relay board (on order)
  • HDMI to DVI Adapter (Render)
  • Random LCD monitor from around the space
  • Powered USB hub (Render)


Current goals: Users provide cash or paypal to director who adds to account for thier tag via web interface or 'credit' tags on the pi.

On scan, Pi checks database for balance. If sufficient balance, deduct $1 and dispense product. If insufficent balance, then display an unhappy message . Once product is dispensed display the username and balance remaining for 15 seconds. When 'idle' the screen will goto a slide show of comical and ficticious beverages (Duff, Slurm, Nukacola, etc)

Curent Status: In prototype. RFID via GPIO working. GPIO relay control working. Rough software proof of concept working.

To-Do:

  • Clean machine mechanics. Lube everything inside. Test all mechanics
  • Paypal integration
  • Web Front End for manual account balance adjustment
  • Custom graphics for sides, front
  • Custom made circut boards for sturdy integration
  • 3d print mounting brackets once layout confirmed

V2

Feature requests/ideas:

  • Product remaining display
  • Tie in with mastercontrol
  • Ability to paypal monies directly to the pi to increase balance (or user added code via web interface)
  • Random dispense mode (slot machine)
  • Ability to dispense products at different prices (water $.25, beer $5)
  • Consumption graphs


Useful Links

http://www.susa.net/wordpress/2012/06/raspberry-pi-relay-using-gpio/

http://soda-machines.com/index.php?option=com_content&task=view&id=554&Itemid=14

http://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-database-in-python

http://www.sundh.com/blog/2013/09/connect-parallax-rfid-to-raspberry-pi/

http://zetcode.com/db/mysqlpython/

http://openmicros.org/index.php/articles/94-ciseco-product-documentation/raspberry-pi/217-getting-started-with-raspberry-pi-gpio-and-python

https://developer.paypal.com/

[1]

Notes

Power is no problem. The existing light ballast for the original backlight is 120v line that is perfectly placed to power everything.

There is lots of room to mount everything behind plexiglass on the outer door or against the inner door. Approximatly 4" depth is available

Need to also write up how to properly load product or else bad things happen

A large number of vending machines use the same interface for the 'credit' function. This project can be easily adapted to other models of vending machines. Could be useful for other hackerspaces.

Code Repository

Code is GPLv2 and available on Github at https://github.com/renderlab/ENTS-Pop-Pi

Personal tools
Namespaces

Variants
Actions
Navigation
Members
Toolbox