Skip to content

Trabajo de Garcia Santos Jonathan #61

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# 📡 Sensor de presión barométrica(BMP280) y Visualizarlo en Flespi

- **Nombre:** Garcia Santos Jonathan
- **GitHub:** [JONATHAN-GARCIA20]
- **Matrícula:** 22210307

# 📌 Sensor de presión barométrica(BMP280)

# 📌 Introducción

El sensor de presión barométrica BMP280 es un módulo de alta precisión diseñado para medir la presión atmosférica y la temperatura. Gracias a su bajo consumo de energía y alta sensibilidad, es ampliamente utilizado en aplicaciones como estaciones meteorológicas, altímetros, drones y monitoreo ambiental.

En este proyecto, utilizaremos un ESP32 para leer los datos del BMP280 a través del protocolo I2C y enviarlos a un servidor MQTT en la nube. La simulación se realizará en Wokwi, donde generaremos valores aleatorios para representar los datos del sensor en ausencia de hardware real.

# 🛠️ Codigo en Wokwi
```
import network
import random # Solo para la simulación en Wokwi
from umqtt.simple import MQTTClient

# Configurar WiFi en Wokwi
SSID = "Wokwi-GUEST"
PASSWORD = ""

wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(SSID, PASSWORD)

while not wifi.isconnected():
print("Conectando a WiFi...")
time.sleep(1)

print("✅ WiFi Conectado. IP:", wifi.ifconfig()[0])

# Configurar MQTT
BROKER = "test.mosquitto.org"
TOPIC = "wokwi/sensor/bmp280"
client = MQTTClient("esp32", BROKER)
client.connect()

# Bucle infinito para enviar datos cada 3 segundos
while True:
try:
# Simulación en Wokwi (generar valores aleatorios en lugar de leer del sensor real)
presion = random.uniform(95000, 105000) # Presión en Pa
temperatura = random.uniform(15, 30) # Temperatura en C (sin símbolo especial)

mensaje = f"Presion: {presion:.2f} Pa, Temp: {temperatura:.2f} C" # Sin caracteres especiales
client.publish(TOPIC, mensaje.encode('utf-8')) # Codificar en UTF-8
print("📤 Enviado:", mensaje)

except Exception as e:
print("⚠️ Error simulando el sensor:", e)

time.sleep(3) # Esperar 3 segundos antes de enviar el siguiente dato


```

![image](https://github.com/user-attachments/assets/cbf537b1-8917-48e5-a037-2a4b91ca439c)

# 📌Visualizar datos en Flespi

![image](https://github.com/user-attachments/assets/03101277-da08-4cc1-8666-df66b081bf66)

67 changes: 67 additions & 0 deletions class-material/FakeSensors/Sensor de sonido/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# 📡 Sensor de sonido (MAX4466) y Visualizarlo en Flespi

- **Nombre:** Garcia Santos Jonathan
- **GitHub:** [JONATHAN-GARCIA20]
- **Matrícula:** 22210307

# 📌 Sensor de sonido (MAX4466)

# 📌 Introducción

El sensor de sonido MAX4466 es un amplificador de micrófono de alta ganancia diseñado para capturar variaciones en el nivel de sonido y convertirlas en señales analógicas. Este tipo de sensor es útil para aplicaciones como monitoreo de ruido ambiental, detección de voz y activación por sonido.

En este proyecto, utilizaremos un ESP32 para leer los datos del MAX4466 a través de su conversor analógico-digital (ADC) y enviarlos a un servidor MQTT en la nube. La simulación se realizará en Wokwi, donde generaremos valores aleatorios para representar los datos del sensor en ausencia de hardware real.

# 🛠️ Codigo en Wokwi
```
import time
import network
import random # Solo para la simulación en Wokwi
from umqtt.simple import MQTTClient
from machine import ADC, Pin

# Configurar WiFi en Wokwi
SSID = "Wokwi-GUEST"
PASSWORD = ""

wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(SSID, PASSWORD)

while not wifi.isconnected():
print("Conectando a WiFi...")
time.sleep(1)

print("✅ WiFi Conectado. IP:", wifi.ifconfig()[0])

# Configurar MQTT
BROKER = "test.mosquitto.org"
TOPIC = "wokwi/sensor/max4466"
client = MQTTClient("esp32", BROKER)
client.connect()

# Configurar el sensor de sonido MAX4466 (entrada analógica en pin 34)
sound_sensor = ADC(Pin(34))
sound_sensor.atten(ADC.ATTN_11DB) # Configurar el rango de entrada (hasta 3.6V)

# Bucle infinito para enviar datos cada 3 segundos
while True:
sonido = sound_sensor.read() # Leer valor analógico (0 - 4095 en ESP32)

# Simulación en Wokwi (si no tienes el sensor físico, usa valores aleatorios)
if not sonido:
sonido = random.randint(1000, 3000)

mensaje = f"Nivel de sonido: {sonido}"
client.publish(TOPIC, mensaje)
print("📤 Enviado:", mensaje)

time.sleep(3) # Esperar 3 segundos antes de enviar el siguiente dato

```

![image](https://github.com/user-attachments/assets/52ee818b-5a6c-40bc-8052-545d6b31ae75)

# 📌Visualizar datos en Flespi

![image](https://github.com/user-attachments/assets/7f4de2e5-00ba-4f60-8cff-ee75166b2790)