Which board for project

New to Arduino. It has been many years since I have done any serious programming.

My project will involve polling a number of sensors. Some analog, some on I2C, some may be 1 wire. The controller will also be polled from a host for sensor data, probably using a ModBus interface (unless someone has a better suggestion. Kind of dependent on the host controller). I will probably need to do some data massaging for the host controller. There will also be some output interfaces (switch closures, maybe a motor or two), but I don’t think there will be any PWM.

The sensors will probably be read 5 times a minute. Not really critical as far as time goes. Just monitoring environmental conditions (temp, humidity, current flow).

Programming isn’t my strong suite. I have been in hardware design for the most part. I don’t want to spend all my time handling serial comm streaming. Multiple UARTS seem the way to go.

The Duo and Mega both show 4 UARTS, with a fair number of analog inputs. I may have to use a SIM shield for data storage. Not sure yet on how big of a history file I will need to keep. I will also have to build the serial interfaces for the various types.

Any suggestions would be appreciated.

Hi, welcome to the forum.

I suggest to start with an Arduino Uno. You can use the Uno to test code, to test sensors, and so on.

I don't know about the ModBus. Sometimes a simple TTL level serial is the best. Or RS-485 for long wires. You could also try wireless. The XBee and ZigBee are good quality modules, but not cheap. Here is a list of other RF modules : https://www.sparkfun.com/pages/wireless_guide

The Arduino Due is ARM chip at 3.3V and the Arduino Mega 2560 is ATmega chip at 5V. The Mega has also a 5V I2C bus, so you need a level shifter for the I2C bus (costs 1 dollar on Ebay).

Instead of using a single Arduino board, you could have more Arduino boards that wireless transmit data to the central Arduino board, which moves the data on to the host.

My setup is this: Arduion Mega with Ethernet Shield, running a website from SD card. The Mega can "inject" all kind of data into the webpages. Via the I2C a few Slave Arduino boards with sensors. One Slave is a receiver for 433MHz, and receives for example temperature from outside and other rooms. I can see how everything is on my tablet. That is a lot of fun, but has one drawback : When I want to add something like the battery level from my module outside, I have to change the code in that module; in the Slave receiver; in the website on SD card and in the Mega for the webserver. My 433MHz receiver was only intended for slow signals, like the temperature. But I have added door switches and motion sensors and so, and I had to rewrite a big part, to be able to sound an alarm immediately. I'm still working on that part, because I don't want to miss such signals.

Long story short : Know what you are going to make (but make it possible to expand it in the future).

I am curious as to why you would want so many UARTs?

You cite various sensors, but which of these would require an asynchronous serial interface? All the basic Arduinos have I2C and SPI hardware. Using digital sensors makes far more sense than analog ones, particularly if they are at any distance from the processor. If they are distant, then separate processors with an RS-485-style bus would be appropriate which might need a UART to manage.

Now as to form factor, the UNO is only appropriate if one or more "shields" are available which suit your purpose. Otherwise, the narrow "breadboard-friendly" form of the Nano, possibly Micro and notably the Pro Mini if you do not need a USB interface other than for setup are more appropriate for either - breadboarding - or assembly as modules to a final PCB.

Peter_n: I suggest to start with an Arduino Uno.

Long story short : Know what you are going to make (but make it possible to expand it in the future).

And therein lies the rub: no matter how well you know what you are going to make, you can be sure it will expand and, when it does, it will be in areas you never dreamed about.

What you are planning is a fairly common setup for data logging and control. I would therefore submit that a Mega is the way to go. This not because of all those pins, and not because of all the UARTs. It is because of the memory. Once you start talking about various sensor methods, I2C, one wire, SPI, you are talking about saving pins but at the expense of extra software, and you will be surprised how suddenly you can run out of the memory required to accommodate it. And that is before you start on storage and communications, and I don't even know what a ModBus is, but I bet it comes at a price..

In the unlikely event that you really need to use a lot of analogue sensors, the Mega does have twice as many analogue pins. I believe the other time when pins matter is when you start thinking about fancy LCD displays.

I may have to use a SIM shield for data storage.

I assume you mean SD shield, but note that SD slots are typically thrown in with other stuff, most commonly ethernet shields, but also large LCDs.