import network
import time

import ujson
import _thread
from machine import Pin, ADC, PWM
from umqtt.simple import MQTTClient

MQTT_CLIENT_ID = "sensores"
MQTT_BROKER = "broker.mqttdashboard.com"
MQTT_TOPIC_SEND = "purificador/sensors"
MQTT_TOPIC_RELE = "purificador/rele"
MQTT_TOPIC_SERVO = "purificador/servo"
MQTT_TOPIC_VALUES = "purificador/values"

WIFI_SSID = "Wokwi-GUEST"
WIFI_PASSWORD = ""

gas = ADC(Pin(34, Pin.IN))
gas.atten(ADC.ATTN_11DB)

particula = ADC(Pin(35, Pin.IN))
particula.atten(ADC.ATTN_11DB)

rele = Pin(12, Pin.OUT)
serv = PWM(Pin(13, Pin.OUT))
serv.freq(50)

while True:
    serv.duty(70)
    time.sleep(1)
    serv.duty(80)
    time.sleep(1)

# print("Connecting to WiFi", end="")
# wifi = network.WLAN(network.STA_IF)
# wifi.active(True)
# wifi.connect(WIFI_SSID, WIFI_PASSWORD)
# while not wifi.isconnected():
#   pass

# client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER)

# publish_value_rele = 0
# publish_value_servo = 0

# def callback(topic, msg):
#   msg = ujson.loads(msg.decode())
#   if topic.decode() == MQTT_TOPIC_RELE:
#     global publish_value_rele
#     publish_value_rele = int(msg["valor"])
#   elif topic.decode() == MQTT_TOPIC_SERVO:
#     global publish_value_servo
#     publish_value_servo = int(msg["valor"])
#   else:
#     global gas_value, particula_value
#     gas_value = int(msg["gas"])
#     particula_value = int(msg["particula"])

# client.set_callback(callback)
# client.connect()

# print("\nConnected!")

# client.subscribe(MQTT_TOPIC_RELE)
# client.subscribe(MQTT_TOPIC_SERVO)
# client.subscribe(MQTT_TOPIC_VALUES)

# def check_msg():
#   while True:
#     time.sleep(1)
#     client.check_msg()

# def verify_values():
#   global gas_value, particula_value
#   if (gas_value > 30000 or particula_value > 30000): return True
#   else: return False

# def change_rele():
#   global publish_value_rele
#   global publish_value_servo
#   while True:
#     print(publish_value_rele, publish_value_servo)
#     if publish_value_rele == 1 or publish_value_servo == 1: 
#         if publish_value_rele == 1: rele.on()
#         else: rele.off()
#         if publish_value_servo == 1: servo.move(180)
#         else: servo.move(0)
#     else:
#       verification = verify_values()
#       print(verification)
#       if (verification): 
#         servo.move(100)
#         rele.on()
#       else: 
#         servo.move(0)
#         rele.off()
#     time.sleep(1)

# _thread.start_new_thread(check_msg, ())
# _thread.start_new_thread(change_rele, ())

# print("Medindo...")

# while True:
#   gas_value = gas.read_u16()
#   particula_value = particula.read_u16()
#   message = ujson.dumps({
#     "gas": gas_value,
#     "particula": particula_value
#   })
#   client.publish(MQTT_TOPIC_SEND, message)
#   time.sleep(1)
$abcdeabcde151015202530fghijfghij
NOCOMNCVCCGNDINLED1PWRRelay Module