Office plant monitor
-
I wonder whether a higher capacity coincell, like maybe a CR2450 (620mah) or a CR2477 (1000mah capacity), might give you the pulse current you need without needing a capacitor, thus avoiding leakage losses? Plus maybe you wouldn't need to change it as often.
-
sure 2450/77 would be better. 2477 is a bit expensive.
but not sure if those coincell would be better without capacitor (I mean in the long term), looking at coincells datasheets.. which are always given for x kohms load.
leakage current for ceramic common quality capacitor is in nA range (hopefully), so i think it's better to have it buffering to help the coincell (still for the long term, or at a momemt it won't be enough strong). if alka, there would no need..
that's imho. -
Stop wondering. I tried with 2477 cells and it was not much better than 2032 without capacitor ;)
-
@Nca78 you can have brownout if the battery is near end of life and nothing has been designed to handle a bit the internal res. but with a fresh a coincell and some capa, you can do some chain tx but that's not the best for the battery life.
The only case where i had issue with brownout at startup, plus it was a fresh coincell was with a crappy ali coincell batt!! very bad quality! now I'm using only good quality coincell like duracell, varta, maxell.. and that's day and night ;)
@carlierd If you're interested this doc explains very well the capacitor calc etc... http://www.ti.com.cn/cn/lit/wp/swra349/swra349.pdf
- capa ideally calculated/estimated (on mine I have 200uF, plus others for sensors, radio is 86uA etc..) and after multiple msg presentation on frsh coincell i don't fall under 2.85 (voltage starts 3.05V) because I can't recover voltage during this period.
Hopefully a transmit is not 1sec! More something like says 30+ ms (depending if signing is needed, ack, retries.. etc). To not break capa benefits, it's better to sleep between tx during chains..to recover voltage and optimize battery life. Sleeping 200ms can be enough - For the capa leakage, it depends of capa. common good quality ceramic have not those leakage (few nano). Sure on this design it's not a ceramic.
- You're right at runtime 1Mhz consumes less than 8Mhz; mA vs thousands uA. But at 1Mhz everything is slower, comms too (I mean code execution). During deep sleep, there is no difference in power consumption. Oscillator is stopped so mhz does not mean. Note: at 8Mhz you can wake in few uA, at 1Mhz it's slower of course.
@scalz : I missed your reply ! Interesting withe paper !
@scalz said:
@Nca78 you can have brownout if the battery is near end of life and nothing has been designed to handle a bit the internal res. but with a fresh a coincell and some capa, you can do some chain tx but that's not the best for the battery life.
The only case where i had issue with brownout at startup, plus it was a fresh coincell was with a crappy ali coincell batt!! very bad quality! now I'm using only good quality coincell like duracell, varta, maxell.. and that's day and night ;)
@carlierd If you're interested this doc explains very well the capacitor calc etc... http://www.ti.com.cn/cn/lit/wp/swra349/swra349.pdf
- capa ideally calculated/estimated (on mine I have 200uF, plus others for sensors, radio is 86uA etc..) and after multiple msg presentation on frsh coincell i don't fall under 2.85 (voltage starts 3.05V) because I can't recover voltage during this period.
Hopefully a transmit is not 1sec! More something like says 30+ ms (depending if signing is needed, ack, retries.. etc). To not break capa benefits, it's better to sleep between tx during chains..to recover voltage and optimize battery life. Sleeping 200ms can be enough - For the capa leakage, it depends of capa. common good quality ceramic have not those leakage (few nano). Sure on this design it's not a ceramic.
- You're right at runtime 1Mhz consumes less than 8Mhz; mA vs thousands uA. But at 1Mhz everything is slower, comms too (I mean code execution). During deep sleep, there is no difference in power consumption. Oscillator is stopped so mhz does not mean. Note: at 8Mhz you can wake in few uA, at 1Mhz it's slower of course.
- capa ideally calculated/estimated (on mine I have 200uF, plus others for sensors, radio is 86uA etc..) and after multiple msg presentation on frsh coincell i don't fall under 2.85 (voltage starts 3.05V) because I can't recover voltage during this period.
-
@carlierd yep, this doc inspired me too, plus coincell datasheets,. I use mega-pile for sourcing batt and they have lot of battery datasheet.
I have also recently designed few small sensors I need to put on a panel now :)- moisture+temp
- moisture+salinity/conductivity+temp
-
Could this be used with a capacitative soil sensor to avoid corrosion of the sensor over time ?
@tomtastic said in Office plant monitor:
Could this be used with a capacitative soil sensor to avoid corrosion of the sensor over time ?
Yes. Do you have one in mind?
-
@tomtastic said in Office plant monitor:
Could this be used with a capacitative soil sensor to avoid corrosion of the sensor over time ?
Yes. Do you have one in mind?
-
@tomtastic said in Office plant monitor:
@NeverDie Something like https://8f26945f-a-62cb3a1a-s-sites.googlegroups.com/site/drxzcl/capsensor.brd ?
I don't know whether it's better or worse, but the Chirp! is a capacitive soil moisture probe that has been around for awhile and is, IIRC, atmel based. It used to sell for around $15, but I just noticed that you can buy it for less than $5 from a number of ebay sellers, such as:
http://www.ebay.com/itm/182446660427Historically, one problem with PCB probes has been that over time water intrudes into the PCB and throws off the calibration. Not sure if there's a solution for that problem, though it seems like one should exist.
[Edit: I see that the original author of the Chirp does have some suggestions now regarding ways to waterproof it: https://www.tindie.com/products/miceuz/i2c-soil-moisture-sensor/ ]
BTW, the Chirp is open source: https://wemakethings.net/chirp/
There's also this, which I'm not familiar with: https://www.aliexpress.com/item/DFRobot-Capacitive-Analog-Soil-Moisture-Sensor-3-3-5-5V-Corrosion-Resistant-with-Gravity-3-Pin/32574020064.html?spm=2114.01010208.3.2.P99ddH&ws_ab_test=searchweb201556_0&aff_platform=aaf&cpt=1496178932140&sk=e2Vzr3v&aff_trace_key=17f48f5bf06b4b5daa3c5b3d8442dc7c-1496178932140-02358-e2Vzr3v
You might be inbterested in this thread: https://forum.mysensors.org/topic/990/soil-tensiometer-sensor-network
-
Anyhow, the probe you referenced looks a lot like this one: http://zerocharactersleft.blogspot.com/2011/11/pcb-as-capacitive-soil-moisture-sensor.html
As an aside, people seem happy with the Vegetronix probe, up until its PCB suffers water intrusion. The asking price is rather high though. If I knew how to, I'd make one of those and simply waterproof it better.
-
Anyhow, the probe you referenced looks a lot like this one: http://zerocharactersleft.blogspot.com/2011/11/pcb-as-capacitive-soil-moisture-sensor.html
As an aside, people seem happy with the Vegetronix probe, up until its PCB suffers water intrusion. The asking price is rather high though. If I knew how to, I'd make one of those and simply waterproof it better.
-
@NeverDie The person behind 'Chirp' actually left a comment in your last link (zerocharactersleft). He posts an interesting link back to his own studies too : https://wemakethings.net/2012/09/26/capacitance_measurement/
@tomtastic said in Office plant monitor:
@NeverDie The person behind 'Chirp' actually left a comment in your last link (zerocharactersleft). He posts an interesting link back to his own studies too : https://wemakethings.net/2012/09/26/capacitance_measurement/
Thanks for the link.
For the best results, running the square wave at 80Mhz or faster seems to be important. That's what vegetronix does. Now, the good news is that the clock on an ESP8266 can supply that frequency.. However, all this analog circuitry is beyond my purview, so I inevitably hit a wall with that. Is that something you (or someone reading this) knows how to do? For instance, I don't know whether the chirp guy's circuit that you linked to works as-is at 80Mhz, or whether it requires modification. If the latter, that's where I get stuck not knowing what to do.
-
@NeverDie The person behind 'Chirp' actually left a comment in your last link (zerocharactersleft). He posts an interesting link back to his own studies too : https://wemakethings.net/2012/09/26/capacitance_measurement/
It turns out that the circuit the Chirp guy described in the link that you provided is, in fact, what is built into Chirp: https://wemakethings.net/2013/06/07/chirp-plant-watering-alarm/
None of his calculations make reference to frequency, so maybe (?) you could hook up the circuit to 80Mhz and it would "just work." I suppose the switching speed of those transistors might be a factor. I have no insight into that, but it would probably be easy for someone to test. IIRC, the higher frequency makes a capacitive soil moisture sensor much less influenced by soil characteristics other than moisture, so it's really necessary to have that in order to make a good probe.
[Edit: What you don't want is a soil moisture probe that requires frequent manual re-calibration. Ordinary conductive probes all have that as an inherent problem. Hence the hunt for a worthwhile capacitive soil moisture sensor.] ]
-
Completely unrelated, but I just noticed this:
https://www.aliexpress.com/item/SHT10-SHT11-SHT15-waterproof-sensor-case-temperature-and-humidity-protective-cover-soil-sensor-cover-40mm-15mm/32575966509.html?spm=2114.8153822.cb0001.16.lITM8E&scm=1007.13409.76764.0&pvid=0acc75b7-138d-456f-a5bf-5147c2ea763f&tpp=1
So with that, you could just use a regular humidity sensor inside it to judge soil moisture. Pretty cool, yes? Not sure how big it is, but maybe you could even fit your entire sensor node inside it. -
Completely unrelated, but I just noticed this:
https://www.aliexpress.com/item/SHT10-SHT11-SHT15-waterproof-sensor-case-temperature-and-humidity-protective-cover-soil-sensor-cover-40mm-15mm/32575966509.html?spm=2114.8153822.cb0001.16.lITM8E&scm=1007.13409.76764.0&pvid=0acc75b7-138d-456f-a5bf-5147c2ea763f&tpp=1
So with that, you could just use a regular humidity sensor inside it to judge soil moisture. Pretty cool, yes? Not sure how big it is, but maybe you could even fit your entire sensor node inside it.@NeverDie said in Office plant monitor:
Completely unrelated, but I just noticed this:
https://www.aliexpress.com/item/SHT10-SHT11-SHT15-waterproof-sensor-case-temperature-and-humidity-protective-cover-soil-sensor-cover-40mm-15mm/32575966509.html?spm=2114.8153822.cb0001.16.lITM8E&scm=1007.13409.76764.0&pvid=0acc75b7-138d-456f-a5bf-5147c2ea763f&tpp=1
So with that, you could just use a regular humidity sensor inside it to judge soil moisture. Pretty cool, yes? Not sure how big it is, but maybe you could even fit your entire sensor node inside it.One of the local shops I buy electronic parts from has those. Unfortunately it's too small to house an entire sensor.
-
This thread also has a lot of good background information and links about capacitive soil moisture sensors: https://lowpowerlab.com/forum/general-topics/using-capsense-to-measure-soil-moisture/
-
It might be that one could more or less whack an 80Mhz frequency oscillation chip into the Chirp circuit: https://www.digikey.com/product-detail/en/linear-technology/LTC6905CS5-80-TRMPBF/LTC6905CS5-80-TRMPBFCT-ND/810907
-
i agree with @NeverDie ;)
It's better to use high freq for a reliable soil moisture, regarding soils, calibration etc. and some studies argues even more than 200Mhz. but with 80-100 it's nice.
I have one design at this freq, non corrosive design, and not same as chirp though, but can't really help you (mine is not open yet, and busy on others projects).
Regarding the chirp design, I think it may need an opamp for better results regarding the 1M resistor etc, and some more tuning if going high freq. -
Trying to get this working but getting alot of errors. New to this so bear with me.
In file included from C:\...\Arduino\libraries\Moisture_sensor\Moisture_sensor.ino:55:0: C:\...\Arduino\libraries\MySensors/MyTransportRFM69.h:31:1: error: expected class-name before '{' token { ^ C:\...\Arduino\libraries\MySensors/MyTransportRFM69.h:33:36: error: 'RFM69_FREQUENCY' was not declared in this scope MyTransportRFM69(uint8_t freqBand=RFM69_FREQUENCY, uint8_t networkId=RFM69_NETWORKID, uint8_t slaveSelectPin=RF69_SPI_CS, uint8_t interruptPin=RF69_IRQ_PIN, bool isRFM69HW=false, uint8_t interruptNum=RF69_IRQ_NUM); ^ C:\...\Arduino\libraries\MySensors/MyTransportRFM69.h:33:71: error: 'RFM69_NETWORKID' was not declared in this scope MyTransportRFM69(uint8_t freqBand=RFM69_FREQUENCY, uint8_t networkId=RFM69_NETWORKID, uint8_t slaveSelectPin=RF69_SPI_CS, uint8_t interruptPin=RF69_IRQ_PIN, bool isRFM69HW=false, uint8_t interruptNum=RF69_IRQ_NUM); ^ In file included from C:\...\Arduino\libraries\Moisture_sensor\Moisture_sensor.ino:56:0: C:\...\Arduino\libraries\MySensors/MySigningAtsha204Soft.h:55:1: error: expected class-name before '{' token { ^ C:\...\Arduino\libraries\MySensors/MySigningAtsha204Soft.h:62:25: error: 'MY_RANDOMSEED_PIN' was not declared in this scope uint8_t randomseedPin=MY_RANDOMSEED_PIN); ^ Moisture_sensor:83: error: call to 'MySigningAtsha204Soft::MySigningAtsha204Soft(bool, uint8_t)' uses the default argument for parameter 2, which is not yet defined MySigningAtsha204Soft signer; ^ Moisture_sensor:84: error: 'MyHwATMega328' does not name a type MyHwATMega328 hw; ^ Moisture_sensor:85: error: call to 'MyTransportRFM69::MyTransportRFM69(uint8_t, uint8_t, uint8_t, uint8_t, bool, uint8_t)' uses the default argument for parameter 1, which is not yet defined MyTransportRFM69 transport; ^ Moisture_sensor:85: error: call to 'MyTransportRFM69::MyTransportRFM69(uint8_t, uint8_t, uint8_t, uint8_t, bool, uint8_t)' uses the default argument for parameter 2, which is not yet defined Moisture_sensor:86: error: 'MySensor' does not name a type MySensor node(transport, hw, signer); ^ C:\...\Arduino\libraries\Moisture_sensor\Moisture_sensor.ino: In function 'void setup()': Moisture_sensor:112: error: 'node' was not declared in this scope node.begin(); ^ C:\...\Arduino\libraries\Moisture_sensor\Moisture_sensor.ino: In function 'void loop()': Moisture_sensor:163: error: 'node' was not declared in this scope node.send(msgMoisture.set((moistureLevel + oldMoistureLevel) / 2.0 / 10.23, 1)); ^ C:\...\Arduino\libraries\Moisture_sensor\Moisture_sensor.ino: In function 'int readMoisture()': Moisture_sensor:200: error: 'node' was not declared in this scope node.sleep(STABILIZATION_TIME); ^ exit status 1 call to 'MySigningAtsha204Soft::MySigningAtsha204Soft(bool, uint8_t)' uses the default argument for parameter 2, which is not yet definedI have looked through the code but can't seem to see what is wrong with it.
Please help :)