I have access to an anemometer that can provide a 0-5 VDC output corresponding to wind speed (but can be adjusted with a voltage divider). I am hoping to connect this to an unused ADC input on the Tx. From the specifications, it looks like as long as I provide a signal between 0-3.3V it might work. I gather I need to bypass the burden resistor and connect directly to the ATMega input - is that sensible? I am also presuming that I can create a suitable factor in emonCMS to convert back to m/s. Any suggestions/comments welcome.
In principle, that will work. You need to get the circuit diagram and pcb layout for your emonTx so that you can see exactly what you need to do. You’ll probably need to unsolder the burden resistor and short circuit the ‘bottom’ resistor of the bias voltage divider; but beware, when you do that the plug tip will be 0 V and the plug sleeve will be your 0 - 3.3 V input.
But much easier: if your emonTx is a V3 with the RJ45 socket, you have ADC6 available on pin 8, with no other connection anywhere. (GND is pin 5.)
You might find it easier/better to smooth (if necessary) and convert the readings in the emonTx sketch, particularly if the output of the anemometer is non-linear.
Yes, it is a V3 with RJ45, so that could work - thank you for that suggestion!
I had a quick look at the emonTx sketch and couldn’t see any reference to ADC6, so presumably I would need to include some code to read this and insert the value into the payload ? My concern is that I could break the system, which is 8 months into a 12 month data logging cycle!
I’m tempted to modify another emonTx unit and keep the existing unit running (I have another unit logging only indoor temperature, so could move that outside to the anemometer…)
Yes, A6 / D20 is unused. EmonTx V3.4 - OpenEnergyMonitor Wiki
As the anemometer output won’t be changing rapidly, you can read the voltage with a simple analogRead( ), do whatever maths you need, and sent it to emonCMS. To do that, you’ll need to add a variable to the PayloadTX data structure “emontx” and write the value into it, and at the other end (assuming an emonPi) you need to add another element to the Node definition.