summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavoeklund01 <eklundgu@gmail.com>2025-10-19 20:54:33 -0300
committerGustavoeklund01 <eklundgu@gmail.com>2025-10-19 20:54:33 -0300
commit15827f74f1ce8d428d3c3bb7f6eaf4e245cdad42 (patch)
tree0cc02cbb4f68fc4bcac824631b4aac8daaf41dce
parent72bc657b9647f9dd679015d60956b9bc9a3289f5 (diff)
mais sensores
-rw-r--r--esp/BMP280.ino29
-rw-r--r--esp/LM393.ino42
2 files changed, 71 insertions, 0 deletions
diff --git a/esp/BMP280.ino b/esp/BMP280.ino
new file mode 100644
index 0000000..417edb1
--- /dev/null
+++ b/esp/BMP280.ino
@@ -0,0 +1,29 @@
+#include <Wire.h>
+#include <Adafruit_Sensor.h>
+#include <Adafruit_BMP280.h>
+
+Adafruit_BMP280 bmp; // cria o objeto do sensor
+
+void setup() {
+ Serial.begin(115200);
+ Wire.begin(21, 22); // SDA e SCL
+ Serial.println("Teste do Sensor BMP280 - Pressão e Temperatura");
+
+ if (!bmp.begin(0x76)) { // endereço I2C padrão
+ Serial.println("Erro: BMP280 não encontrado!");
+ while (1);
+ }
+}
+
+void loop() {
+ float temp = bmp.readTemperature();
+ float press = bmp.readPressure() / 100.0F; // converte Pa para hPa
+
+ Serial.print("Temperatura: ");
+ Serial.print(temp);
+ Serial.print(" °C | Pressão: ");
+ Serial.print(press);
+ Serial.println(" hPa");
+
+ delay(2000); // leitura a cada 2 segundos
+} \ No newline at end of file
diff --git a/esp/LM393.ino b/esp/LM393.ino
new file mode 100644
index 0000000..6e6a5d5
--- /dev/null
+++ b/esp/LM393.ino
@@ -0,0 +1,42 @@
+#define SENSOR_PIN 35 // pino de sinal (DO)
+
+unsigned long lastTime = 0;
+unsigned int pulsos = 0;
+int estadoAnterior = HIGH; // começa em HIGH (sem interrupção)
+
+// Configurações do sensor
+const int PULSOS_POR_VOLTA = 10; // 10 furos = 10 pulsos por volta
+const float FATOR_KMH = 2.4; // km/h por rotação por segundo (ajuste conforme calibração)
+
+void setup() {
+ Serial.begin(115200);
+ pinMode(SENSOR_PIN, INPUT);
+ Serial.println("Anemômetro LM393 - Velocidade do vento");
+}
+
+void loop() {
+ int estadoAtual = digitalRead(SENSOR_PIN);
+
+ // Detecta borda de descida: HIGH → LOW
+ if (estadoAnterior == HIGH && estadoAtual == LOW) {
+ pulsos++;
+ }
+
+ estadoAnterior = estadoAtual; // atualiza para próxima leitura
+
+ // A cada 1 segundo calcula RPM e velocidade
+ if (millis() - lastTime >= 1000) {
+ float rps = (float)pulsos / PULSOS_POR_VOLTA;
+ float rpm = rps * 60.0;
+ float velocidade = rps * FATOR_KMH;
+
+ Serial.print("RPM: ");
+ Serial.print(rpm);
+ Serial.print(" | Velocidade: ");
+ Serial.print(velocidade);
+ Serial.println(" km/h");
+
+ pulsos = 0;
+ lastTime = millis();
+ }
+} \ No newline at end of file