gpio pc interface options

I've been back and forth about the best way to distribute some motion sensors around the house; everything from dedicating an esp8266 to each one to stringing cat3 out from a single location to them all. I think I've decided to distribute the motion modules alone and bring the signals back to a single location.

The modules are simple RCWL-0516, so they basically produce a digital signal when motion is detected. My initial idea was to bring them back to some mcu-based device and communicate over the network to the PC that will handle events. I'm realizing now though, that I should eliminate the network portion and just run the gpio directly to the PC.

My question is, what are some good ways to get GPIO to the PC (give the pc some gpio input). The event handler will be a simple node.js app (possibly Node-RED and Firmata)

As I mentioned, Node-RED/Firmata and an Arduino will get me there, but I want to make sure I'm not overlooking a simpler/better solution.


did you google "usb gpio"?

I did, and that's another option, but USB gpio is basically the same as using an arduino, only a little more expensive.

do you have a parallel port on your PC? that big connector that was used to connect printers

No, but that's the kind of thing I'm wondering about. Is that basically a bunch of digital pins, and could I use it like a bunch of gpio if I dropped a pci parallel card in there?

some PC motherboards have GPIO

Thank you for your responses.

I believe the Firmata route is going to be about as good as it gets.

It scales out well, being limited by the GPIO pins on the arduino * the number of USB ports, and it would be trivial to have redundancy; not to mention dirt cheap.

Stability was my main concern with cheap clone arduinos, but even redundant top quality boards are going to be cheaper than anything else I've found. There's also the bonus that Firmata is distributed as a sketch so modifying that would be simple (things like rate-limiting etc)

I haven't looked at firmata closely yet, but I also assume that route gives me ADC/DAC, I2C, etc, depending on what the board/mcu have available.

Again, thanks for the input. I just didn't want to run a bunch of cabling and then realized I overlooked something that would be better.