Photon blinking red when i dont write in the console

This is deprecated syntax. By now this will be enought

  Particle.variable("result", resultstr);

It would also be better to use snprintf() to limit the size of your result strings.
Your char temperature[4] seems too short for any readings like 12.3 degrees - let alone negative temperatures. With an array of four characters you can only store a string of up to 3 characters as you need to have a '\0' zero terminator.
The same goes for humidity.

The potential for dealing with not correctly terminated strings may explain your SOS panic crashes.

The static qualifier for these two arrays is also superfluous.

I'd also unify the publishes (MQTT or Particle) into one single string to reduce overhead.

As for MQTT:
In send_pms5003_data() and send_dht22_data() you check for if(client.isConnected()) but you don't rectify that problem once detected. You just ignore it and have the device not publish anything for till the end of time.

BTW, it would make somewhat more sense if you had one function that does all the publishing, and two independent functions that do the reading of the individual sensors.

With splitting your logic up into dedicated functions you want to reduce redundancy, but with your functions you have both deal with the MQTT stuff and when you need to change anything on that logic (i.e. add the reconnect logic when client.isConnected == false) you'd do that twice for the sake of consistency. With only one publish function you'd have it both: minimal effort but consistent.