This project entails Dallas Temperature sensors sending data to the ESP32 which then determines the PWM output to the actuators after the PID engine runs.The ESP32 also sends telemetry to Firebase RTDB which then sends the data to The flutter app.The flutter app updates min,max and target setpoints in Firebase and the ESP32 accesses them.
Industry temperature control is an open-source printed circuit board by IaMdEvJaXoN, from the IaMdEvJaXoN/industry_temperature_control_system repository on GitHub. It is a 2-layer board of 131 × 125 mm with 32 parts on 46 nets, routed with 211 tracks and 0 vias.
It is built around the BOB-12009, DS18B20 and IRLZ44N, with the PN2222A among its other parts. Its parts include 11 resistors, 4 diodes, 4 transistors and 1 IC. It belongs with the ESP32 boards of this library.
A complete, full-stack engineering project encompassing Firebase Real Time Database,custom printed circuit board (PCB) design, embedded C++ firmware ,simulations and a Flutter mobile application.
The system provides closed-loop temperature monitoring and PWM hardware actuation, synchronized globally with sub-second latency via Firebase Realtime Database (RTDB).
System Architecture
The project is structured as a monolithic repository integrating three distinct engineering domains:
text
industry_temperature_control/
├── hardware/ # KiCad EDA (Schematics, PCB layout, Gerbers)
├── firmware/ # PlatformIO C++ (ESP32 logic, RTDB sync)
├── software/ # Flutter Mobile App (Clean Architecture, Riverpod, Hive)
└── docs/ # System architecture, renders,wokwi simulation and media assets
High-Level Topology
Validation: Real-time synchronization between the ESP32 hardware simulation and the Firebase RTDB backend.
Hardware (KiCad)
The physical controller is a custom 2-layer PCB designed to handle both high-current 12V industrial loads and sensitive 3.3V digital logic.
Core Specifications:
Microcontroller: DOIT ESP32 DEVKIT V1 -30 pin
Power Delivery Network (PDN): 12V main input, regulated to 5V via an onboard LM2596 Buck Converter. High-current traces routed at 0.8mm width.
Sensors & Actuators: DS18B20 (1-Wire) digital temperature sensor, with MOSFET-driven PWM outputs for external fans and heating lamps.
Trace Topology: 0.4mm logic lines routing across Top/Bottom copper planes with continuous ground pours for EMI shielding.
Firmware (PlatformIO & Wokwi)
Written in C++ for the ESP32, the firmware manages real-time hardware interrupts, sensor polling, and network communication.
Key Features:
Hardware Debouncing: 200ms software debouncing for mechanical inputs.
Delta-Driven Telemetry: Pushes raw JSON string payloads to the /telemetry RTDB node to minimize bandwidth (Tracking processTemp, pcbTemp, actuationState, and pcbCoolingState).
Config Listener: Subscribes to the /config RTDB node to dynamically update operational setpoints (Target, Max, Min limits) pushed from the mobile app.
Hardware Simulation
A live capture of the logic execution in Wokwi:
Software (Flutter Mobile App)
A mobile frontend built for performance.
Technical Stack & Architecture:
Architecture: Strict Clean Architecture (Data, Domain, Presentation layers) utilizing Domain Use Cases to enforce boundary separation.
State Management: Fully manual Riverpod (AsyncNotifier and StreamProvider), ensuring memory-safe stream disposal without code generation overhead.
Data Layer: Direct Firebase RTDB streams (zero FCM/push notifications) for real-time telemetry, and Hive local storage mapping raw strings for history logging.
UI/UX: Custom state-based routing, dynamic implicit animations driven by hardware states, and a Vantablack/charcoal design system.
Getting Started
To view the Hardware:
Install KiCad 10.0+.
Open hardware/industry_temperature_control.kicad_pro.
To compile the Firmware:
Open the firmware/ directory in VS Code with the PlatformIO extension installed.
Create your firebase project and manually add your database URL and API_KEY-I removed mine for security purposes.
Build the environment to pull the required C++ dependencies.
To run the Mobile App:
Navigate to the software/ directory.
Use your own firebase URL,the RTDB structure is already defined in the README.md of the software folder,you only need to create the Firebase project and create the nodes as they appear in the README.md in the software folder.
Run flutterfire configure command to configure your flutter app to the Firebase project.
Run flutter pub get.
Provide your own google-services.json (Android) from your Firebase console.
It measures 131 × 125 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Industry temperature control use?
32 parts, built around the BOB-12009, DS18B20, IRLZ44N and PN2222A. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Industry temperature control KiCad files?
From the IaMdEvJaXoN/industry_temperature_control_system repository on GitHub, at the commit this page was made from: the board is hardware/industry_temperature_control/industry_temperature_control.kicad_pcb and its schematic hardware/industry_temperature_control/industry_temperature_control.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Industry temperature control design in my own project?
Its repository states no licence, so its author keeps all rights: ask IaMdEvJaXoN before reusing the design.
Controlador de termotanque solar: ATmega328P maestro + ESP8266 WiFi, con interfaz fisica LCD y web, programacion horaria y guardado en EEPROM. Proyecto Final de 6.º año, Instituto San Jose A-355 (2022).
A single-sided PCB controller motherboard designed for an environmental test chamber (CryoFrost) driven by an ESP32, featuring precision temperature/humidity control, thermoelectric Peltier cooling, ultrasonic…