Team 307

Home

Apendix A Team Organization



Communication Channels

Our team’s methods of communication will include group texting and emailing, as well as in-person meetings (detailed below).

Comms Channels Redacted


Communication Procedures

With the help of smartphones, communicating will be an easy task for everyone. Our team will create a group chat through text and through Discord. The text chat will be great for a quick and simple message when asking a straightforward and to-the-point question or sharing a quick image. Discord will be another option for us and it is easier to share files by chatting. If we really need to have a long meeting then our group will set up Zoom sessions so we can all speak to each other and discuss any important project concepts.

Our team Leader, Connor O’Hara, will be tasked with distributing any Instructor correspondence to the group through any of the following communication options listed and will verify everyone has received and responded.


Meeting Schedule

For the immediate interim, we will meet virtually once a week outside of class. Any adjustments to the meeting schedule will be discussed with the group prior to enactment in class. Should a team member be missing when the discussion happens, all lines of communication will be exhausted before moving forward. If no response is heard from the absent member after a period of 24 hours from the first attempted communication, the team will meet as discussed in class. The virtual meetings will be facilitated via Discord.

Meeting Schedule


Meeting Coordination

Our Group will create a shared calendar using Google that will remind us of when we have meetings coming up.

If we have to change or add a meeting to the calendar it will be brought up in a group discussion and when all group members have agreed upon the change then the meeting time will be reflected in the calendar.

Our preferred format for the meeting will be face-to-face, this gives everyone the opportunity to physically see what each individual member is working on and also creates a learning opportunity if someone in the group is not understanding a concept. Our second format of meetings will be Zoom meetings. Everyone in our group works or has kids and not being able to meet in person at every meeting is highly unlikely.

Depending on how progress is going, additional meetings may be required and will be agreed upon by consensus of the group if necessary.

During the meetings, we will discuss ideas that we have come up with, as well as determine the feasibility of those ideas. The meetings will be focused on constructing and testing prototypes, as well as documenting instructions on how to build the device. We will time the construction and attempt to test multiple ideas out at this time. Team Coordination

All assignments will be submitted by a chosen representative for the group. This will be discussed and agreed upon by the group. There will be designated alternates for the submission of assignments should the primary submitter be unable to perform the function. Communication is pivotal to the success of the group thus it is expected and agreed upon that should a member not be able to fulfill their deliverables due to life circumstances they will reach out to the team to let them know. Confirmation of the information will be received by the team member having an issue and an alternate submitter will be notified. For the purpose of everyone having access to the same information, all documents will be stored on the shared drive.

If a team member does not possess the knowledge or skills to complete a given task, a team member who is capable will assist. The purpose will be to teach the appropriate skills to ensure that everyone in the team is operating under the same knowledge base. Should this not be an option, tasks will be re-assigned so that each team member can equally contribute to the success of the project within the scope of their knowledge and or skill set. This requires team members to be honest about their capabilities and we as a group encourage everyone to take such opportunities as chances to grow their skillset.

As stated, all documentation will be stored on the shared drive. Every team member has 24/7 access to it and can reference it as needed.


Team Accountability

What action is required in advance if a team member must miss a meeting?

If a team member must miss a meeting, that member must notify the group of the absence at least one hour before the scheduled meeting time. All sessions will have notes that the individual can get from another team member.

How will the non-attending team member’s contribution be captured in advance of the meeting?

Contributions for the team meetings will be communicated with the group in advance on the topics that we will be covering before the meetings. Individual members are responsible for making sure that their contributions are sent with enough time to be used for the meetings. After the meeting, the absent member will be contacted by the group via group text messaging, before the end of the day with a summary of the goings-on at the meeting that was missed.

Our team has agreed to work together using the many features of Google such as Docs, sheets, and slides. We all have a personal laptop which will help eliminate the excuse of not being able to work on the project. If a team member is not comfortable with using the Google apps, they can use office or apple apps as long as it is easily accessible and easy to convert to another file type.


Conflict Recognition and Resolution

The conflict resolution process(es) our team will employ include:

If there is a conflict that begins to disrupt group activity, the group will convene and address the problem. We will each meet with ideas on ways to solve the problem and will present those solutions to the group. Afterward, the group will vote for the solution that best solves the problem and allows the group to continue working towards the goal of the project.

If a vote is tied and no other workable solution is available, the group will meet with Professor Karwat to act as a third-party mediator to break the tie.

If, after the mediation, the problem still exists, the group may vote to fire a member (pending approval from professor Karwat). However, this is only to be used if all other conflict resolution techniques have failed.

Any team member who is in violation of the contract before March 6, may be given a pink slip, i.e., a warning that you may be fired from the team if all remaining team members unanimously agree. Students receiving a pink slip will be notified using an email that includes all team members and the instructor. That student will be required to meet with the instructor and will have 2 weeks to improve their performance. Students receiving a second pink slip will receive a zero for the final project.


Team 307 Signatures

I fully commit to the items above and understand that contributing to the effectiveness of my team is required in this class.

Team Signatures


Appendix B: User Needs, Benchmarking, and Requirments




VOC Benchmarking


Commercial Product 1


Commercial Product 2


Commercial Product 3


Commercial Product 4


Commercial Product 5



Ogranization Tables


User Needs Table 1


User Needs Table 2


User Needs Table 3


Appendix C: Design Ideation



Generated Ideas

Generated Ideas 1

Generated Ideas 2


Sorted Ideas

Sorted 1

Sorted 2

Sorted 3

Sorted 4



Appendix D: Component Selection


Major Components


Motor Driver

Motor Driver Selection


Choice: Option 1

Rational: This motor driver is already readily available to us. We did not need to worry about order times and so we could already start working and troubleshooting with this device. Due to already using it for a previous assignment, we are already familiar with how it operates and works. It meets our requirements and is able to complete the desired function needed for our design.


Motor

Motor Selection

Choice: Option 3

Rational: Due to the long shaft, it will be easy to mount with the spray bottle for use we are looking for. It also has a voltage that fits on the voltage rail we are looking for. Also due to it being a smaller motor it will have a lower amperage cost.


Temperature Sensor

Temp Sensor

Choice: Option 1

Rational: This sensor is one that we will be using in class, so we will be familiar with how the sensor works as well as we will not need to worry about waiting for shipping. While small we know it is possible to solder this component as we have already done so.


Humidity Sensor

Humidity sensor selection

Choice: Option 1

Rational: The HIH6030 Sensor is manufactured by Honeywell and has the ability to sense humidity and temperature, however, our group will only be implementing the humidity sensor for this component. It is very accurate and has the most workable footprint which will be important as we will be soldering these parts on ourselves.


Voltage Regulator

voltage regulator

Choice: Option 3

Rational: The class requirement needs us to use a switching voltage regulator. This one matches this requirement as well as is in the proper voltage range of 3.3V. It also will provide enough amperage for running all of our schematics.



Appendix E: Microcontroller Selection



MC1

MC2

MC3

MC4



Appendix F: Original Block Diagram



Updated Block Diagram



Appendix G: Team Bill Of Materials



Hardware proposal: BOM



Appendix H: MQTT & PIC Code



Topic



Main.C Code


#include “mcc_generated_files/mcc.h” #include “mcc_generated_files/examples/i2c2_master_example.h” #include “mcc_generated_files/i2c2_master.h” #include “mcc_generated_files/examples/i2c1_master_example.h” #include “mcc_generated_files/i2c1_master.h”

void EUSART1Transmit(void) { EUSART1_Receive_ISR();

volatile uint8_t unixData;

if(EUSART1_is_rx_ready()){
    unixData = EUSART1_Read();
    if(EUSART1_is_tx_ready()){
        EUSART1_Write(unixData);
    }
    if(EUSART1_is_tx_done()){

    }
    //LED_0_Toggle();
}
// add your EUSART2 interrupt custom code }

void main(void) {

SYSTEM_Initialize();
EUSART1_SetRxInterruptHandler(EUSART1Transmit);


INTERRUPT_GlobalInterruptEnable();
INTERRUPT_PeripheralInterruptEnable();

printf("starting");

int8_t var;
uint8_t buff[4];
uint16_t conver = 0;
double humidity = 0;

while (1)
{
    {    var = I2C2_Read1ByteRegister(0x4C, 0x00);    printf("Temp: %u C \n \r", var);

  __delay_ms(1000);
    }   
    
{ 
 //we want to trigger the chip to take a 'measurement' and wait for that to happen;
 I2C1_ReadNBytes(0x27, buff, 2); 
 __delay_ms(50); 
 //I2C1_ReadNBytes(0x27, buff, 4);
 //conver = (buff[0] << 8 | buff[1]) & 0x3fff;
 
 for(int i=0; i<sizeof(buff); i++){
 humidity = 10*conver + buff[i];
 }
 
 printf("The Humidity is %u \r \n", humidity);

 __delay_ms(1000);
 
}   } }