Version 1.5 (July 2016)

A project log for Electronic nose to detect fruit ripening

Can we get fruit trees to report to us when their fruit is ripe?

craigCraig 10/31/2016 at 03:250 Comments

Version 1.5

Moving on from version 1, I wanted to try to address the noise issue and add sensor sensitivity adjustment. Having all the sensors be in the MicroSD shield prototyping space was not really fun to work with either.

So version 1.5 was trying to move our gas sensors over to the Seeedstudio Grove system for doing environmental monitoring. Everything gets a four-pin connector, and you can buy gas sensors with Grove connectors and potentiometers already on them. It sounds perfect if it works. (Spoiler alert: it doesn't)

The biggest problem you face with trying to run lots these gas sensors in an Arduino environment is that each sensor draws about 150mA. Trying to run 8 of them means you're drawing about 1.2A at 5V, or using 6W of power. Arduinos are just not built for that. If you're powering the Arduino with something greater than 5V, its onboard regulator (NCP1117ST50T3G) is rated for 1A max, and will likely run very hot for currents that are a significant fraction of that.

But we also live in an age of ubiquitous, cheap, high-power 5V USB power supplies, so you could potentially power the sensors over USB and bypass the regulator. This is the route I chose, but it has its own wrinkle: the Arduino UNO has a PTC resettable fuse that can sustain 500mA and will definitely trip at 1A, but has kind of undefined behavior between 500mA and 1A.

My solution here was to split the sensors up between two Arduinos so that each would need only 600mA per Arduino. I then soldered an additional PTC atop the existing PTC so that we'd have 2 500mA fuses in parallel, which seems like it'd give 1A of current flow.

With this in place, I wrote some code to let the Arduinos establish a client-host relationship over I2C so that the client sensor values could be saved on the host's SD card. I also added an I2C display so I could monitor the sensor values, and then threw all the sensors in a sealed bag to see what they'd do.

Not bad. Seeedstudio also had some extra sensors that Sparkfun didn't, so I was able to add in a formaldehyde sensor, air quality sensor and CO2 sensor. I was having trouble getting much of a reading out of the MQ2 and MQ3 sensors, but things were generally working and I could start trying to calibrate things. Unfortunately, things couldn't even get to the point of testing.

When setting up this system I noticed that a certain sensor would short out the Arduino every time I plugged it in. This would happen even if I removed the actual gas sensor from the socket, so it was a problem in the breakout board circuitry itself. There’s not much to that circuitry except for a few capacitors, an inductor and an IC. That IC (only labeled in the EAGLE part info) is an ETA1036 step-up voltage converter. The datasheet is super short but it makes one thing clear: max input voltage of 4.5V. This means don’t recommend people connect 5V to it on your wiki.

During the course of figuring this out I managed to cause another sensor to short out the Arduino, and it seemed like a matter of time before all the sensors would fail.

Maybe I'm misunderstanding something with these sensors, but this is the point where I gave up on these sensors and moved on to version 2...