//#SLAVE I2C #include #include "DHT.h" #define DHTPIN D3 #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 DHT dht(DHTPIN, DHTTYPE); byte temperatureC; byte humidity; void setup() { Serial.begin(9600); dht.begin(); Wire.begin(2); // join i2c bus with address #0x02 (OLED Screen is already On 0x3C) Wire.onRequest(requestEvent); // register event } void loop() { humidity = dht.readHumidity(); // Read temperature as Celsius (the default) temperatureC = dht.readTemperature(); Serial.print(F("Humidity: ")); Serial.print(humidity); Serial.print(F("% Temperature: ")); Serial.print(temperatureC); Serial.println(F("°C ")); delay(700); } // function that executes whenever data is requested by master // this function is registered as an event, in the setup() void requestEvent() { Wire.write(temperatureC); }