Difference between revisions of "F16: NotifyBox"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Software Design)
(Software Design)
Line 173: Line 173:
 
Show your software design.  For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level.  Do not show the details of the code.  For example, do not show exact code, but you may show psuedocode and fragments of code.  Keep in mind that you are showing DESIGN of your software, not the inner workings of it.
 
Show your software design.  For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level.  Do not show the details of the code.  For example, do not show exact code, but you may show psuedocode and fragments of code.  Keep in mind that you are showing DESIGN of your software, not the inner workings of it.
  
[[File:CMPE_146_F16_NotifyBox_software_flow.png|450px|thumb|center|Figure 3: Software flow for microcontroller1.]]
+
[[File:CMPE_146_F16_NotifyBox_software_flow_1.png|450px|thumb|center|Figure 3: Software flow for microcontroller1.]]
  
 
[[File:CMPE_146_F16_NotifyBox_software_flow_2.png|450px|thumb|center|Figure 4: Software flow for microcontroller2.]]
 
[[File:CMPE_146_F16_NotifyBox_software_flow_2.png|450px|thumb|center|Figure 4: Software flow for microcontroller2.]]

Revision as of 05:20, 20 December 2016

Grading Criteria

  • How well is Software & Hardware Design described?
  • How well can this report be used to reproduce this project?
  • Code Quality
  • Overall Report Quality:
    • Software Block Diagrams
    • Hardware Block Diagrams
      Schematic Quality
    • Quality of technical challenges and solutions adopted.

NotifyBox

Abstract

With the rise of e-commerce, online shoppers are receiving more mail than they ever have before. This increase in e-commerce can also come with an increase of mail theft. NotifyBox will help users feel safe with knowing when their mailbox has been opened. NotifyBox will provide users with a notification via phone showing them the time that their mailbox was opened. An IR beam along will be communicated to an SJOne board. That SjOne board will be connected to another board over wireless communication. The second board will then communicate to the application over Bluetooth. Every time the beam has an interference the user will receive the notification on their phone.

Objectives & Introduction

Show list of your objectives. This section includes the high level details of your project. You can write about the various sensors or peripherals you used to get your project completed.

  • Interface infrared sensor
  • Transfer data to SJOne board.
  • Communicate two SJone boards over wifi.
  • Connect to iOS via Bluetooth.


Team Members & Responsibilities

  • Eric Lau
    • iOS developer, Bluetooth interface, UART communication
  • Alex Zavala
    • Infarred beam detection, Wifi interface

Schedule

Show a simple table or figures that show your scheduled as planned before you started working on the project. Then in another table column, write down the actual schedule so that readers can see the planned vs. actual goals. The point of the schedule is for readers to assess how to pace themselves if they are doing a similar project.

Week# Date Task Status Date Completed Notes
1 10/21 Finalize Project Idea and Porposal Completed 10/28 Decided on idea and finalized proposal
2 10/28 Order Parts Completed 11/2 Received parts on 11/2
3 11/4 Familiarize with Datasheets Complete 11/11* *Ongoing process, will continue to familiarize datasheets
4 11/11 Design circuit diagrams and IR sensor communication Complete 11/30 Implemented using GPIO
5 11/18 Interface Bluetooth and start iOS app Complete 11/25 iOS app was started very eary (11/13) and bluetooth part was started 11/20, but not fully completed until later
6 11/25 Interface WiFi and complete iOS app Not Complete Although the WiFi was done and iOS was almost done, the app was not completed until Bluetooth was fully functioning
7 12/2 Integrating all peripherals Not Complete
8 12/9 Testing Not Complete
9 12/16 Testing Not Complete

Parts List & Cost

Part Name Part Number Quantity Cost Notes
2x WiFi Transceiver Module 1MB Flash ESP8266 ESP-01 1 $9.95 For interfacing WiFi
Xbee Bluetooth Bee Iduino Xbee V2.0 1 $11.99 For interfacing Bluetooth
SJOne Board with LPC1758 SJOne Board 2 $80.00 Microcontroller used to control peripherals
Jumper Wires 60 ct 1 $8.00 For connecting pins
Infrared Sensors - 3mm LEDs IR Break Beam Sensor 1 $1.95 Sensor used for sensing objects
Total $111.89

Design & Implementation

The design section can go over your hardware and software design. Organize this section using sub-sections that go over your design and implementation.

Hardware Design

Discuss your hardware design here. Show detailed schematics, and the interface here. //will delete before finalizing

Figure 1: Block diagram.

Hardware Interface

In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project. // will delete before finalizing

Figure 2: Board pinout.

In our block diagram, we have one infrared sensor(IR) that we will be using to determine if mail has been received. Once the IR sensor beam breaks, microcontroller 1 will receive that data. The IR sensor sends data to the microcontroller over GPIO interface. Once microcontroller 1 has the data it will package the data and then send that package to microcontroller 2 via wifi. When microcontroller 2 has received the package this will notify the user with a notification that mail has been received. The communication from microcontroller 2 to the iPhone will be done using a Bluetooth module.

Software Design

Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.

Figure 3: Software flow for microcontroller1.
Figure 4: Software flow for microcontroller2.

Implementation

This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.

Testing & Technical Challenges

Describe the challenges of your project. What advise would you give yourself or someone else if your project can be started from scratch again? Make a smooth transition to testing section and described what it took to test your project.

Include sub-sections that list out a problem and solution, such as:

Issue #1

Bluetooth implementation on the iOS app was by-far the hardest part of the project. .....

Issue #2

The wireless communication gave us a very hard time to transfer the data from one board to the other. The way we resolved this was by attaching antennas onto the board. This resolved our issues almost instantly.

Conclusion

Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?

Project Video

Upload a video of your project and post the link here.

Project Source Code

References

Acknowledgement

Any acknowledgement that you may wish to provide can be included here.

References Used

List any references used in project.

Swift Programming Language Guide

Bluetooth Terminal App used for debugging

Appendix

You can list the references you used.