# Módulo para utilizar el bot de Telegram
# Santiago Castrillón Ochoa
import network, time, urequests # Cómo se trabaja con APIs hay que manejar esta libreria que ya la tiene machine para peticiones de recursos en APIs
from machine import Pin, ADC
from utelegram import Bot # Utilizamos el módulo utelegram para que funcione
#----------------------- [Token de telegram]---------------------------------------
TOKEN = '6585064093:AAF7mtWrOAsQdXCrDLYvdRkR4Sc1s6BDW6w'
#--------------------------- [OBJETOS]---------------------------------------
pin_tactil = Pin(18, Pin.IN)
pin_externo = Pin(19, Pin.IN)
bot = Bot(TOKEN)
led = Pin(2, Pin.OUT)
def conectaWifi (red, password):
global miRed
miRed = network.WLAN(network.STA_IF)
if not miRed.isconnected(): #Si no está conectado…
miRed.active(True) #activa la interface
miRed.connect(red, password) #Intenta conectar con la red
print('Conectando a la red', red +"…")
timeout = time.time ()
while not miRed.isconnected(): #Mientras no se conecte..
if (time.ticks_diff (time.time (), timeout) > 10):
return False
return True
if conectaWifi ("FAMILIA CASTRILLON O.", "santimateo"):
print ("Conexión exitosa!")
print('Datos de la red (IP/netmask/gw/DNS):', miRed.ifconfig())
@bot.add_message_handler('Hola! Bienvenido a Securide, Aqui podrás tener un reporte de tu recorrido')
def help(update):
update.reply('Escriba on para encender y off para apagar el led, Value para estado y Sensor para temperatura')
@bot.add_message_handler('Value')
def value(update):
if led.value():
update.reply('LED is on')
else:
update.reply('LED is off')
@bot.add_message_handler('On')
def on(update):
led.on()
update.reply('LED is on')
@bot.add_message_handler('Off')
def off(update):
led.off()
update.reply('LED is off')
# Envio de mensaje para sensor de casco asegurado'TOUCH INTERNO'
@bot.add_message_handler('sensor_interno')
def lectura_sensor_touch(update):
if pin_tactil.value() == 1:
print("Tocado")
update.reply('Tocado', pin_tactil)
else:
print("No tocado")
update.reply('No tocado', pin_tactil)
# Envio de mensaje para sensor de casco asegurado'TOUCH EXTERNO DE ASISTENCIA '
@bot.add_message_handler('sensor externo')
def lectura_sensor_touch(update):
if pin_externo.value() == 1:
print("Señal SOS")
contador_toques += 1
update.reply('Señal SOS', pin_externo)
# Esta función reinicia el contador de toques
@bot.add_message_handler('sensor externo')
def lectura_sensor_touch(update):
if contador_toques >= 5:
print("5 toques alcanzados - Reiniciando contador")
contador_toques = 0 # Reinicia el contador
else:
print("Reiniciando contador")
update.reply('Reiniciando contador', pin_externo)
bot.start_loop()
else:
print ("Imposible conectar")
miRed.active (False)