WillyGoat's references are a good place to start; I second using python if you're going to use an RPi. I don't think the coding will be your biggest issue, though. There's 3 other things I'd consider.
Firstly, there's the fact that RPi's aren't stateless. This means you want controlled shutdowns, or you'll corrupt your micro SD card and eventually it will stop working. The options I'm aware of are:
- Plug it in somewhere that's always powered even when the car is off.
- Use something like juice4halt.com.
- Follow the somewhat arduous process of making a run-from-RAM version of the OS, like Tiny Core Linux, and then install all the various development tools and libraries you'll need.
- Don't use an RPi, use something like a Cortex M4 (e.g., Adafruit Feather Cortex M4 or Teensy 3.6, you'll want to code the in C++-ish arduino dialect.)
In any case, you'll still have to deal with:
RPi GPIO pins are 3.3V, and can drive between 2 mA and 16 mA. However, the GPIO pins source only up to 50mA from the power rail, so if you want to assert more than 3 pins at 16 mA at the same time, you're going to exhaust that current. And, 16mA is likely too low to energize a relay supporting a relay that support 20-40A (my offhand guess is you need >100mA or so). So, you'd probably need something like an NPN transitor with an alternate power supply to trigger an automotive-scale relay (See
https://www.sparkfun.com/tutorials/119). Keep in mind you still need to allocate ~100mA for the TFT screen, but most of that power will be sourced by the power rail directly and only a little going to the GPIO pins to toggle state.
However, I don't think this will be your biggest problem. You biggest enemy will be heat. It's really hard to do right: you want to minimize solar loading for heat ingress, but maximize heat shedding. So, you want the case to reflect at much heat as possible, which argues for light colors and no ventilation. But when it does get hot enough inside, you want ventilation to let the heat exhaust. Or, you want insulation to prevent the heat from entering, but that has the same disadvantage: it will also keep heat in. Or, you can go with active cooling, but then you're also powering a fan ... so you can have cross ventilation where the fan will pull air through, but that will pull in a lot of dust (and maybe heat), but if you only have ventilation on the exhaust side, then you don't get as much air flow with the negative pressure ....
Good luck, let me know if I can help more!