I am developing battery-powered sensors to measure different parameters inside my house.
The measurements are taken by simple AVR controllers (no Arduino) at more or less regular intervals and will be be sent wireless to a central Arduino with Ethernet shield that relays them to my server, where they will be stored.
To keep power consumption down and to keep the sensors simple, I planned to use 433MHz transmitters on the sensors and a receiver on the Arduino: no bi-directional communication is expected. The sensors will send the value and a checksum and the receiver will verify them before relaying.
If two transmissions happen at the same time, either
- the receiver will be unable to understand them
- the checksum will be wrong
- one of them will be covered by the other one and lost.
I consider all these three cases "collisions".
I plan to introduce "random" jitter between measurements (and transmissions, they are done always together) by adding to the predefined interval a pseudo-random 8 bit delay. This should reduce the number of collisions. However, there will be some anyway depending on the number of sensors and on the duration of the communication. Moreover, the clocks of the sensors are not tuned, there may be small variations (10% is the tolerance for the integrated oscillator in AVRs).
I can accept some collisions, but I would like to estimate how many they are so that I can lower the bitrate of the transmission (and therefore the transmitting power) and so that I can estimate how many sensors and how frequent readings I can afford.
So, is it possible to estimate the expected collisions according to
- duration (in ms) of each transmission
- total number of transmissions per second
assuming the transmissions take place more or less homogeneously?
Even if the energy-per-bit can be assumed constant and therefore I should aim to the highest bitrate to save CPU cycles and to go earlier in low-power mode, the question is still valid: know how many collisions should I expect given the frequency of the measurements and the number of sensors?
(maybe someone should add "collision" as tag? I cannot)