General Advice Needed Please!

Hi Guys,

Firstly I am completely new to Arduino so please forgive me for any ignorance or lack of information, and thank you for taking time to read through my post.

I have some fair knowledge of digital and analog IO, Mitsubishi PLC's and the wiring/logic programming thereof.

I have a new potential project and would like to explore the world of Arduino as I think it might be a better fit than PLC mainly due to the fact that:

  1. There are many Inputs and Outputs, lets say up to 30 of each. This becomes very expensive from a hardware point of view for PLC's.

  2. This is not process automation and does not require robust and high speed switching/counting and feedback along with any other complex calculation (although I am sure Arduino is capable).

The Project:
The aim of the project is to collect data from human user interaction and send this data to the cloud for further processing.

This would be done via a "User Panel" which consists of sets of:

  1. A Push Button operating as an input,
  2. A Power Indicator LED wired directly to the PSU,
  3. An Action Indicator LED ouput that illuminates whilst the Push Button is depressed.
    There would be up to 30 sets of these components.

It is important that we can give each button a name, for instance Option 1, Option 2, Option 3 and so on. I assume this would be done via allocating a name to the port the button is wired to via the program?

When any specific Push Button is pressed I would like the controller to register the:

  1. Name of the Controller.
  2. Button Name.
  3. Date and Time that the Push Button was pressed.
    And this data to then be sent/synced to a cloud service via Wifi or 4G/LTE where it can later be queried and processed. Perhaps a "Batch Sync" every "X" minutes with an option for a push button for forced sync.

My Questions:

  1. Would Arduino be suitable to achieve this goal given the information provided?
  2. Any advice from an I/O port limitation perspective would be most appreciated? If we needed to add another 30 "User Panels" taking the count up to 60 Inputs and 60 Outputs would we need an additional Controller or is it possible to expand on the existing board?

Other Information:

  • Desired Power Supply 12VDC.
  • Power consumption of LED Indicators is 1W.
  • The Controller might be installed as far as 60m (200 foot) away from the User Panels as the User Panels might be situated as various locations within a building.

I have attached a VERY basic demo image for further reference.

Any advice on the feasibility and/or risks/pitfalls of using Arduino for this project would be greatly appreciated. Perhaps I am overthinking this?

Regards! Berg

This would be done via a "User Panel" which consists of sets of:

  1. A Push Button operating as an input,
  2. A Power Indicator LED wired directly to the PSU,
  3. An Action Indicator LED ouput that illuminates whilst the Push Button is depressed.
    There would be up to 30 sets of these components.

This should be straightforward with an Arduino Mega

It is important that we can give each button a name, for instance Option 1, Option 2, Option 3 and so on. I assume this would be done via allocating a name to the port the button is wired to via the program?

The name would be added to the data when it is being sent. For example if the button connected to I/O pin 23 is pressed the message could include "OptionXYZ" or any other text that you would like.

You would need a WiFi module (such as an ESP8266) or a SIM Card module to connect the Mega to the internet / phone network

...R

Are you planning to lay cables to 30 locations in your building?
If so then you are probably looking at a minimum $3000 upfront cost for labor and materials. At this price the choice of Arduino or PLC is irrelevant.

If you go wireless to save cabling costs then you are going to need to buy 30 power supplies, 30 microcontrollers and 30 enclosures which is going to cost $1200+ for materials plus lots more for labor.

Hi Robin,

Thanks a million for your help. Just a note from the specs on the Mega 2560 which states 54 digital I/O's, how would this work if I had 60-120 digital I/O's? Is there an expansion board of sorts that I could add on?

I would assume in addition to the wifi/sim card module I would also need an SD Shield or some means of storing/logging the data?

And you would not have any concerns over the length of cables (60m or 200 foot)?

Once I have these answers I can go ahead and dive deep.

Thanks again!

mikb55:
Are you planning to lay cables to 30 locations in your building?
If so then you are probably looking at a minimum $3000 upfront cost for labor and materials. At this price the choice of Arduino or PLC is irrelevant.

If you go wireless to save cabling costs then you are going to need to buy 30 power supplies, 30 microcontrollers and 30 enclosures which is going to cost $1200+ for materials plus lots more for labor.

Hi MikB,

Thanks for the reply. LOL no the 30 different locations is purely theoretical, it might be two locations up to 30m away from each other. The main point of the question was to determine whether or not there might be signal drop or interference issues with cabling at that distance, lets say using an affordable 1mm or thinner cable. But this I can test until I find the right solution.

With the distances and number of locations needed, have you considered connecting the button stations to a main controller wirelessly?

Cable is cheap, the person installing it not. Saving on your cable is not usually leading to significant savings in the cost of your project.

There are lots of port extenders you can use, e.g. the PCF8575 takes 16 I/O and you can have 8 of them on the I2C bus. Then you can add the MCP23017 for another 8x16 I/O on the same I2C bus for a total of 256 I/O between the pair.

Still not enough? Look at shift registers, 8 inputs or outputs per register and they can be daisy chained, in theory ad infinitum. Power supply, wiring complexity and memory/processing limitations will be the first that hold you back adding more. Hundreds of inputs can be had this way.

Mind also that long wires (30m is long in this respect) act as antennas picking up all kinds of EMI.

Hi David and Wvmarle,

That DEFINITELY sounds like the way to go and something that I will explore!

Many thanks for your valuable advice. I have ordered an Arduino Mega and will do a crash course on Udemy and take it from there.