V1.ino 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "TinyGPSPlus.h"
  2. #include "DHT.h"
  3. // Pines para UART2 (Serial2)
  4. #define RX_PIN 16 // RX del ESP32 conectado a TX del GPS
  5. #define TX_PIN 17 // TX del ESP32 conectado a RX del GPS
  6. #define GPS_BAUD 115200
  7. #define DHTPIN 4 // Digital pin connected to the DHT sensor
  8. #define DHTTYPE DHT22
  9. // Objeto TinyGPS++
  10. TinyGPSPlus gps;
  11. // Serial para GPS
  12. HardwareSerial gpsSerial(2);
  13. // Configuracion del DHT
  14. DHT dht(DHTPIN, DHTTYPE);
  15. // Bandera volátil para interrupción
  16. volatile bool gpsFlag = false;
  17. void ARDUINO_ISR_ATTR onTimer(void) {
  18. gpsFlag = true; // Activa bandera para procesar GPS en el loop
  19. }
  20. void setup() {
  21. Serial.begin(115200);
  22. Serial.println(F("DHTxx test!"));
  23. dht.begin();
  24. Serial.println("Iniciando prueba de GPS con temporizador (API 3.x)...");
  25. // Iniciar Serial2 para GPS
  26. gpsSerial.begin(GPS_BAUD, SERIAL_8N1, RX_PIN, TX_PIN);
  27. // Configurar temporizador hardware con frecuencia de 1 MHz (tick cada 1 us)
  28. hw_timer_t *timer = timerBegin(1000000); // Frecuencia en Hz
  29. // Adjuntar interrupción al temporizador
  30. timerAttachInterrupt(timer, &onTimer);
  31. // Configurar alarma para 1 segundo (1,000,000 ticks), autoreload activado, unlimited
  32. timerAlarm(timer, 1000000, true, 0);
  33. }
  34. void loop() {
  35. }