Arduino на автомойке
Arduino на автомойке
Arduino-Based Self-Service Car Wash Controller with W5100 Ethernet Shield
Overview
This project introduces an Arduino-based controller for a self-service car wash system.
The controller is designed to manage the basic operation of a coin- or bill-operated car wash station. A customer inserts money through a bill acceptor, selects the desired washing function using buttons, and the controller activates the corresponding equipment through relays.
The system also uses an Ethernet Shield based on WIZnet W5100, allowing the controller to support network-based monitoring and configuration.
Through the network connection, the operator can check inserted payments, change service pricing, turn equipment on or off, and log operations or errors to a server.
How the System Works
The operating flow is simple and practical.
- A customer arrives at the self-service car wash.
- The customer inserts money using the bill acceptor.
- The inserted amount is shown on the display.
- The customer presses a button to select a washing function.
- The controller activates the selected equipment through a relay.
- The remaining balance decreases according to the selected service price.
- The customer can press stop or select another function.
- When the balance reaches zero, the equipment is automatically turned off.
This structure is similar to many real self-service machines.
The controller manages payment input, user selection, time-based billing, equipment control, and network communication.
Main Hardware Components
The original project uses the following components:
- Arduino Uno R3
- MAX7219-based 4-digit matrix display module
- W5100 Ethernet Shield
- 8-channel relay module
- Push buttons
- Resistors and wires
- Cashcode SM bill acceptor
- Electrical enclosure
Most of the electronic modules were purchased from AliExpress, except for the bill acceptor and electrical enclosure.
The Arduino Uno works as the main controller.
The MAX7219 display module shows the inserted amount or remaining balance.
The relay module controls external car wash equipment, such as pumps, valves, foam, water, wax, or vacuum functions.
The Cashcode SM bill acceptor receives payment input.
The W5100 Ethernet Shield adds wired network connectivity to the Arduino.
Role of the W5100 Ethernet Shield
The W5100 Ethernet Shield is an important part of this project because it turns a simple Arduino controller into a network-connected device.
Without Ethernet, the controller would only work locally.
With Ethernet, the system can support remote management features such as:
- Viewing all inserted payments
- Changing service prices
- Turning equipment on or off remotely
- Sending operation logs to a server
- Sending error logs to a server
This is useful for commercial equipment.
For example, the owner of a car wash station can monitor usage, check revenue-related data, adjust pricing, and identify problems without physically opening the electrical panel.
The original article mentions that the network client and server functions were implemented using standard Arduino libraries.
Hardware Connection
The W5100 Ethernet Shield is mounted directly on top of the Arduino board.
Other modules are then connected through the shield.
The bill acceptor communicates with the Arduino using TTL serial pins.
The MAX7219 display is connected using clock, chip-select, and data lines.
The relay module is connected to Arduino digital pins 2 through 7.
The buttons are connected to analog input A5 using a voltage-divider method.
This approach reduces the number of required input pins.
Instead of assigning one GPIO pin to each button, multiple buttons can be read through one analog input by assigning different resistor values to each button.
Software Logic
The firmware handles several main functions:
- Display initialization
- Relay output initialization
- Button input reading
- Bill acceptor communication
- Balance storage in EEPROM
- Service price storage in EEPROM
- Relay control
- Time-based balance deduction
- Ethernet communication
The current balance is stored in EEPROM, so the value can be preserved even if the power is disconnected.
The service prices are also stored in EEPROM, allowing the system to change pricing without modifying the firmware.
When the user selects a service, the firmware activates the corresponding relay.
The controller then calculates how quickly the balance should decrease based on the service price per minute.
When the balance becomes zero, the relay is turned off automatically.
Why This Project Is Interesting for WIZnet
This project is a good example of how a WIZnet Ethernet chip can add real value to a simple embedded controller.
The base function of the product is local control:
- Accept money
- Display balance
- Read buttons
- Turn equipment on or off
However, by adding the W5100 Ethernet Shield, the device becomes a connected IoT controller.
This enables:
- Remote monitoring
- Remote configuration
- Server-side logging
- Maintenance support
- Commercial equipment management
This is exactly the type of application where WIZnet Ethernet controllers are useful.
Many industrial and commercial embedded devices need stable wired network connectivity, but they do not always need a high-performance Linux computer.
A small MCU with a WIZnet Ethernet chip can be enough for reliable control and monitoring.
Possible Modern Upgrade
The original project used Arduino Uno R3 and W5100 Ethernet Shield.
A modern version could be built using newer WIZnet chips and MCUs, such as:
- W5500 + Arduino
- W5500 + ESP32
- W5500 + Raspberry Pi Pico
- W5100S-EVB-Pico
- W55RP20
- W6300 for IPv6-capable Ethernet applications
Using W5500 or W5100S could reduce hardware size and improve integration compared with the older Arduino shield form factor.
A modern implementation could also add:
- Web dashboard
- MQTT communication
- Cloud logging
- OTA configuration
- Mobile monitoring page
- More secure authentication
- Event history storage
- Error notification
- RS-485 equipment interface
- Industrial enclosure design
Applications
This type of controller can be applied to many real-world systems.
Examples include:
- Self-service car wash systems
- Coin-operated machines
- Vending machines
- Kiosk controllers
- Payment-based equipment controllers
- Remote relay controllers
- Industrial timer controllers
- Water pump control systems
- Small facility automation systems
- IoT-enabled commercial equipment
The core idea is simple:
combine payment input, local equipment control, and Ethernet-based remote management.
Conclusion
The Arduino-based self-service car wash controller is a practical embedded IoT project that shows how Ethernet connectivity can improve commercial equipment.
The system uses Arduino Uno as the main controller, MAX7219 for display output, relays for equipment control, a Cashcode SM bill acceptor for payment input, and a W5100 Ethernet Shield for network connectivity.
With the W5100 Ethernet Shield, the device can support remote monitoring, price configuration, equipment control, and server-side logging.
For the WIZnet community, this project is a useful example of how WIZnet Ethernet chips can be used in real commercial control systems, not only in demos or simple network examples.
It also provides a good reference for modern projects using W5500, W5100S, W55RP20, or other WIZnet Ethernet solutions.
