Measuring the weight of a beehive

While load cells can be costly they are the best device for this kind of application. Some time you can find them surplus on E-bay for better prices. The idea of having a reference weight on one addition channel is a good one and would allow software compensation to all the other channels. Load cells are low level (millivolt) sensors and you will usually require external op-amps for proper amplification.

Lefty

Thank you for all the good ideas. keep them coming XD. I like the idea of a dummy beehive and the diy spring scale. One problem whith the spring idea is that the scale has to be placed directly under the beehive so it is not in the way when I work. to prevent the hive from lean over and tip in the wind I would need some short and hard springs. Then i would have to mesure very tiny contraction of the springs, maybe in tens of a millimeter. I am not sure how to do that.

@radman
A full hive can weigh up to around 100 kg. the extra 50 kg is just to be at the safe side.
The goal of the weighing is to check if the bees have enough food, having to little space, to see were the bees collect most honey(so i can move more bees over there), and to detect swarming(when the bees leave the hive).

@retrolefty
It looks that mabye load cells is the way to go. A beefy shear beam load cell, right under the hive should do the trick. On eBay there is a lot of el cheapo 20 dollar load cells, but none of them goes as high as 150 kg. In that weight class, i can only find industrial 300 dollar load cells :frowning:

You can get carbon impregnated foam material whose resistance changes when compressed. You could put the hives on that, but accuracy, range and rain may be an issues. I suppose the foam could be placed inside an impermiable coating.

Hi.
A little update.
After a bit research, a load cell seems like the best solution. I just have to find one cheap enough :wink:

My plan so far is to in each beefarm have one control box(master), and several scales(slave) that will communicate with each other using wireless transcivers.

The control box will be powered by a lead acid battery, and contain an microcontroller, a GSM module, a RTC, a wireless transceiver, sensors for measurment of temperature, humidity and rainfall and maybe a load cell with a fixed load for using as a referance.

For the hive scales I was tinking of using a single load cell made for platform scales. For the op-amp I was thinking about the ina125 http://www.ti.com/lit/ds/symlink/ina125.pdf since it got an onboard voltage referance and a sleep mode.
For communication I have looked at various NRF24L01+ transceiver module since it is cheap and have a low power consumption.

To power the scale I was thinking of using a small solar panel to charge up a supercapasitor. when the supercapasitor is charged up, the atmega will wake up from sleep, measure the weight of the hive, transmit it to the master, and then go back to sleep. I only need 5 or 6 samples during the day, so the atmega and radio, will be in sleep mode for 99% of the time.

Does this sounds manageable solution? I do not have much experience with op-amps, and I have never used wireless transceivers. So if someone has any opinions regarding to these, I would be very grateful

LEGO-lars:
Hi.
A little update.
After a bit research, a load cell seems like the best solution. I just have to find one cheap enough :wink:

My plan so far is to in each beefarm have one control box(master), and several scales(slave) that will communicate with each other using wireless transcivers.

The control box will be powered by a lead acid battery, and contain an microcontroller, a GSM module, a RTC, a wireless transceiver, sensors for measurment of temperature, humidity and rainfall and maybe a load cell with a fixed load for using as a referance.

For the hive scales I was tinking of using a single load cell made for platform scales. For the op-amp I was thinking about the ina125 http://www.ti.com/lit/ds/symlink/ina125.pdf since it got an onboard voltage referance and a sleep mode.
For communication I have looked at various NRF24L01+ transceiver module since it is cheap and have a low power consumption.

To power the scale I was thinking of using a small solar panel to charge up a supercapasitor. when the supercapasitor is charged up, the atmega will wake up from sleep, measure the weight of the hive, transmit it to the master, and then go back to sleep. I only need 5 or 6 samples during the day, so the atmega and radio, will be in sleep mode for 99% of the time.

Does this sounds manageable solution? I do not have much experience with op-amps, and I have never used wireless transceivers. So if someone has any opinions regarding to these, I would be very grateful

Well it sounds like you have a good grip on what is required to perform what you have defined needing to be done. As far as manageable, that would depend on your experience and ability to keep plugging away at it. I would suggest you approach the project in steps. I would recommend you first work on getting the wireless network working between the master and the number of slaves you will be using. Wireless (software & hardware) can be very taxing to get going from basic components, it’s never as easy as it first sounds. Once that is mastered and working well then you can make the higher cost investment in the load cells and support components and the mechanical packaging, etc.

Good luck
Lefty

Just as a thought, have you tried looking at cheap digital bathroom scales as a source of load cells? The ones I've seen typically can deal with weights up to around 300lbs, which sounds like the range you are after...

It does sound like an interesting project, I might be interested in it myself, as I'm also a small scale beekeeper (2 hives)

ex-Gooserider

Thank you for all the help. Now I feel this project is a bit more doable. I have ordered some cheap NRF24L01+ modules from eBay, as well as some small solar cells and supercaps. Now I will learn to use the transceivers, and testing their range and differend master/slave setups. Looks like i have som work to do with the atmega328P also. I would like it to run in the same voltage range as the NRF24L01+ (1.9 - 3.6V) which means I have to use a slower clock. I would also like to remove the arduino bootloader so I avoid the bootloader delay waste a lot of power during powerup.

@ex-Gooserider I have been thinkin about using bathroom scales as well. But I am under the impression that the load cells in these scales are of a very bad quality. And for some reason it feels a bit wrong to buy 30 bathroom scales, remove one component and then throw avay the rest. :P But if i can't find anything else, it's worth a try. :)

LEGO-lars

Hi ,

I am busy on a similar project. with : -2 strain gauges from a bathroom scale ( there are 4 in each lowcost bathroom scale) mounted in weadstone bridge on a ad620 precision amp ( cheaper than the texas ina125 ) -4 ds1820 temp sensor -HD44780 LCD -DS1302 RTC -sd slot for data storage ( tested appart and working but not implemented yet in this specific project )

the objective is to read temp + weight each 24 hours and to store or send it accuracy is 100gr , but one of my biggest problem was until now to keep the weight readings stable

Maybe we could share our respective experience ?

Hi xavier :)

Nice to hear about other peaple having the same project. Do you only store the data from your scale, or do you have some method for reading the weight remotely?

An update on my work: I made a prototype using this load cell:http://www.aliexpress.com/item/100kg-200kg-300kg-weighing-scales-load-cell-for-platform-scales/624403255.html and the ina122 amplifier. This setup gives me a great accuracy and almost no temperature drift. However, the ina122 is getting a bit unstable when I am powering it with a 3v battery, so I am going to try some other amplifiers like the ina333 or AD8553.

LEGO-lars

Most of the applications I have seen with load-cells call for periodically re-taring or zeroing out the reading. Just comparing the reading with a similar load cell at a known load doesn't really tell you that much. You have to un-load THIS load cell and take a reference reading, then load it again, to get a good useful reading from a given load cell.

So in my project, which is for measuring the weight of a 300lb LPG tank, or for the present project, to weigh a beehive, a critical requirement is that the propane tank or beehive is going to want to sit on the load cell for weeks or months at a stretch, and you still want decent readings -- say within 1 part in 100. No one's going to come around and lift off the hive every few hours to zero out the load cell -- it has to remain accurate under constant load, day in, day out.

For this type of application, I have imagined two approaches:

(1) build a balance-lever linkage system that enables a load cell to be presented with 1:1000 of the load. Have the small load spend most of it's time against a stop. Once in a while, when a reading is needed, use a servo or similar mechanical linkage to push the load cell against the load to move it away from the stop. Take your reading, retract the load cell. This way the cell spends most of its time un-loaded, so fatigue and creep don't affect it, and it is always neatly tared to zero before each reading.

(2) build a pneumatic balloon system under the load, like a hot water bottle. Inflate it and seal it up, then just measure the pressure in the balloon. If its hard to keep the balloon inflated all the time, then let the weight rest at the bottom and make a contact closure. When reading is needed, pump air into the balloon until the contact closure opens, take pressure readings for a while, then kill the pump and let the weight settle back against its stop.

I'm not super enamored of either, really, but they're the best solution I can up with for the re-tare problem.

gardner: Most of the applications I have seen with load-cells call for periodically re-taring or zeroing out the reading. Just comparing the reading with a similar load cell at a known load doesn't really tell you that much. You have to un-load THIS load cell and take a reference reading, then load it again, to get a good useful reading from a given load cell.

So in my project, which is for measuring the weight of a 300lb LPG tank, or for the present project, to weigh a beehive, a critical requirement is that the propane tank or beehive is going to want to sit on the load cell for weeks or months at a stretch, and you still want decent readings -- say within 1 part in 100. No one's going to come around and lift off the hive every few hours to zero out the load cell -- it has to remain accurate under constant load, day in, day out.

For this type of application, I have imagined two approaches:

(1) build a balance-lever linkage system that enables a load cell to be presented with 1:1000 of the load. Have the small load spend most of it's time against a stop. Once in a while, when a reading is needed, use a servo or similar mechanical linkage to push the load cell against the load to move it away from the stop. Take your reading, retract the load cell. This way the cell spends most of its time un-loaded, so fatigue and creep don't affect it, and it is always neatly tared to zero before each reading.

(2) build a pneumatic balloon system under the load, like a hot water bottle. Inflate it and seal it up, then just measure the pressure in the balloon. If its hard to keep the balloon inflated all the time, then let the weight rest at the bottom and make a contact closure. When reading is needed, pump air into the balloon until the contact closure opens, take pressure readings for a while, then kill the pump and let the weight settle back against its stop.

I'm not super enamored of either, really, but they're the best solution I can up with for the re-tare problem.

The need for zeroing of the load cell was a consern for me too. However my 200kg load cell have been standing on my kitchen bench with a constant load for over a week, and it is only drifting like +/- 20g (a little worse when the temperature changes, but not to bad). If I had zeroed my scale before each measurement (and had higher resolution on my ADC), I would mabye get ten times better accuracy. But it all comes down to if you really need that extra accuracy. In my case I did not. :)

LEGO-lars

LEGO-lars: my 200kg load cell have been standing on my kitchen bench with a constant load for over a week, and it is only drifting like +/- 20g (a little worse when the temperature changes, but not to bad).

Interesting, that's a good start. It sounds more stable than I would have guessed. What % of load capacity is on there?

How about outside in the weather? For a year?

If you could demonstrate ~ +/- 1% of full scale accuracy, while sitting with 50% of rated load for 10 months across temperature changes of +30C to -20C, then I'll be convinced.

Hi In my load-cell test I used a 20kg load. I am not sure if using a higher load will make a difference since it is the offset of the load-cell and not the gain which is causing the error.

For my next tests of the load-cell, I will probobly leave it outside for a month or two, logging the load and temperature. Maybe I can give you some better answers then :)

Load cell is actually a strain gauge attached to a beam, in such a way as to measure the elastic deformation of the beam under load. A higher load will accelerate the effects of creep, which will be one of the modes of long term reading drift. Affects like work-hardening, corrosion and fatigue will also be there.

My working assumption is that those effects are going to make long term readings from a constantly loaded load-cell drift in such a way that you can't really trust the reading you get, until you, at least, re-tare the load cell to a known load. If you can prove I'm crazy, that would be great.

Very interesting project, would love to know how it has progressed!

I'm doing the very same thing, environmental monitoring of beehives, including weight. Just as you have, we've identified the weight to be the biggest issue. From what I've heard, constant weight higher than 10% on a load cell will strain it over time. I'm hoping to get to testing this within the next few weeks, but I don't know if testing will be done in time for this season.

On the electronic side of things I've ordered Moteino:s. They sell for $16, including radio at 434MHz, and should be Arduino-compatible. It will probably be a couple of weeks before they arrive, but I'll come back with some details once I've gotten to play with them a bit.

http://lowpowerlab.com/blog/2012/12/20/moteino-the-wireless-low-power-low-cost-arduino-clone/

I should mention that this will be my first "Arduino" project, very excited! :D

Hi Lars, what is going on in your project? I'm interested in hive scales also and did some research. Nice to see that cheap load cells seams to work. Do you have some new recommendations for the amplifier?

Time for an update on my project :) lately I have been focusing on the wireless interface and power consumption of the sensor nodes. The ina333 op-amp workes great in my low voltage setup. I have a prototype up and running on a breadboard(see the schematic)

To optimize the battery life, I am running a barebone AtMega328P on the internal 1Mhz clock, the bod level is set to 1.8v and is software-disabled while the processor is sleeping. Also i am using a pnp-transistor to shut off the current to the loadcell and op-amp, so they only consume current a few milliseconds while sampling. I am also using the Collector voltage of the transistor as my analog reference, so the voltagedrop of the transistor won't affect my measurements. Since The Internal ocilator is'nt accurate enough, I connected a 32.768 khz crystal to the chip's clock-pins. This crystal feeds Timer2 and creates an accurate interupt every second. This way the the AtMega also works as an RTC, and I save the cost and powerconsuption of an external RTC. All in all including the radio tranciver my crappy multimeter shows a current consumption of 2-5µA :astonished: when everything except the 32khz crystal and timer2 is sleeping.

The wireless comunication was a real twist. I want the sensor nodes to sleep as much as possible, and there will be a lot of sensornodes trying to communicate with one "master-module". The solution I foud, is to let the master-module decide when the sensor-node can start transmitting. So when a sensor-node is waking up from sleep, the master-module will already had started listening to that exactly node. Then when the sensor-node has sent it's data to the master-module, the master will respond by sending how long time to next datatransfer. The whole prosses of waking up the prosessor, wait for the op-amp to stabilize, take ten samples and calculate the average, sending the data, reciving the time to next datatransfer, and go back to sleep only takes about 100ms with an average current consumption of 6mA :astonished: If i take one measurment each hour, I would get an average current consumption of 5.25 µA 8) Anyone who know how long this thing will run on a cuple of AA? ;)

the next tasks on my todo list: 1. Use the internal bandgap reference of the AtMega chip to measure the battery voltage, and make a low battery warning. 2. upload the measurements to Cosm.com using a gprs-module. (I just smoked my gprs-shield so this can take some time :)) 3. put everything in a watertight box and do a real longtime outdoor test of the loadcell.

ps. It looks like this thread is turning into a worklog. Mabye a moderator can move this thread into a more suitable category.

I'm not sure that this will be good for beehives but if you have a mass that can move freely and an accurate accelerometer, especially at low G's, then if you apply a known force... F=MA.

gardner: For this type of application, I have imagined two approaches: ... (2) build a pneumatic balloon system under the load, like a hot water bottle. Inflate it and seal it up, then just measure the pressure in the balloon. If its hard to keep the balloon inflated all the time, then let the weight rest at the bottom and make a contact closure. When reading is needed, pump air into the balloon until the contact closure opens, take pressure readings for a while, then kill the pump and let the weight settle back against its stop.

That has given me an even simpler idea of how you could solve the problem. Fill the 'balloon' with (coloured?) oil and use a manometer type system (a U tube) to measure the pressure (= weight). Detecting how far up a tube the fluid level is would be far simpler than using stress gauges, which will have to be regularly zeroed. The narrower the tube, the more accurate it will be. You could use ultrasound to measure the distance of the fluid from the top of the tube. You may need a floating passive reflector for this. That way, no pump is needed and readings can be taken at any time. You will still need a 'dummy' hive to take into account ambient temperature (and, therefore, volume) variations. You'll also need to calibrate the tube (once) by adding known weights onto the 'balloon'.

I'm not sure a "balloon" type system would work quite as expected. When weight is added to the hive the balloon will flatten out and result in a non-linear pressure reading at your manometer?

Using the example of a car tire, pressure measured in PSI, the footprint (in square inches) of the tire multiplied by the inflation pressure equals the weight supported by the tire (an "ideal" tire, ignoring sidewall stiffness, etc.). When weight is added the footprint can increase and the pressure can stay near or at the original pressure.

I might be totally off my rocker.