Lucas Cohen lmcohen2 (110), Zhijie Jin zhijiej2(120), Siye Cen siyecen2 (120)

Statement of purpose:

  • To build a rocket that detects temperature, moisture, air pressure. The purpose of this is to detect incoming storms and extreme weather conditions. The rocket will detect conditions much more accurately than normal detectors, however it will be much more localized. 

Background Research:

  • Current weather apps tell us the temperature, cloud concentration, and wind direction/magnitude globally
  • Weather satellites receive electromagnetic radiation and based on the energy of this radiation, they are able to determine different properties of cloud cover and temperature.
  • This is a global report, ours will be much done over a much smaller area.

Design Details:

Block Diagram/Flow Chart:

System Overview:

  • There will be two sensors, one that measures humidity/temperature, and one that measures air pressure. These sensors will be connected to a logic gate circuit that will tell us whether or not the local weather is more extreme than a certain threshold point. This threshold will be determined by our research on what is typical for severe weather. From the logic gate, there will be a circuit that will analyze the data and report, via a connected radio transmitter, if necessary.  

 

Parts:

 

Low Level Design:

Possible Challenges:

  • How to protect sensors
  • How to build rocket
  • How to store/access the data
  • How to include a logic gate

References:

Weekly Journal:

9/26

  • finalized the project proposal, Got it proved by TA.
  • Start to brainstorm details of the circuits and logic gates, research about the sensors.
  • Next week: trying to figure out how to store/transmit data? Find out the detailed usage of the logic circuits in the system

10.03

10/10

  • filled out order forms
  • completed low level design
  • uploaded low level design to wiki

 

10/17

  • figured out how to implement temperature sensor via circuit
  • research on each sensor and the circuits to implement them
  • research on the comparator 

10/24

  • we received the sensors in the mail and began to assemble them
  • humidity and temperature sensor RHT03 was difficult to work with because of how it received data. It needed the supplied power to be lowered and raised multiple times in order for it to receive an input and send an output.
  • we decided to try working with the barometric pressure sensor BMP180 in the meantime
  • BMP180 was hooked up without soldering - we plan to next week - and we are currently working on the code in Arduino's IDE
  • we plan to research RHT03 and figure out how to use it with Arduino

10/31

  • We soldered 5 pins onto our pressure sensor
  • We read over Alonzo's code and tried to figure it out/fix it
  • We worked on setting up a circuit for the pressure sensor and programming it in IDE to receive data.

11/7

  • We worked on the code for the pressure and temperature sensor using the redboard.
  • We tried to implement EEPROM memory on the RedBoard so that we can store data from the sensors while the rocket is in the air.
  • We wrote two arduino functions for receiving data and storing/accessing that data. 

11/14

  • Finished up in preparation for the presentation
  • Presented the project to the rest of class and TAs

11/28

  • Worked on characterizing the Pressure/Temperature sensor
  • Emailed Prof Franke about access to the wooden rocket model to use with our project
  • Worked on adding diodes that emit light in specific conditions
  • Worked on adding Ngate

REPORT:

 

 

 

 

 

 

 

 

 

Attachments:

Screen Shot 2016-09-26 at 4.29.38 PM.png (image/png)
IMG_1390.JPG (image/jpeg)
IMG_4056.JPG (image/jpeg)
IMG_1390.JPG (image/jpeg)
Humidity_Sensor_Skel_Code_INCOMPLETE.zip (application/zip)
ECEHonorsReport.pdf (application/pdf)

Comments:

Project approved!

Posted by pispati2 at Sep 30, 2016 16:20

Great job, love the detail in the weekly journal entries. Keep up the good work. 

I noticed that you guys have been researching the implementation for each component. Once you have them, you can consider characterizing them and making IV plots.

Posted by atmarsh3 at Oct 20, 2016 12:22

Reminder that everyone should have a short (5 minute) progress report presentation ready for the next meeting! Just share what your team been working on, challenges, opportunities, and your plan for the rest of the semester.

Posted by ajborn2 at Oct 24, 2016 17:12

So I looked into your humidity detector and here is basically how it works. First, there is a handshake protocol between the arduino and the sensor. The handshake basically serves as a way for the arduino to let the sensor know that it is ready for information and a way for the sensor to know when it needs to transmit data. The handshake for your sensor basically looks like this. Please note, we think it would be best for you to have the data pin connected to 2 pins on the arduino. One of these pins will be an output, and one will be an input. 

  1. The arduino has the output pin set to output HIGH during standby. When the arduino is ready to request information, then the arduino output should change to LOW for 1 millisecond (this can be accomplished using the digitalWrite() and delay() functions). 
  2. Then the arduino goes back to having the output pin output HIGH for 20-40 microseconds (accomplished using digitalWrite() and delayMicroseconds() functions). 
  3. Then the second will input LOW for 80 microseconds. We are recommending using interrupt signals here (see below for declaration instructions). Basically drop the output pin output to LOW and then there should be a fall to zero read by the input pin.
  4. Then the sensor will input HIGH to the input pin. The declaration for the interrupt signals should make implementing this surprisingly easy. 

Interrupt Functions can be declared using the attachInterrupt() funciton. Documentation and examples for that are here: https://www.arduino.cc/en/Reference/AttachInterrupt Basically the idea here is that instead of you going and checking for when there is information to be found, you declare that the function should occur whenever the input rises or falls. Then it might be helpful to have a number of states function. 

After the handshake, then your sensor will start outputting the data until 8 bits worth of information have been sent. To start the transmition of a single bit, the sensor will write LOW (this is a falling edge). Then after 50 microseconds, the sensor will write HIGH to the input pin. This means that there will be a rising edge, so again we can use the attachInterrupt() function to deal with this input information. Whether or not it is a 0 or a 1 is determined by how long the sensor outputs HIGH.

0: Stays at HIGH for 26-28 microseconds.

1: Stays at HIGH for 70 microseconds. 

As soon as the time has elapsed, it will drop back down to LOW and stay there for the 50 microseconds then start transmitting the next bit. When all 8 bits have been transmitted, the output pin should go back to outputting HIGH until the arduino is ready to collect more data. Look at the micros() function for arduino: https://www.arduino.cc/en/Reference/Micros, it will basically give you an easy way to determine how long the signal was sent for. 

 

Let me know if anything is unclear or you guys need clarifications. The data sheet has some nice graphs that you can use to understand this a bit better. For those, Vcc represents HIGH and GND represents LOW (basically just different terminology). I'm gonna be honest and say that you will probably need some help implementing this at next week's lab session. Have one of your group members read this FIRST, then come find me and we will talk through it. 

Posted by atmarsh3 at Oct 24, 2016 17:22

Correction: presentations will be November 11th (Friday teams) and 14th (Monday teams). However, it's never too early to start preparing demos and stuff!

Posted by ajborn2 at Oct 24, 2016 17:40

Ok, so good news. I'm going to write you guys some code as a framework that you all will be able to use! I'll post it up here in like an hour! 

Posted by atmarsh3 at Oct 28, 2016 15:10

Oscar made me go in and mess with some lines. It won't compile until you fix them.... Most of the changes are in the dataCollection() function. If you are having problems... talk to me in class (smile)

Other than that, its a pretty nice skeleton file. Everything is commented for you so, it should be pretty easy to follow. 

Good luck! 

Humidity_Sensor_Skel_Code_INCOMPLETE.zip

Posted by atmarsh3 at Oct 28, 2016 17:03

Your demo was interesting to watch! I am looking forward to seeing the final rocket version. Good luck (smile)

Posted by viyenga2 at Dec 11, 2016 14:43