|
@@ -0,0 +1,52 @@
|
|
|
|
|
+#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() {
|
|
|
|
|
+
|
|
|
|
|
+}
|