Differences

This shows you the differences between two versions of the page.

Link to this comparison view

priot:laboratoare:08 [2024/10/01 17:01]
127.0.0.1 external edit
priot:laboratoare:08 [2024/11/28 20:13] (current)
jan.vaduva [Teorie]
Line 1: Line 1:
-===== Laboratorul 08. =====+===== Laboratorul 08: Trimiterea de mesaje Telegram cu Raspberry Pi Pico W ===== 
 + 
 +===== Scopul Laboratorului:​ ===== 
 +Obiective:​ 
 +  * Înțelegerea integrării unui microcontroller (Raspberry Pi Pico W) cu servicii de mesagerie prin internet. 
 +  * Configurarea unui bot Telegram și utilizarea acestuia pentru trimiterea mesajelor. 
 +  * Implementarea unei aplicații simple care trimite mesaje automate pe baza unui prag de temperatură. 
 + 
 + 
 + 
 +===== Materiale necesare:​=====  
 +    * Raspberry Pi Pico W. 
 +    * Cabluri de conectare. 
 +    * Un cont Telegram pentru crearea unui bot. 
 + 
 + 
 +==== Teorie ==== 
 +=== Raspberry Pi Pico W: === 
 +Raspberry Pi Pico W este o versiune a Pico cu conectivitate Wi-Fi, perfectă pentru proiecte IoT (Internet of Things). 
 + 
 +Conexiunea Wi-Fi permite comunicarea cu servicii externe, cum ar fi Telegram. 
 + 
 +=== Telegram Bot API: === 
 +Telegram oferă un API simplu care permite interacțiunea cu utilizatorii prin intermediul boturilor.  
 + 
 +Funcții importante ale API-ului: 
 +    * Trimiterea de mesaje: Printr-un apel POST la endpoint-ul `sendMessage`. 
 +    * Obținerea de mesaje noi: Prin apelul `getUpdates`. 
 + 
 +Avantaje: 
 +    * Permite notificări în timp real. 
 +    * Interfață simplă, bazată pe HTTP. 
 + 
 +==== Partea 1: Configurarea botului Telegram ==== 
 +Crearea unui bot: 
 +    * Deschide Telegram și contactează @BotFather. 
 +    * Folosește comanda /newbot pentru a crea un bot. 
 +    * Alege un nume și un username pentru bot. 
 +    * Notează-ți token-ul API furnizat de BotFather. 
 + 
 +Obtinerea chat_id: 
 +    * Trimite un mesaj botului (de exemplu, Hello). 
 +    * Accesează URL-ul: https://​api.telegram.org/​bot<​TOKEN>/​getUpdates. 
 +    * Găsește chat_id în răspuns. 
 + 
 + 
 +==== Partea 2: Configurarea conexiunii Wi-Fi pe Pico W ==== 
 + 
 +<code send_msg.py>​ 
 +import network 
 +import requests ​ # Pentru cereri HTTP 
 +import time 
 +import machine ​ # Pentru citirea senzorului intern 
 + 
 +# Configurare Wi-Fi 
 +SSID = '​Nume_Retea' ​      # Introdu numele retelei Wi-Fi 
 +PASSWORD = '​Parola_Retea' ​ # Introdu parola retelei 
 + 
 +# Configurare Telegram 
 +bot_token = '​TOKEN_BOT' ​ # Introdu token-ul botului tau 
 +chat_id = '​ID_CHAT' ​     # Introdu ID-ul de chat 
 + 
 +def connect_to_wifi():​ 
 +    wlan = network.WLAN(network.STA_IF) 
 +    wlan.active(True) 
 +    if not wlan.isconnected():​ 
 +        print('​Connecting to Wi-Fi...'​) 
 +        wlan.connect(SSID,​ PASSWORD) 
 +        while not wlan.isconnected():​ 
 +            time.sleep(1) 
 +    print('​Connected to Wi-Fi:',​ wlan.ifconfig()) 
 + 
 +def send_telegram_message(message):​ 
 +    url = f"​https://​api.telegram.org/​bot{bot_token}/​sendMessage"​ 
 +    payload = {"​chat_id":​ chat_id, "​text":​ message} 
 +    try: 
 +        response = requests.post(url,​ json=payload) 
 +        response.close() 
 +        print("​Message sent successfully!"​) 
 +    except Exception as e: 
 +        print(f"​Error sending message: {e}"​) 
 + 
 +# Conectare la Wi-Fi 
 +connect_to_wifi() 
 + 
 +# Exemplu simplu: Trimitere mesaj 
 +send_telegram_message("​Hello,​ World!"​) 
 + 
 + 
 +</​code>​ 
 + 
 +==== Exercitii ==== 
 +    * Modificați scriptul de mai sus pentru a trimite mesaje de alertă pe Telegram dacă temperatura depășește 30°C. 
 +    * Scrie un program Python care se conectează la o rețea Wi-Fi, obține prețul Bitcoin în USD folosind API-ul Binance https://​api.coindesk.com/​v1/​bpi/​currentprice.json,​ verifică dacă prețul depășește un prag definit, trimite o alertă pe Telegram cu prețul curent și repetă procesul continuu.
  
  
priot/laboratoare/08.1727791296.txt.gz · Last modified: 2024/11/27 10:10 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0