Weight sensor

This will be my first serious Arduino project. Greatly appreciate your guidance on the question I have.

I would like to detect if someone is sitting on a chair. Preferably, I need a binary decision directly from the sensor. If not, I know the range of weight I need to detect and I can detect the analog weight (or equivalent) and can deduce the binary decision.

My question is what should I use as a weight sensor? I can think of three possibilities:

  1. Use FlexiForce: Force Sensors & Systems | Tekscan
    Way too costly even though it sounds like it does exactly what I need. Is there a low cost alternative?
  2. Pressure sensors (such as, Sensore pressione MD-PS002)
    Elsewhere in this forum, I read a lot of associated work needed to make it work. Is there a similarly priced (=cheap) item that simply give the binary 1 or 0 when it is sat upon?
  3. Piezo sensors
    I am not sure if this is a solution for the given problem. It might be too sensitive etc. But I am open to it if it works.

For my application it is important that the sensing surface be flat and not something like: http://www.omega.com/ppt/pptsc_lg.asp?ref=PXCPC&Nav=

Thanks very much in advance for your help.

I think there is just one good solution: force sensitive resistors
Like this one: Force Sensitive Resistor 0.5" - SEN-09375 - SparkFun Electronics
I would use more than one, perhaps three in 'strategic' locations.

They have a maximum of 10kg. More weight will not damage it, but I don't know the break force.

You have thought well about it, but using a pressure sensor that measures the air pressure is not possible in this situation.
A piezo element would detect the sitting down or rising up. You would not be able to detect if someone is sitting down at that moment.

There are other options:

  • Measure the temperature, if it is higher than room temperature, someone might be sitting on the chair.
  • Using a strain gauge. Glue a strain gauge to the metal of the chair in a smart location. The (extremely small) bending of the metal can be detected. You might even measure the weight to determine if the dog has jumped on the chair.
  • Capacitive Library. There is a capacitive library for the Arduino. With a metal foil, you can detect a person sitting on the chair. It is not very reliable, but worth testing and very cheap.

I'm sure others can think of more options.


Thanks very much.

Yes, I had to put a '-barometric -air' in my search of pressure sensors to avoid getting results for air pressure sensors.

I am also leaning towards force sensitive resistors. The cost is a bit on the higher side at this moment. However, your suggestions of stress and capacitive sensors are good ones. I will do some more research on them.

I look forward to more suggestions as well.