Showing posts with label data sink. Show all posts
Showing posts with label data sink. Show all posts

Monday, July 16, 2012

Week 6 Day 1

Today was another field day for use. We went out and met Dr. Hoenghaus and Luke at the Water Treatment Facility to set up our WSN and start logging data. We got our sensor cluster anchored and set up quickly.



We did take a second to calibrate the DO sensor, but it was pretty simple.



It took a little bit longer to get the YSI Sonde calibrated and set up. This time we used a more high end model that has a longer battery life and can stay in the field longer. It also has more ports for probes. This one is equipped with a pH, DO and temperature probe but also includes a turbidity probe.







The probe that Dr. Hoeinghaus is pointing at here is the Turbidity probe. The rollers are sponges that clean the probe so nothing gets caked on to the sensor. Once it was calibrated when dropped everything in the water together so we would have data that we could compare.





The original plan was to just log two hours of data and then bail. Luke and Dr Hoeinghaus planned on being at the facility all day today and tomorrow, though, and Yixing was ok leaving his computer over night so we made an executive decision in the field and decided to let the probes run until the morning. That is exciting because it increases the likelihood of getting changes in DO and pH since the temperature will almost certainly change. Since we are leaving things in the field we needed to set up the laptop somewhere protected. Putting it in the shed seemed like the best option but we were concerned about the signal. Joe set up an antennae on the wall of the shed with the lead heading through a small hole in the wall and Yixing set up his laptop inside.




The other big piece of news was that the camera is up and running, We rigged it up on a cross bar and accessed the signal using Yixing laptop and let Luke and Dr. H play. They were very excited by the possibilities.





Back on campus we had several more successes. I completed the activity we are going to use at TechFest and got approval from Joe and Lori while Joe made some great progress with the paper. Yixing also produced schematics for our circuit that we can include in our paper.

DO Circuit

Temp Circuit

pH Circuit
Power Circuit

Complete Circuit

That's not all, though. Yixing also created a website that automatically translates the data tables produced by the data sink into a visual format.



Pretty exciting stuff! Once we get the data from the sondes and the sensor cluster we can start checking to see how accurate our system is. We will keep you posted. If you are interested in an update on the fish in the artificial stream... sadly, we are down to 11. We had a couple of floaters this morning and most of the smaller fish are gone.

Thursday, June 28, 2012

Week 3 Day 4


This morning we had a meeting with Dr. Hoeinghaus to catch him up on the project. He was very enthusiastic about the progress we have made with the sensor cluster and is excited that we may be able to start field testing as early as next week (assuming the Otter Box shows up and Yixing banishes the last of the gremlins from the pH probe.) He is also sending us a research grade pH probe so that we can take comparison readings to help us sort out what might be going on with our probe.

We also talked some more about the possibility of setting up streaming video. We discussed some of the difficulties involved in setting up the system as well as looking at the best ways to get around those. It looks like that is still a project that we will push out to next year. We still have a stretch goal this year of putting together a proposal for that project so the UNT RET team can begin gathering the tools and equipment necessary.

After having the general discussion about setting up the streaming video Dr. Hoeinghaus went into more detail about his vision for ways to utilize the wireless sensor network and the possibilities for the streaming video. Once we get the sensor clusters packaged in the enclosure the potential for use is really only limited by your creativity. The most straight forward use is putting a large hanging hook on the device itself so you can hang it off the side of any tank and dangle the probes in for readings. Alternately you could mount it on a post in a lagoon, place it in a bouy, either tethered or free floating, mount it on an R/C boat and cruise around... There are any number of deployment methods. One goal for future study would be to find smaller probes to increase the number of areas you could deploy in as well as allowing for better monitoring of microzones in the water. Once the device is deployed and broadcasting the data can be uploaded to the internet with relative ease (assuming there is an internet connection available at or near the site) and then the data is available anywhere. Some of the specific instances Dr. Hoeinghaus referenced when discussing the utility of that level of access involved situations in Brazil where a test site might be a three hour boat ride away from you base, or when roads between you and a test site get washed out. It would also be helpful, and possibly more cost effective, to have team members who were not in the field access the data through the internet and begin crunching numbers.

A final use for the internet access to field date involved sharing a limited data set with schools so they could use real world data in the classroom. This idea ties in with why he is so interested in live streaming video. Dr. Hoeinghaus would like to provide a way for students everywhere to be able to remotely access some of these field sites to see what research is going on in the real world. It might even be possible to do webinars and/or a remote classroom type of situation where high school students could be given a tour of the research sites and then ask questions of the scientists doing the study.

In other news, Yixing thinks he has the problem with the pH probe isolated. It appears there is some interference that occurs when you run the pH probe and the DO probe concurrently. The initial thought he had was that it might be because they are drawing from the same power source. He is going to create a transformer to split the single 5 volt DC output to two channels. If that fails I suggested the possibility of inserting a switching call in the code so that the pH and DO probes would alternate when they are on. The first solution works if the problem is in the power draw on the circuit side. The second solution works if the problem involves the current flow through the probes and the sample water.

We also finished sealing the joints in the table top model. We have a three part solution because we REALLY don't want the water to leak once we started this bad boy up considering it is in a computer lab. We sealed the gaps between the guttering for the riffle and the edge of the tubs with J-B WaterWeld and let it dry. Next, we coated the joint on both sides with Loctite Marine Epoxy and let it set. After that we put a layer of waterproof repair tape over the joint. If it still leaks...well, no one can say it was because we weren't thorough. Tomorrow morning we will clean the gravel, install the pump and fill the system with water. Wish us luck!

Wednesday, June 27, 2012

Images from yesterday

Things got a little busy yesterday and I didn't get a chance to load all the pictures and video from what we got accomplished. Here is what you missed!

The aquarium with the probes.

Cutting the down spout into lengths.

Taking off the top of the down spout so it can be used as a riffle. 

A quick tour of the lab. 

Testing the sensor cluster and data sink. Not everything went according to plan...

Monday, June 25, 2012

Week 3 Day 1

The day started off with a little hands on work. Sharon brought us some plants and minnows so it was time to get our hands wet and slap together an aquarium. The tank was cleaned and filled on Friday so that part was ready to roll. I treated the water first to reduce the transfer shock the fish were likely to experience and to prime the tank with helpful bacteria and micro-nutrients. Then I dumped in plants and some minnows. All of the plants are locally sourced, including one very cool carnivorous plant called bladderwort. The fish we chose are minnows because they are pretty hardy and the can gulp from the surface if the need to (which is likely since we will eventually start messing with dissolved oxygen...). Once every thing was in the tank Joe and I did some decorating by anchoring the plants.



 Once that was knocked out it sort of ended our hands on portion of the day. The next thing that happened was a quick status update for Dr. Thompson on where our project stands and where it is going. She was encouraged by our progress and gave us the green light to start acquiring parts to build our sensor clusters and data sink. We also got the go-ahead for to start hammering out our table top stream model. I'm excited about that because it means lots more hands-on build time this week. We will also begin collecting data very soon if we actually get all the parts soon. Yay! One thing that we did discuss as a minor issue is that there is a a strong desire by the group running the project to include streaming video as part of the sensor cluster. Every one agrees that it is a great  idea and we would all like to see it happen but that is really almost a separate project in and of itself because of the processing demands of streaming video. It is likely that will be extended into a group assignment for next year and part of our teams responsibility is to do some planning for that contingency and to create a possible parts list to tackle that project so that there are parts on hand. (Here's hoping we are invited back next year to finish that out!)

Status update complete, the whole group dove deep into literature. Lori is building skeleton descriptors for the research we have pulled so far to include in the literature review section of our paper. Joe has accumulated several dead trees worth of material that he is stitching together to form our introduction. I am data mining the research we have already pulled to both widen our net and to try to get at some of the primary research that underpins a lot of these papers.

Friday, June 22, 2012

Week 2 Day 5

Today is awesome. Yixin Gu is awesome. We now have a complete prototype that is fully functional. Here is some completely inaccurate code to express my feelings... (It's like a nerdy haiku.)



int Yixin = 1 gagillion;
int Zac = 3;
int YCode = 0;
int ZCode - 0;

Void Loop() {
ZacAttempt(Zac);

While (Yixin > Zac) {
   YCode ++;
   Yixin += Ycode;
   Serial.println("Yixin is responsible for fixing all the code.");
}

int ZacAttempt(Zac) {
   If (ZCode = true){
     Zac ++;
   }
}

There. Homage complete. The short version is that I hit a wall and my code was needlessly complex. Yixin was able to get something clean and quick out of the snarl and it works/looks great. "If I had more time I'd of made it shorter." definitely applies here. Here is the completed code for the three probes together.


#include <SoftwareSerial.h>                                                    //add the soft serial libray
#define rxpin 2                                                                //set the RX pin to pin 2
#define txpin 3                                                                //set the TX pin to pin 3

SoftwareSerial myserial(rxpin, txpin);                                         //enable the soft serial port
String inputstring = "";                                             //a string to hold incoming data from the PC
String sensorstring = "";                     //a string to hold the data from the Atlas Scientific product boolean input_stringcomplete = false;                      //have we received all the data from the PC boolean sensor_stringcomplete = false;       //have we received all the data from the Atlas 
                                                                  //Scientific product
  void setup(){                                                                //set up the hardware
     Serial.begin(38400);                            //set baud rate for the hardware serial port to 38400
     myserial.begin(38400);                           //set baud rate for software serial port to 38400
     inputstring.reserve(5);                          //set aside some bytes for receiving data from the PC
     sensorstring.reserve(30);   //set aside bytes for receiving data from Atlas Scientific product
     }      void serialEvent() {                                              //if the hardware serial port receives a char
               char inchar = (char)Serial.read();                               //get the char we just received
               inputstring += inchar;                                           //add it to the inputString
               if(inchar == '\r') {input_stringcomplete = true;}                //if the incoming character is                         
                                                                                         //a <CR>, set the flag
              }      void loop(){                                                                   //here we go....
       if (input_stringcomplete){                     //if a string from the PC has been recived in its entierty 
      myserial.print(inputstring);                           //send that string to the Atlas Scientific product
      inputstring = "";                                                        //clear the string:
      input_stringcomplete = false;                                            //reset the flage used to tell if we 
                                                                          //have recived a completed string from the PC
      } 
  while (myserial.available()) {                                   //while a char is holding in the serial buffer
         char inchar = (char)myserial.read();                                  //get the new char
         sensorstring += inchar;                                               //add it to the sensorString
         if (inchar == '\r') {sensor_stringcomplete = true;}                   //if the incoming character 
                                                                                                //is a <CR>, set the flag
         }

   if (sensor_stringcomplete){           //if a string from the Atlas Scientific product has been 
                                                      //received in its entirety
       Serial.print(sensorstring);             //use the hardware serial port to send that data to the PC
       sensorstring = "";                                                      //clear the string:
       sensor_stringcomplete = false;                                          //reset the flag used to tell if we 
                                                                                       //have received a completed string 
                                                                                       //from the Atlas Scientific product
      }}
Here is the user interface.

Code accomplished. That is not all, though. We also have a a working prototype of the probe cluster. Want to see? Of course you do.






Pretty impressive, right? Look at that soldering work. That's pretty intimidating. Here I am explaining what's going on with all this stuff.




After my spiel Dr. Fu came in and approved the sensor cluster and data sink assembly which means we are go for production. They are ordering all the parts to assemble five full sensor cluster nodes plus a data sink. I'm pretty excited about getting to roll this out so we can start collecting real data. Here is a picture of the meeting when Dr. Fu told every one we were doing a great job.


After the kudos we started talking about where we were headed and what our next steps are.



Now that we know our sensor network is functioning it is time to start collecting data. That will begin on Monday. We will begin collecting data under controlled conditions in the lab so we can compare the data our sensor suite gathers versus other commercially available solutions. Once we have a feel for how accurate it is under lab conditions we will move out to the field and cross our fingers. To test this sensor cluster in the lab we will eventually drop it into our table top model. Since that is not complete yet we need another option. That option is pretty simple... an aquarium. Joe and I cleaned one out and got it set to run so that we can drop in plants and minnows on Monday and start probing!