Mail+Buddy

1. Specification

 * Tasks **
 * Task || People || Deadline || Status ||
 * Architecture || Sam || Sunday || Done ||
 * Storyboard || Anna || Sunday || Done ||
 * Concept || Kyle || Sunday || Done ||
 * Bill of Materials || Eddie || Sunday || Done ||


 * Architecture:**


 * Hardware:**


 * Block Diagram:**
 * Schematics (pin numbers shown correspond to Arduino pin numbers):**


 * Software:**

Using the Arduino software environment (which is basically a c/c++ derivative) we will implement four separate pieces of functionality, each independent of the other. These modular pieces will be the following:

Battery monitoring functionality Email notification functionality Sleep functionality (that is, an easy routine for shutting down all unessesary hardware such as turning off analog pins, disabling hardware interrupts, etc) Optimal sleep duration computation functionality

Developing these 4 pieces independently means we can implement our software fairly easily in a manner similar to the following:

main loop if (battery == low) send warning notification else if (mail == true) send mail notification compute new sleep duration using history else store wake time in history


 * Storyboards:**




 * Concept:**

Campus mailboxes are much more difficult to access casually than their domestic counterparts because they are located in a central area on campus and not attached to the homes of recipients. This access problem has already been addressed for packages delivered to campus addresses via an email notification system. Mail Buddy is an analogous approach for mail that can be implemented by mailbox holders instead of the local postal branch.

Mail Buddy manifests itself as a slim, electronic mailbox insert with the footprint of a letter. Instead of being delivered to the box by a mail carrier, it's inserted into the front of the box by its current owner. Once inside, Mail Buddy's range finder scopes out the space in front of it so that it can detect when that space is later obstructed by mail.

Most of Mail Buddy's days consist of sleeping to preserve its energy (battery). Given that mail is delivered at consistent times during the day, and that people can rarely make use of delivery times that are accurate to the second, Mail Buddy does not need to be constantly polling for new mail and draining its battery in the process.

Mail Buddy sends mail when it detects mail. However, the mail that it sends is email. Wireless networks are pervasive, so Mail Buddy can depend on them to be available to communicate outside of the mailbox. When mail is detected, an email is sent to the owner of the mailbox, who can then decide to take a trip to the post office and be sure that the trip will have a tangible reward rather than just a chance of one.


 * Bill:**

*recycled parts
 * = **Part** ||= **Cost** ||
 * = Arduino ||= $29.95 ||
 * = Blank Arduino Shield ||= $6.00 ||
 * = 1Kohm resistor (3) ||= $0.03 ||
 * = 10Kohm resistor (2) ||= $0.03 ||
 * = 100uF capacitor ||= $0.08 ||
 * = 0.1uF capacitor ||= $0.08 ||
 * = PN2907 transistor ||= $0.05 ||
 * = 3mm LED ||= $0.10 ||
 * = 6 AA battery holder ||= $1.75 ||
 * [|WiFi module] ||= $69.99 ||
 * = IR range finder || $13.95 ||
 * =  ||= **$121.91** ||

Spam mail can be detected when multiple mail signals are triggered at the same time. The user can them be alerted that there is a high probability of spam mail.
 * Future Plans:**

2. Detailed Design

 * Tasks**
 * Task || People || Deadline || Status ||
 * Wi-Fi Library || Sam || Wed || Done ||
 * Design Case || Anna || Wed || Done ||
 * Skeleton || Kyle || Wed || Done ||
 * IR Cable || Eddie || Wed || Done ||

Key changes: - Added LED to indicate when Wi-Fi module is powered on. - Added Transistor to power IR sensor on/off. - Added capacitor to stabilize IR sensor. - Added LED to indicate when IR sensor is powered on.
 * Revised Schematic:**


 * Hardware Prototype:**

All software is being hosted at [] and is accessible to the public.
 * Software Prototype:**

Another future plan is to make McFeely more compact by making a single board Arduino clone that contains all of our additional circuitry. Below is a schematic of this updated design:
 * Future Plans Continued:**

3. Alpha Release
Create an end-to-end working version of the system. Initiate alpha tests.


 * Tasks**
 * Task || People || Deadline || Status ||
 * Email || Kyle || Tuesday || Done ||
 * Hardware || Sam || Tuesday || Done ||
 * IR || Eddie || Tuesday || Done ||
 * Package || Anna || Tuesday || Done ||

Key changes: - Added reset button.
 * Revised Schematic:**

= 4. Beta Release = Complete alpha testing: find bugs, missing functionality, and unneeded functionality. Redesign review: given time constraints, determine what will be fixed, added to, or eliminated from the system. Beta release: based on redesign review, implement changes to system in order to create the beta release. Draft the user guide.


 * Tasks **
 * Task || People || Deadline || Status ||
 * User guide || Anna || Monday || Done ||
 * Schematic || Sam || Sunday || Done ||
 * Wi-Fi || Kyle || Wednesday ||  ||
 * Board || Eddie || Wednesday || Done ||


 * Revised Schematic:**


 * Standalone Board Layout Draft:**


 * Revised Layout**