Internet of Things (IoT) Solution for Self-Service Car Wash

This comprehensive IoT solution consists of a Wi-Fi / LAN Gateway (Modem) designed for the Cleancar ecosystem and a backend server application. It enables real-time status monitoring, detailed statistical reporting, and remote management of self-service car wash bays via a Cloud-based Web Dashboard.

The system was developed strictly according to the Internet of Things (IoT) Architecture previously defined for Cleancar self-service car washes.

Solution Architecture:

  • Edge Devices: The individual self-service wash bay terminals (up to 20 bays can be connected to a single Gateway);
  • Gateway Device: The Wi-Fi / LAN Modem that interfaces with the wash bay terminals and maintains the uplink to the Cloud server via the Internet;
  • Cloud: The backend server hosting the custom software application;
  • Client Device: Any user device (PC, tablet, smartphone) with internet access and a web browser to access the Web Dashboard.

Wash Bay Terminals

Wash bay terminals communicate with the Gateway via an RS-485 industrial bus. Upon request, they transmit telemetry data, which includes bay status, current configuration settings, collected revenue (across various channels), and total operating hours. Conversely, the terminals receive commands from the Gateway to apply new settings altered by the owner in the Cloud.

The following equipment can be connected as edge devices:

  • “Extra” Control Module;
  • “Budget” Control Module;
  • Self-Service Vacuum Cleaner.

These are built on standard and compact control PCBs equipped with RS-485 communication interfaces to link with the Gateway.

The Gateway (Modem)

The Gateway is a hardware-software bridge that connects the local RS-485 bay network to the Internet via Wi-Fi or LAN. It acts as the Gateway Device between the edge terminals and the server, managing two separate bidirectional communication channels:

  • Terminals ↔ Gateway;
  • Gateway ↔ Cloud Server.

The Gateway acts as the master initiator for both channels. Upon startup, it runs a hardware check. At the beginning of each polling cycle, it verifies server connectivity and, if using Wi-Fi, ensures connection to the local access point (router). If successful, it polls the terminals. Each terminal is programmed with a unique Owner ID, Site ID (location), and Bay ID (terminal number). Within a single local network, Bay IDs must be unique. The Gateway polls the bays, which reply with their telemetry. The Gateway then parses this data, constructs a packet, establishes a server connection, and pushes the payload to the Cloud. In response, if no configuration changes were made by the owner via the Web Dashboard, the server sends a simple acknowledgment. The Gateway waits a specified interval and repeats the cycle. However, if the owner has altered the settings, the server returns a configuration payload. The Gateway processes this packet and pushes the new parameters down to the respective wash bay terminals via RS-485.

Gateway Hardware Implementation

The Gateway is powered by an STM32F103 microcontroller. A UART to RS-485 transceiver is used for local bay communication. Internet connectivity is handled by an ESP8266 module (for Wi-Fi) and potentially an ENC28J60 module (for LAN). When using LAN, the IP address is obtained automatically via DHCP, requiring no additional setup. For Wi-Fi, the user must connect the Gateway to a local access point. To facilitate this, the Gateway hosts an internal Web Interface. Pressing the hardware button for approximately 1 second activates this mode; the LED will blink continuously, and the device will broadcast a temporary Wi-Fi network named “WASHER” for the user to join.

* Pressing the button for more than 15 seconds triggers a hardware reset.

Once connected to the “WASHER” network, the user navigates to 192.168.1.200 in a browser to access the setup Web Interface.

Gateway Web Interface
Gateway Web Interface

Here, the user selects the local Wi-Fi access point and enters the password. After clicking “Connect,” successful connection is verified by the LED pattern. Once connected, the Gateway enters standard operation mode, routing telemetry between the wash bays and the server.

During hardware development, STM32CubeMX was utilized. The embedded firmware for the MCU was written in C using the EmBitz IDE and the STM32 Standard Peripheral Libraries (SPL).

Cloud Server and Web Dashboard

The Server is a physical, internet-connected machine. The backend software receives, processes, and stores data from the Gateway. It serves the Web Dashboard to the user, processes user inputs, and queues commands to be fetched by the Gateway in response to its queries.

Dynamic user account provisioning is implemented: when telemetry from a new Owner ID is received for the first time, the system automatically provisions a new user account. The owner can then log into their Personal Dashboard to set a custom password.

The Web Dashboard includes the following sections:

A login screen, which also provides access to a guest trial account via the “Demo” button.

Web Dashboard Login Page
Web Dashboard Login Page

The Main Dashboard displays the owner’s Site IDs. Selecting a site expands a list of connected Wash Bays (Terminals) at that location. Each terminal row displays its Bay ID, total revenue collected, operating hours, a live online/offline network indicator, and buttons for “Statistics” and “Settings”.

Main Dashboard Page
Main Dashboard Page

Clicking “Statistics” brings up interactive charts detailing revenue collected across various payment channels (grouped by day, week, month, and all-time).

Wash Bay Statistics
Wash Bay Statistics

Clicking “Settings” opens the terminal’s configuration menu.

Terminal Settings Menu
Terminal Settings Menu

Clicking on any specific wash function reveals advanced hardware output mapping and configuration options.

Wash Function Output Settings
Wash Function Output Settings

Users can update their credentials and personal details in the “Personal Account” section.

Personal Account Dashboard
Personal Account Dashboard

Acknowledgments:

  • The CleanCar team – for the opportunity to implement such an engaging project;
  • Bogdan – for translating the electrical schematics into precise CAD drawings and executing an excellent PCB layout;

  • PineDev Studio – for the frontend development of the Web Dashboard.

Leave a Reply