Recepción mensajes Telegram

Podemos ahora enviar un mensaje a ArduinoAlvik y que ejecute un programa por ejemplo el evita obstáculos: 

 

 Envía un mensaje por Telegram que está preparado 

 Si le enviamos /go el contesta voy 

 Ejecuta la rutina de evita obstáculos 

 

 from arduino_alvik import ArduinoAlvik #### IMPORTAMOS LAS FUNCIONES DE ALVIK

from config import utelegram_config

from config import wifi_config

##### AÑADIMOS LIBRERÍAS PARA LOS OBSTÁCULOS

from time import sleep_ms

import sys

import utelegram

import network

import utime

################ añadimos urequest para enviar mensajes con url

import urequests

alvik = ArduinoAlvik() #### CREAMOS UN OBJETO ALVIK

alvik.begin() #### LO INICIALIZAMOS

################# VARIABLES PARA EVITAR OBSTÁCULOS

distance = 10

degrees = 45.00

speed = 50.00

############################################################

debug = True

sta_if = network.WLAN(network.STA_IF)

sta_if.active(True)

sta_if.scan()

sta_if.connect(wifi_config['ssid'], wifi_config['password'])

if debug: print('WAITING FOR NETWORK - sleep 20')

utime.sleep(20)

########################################################################################

def get_message(message):

 bot.send(message['message']['chat']['id'], message['message']['text'].upper())

############################################################################################

def enviarmensaje(mensaje): ###FUNCION ENVIAR MENSAJE CON URL ojo cambiar PONAQUITUID

 url="https://api.telegram.org/bot"+utelegram_config['token']+"/sendMessage?chat_id=PONAQUITUID&text="+mensaje

 respuesta = urequests.get(url)

###########################################################################################

def reply_ping(message):

 print(message)

 bot.send(message['message']['chat']['id'], 'voy') ### CAMBIAMOS EL MENSAJE

 evitamosobstaculos() ### y EVITAMOS OBSTÁCULOS

############################################################################################

def evitamosobstaculos(): ### FUNCIÓN EVITAR OBSTÁCULOS

 while (True):

 distance_l, distance_cl, distance_c, distance_r, distance_cr = alvik.get_distance()

 sleep_ms(50)

 print(distance_c)

 if distance_c < distance:

 alvik.rotate(degrees, 'deg')

 elif distance_cl < distance:

 alvik.rotate(degrees, 'deg')

 elif distance_cr < distance:

 alvik.rotate(degrees, 'deg')

 elif distance_l < distance:

 alvik.rotate(degrees, 'deg')

 elif distance_r < distance:

 alvik.rotate(degrees, 'deg')

 else:

 alvik.drive(speed, 0.0, linear_unit='cm/s')

 

############################################################################################

if sta_if.isconnected():

 bot = utelegram.ubot(utelegram_config['token'])

 bot.register('/go', reply_ping) ### LA CONSIGNA SERÁ GO

 bot.set_default_handler(get_message)

 print('BOT LISTENING')

 enviarmensaje("preparado")

 bot.listen()

else:

 print('NOT CONNECTED - aborting')