I have a project that I want to use an Arduino in as opposed to something like a Pi0 only because I expect this device to be plugged and unplugged all the time and I don't want corrupted code.
I need to read a series of three-position switches where up is on one GPIO, the middle is connected to nothing and down is connected to another GPIO) with a total of 6 of those switches, then I need to run 8 relays. So I think I need 20 GPIOs right there, then I need to read a hull sensor as well and a 1-wire temperature probe. I will also be adding a non-contact liquid level sensor. So all-in-all I am thinking like 30 GPIOs to make sure I have enough to handle everything I want it to do.
It also needs WiFi built into the board.
Oh, and it needs to be pretty quick since it will both need to respond to a RaspberryPi telling it what relays to throw as well as calling out to a restful API on the Pi itself to update it with switch position information, temperature, etc.
On the Pi, all of this is easy and while I have used many Arduinos, I have never attempted something like this with one.
I was thinking about the Arduino Mega 2560 since it shows 54 digital and 16 analog GPIOs, but alas - no WiFi. I thought I found one, it is basically a Mega 2560 with an esp8266 but you have to keep flipping all of these dip switches to make the WiFi work, and its a knockoff from Bangood.
I also looked at the Arduino MKR WiFi 1010 with I2C where I could drop and MCP23017 or 2 on it to get the GPIOs I need, but I was not sure about the speed and if it would be enough to do everything. The same with the MKR1000 WiFi (which based on the model number might be slower than the 1010?)
And finally, I looked at the Arduino Nano 33 IoT, but again it does not have the necessary GPIOs to do what I need it to do and I am not sure where the different processors actually fall in regards to speed. Although it also has I2C so I can add a GPIO expander to what it already has.
Anyway, I am hoping for some guidance for those of you in the know!
Many Thanks