4

I'm building a project where I have multiple Arduinos, each having a temperature sensor and a [input wireless transmission method here].

This data would be received by a controller, a Raspberry pi, which would act as the server: call to Arduino, collect the data, and store it. This data would be accessible to a Mobile App, but this is out of the scope of the question.

Requirements:

  • Arduinos must read simple raw data (in this case, the temperature reading from the sensor) and make it accessible to the Raspberry pi, which would make calls to each Arduino board (from 1 sec to 1 min time frame).

  • Arduino side must have a low energy consumption, as it would be powered by a small battery;

  • Data transmission on Arduino end must be as cheap as possible and work in low temperatures (around -5 degrees Celsius). They would be stored be inside a freezer, so temperature and a thick-ish metal layer are obstacles to overcome.

  • The actual distance would only be a few meters.

Question: is Bluetooth a viable transmission method? Is it possible to pair multiple Arduinos to one Raspberry pi at a single time? If Bluetooth isn't any good, what is? Correct me if I'm wrong, but Wifi is a high energy consumption solution.

OBS: if needed, the Raspberry Pi board could be swapped for an Arduino one.

goldilocks
  • 60,325
  • 17
  • 117
  • 234
lucas.mdo
  • 143
  • 1
  • 3

2 Answers2

3

You've chosen a difficult route. If there's anything whatsoever you can do to get some cables into the freezer you should do so.

You can now do things with Bluetooth Low Energy (BLE) on a Pi without too much difficulty. Adafruit have a good writeup on making a Bluetooth beacon here. While I can't say with absolute certainty, I think that you're very likely to have a hard time getting that signal (or really just about any wireless comms signal) out of a freezer (i.e. a large metal box incorporating a compressor and pump system running from mains voltage) using an Arduino. It's a ready-made faraday cage full of electrical racket. If you do manage to get a signal out of the fridge, it may have deteriorated to the point where your practical range is extremely low.

Freezers, in addition to being miserable places for wireless communication devices, are reasonably hostile to electronics generally. Your batteries are likely to have diminished capacity and lifespan, the whole thing's moist, there may be 'particulate matter' (e.g. turkey twizzler breadcrumbs)... it's less than ideal.

What would alleviate the issue entirely would be putting your sensors in the freezers, while keeping your Arduinos (or similar microcontrollers) outside of them. That allows you to plug them into sockets (or leech off the fridge power), puts them in open-air for better wireless transmission (or cabled hookup), and allows you to maintain them without disturbing your freezer.

goobering
  • 10,750
  • 4
  • 40
  • 64
2

I'd recommend evaluating the ESP8266 for your application.

ESP8266

It is a powerful wifi solution that costs ~5$ on amazon and much cheaper on aliexpress for bulk purchases.

There are many boards based off the ESP8266 chip that provide expose more complex or simple interfaces.

The ESP01 board one of the cheaper and simplest boards that can be easily interfaced with a arduino via USART. With a raspberry pi 3 (with built in wifi) on the other end the possiblities are many.

Here is my poor attempt at ascii art for your viewing pleasure

[RPI] )))) wireless link   (((( [ESP8266] -- USART -- [Arduino] == I2C/SPI == [Sensor]

The Arduino can be interfaced with this module via AT commands.

Here are some more relevant links I think might be useful

https://github.com/esp8266/esp8266-wiki/wiki

https://create.arduino.cc/projecthub/ROBINTHOMAS/programming-esp8266-esp-01-with-arduino-011389

https://tzapu.com/minimalist-battery-powered-esp8266-wifi-temperature-logger/

https://github.com/esp8266/Arduino

If you choose one of the other modules that exposes the other interfaces, the Arduino IDE can be used to directly program the ESP firmware eliminating the need for a separate Arduino board.

As for your specific requirements,

Arduinos must read simple raw data (in this case, the temperature reading from the sensor) and make it accessible to the Raspberry pi, which would make calls to each Arduino board (from 1 sec to 1 min time frame).

The module can be setup as a wireless->serial bridge and further communication will be as simple as reading / writing to the serial port.

Arduino side must have a low energy consumption, as it would be powered by a small battery;

With the right power management logic in the ardunio, it should be possible. see this page for the specs of the board/chip as well as this

Data transmission on Arduino end must be as cheap as possible and work in low temperatures (around -5 degrees Celsius).

I should think wifi counts as cheap ?

They would be stored be inside a freezer, so temperature and a thick-ish metal layer are obstacles to overcome.

It is claimed that the chip operates from -40C to 125C. I have not tested the claim though.

As for the range on the device, I have successfully tested the ESP01 over short distances (~150ft) but do checkout this video.

With all the above said, I do share the all the concerns expressed by the others.

To conclude, the proof of of a pudding is in its eating.

HTH

Edit

Here's one more option

Shreyas Murali
  • 2,446
  • 1
  • 16
  • 23