En cambio, el envío de Telegram no funciona
En la anterior página, PicoBricks hacía de servidor, alojaba una página web y desde el exterior, se llamaba a su página web para encender y apagar un led.
Al revés, es decir, la llamada de PicoBricks a una web externa no funciona
Esto sería útil para llamar a la API de Telegram y que Picobricks pudiese enviar información al usuario por Telegram
- Primero creando un bot de Telegram y consiguiendo su Token
- Segundo identificar nuestro ID de usuario a donde enviar el mensaje
- Tercero utilizar la instrucción urequest.get(laurl) de la librería urequests
PeroTienes segúnque esteponer foroen la instrucciónlínea urequest11 yalos no funciona. Lo hemos probadodatos de muchastu maneraswifi
Tienes efectivamente.que Si sabes cómo poder enviar a Telegram con Picobricks por favor ponteponer en contactola conurl nosotrosde la línea 16:
- el token del bot que has conseguido en www.catedu.esreando enun informaciónbot de Telegram y pondremosconsiguiendo el código correcto.
import urequests
import network
import time
TOKEN="----------" ## Pon aquí elsu Token que sale de @BotFather
CHAT_ID="
---------" ## Pon aquí el ID delde tu usuario a donde hay que enviar el mensaje ver identificar nuestro ID de Telegramusuario destinatarioa lodonde daenviar @myidbotel SSIDmensaje
## extraido del proyecto action-reaction https://github.com/Robotistan/PicoBricks/tree/main/Software/Activities/Action-Reaction
from machine import Pin#to acces the hardware picobricks
led = '------------'Pin(7,Pin.OUT)#initialize ##digital Ponpin aquías laan redoutput wififor PASSWORDled
push_button = '---------'Pin(10,Pin.IN,Pin.PULL_DOWN)#initialize ##digital Ponpin aquí10 laas contraseñaan input
#extraido de lapágina red21 wifide defhttps://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf
conectar_wifi():# Connecttonetwork
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID,'PONTUWIFI', PASSWORD)
print("Conectando a Wi-Fi..."'PONTUCONTRASEÑAWIFI')
while# notMake wlan.isconnected(GET request
import urequests
def mandarmensaje():
time.sleep(1)r print(= urequests.get("Conectado a Wi-Fi:", wlan.ifconfig())
return True
def enviarmensaje (mensaje):
url="https:http://api.telegram.org/bot"+telegramBot+"/botPONTUBOT/sendMessage?chat_id="+telegramChatId+"PONTUID&text="+mensajeAPRETADO")
respuestaprint(r.status_code) # redirectsto https
#print(r.content)
r.close()
while True:#while loop
logic_state = urequests.get(url)push_button.value();#button print('Mensajeon&off Enviado'status
if logic_state == True:#check the button and if it is on
led.value(1)#turn on the led
mandarmensaje()
returnelse:
respuestaled.value(0)#turn ###########off PROGRAMAthe PRINCIPAL,led
ConexiónHay Wi-Fique ydejar envíoapretado delunos mensaje
conectar_wifi()
enviarmensaje("Prueba") #Ponersegundos el mensajebotón apara enviar,que podríafuncione:
ser