We at Concrete Jungle and Georgia Tech have been working on this project for a while, but are only now making a Hackaday project around it, so I'll catch you up on what we've done so far.
This version was an Arduino Uno, Sparkfun SD shield, and 5 gas sensors (methane, LPG, carbon monoxide, alcohol, and hydrogen). Each gas sensor was connected to the Arduino using a Sparkfun gas sensor breakout according to the instructions given at Wiring:
This is not a good way to work with these sensors. Put a potentiometer in place of the 10k resistor and you can adjust its sensitivity.
I unfortunately don't have good close-up photos of the original setup, but it is visible below:
This setup had a variety of problems and I don't recommend others repeat it except for the most basic sensing projects.
First, I wanted to establish a baseline. If you put each sensor in a separate closed plastic bags, would they settle to a reasonable value? For the most part, yes:
Things to notice:
- Alcohol sensing is probably broken in some way.
- The lines are generally flat. This is good since we just have air in the bag.
- Calibration could be a lot better. Methane hangs out in the 800’s the whole time and our maximum possible reading is 1023. This is probably a limitation of having just a 10k resistor in place of a tuneable potentiometer.
- There’s noise that gets worse across sensors. The sensors are connected to the Arduino in the order of CO (on analog input 0), H2 (on analog input 1), LPG (etc), alcohol and CH4, and our data get noisy in almost that exact order.
- Our sensors influence each other. There are many peaks and valleys in the data that overlap exactly across sensors. That does not seem likely given that each sensor is in its own separate, mostly-sealed environment.
But overall not terrible! How about on a real piece of fruit?
We put all the sensors in a sealed plastic bag with a green banana. Bananas don’t grow in Atlanta but they are really smelly when ripe. If our sensor system can’t detect a banana ripening then it seems like it wouldn’t stand a chance for an apple or pear.
The sensors were all placed in the bag and left running for a day so they could burn-in and be stable. After that, the banana was placed in the bag and the bag was sealed, leaving about 1” unsealed to accommodate the sensor wiring. Our experiment took place over the course of 10 days and we had some reference bananas from the same bunch to compare visually during the experiment and to taste afterwards.
The first nice thing to notice about the data is that it points up and to the right. That’s super cool! We’re detecting something in relation to ripeness. But beyond that, we’ve got our usual problems.
Also, the banana ripened really weirdly in the bag and gave off a lot of moisture. It tasted fine in the end, but we probably need to use a water vapor-permeable material like Tyvek in the real world. The last photo in this GIF shows the bag-ripened version on the bottom compared to a banana from the same bunch, but ripened in open air.
Since Taguchi gas sensors rely on a heated semiconductor to operate, they increase the ambient temperature and could accelerate ripening. We'll have to take this in to account in future designs.
Once again we have a trend and once again there’s also a lot of garbage. There is a noisy period there from Sunday the 6th to Wednesday the 9th where I squeezed the bag and tried to distribute the gas around. One can imagine that if I hadn’t done that then there would be a much smoother curve there.