Control and monitor a heating pad system for precise temperature regulation using
an Arduino, SHT30 temperature/humidity sensor, and MOSFET. Data is logged and
visualized to optimize heater performance and maintain consistent environmental
conditions for mycelium cultivation.
The MycoReactor system provides real-time temperature and humidity monitoring with
automated heater control. The Arduino reads environmental data every second and
makes intelligent decisions to maintain target temperatures within specified ranges.
All system activity is logged to timestamped CSV files every 10 seconds, creating
a comprehensive record of environmental conditions. This data is then processed and
visualized through interactive web-based plots, allowing detailed analysis of heating
patterns, temperature stability, and system performance over time.
Tasks
Hardware Components
Arduino Mega - Main microcontroller for system control
SHT30 Temperature/Humidity Sensor (I2C)
├─ Red → Arduino 5V
├─ Black → Arduino GND
├─ Yellow → Arduino SCL (Pin 21 on Mega)
└─ White → Arduino SDA (Pin 20 on Mega)
IRL44N MOSFET (TO-220 Package, front view with text facing you)
Pin Layout (left to right): Gate - Drain - Source
├─ Gate (G) → Arduino Pin 9 (PWM control signal)
├─ Drain (D) → Heating Pad Negative (-)
└─ Source (S) → Arduino GND (CRITICAL: common ground!)
Heating Pad Power Circuit
├─ Positive (+) → 12V DC Adapter Positive
└─ Negative (-) → MOSFET Drain (D)
1N4007 Flyback Diode (across heating pad)
├─ Cathode (silver band) → Heating Pad Positive (+) / 12V
└─ Anode → Heating Pad Negative (-) / MOSFET Drain
Purpose: Protects MOSFET from voltage spikes
Power Supplies
├─ Arduino: USB or 5V external supply
└─ Heating Pad: 12V DC, 1A adapter (Alito ALT-1201)
⚠️ CRITICAL CONNECTIONS
1. Arduino GND MUST connect to MOSFET Source
2. 12V adapter GND MUST connect to Arduino GND
3. All grounds must be common for proper MOSFET operation
Lessons Learned
Double-check pin assignments - Always confirm which Arduino pin connects to the MOSFET gate. Wrong pins can prevent control or damage components.
Understand MOSFET pinout - On IRL44N (TO-220), looking at the front (text side), pins left to right are: Gate → Drain → Source. Misidentification prevents switching or causes permanent-on states.
Common ground is essential - Arduino ground and heater/MOSFET ground must be connected. Without shared reference, MOSFET cannot switch properly.
Diode placement matters - Flyback diode (1N4007) goes across the load, not the MOSFET. Cathode (silver band) to positive voltage, anode to MOSFET drain. Protects from voltage spikes.
Check voltage ratings - Ensure MOSFET and diode are rated for heater voltage and current to prevent damage.
Test with low power first - Validate control logic with LEDs or small loads before applying full 12V.
Thermal lag is normal - Temperature sensors react to environment, not instantly to heater changes. Expect overshoot and lag with bang-bang control.
Serial commands enable dynamic adjustment - Setting target temperature via Serial Monitor (e.g., "H 50" for 50°C) allows safe testing without reprogramming.
Keep spare components - MOSFETs and diodes can fail if wired incorrectly. Having replacements minimizes downtime.
Results
Interactive visualizations of heater system performance over time. Each dataset shows temperature and humidity trends with heater activity indicated by shaded regions.
Mar 03, 2026 18:06
Duration
68.85 min
Heater ON
48.85 min
Heater OFF
18.17 min
Temp Max
60.20 °C
Temp Min
59.50 °C
Temp Avg
59.84 °C
Temp Range
0.70 °C
Humidity Max
2.10 %
Humidity Min
0.10 %
Humidity Avg
1.46 %
Humidity Range
2.00 %
Mar 03, 2026 16:56
Duration
68.52 min
Heater ON
47.02 min
Heater OFF
19.50 min
Temp Max
60.20 °C
Temp Min
59.40 °C
Temp Avg
59.85 °C
Temp Range
0.80 °C
Humidity Max
5.00 %
Humidity Min
2.10 %
Humidity Avg
3.87 %
Humidity Range
2.90 %
Mar 03, 2026 15:57
Duration
57.83 min
Heater ON
38.17 min
Heater OFF
18.50 min
Temp Max
60.20 °C
Temp Min
59.70 °C
Temp Avg
59.92 °C
Temp Range
0.50 °C
Humidity Max
8.80 %
Humidity Min
5.20 %
Humidity Avg
7.15 %
Humidity Range
3.60 %
Mar 03, 2026 15:10
Duration
45.02 min
Heater ON
39.67 min
Heater OFF
4.18 min
Temp Max
60.10 °C
Temp Min
25.20 °C
Temp Avg
41.92 °C
Temp Range
34.90 °C
Humidity Max
100.00 %
Humidity Min
14.00 %
Humidity Avg
59.67 %
Humidity Range
86.00 %
Feb 11, 2026 16:39
Experiment Notes:
Evan stacked two placed two petri dished containing nearly pure mycellium on the heating pad, which had been warmed to 60 degC. The petri dishes were nearly pure mycellium than had to be dried for further analysis.
A timelapse was taken of one dish (the top dish) using a digital microscope (DinoLite) and companion software. Photos were taken every 5 minutes for 60 minutes (from 5:20 to 6:20).
In future studies, the petri dishes should have been weighed before and after drying.
This is a link to slides on the constrcution and use of the heater
https://docs.google.com/presentation/d/1ZvSA9oj7bTSweTrYoQJAS_rbTViF5D0WxH5KqCNhA_8/edit?usp=sharing
The plot shows when the heater was on with a red background.