Have a project using up to 200 sensors. communication method needs to be wireless. Sensors need to communicate data to the cloud or to a local storage device. Data is transmitted 6 to 24 times per day only. Data size is less than 1KB per sensor in most cases. Transmission distance is less than 150' in most cases. Transmitted data described here is digital, but might be analog if needed. Cost is a big issue. Power consumption is also a big issue but less important than cost. What method would you use nrfl2041, WIFI, bluetooth, xbee, zwave, or other wireless communications method? Love to hear your opinion.

  • 1
    I'd choose the nRF24L01+.
    – Majenko
    Jun 3 '17 at 20:29
  • How long is a ' ? I tried to search for 150' but I can not find it. Some libraries have a mesh option. For example the RadioHead airspayce.com/mikem/arduino/RadioHead It requires a better Arduino board. The mesh option will not work in a Arduino Uno.
    – Jot
    Jun 3 '17 at 20:58
  • @jot 150' is probably foot so around 45 meter.
    – Gerben
    Jun 3 '17 at 21:02
  • @Gerben, thanks. So the little ' is a foot. According to the Sparkun Wireless Guide, a NRF24L01+ with chip antenna can do 100 meters. sparkfun.com/pages/wireless_guide For the RadioHead library, perhaps Arduino Zero boards will do well. A Adafruit Feather board for 868 or 915 MHz might also be a good option: adafruit.com/product/3176
    – Jot
    Jun 3 '17 at 21:15

Nrf24l01 with mesh or star setup is the best sollution for you. Other modules are expensive. Also bluetooth doesnt support over 7 nodes. you can solder 8cm wire to nrf modules to get better signal and increse range. Alternatively you can use "nodemcu". Xbee-zigbee has hibernate function to increse battery life. You can apply enable-disable technique to improve the battery life but it is not preffered beacause of network performance. it is diffucult to assign addresses, setup network topology, and establish routing tablet for every hibernation period. You can choose cheaeper zigbee modules like microchips mrf24j40ma.

  • A mesh setup may end up consuming substantially more power per node. Without that, they only need to wake up to take reading or transmit, and maybe stay awake briefly thereafter to receive an ack (the data aggregator needs a line or at least larger power source). With a mesh, the nodes have to be awake to forward traffic. Jun 4 '17 at 2:05

Wifi, by far.

wifi is almost certainly going to be the easiest to install, debug, and monitor. since you're only using wireless a few moments a day, power usage should be a minor consideration compared to keeping 200+ "things" working as easily as possible. Routers can handle 240 devices, so you're under the limit and within an un-scaled implementation footprint.

200 ESP8266s using 100ma each for 5 seconds a trip and sending 20 times a day only uses about 500mah a day total, for all 200 of them; a 20ma avg. Given that's so low, it's hard to imagine any additional savings making-or-breaking a project. you can also use one ESP to send out for many sensor devices in a star topology, which can cut price and reduce power usage.

WiFi also has many reliability sub-protocols built in, so you don't need to aggressively validate received data, balance send schedules, or burn/reconfig unique IDs to replace hardware. It's also right there in TCP/IP format, so you don't have to rely on a PC's uptime to connect your sensors to the cloud. You can look at the router admin pages to spot issues and review logs; none of the other technologies come close to that level of already-available integration and remote management.

The cost will be about $200 more than an Nrf24l01-based solution (about $1 extra a transmitter), but the decreased maintenance costs might offset that if it avoids a couple service calls. The total cost of ownership and operation usually hinges more on support/maintenance than setup costs. You might also try a hybrid solution or do A/B testing to see what works best for your projects needs.

Not the answer you're looking for? Browse other questions tagged or ask your own question.