Hi,
Brief description of the application: terrarium controller, activation of lights according to harmonogran, heating based on sensor readings.
Hardware .
The NodeMCU communicates over i2c with the MCP23017. The bus has 4.7k to 3.3V pullup resistors. The expander connects to an eight-channel relay module to which all controlled devices are connected. The relays are powered from a separate 5V source. Diagram attached. .
The control box is located in the "ceiling" of the terrarium. Right next to it goes the trough with the wires.
A PCB has been made based on the schematic. The i2c lines go right next to each other, the total length is about 4 cm.
Software .
The circuit works with Blynk. The code will not be needed to analyse the problem.
Controlled devices .
1. LED daylight strips.
2. LED night slats.
3. Radiant (heating) - mains supply.
4. Metahalogen and its stator .
Description of the problem .
The LED daytime running light comes on at 9. At 10 the metahalogen came on. Unfortunately, sometimes its start-up causes other lights to switch off and the relay module stops responding to manual state changes by Blynk. Other than that, the programme works normally (e.g. sensor readings, etc). I have removed the metahalogen from the system and control it separately (via WiFi socket). However, the problem did not disappear. I therefore put the blame on the MCP23017 and the i2c. The ignition voltage (according to Osram) is 4.5 kV. Unfortunately, it seems to me that this peak is messing with my rail a lot. The driver is now as far away from the lamp and ballast as possible, but this makes little difference. My solution so far is to call at 10:01 ESP.restart(). The solution works, the lights start up normally, but I am not satisfied.
Meritum .
And here is my question - what can I do to protect the bus from interference? Was it a mistake to print the paths for the i2c? What is good practice - should I use shielded wires for the i2c instead of paths on the board?
Brief description of the application: terrarium controller, activation of lights according to harmonogran, heating based on sensor readings.
Hardware .
The NodeMCU communicates over i2c with the MCP23017. The bus has 4.7k to 3.3V pullup resistors. The expander connects to an eight-channel relay module to which all controlled devices are connected. The relays are powered from a separate 5V source. Diagram attached. .
The control box is located in the "ceiling" of the terrarium. Right next to it goes the trough with the wires.
A PCB has been made based on the schematic. The i2c lines go right next to each other, the total length is about 4 cm.
Software .
The circuit works with Blynk. The code will not be needed to analyse the problem.
Controlled devices .
1. LED daylight strips.
2. LED night slats.
3. Radiant (heating) - mains supply.
4. Metahalogen and its stator .
Description of the problem .
The LED daytime running light comes on at 9. At 10 the metahalogen came on. Unfortunately, sometimes its start-up causes other lights to switch off and the relay module stops responding to manual state changes by Blynk. Other than that, the programme works normally (e.g. sensor readings, etc). I have removed the metahalogen from the system and control it separately (via WiFi socket). However, the problem did not disappear. I therefore put the blame on the MCP23017 and the i2c. The ignition voltage (according to Osram) is 4.5 kV. Unfortunately, it seems to me that this peak is messing with my rail a lot. The driver is now as far away from the lamp and ballast as possible, but this makes little difference. My solution so far is to call at 10:01 ESP.restart(). The solution works, the lights start up normally, but I am not satisfied.
Meritum .
And here is my question - what can I do to protect the bus from interference? Was it a mistake to print the paths for the i2c? What is good practice - should I use shielded wires for the i2c instead of paths on the board?