I am trying to measure two sensors, one is a BME680 temp/humidity/pressure/gas sensor connected via i2c, the other is a PMS5003 laser particle sensor connected via serial TX wire. They are both wired to a Particle Photon using long solid core copper bell wire, about 6 feet of wire, to keep them away from its wifi chip generating heat. They are in the top of this photo in the yogurt container, wired to the microcontroller on the lower left:
The problem is that the PMS5003 has started to have very noisy readings lately. It started after I was moving the microcontroller on the bottom, trying to get it in a better position. Apparently this wiggled some wires just enough to make the readings on the PMS5003 get very noisy. The other day I disconnected the BME680, and noticed the noisy readings went away. This is a screenshot of the particle count readings from the PMS5003, to show how they were affected by the BME680. On the left half of this screenshot is when the BME680 is disconnected, and on the right half is when it is reconnected:
So I've at least narrowed down a cause. Problem is I don't understand how this is possible. The PMS5003 outputs serial data with checksums, that shouldn't be subject to interference whatsoever, it should either receive the true data or no data at all.
The PMS5003 is powered by 5v, despite outputting a 3.3v signal, to power its hefty fan and laser.
I have an almost identical setup indoors - BME680, PMS5003, and Particle Photon, that has no noise, and the graphs always look like the graph on the left of the above screenshot. The only difference is that it is using much shorter wires - 6 inches rather than 6 feet.
I have tried swapping out both the BME680 and the PMS5003 for brand new sensors, no difference.
I have tried moving the BME680 from the 3.3v outputted by my microcontroller, to 5v power straight from USB, since it has an onboard voltage regulator, to see if this would make a difference. It did not.
I have tried a myriad of different 5v power supplies with no difference.
And of course, I have tried wiggling and rearranging the wires, but I'm not even sure exactly which wire could be the culprit, since again, the serial data output from the PMS5003 has checksums and should be ironclad.
It could be the 5v line - if that voltage is changing a lot, it would change the intensity of the laser on the PMS5003, which would change its readings. But despite having a heater for its gas sensor, the BME680 is a low power device and shouldn't be able to cause such random voltage dips on its own. And it didn't used to, and it doesn't on the identical device indoors.
Where should I start looking? Does anyone know how this is even possible? How can a tiny little BME680 sensor create such strong random noise on the 5v line, even when powered by a separate regulated 3.3v from the main microcontroller?

