I’ve been planning on making a custom arduino based industrial I/O module for a while. Something that, with the arduino IDE, would in effect be a structured text PLC. However, an arduino uno or nano would make for a limited system in terms of program size and built-in functionality. An alternative would be to make a custom chipset that programs like an arduino, but, chipsets like that have already been developed. One such chipset module is the esp32 wrover-b. I’ve wanted to begin developing with the esp32, and this project to make a PLC seems to me a perfect place to start.
My tentative specifications are:
1. Exploit all available wrover-b I/O pins to have industrially hardy, 24VDC, opto-isolated programmable DI/DO and AI/AO where feasible.
2. Wire esp32 wrover-b communication pins to expansion ports to connect with I/O expandion boards. It is acceptable to use an interposing uC as necessary to support addition communication protocols. Optoisolate or otherwise protect all communications ports as much as can be done without harming speed or signal strength.
3. Include a programming port for the wrover-b, preferably supporting micro usb.
4. Program the esp32 to accept wifi connections for output overrides or reading of inputs, serving an html page to facillitate this and also responding to certain get requests with just the requested data for data polling. All with as much security as I can give it.