#include "TinyGPSPlus.h" #include "DHT.h" // Pines para UART2 (Serial2) #define RX_PIN 16 // RX del ESP32 conectado a TX del GPS #define TX_PIN 17 // TX del ESP32 conectado a RX del GPS #define GPS_BAUD 115200 #define DHTPIN 4 // Digital pin connected to the DHT sensor #define DHTTYPE DHT22 // Objeto TinyGPS++ TinyGPSPlus gps; // Serial para GPS HardwareSerial gpsSerial(2); // Configuracion del DHT DHT dht(DHTPIN, DHTTYPE); // Bandera volátil para interrupción volatile bool gpsFlag = false; void ARDUINO_ISR_ATTR onTimer(void) { gpsFlag = true; // Activa bandera para procesar GPS en el loop } void setup() { Serial.begin(115200); Serial.println(F("DHTxx test!")); dht.begin(); Serial.println("Iniciando prueba de GPS con temporizador (API 3.x)..."); // Iniciar Serial2 para GPS gpsSerial.begin(GPS_BAUD, SERIAL_8N1, RX_PIN, TX_PIN); // Configurar temporizador hardware con frecuencia de 1 MHz (tick cada 1 us) hw_timer_t *timer = timerBegin(1000000); // Frecuencia en Hz // Adjuntar interrupción al temporizador timerAttachInterrupt(timer, &onTimer); // Configurar alarma para 1 segundo (1,000,000 ticks), autoreload activado, unlimited timerAlarm(timer, 1000000, true, 0); } void loop() { }