#include <Wire.h>
#define SLAVE_1_ADDR 0x08 // I2C address of Slave 1
#define SLAVE_2_ADDR 0x09 // I2C address of Slave 2
void setup() {
Serial.begin(115200);
Wire.begin(); // Initialize I2C as master
Serial.println("Master ready");
}
void loop() {
// Request temperature from Slave 1
Wire.beginTransmission(SLAVE_1_ADDR);
Wire.write("T"); // Command to request temperature
Wire.endTransmission();
delay(100);
Wire.requestFrom(SLAVE_1_ADDR, 4); // Request 4 bytes (float size)
if (Wire.available() == 4) {
float temp1;
Wire.readBytes((char*)&temp1, 4);
Serial.print("Temperature from Slave 1: ");
Serial.println(temp1);
}
// Request temperature from Slave 2
Wire.beginTransmission(SLAVE_2_ADDR);
Wire.write("T");
Wire.endTransmission();
delay(100);
Wire.requestFrom(SLAVE_2_ADDR, 4);
if (Wire.available() == 4) {
float temp2;
Wire.readBytes((char*)&temp2, 4);
Serial.print("Temperature from Slave 2: ");
Serial.println(temp2);
}
delay(2000); // Delay for readability
}