from machine import Pin, I2C, sleep
import mpu6050 # Recordar que este sensor Módulo
import time
import network
import dht
import ujson
from umqtt.simple import MQTTClient
############ MQTT CONNECT ###########
# MQTT Server Parameters
MQTT_CLIENT_ID = "pruebadesdeWokwiFran"
MQTT_BROKER = "io.adafruit.com"
MQTT_USER = "gutifran"
MQTT_PASSWORD = "aio_eEMD83QxKO7k9MkjQDdceycGhzne"
print("Connecting to WiFi", end="")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('Wokwi-GUEST', '')
while not sta_if.isconnected():
print(".", end="")
time.sleep(0.1)
print(" Connected!")
print("Connecting to MQTT server... ", end="")
client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD)
client.connect()
print("Connected!")
######################################
i2c = I2C (scl =Pin(22), sda = Pin(21))
mpu =mpu6050.accel(i2c)
prev_tem = 0
prev_Gyroscopio = []
prev_Acelerometro = []
while True:
temps = (mpu.get_values())
# Leer temperatura
tem = temps ["Tmp"] # Temperatura del giroscopio
# Recolectar los datos del Giroscopio y convertir en grados
xGyroscopio = round(temps["GyX"] * 250 / 32767,2)
yGyroscopio = round(temps["GyY"] * 250 / 32767,2)
zGyroscopio = round(temps["GyZ"] * 250 / 32767,2)
# Recolectar los datos del Alelerometro y convertir en gravedad
xAcelerometro = round(temps["AcX"] * 2 / 32767,2)
yAcelerometro = round(temps["AcY"] * 2 / 32767,2)
zAcelerometro = round(temps["AcZ"] * 2 / 32767,2)
if tem != prev_tem:
print("tem")
MQTT_TOPIC = "gutifran/feeds/tem"
message = ujson.dumps({
"tem": tem,
})
print(message)
client.publish(MQTT_TOPIC, message)
prev_tem = tem
if [xGyroscopio, yGyroscopio, zGyroscopio] != prev_Gyroscopio:
print("Gyroscopio")
MQTT_TOPIC = "gutifran/feeds/gyroscopio"
message = ujson.dumps({
"xGyroscopio": xGyroscopio,
"yGyroscopio": yGyroscopio,
"zGyroscopio": zGyroscopio,
})
print(message)
client.publish(MQTT_TOPIC, message)
prev_Gyroscopio = [xGyroscopio, yGyroscopio, zGyroscopio]
if [xAcelerometro, yAcelerometro, zAcelerometro] != prev_Acelerometro:
print("Acelerometro")
MQTT_TOPIC = "gutifran/feeds/acelerometro"
message = ujson.dumps({
"xAcelerometro": xAcelerometro,
"yAcelerometro": yAcelerometro,
"zAcelerometro": zAcelerometro,
})
print(message)
client.publish(MQTT_TOPIC, message)
prev_Acelerometro = [xAcelerometro, yAcelerometro, zAcelerometro]
# Datos
#print("Gyroscopio", xGyroscopio, yGyroscopio, zGyroscopio)
#print("Acelerometro", xAcelerometro, yAcelerometro, zAcelerometro)
sleep(1)