Arduino Carputer Usage Feasibility

Hi all, still pretty new to the arduino world and I'm having a bit of trouble trying to visualize/plan out a build. I am wanting to use an arduino to make a touchscreen relay control center in a Jeep. This will basically be 6-8 relays individually controlled by buttons displayed on the screen. If I use an Uno, I know I will need to use a simple serial port expander to have enough pin outputs for 8 relays. What I am wondering is if I can expand the board any further. Is it possible to run the 8 relays through a touchscreen, a usb input backup camera, and a RFID read/write board (Mifare RC522) to "unlock" the screen?

Is this a feasible setup with arduino? Can the board be expanded any further than the serial port expander or is a touchscreen module as much as the board can handle?

I'm not set on any individual components (except maybe the Mifare since that's one of the cheapest alternatives I've found) so I am up for any suggestions?

If an arduino board isn't capable of all this, is there another microcomputer/microprocessor that you would recommend? (Pi, beaglebone, etc?)

Thanks in advance for any help or suggestions,
Caleb.

Hello!

Something like this is a project I've been "back-burner-ing" for a while now; in my case I plan to control multiple relays to activate lights and other accessories for my VehiCROSS - but anyhow...

The way I plan to approach it is to not have a built-in screen, but to instead use my smartphone. Why? Because it already does everything I would need it to do - all I would need is to write or modify some kind of existing interface software for it - and there are plenty out there for Android in Java. Even if I didn't use Java, I could write the code in one of a couple different versions of BASIC I have on my phone as well (both can be easily "wrapped" to make the app standalone, if needed or wanted).

Further, on my phone I also have Torque, plus a dashcam program, plus google maps, plus it is easy enough to get a wifi backup camera...

So after thinking it over, I felt that the phone was the best way to go - and I would urge you to think about this possibility as well. Furthermore, I can take the phone with me - and use it as a "remote control" to control the accessories if I wanted to.

As for what I plan to use - well, I've considered a variety of possibilities - but the ones on the top of my list are wifi or bluetooth.

For wifi, an ESP8266 interfaced to the Arduino could be used, and the controller on the ESP could be set to serve up a web page with the controls (so no app even needed!). You could also implement a simple REST API to control things using an app of some sort. It is even possible (with the right hardware - basically an SPI shift register would work) to have the ESP control the relay board directly (and eliminate the Arduino part). I recommend the ESP8266 over other things like a wifi shield or such because they are very cheap, and are now well documented and supported. Just something to look into.

Bluetooth could work in a similar manner - just use a bluetooth module instead of an ESP8266 - although you would need to interface the module to an Arduino or some other microcontroller.

It's also possible to find a device out there called an "ESP8266 Wifi Relay Module":

The guy (hbouzas) also sells it on Ebay. It basically combines an ESP8266 module with a relay driver IC (IIRC, it's a shift register) - and the relay coils are hooked up via screw terminals. Eight relays are supported. Everything is right there for you, and (I think - you'd have to check the specs of the driver IC vs the specs of the relays) you can directly drive Bosch-style automotive relays.

The whole thing looks to be fairly easy to use and well documented; it may even be open-source, if I recall. Even if it isn't, if you can understand the ESP8266 and read the schematic (or reverse engineer the board) - you could easily write your own firmware for it (in any number of languages - python, lua, or c++). The guy mentions that he can write custom firmware for you as well (likely for a price, tho).

Otherwise - going the way you're planning sounds reasonable - though I wouldn't go down the Pi/beaglebone, etc route - unless you think you'll need the extra power (like I said - this is why I decided to go with my smartphone - it already has all the extras I'd want or need, plus more that I would be a pain to add myself - like GPS and mapping). Your biggest issue might be space for the code, if you stick with a regular Arduino; 30k or so isn't much once you add on a gui and such - its doable, though, if you write efficient code. As far as pins are concerned, look into using SPI or similar interfaces, or serial modules for the LCD, or using 4 bit vs 8 bit mode (if you are using a parallel interface on the LCD and it supports lower modes like that). There's ways to use a single analog input to read multiple buttons (provided only one button at a time is pressed). If you need more pins or room for code, there's always a Mega2560.

Hope this helps - or at least gives you some ideas...

:smiley:

cr0sh, thanks for your reply. I'm glad to hear I'm not alone in attempting to put together something like this. I also plan to control multiple relays to run accessory lighting on my Jeep.

I'll try to address a couple ideas you brought up:

Screen: I plan on using a 3.2" LCD screen because I want to be able to make a fully enclosed case that is hard mounted in the vehicle. Regardless of the state of my phone (dead battery, etc), I would like this to continue functioning. The other problem, I don't own an android phone, so writing an interface seems much more difficult. This is going into a 1991 Jeep so OBD1 doesn't interface through Torque and I run a higher end Garmin loaded with offroad detailed topogrophy maps when I plan to explore.

I really like the ESP8266 Wifi Relay Module you mentioned. I had not encountered that before and it is definitely now on my radar.

Here is my tentative build list, and if you see something that I've overlooked and won't work, please don't hesitate to call me out.

Board: Mega2560 (54 digital, 16 analog pins)
Screen: 3.2 TFT LCD Touch Panel For Arduino Atmel Atmega AVR 16AU ATmega8U2 with adapter (40 pins)
RFID: Mifare RC522 (8 pins)
Backup camera: Some form of a Wifi camera

This will use 48 pins of the board, leaving 12 unused. (I think) I guess this leaves room for future add-ons.

I've found someone using a nice interface which I plan to base my design off of with an interface set up more to my liking.
Github: JOS TFT Menu
Youtube example: JOS Menu

Thanks again for your help cr0sh. If I can get this rolling I will be sure to share successes and failures to further your build.