I have updated the PS_DS18B20_Temperature.h and .cpp files in my GitHub repository to support multiple groups of DS18B20 temperature sensors on multiple GPIO pins.
Pay attention to the new parameter at the end of the following list.
// st::PS_DS18B20_Temperature() constructor requires the following arguments
// - String &name - REQUIRED - the name of the object - either "temperature1" for a single sensor, or "temperature" for multiple sensors
// - long interval - REQUIRED - the polling interval in seconds
// - long offset - REQUIRED - the polling interval offset in seconds - used to prevent all polling sensors from executing at the same time
// - byte pin - REQUIRED - the Arduino Pin to be used for the One-Wire DS18B20 sensor conenction
// - bool In_C - OPTIONAL - true = Report Celsius, false = Report Farenheit (Farentheit is the default)
// - byte resolution - OPTIONAL - DS18B20 sensor resolution in bits. 9, 10, 11, or 12. Defaults to 10 for decent accuracy and performance
// - byte num_sensors - OPTIONAL - number of OneWire DS18B20 sensors attached to OneWire bus - Defaults to 1
// - byte sensorStartingNum - OPTIONAL - Starting number for sending temperature sensor data when using multiple sensors on one pin - Defaults to 1
Here is an example using three pins, each sampling 6 DS18B20 sensors, every 60 seconds with a 5 second polling gap between each group, using 10 bit accuracy. This should produce 18 temperature sensors, named "temperature1" through "temperature18".
Let me know if you have any questions. The code compiles fine and runs, however I do not have a bunch of DS18B20's to use for testing. Please let me know how it goes.
static st::PS_DS18B20_Temperature sensor1(F("temperature"), 60, 0, PIN_TEMPERATURE_1, false, 10, 6, 1);
static st::PS_DS18B20_Temperature sensor2(F("temperature"), 60, 5, PIN_TEMPERATURE_2, false, 10, 6, 7);
static st::PS_DS18B20_Temperature sensor3(F("temperature"), 60, 10, PIN_TEMPERATURE_3, false, 10, 6, 13);