We will show in this instructable how to exchange an existing car interior control system with a new IoT ESP8266 solution. We've made this project for a customer.
Please visit our website also for more information, source code etc.
Step 1: Collect the Customer Requirements
Our customer wasn't satisfied with the current solution. The existing control panel was not so nice and good reliable, there was no comfortable solution for the driver to control the lighting in the passenger cabin and he wants a remote control via mobile app in the future. Our solution fulfills the following requirements:
- control via touch screens with modern GUI
- 2nd touch screen for the driver
- communication of all components via WiFi
- rugged design
- simple to extend
Step 2: Re-enginering Is the Key
First we've to collect all information about the current system. The documentation and installation was a night mare. We've found circuit diagrams of some pcbs and also some basic information about the wiring.
All led stripes were connected to led controllers and controlled via infrared protocols. We've found no documentation about it - so we have to scan the ir commands with a self made scanner based on Arduino and IRLib
Step 3: A New Concept
Our first idea for a new solution was the Raspberry Pi and Pitouch. But the Pi isn't a suitable solution in this application. In a car you have frequently power on/off cycles - thats poison for the sd card and you have to wait minutes after any start because of the boot time...
We've used the ESP8266 - especially the Wemos D1 mini - for our solution. These modules comes with integrated USB connectors (makes programming easy), are supported by a big community, they need no boot time and are very simple and rugged. We've used the Arduino IDE for the programming of the firmware. Only the control board and touch screens are new - the old relay boards are used for this new solution again.
Step 4: Control Board
The heart of our new solution is a ESP8266 based control board. The old relay boards are directely connected to this control board. Further more a 1wire temperature sensor is connected to measure the temperature inside the passenger cabin to control the heating and cooling systems.
All light effects are made with RGB led stripes connected to LED controllers. The control board can send infrared commands to control the color and brightness of the RGB stripes. Furthermore a fiber based "starry sky" is integrated in the ceiling. This starry sky is controlled by an special unit. We can control this unit via a RF remote control on the control board.
The communication to other parts of the new system works via WiFi UDP broadcast.
Step 5: Touch Screen
Both touch screens are connected to self made panel boards equipped with WEMOS D1 (ESP8266). The panel board is sending data of touch events via UDP to the control board. The control board is sending the status of all switches, temperatures and the level of the fan via UDP back. These status protocols take care that both touch screens and later the APP will show the same values...
Step 6: Iron Bird
Before we've started the installation of all components in the car, we've tested the installation outside...
Step 7: Installation
After the successful test run we've installed all pcbs and sensors in the car. If possible we've used the existing cables and installation....
Step 8: Android App
Meanwhile we've finished a Andoid App to control the car via your mobile phone. The App was realised with Basic for Android B4A.