#include #include #include #include #include #define D7 13 #define DHTTYPE DHT11 // DHT 11 #define DHTPIN 13 // leitura #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) #define SCREEN_ADDRESS 0x3C // If not work please scan the bus #define OLED_SDA 14 // D6 #define OLED_SCL 12 // D5 DHT dht(DHTPIN, DHTTYPE, 50); Adafruit_SSD1306 *display; const char *ssid = "IFSC"; const char *password = "campuschapeco"; WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "pool.ntp.org"); String weekDays[7]={"Domingo", "Segunda", "Terca", "Quarta", "Quinta", "Sexta", "Sabado"}; String months[12]={"Janeiro", "Fevereiro", "Marco", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "December"}; void setup() { display = new Adafruit_SSD1306(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); Wire.begin(OLED_SDA, OLED_SCL); display->begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS); Serial.begin(115200); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // Initialize a NTPClient to get time timeClient.begin(); // Set offset time in seconds to adjust for your timezone, for example: // GMT +1 = 3600 // GMT +8 = 28800 // GMT -3 = -10800 // GMT 0 = 0 timeClient.setTimeOffset(-10800); } void loop() { float temperatura=dht.readTemperature( ) ; float umidade = dht.readHumidity(); Serial.print("Temp "); Serial.println(temperatura); Serial.print("Umidade "); Serial.println(umidade); timeClient.update(); time_t epochTime = timeClient.getEpochTime(); Serial.print("Epoch Time: "); Serial.println(epochTime); String formattedTime = timeClient.getFormattedTime(); Serial.print("Formatted Time: "); Serial.println(formattedTime); int currentHour = timeClient.getHours(); Serial.print("Hour: "); Serial.println(currentHour); int currentMinute = timeClient.getMinutes(); Serial.print("Minutes: "); Serial.println(currentMinute); int currentSecond = timeClient.getSeconds(); Serial.print("Seconds: "); Serial.println(currentSecond); String weekDay = weekDays[timeClient.getDay()]; Serial.print("Week Day: "); Serial.println(weekDay); //Get a time structure struct tm *ptm = gmtime ((time_t *)&epochTime); int monthDay = ptm->tm_mday; Serial.print("Month day: "); Serial.println(monthDay); int currentMonth = ptm->tm_mon+1; Serial.print("Month: "); Serial.println(currentMonth); String currentMonthName = months[currentMonth-1]; Serial.print("Month name: "); Serial.println(currentMonthName); int currentYear = ptm->tm_year+1900; Serial.print("Year: "); Serial.println(currentYear); //Print complete date: String currentDate = String(currentYear) + "-" + String(currentMonth) + "-" + String(monthDay); Serial.print("Current date: "); Serial.println(currentDate); Serial.println(""); display->clearDisplay(); display->setTextSize(1); display->setTextColor(SSD1306_WHITE); display->setCursor(0, 0); display->println(weekDay); display->println(currentDate); display->println(""); display->print(currentHour); display->print(":"); display->print(currentMinute); display->print(":"); display->println(currentSecond); display->print("Umidade: "); display->print(umidade); display->println(" %"); display->print("Temp: "); display->print(temperatura); display->println(" .c"); display->display(); delay(2000); }