Raspberry Pi zawsze było zabawne i łatwe w tworzeniu projektów. Jego potężna architektura ARM i oparty na Linuksie system operacyjny typu open source bardzo pomogły nam w błyskawicznym udostępnieniu naszych projektów online. W tym samouczku nauczymy się innego interesującego sposobu udostępniania danych (plików / zdjęć / filmów / audio / tekstu) między Raspberry Pi a naszym telefonem komórkowym za pośrednictwem popularnej aplikacji do czatu o nazwie Telegram.
Dla tych, którzy są nowicjuszami w Telegramie, jest to aplikacja oparta na czacie dostępna w sklepie Play na Androida (dostępna również dla iPhone'a i Windows), która jest bardzo podobna do Whatsapp. Ma ponad 100 milionów pobrań (stan na 5-10-2017) w sklepie Play, a ludzie twierdzą, że jest szybszy i bardziej funkcjonalny niż Whatsapp (trzymamy kciuki). Jedną ze szczególnych cech tej aplikacji jest to, że obsługują boty. Oznacza to, że ta aplikacja na smartfony może być używana nie tylko przez ludzi, ale także przez maszynę. W naszym przypadku maszyną będzie Raspberry Pi. Gdy wyszkolisz Raspberry Pi, jak działać jako bot, każdy (jeśli upublicznisz to) może rozmawiać z Raspberry Pi, jak rozmawiać z każdą normalną osobą, a nawet udostępniać zdjęcia, zdjęcia, dokumenty i pliki audio. Możesz nawet wyszkolić go, aby był swoim osobistym asystentem, brzmi fajnie, prawda? Dowiedzmy się, jak zbudowaćBot telegramowy Raspberry pi.
Wymagane materiały:
- Dowolne Raspberry Pi podłączone do Internetu
- Mobilna aplikacja Telegram.
W tym projekcie nie ma dużo sprzętu, więc zrelaksuj się na krześle z Pi i wykonaj poniższe czynności. Jeśli jesteś nowy w Raspberry Pi, postępuj zgodnie z naszym artykułem wprowadzającym do Raspberry Pi i innymi samouczkami Raspberry Pi.
Krok 1: Instalacja Telegrama w telefonie komórkowym
Pierwszym krokiem byłoby zainstalowanie Telegrama na telefonie komórkowym. Telegram jest dostępny na Androida, IOS, a nawet na platformę Windows, więc po prostu pobierz aplikację Telegram. Podobnie jak w przypadku wszystkich aplikacji, będzie dostępna mała procedura rejestracji, aby rozpocząć korzystanie z Telegrama, kontynuuj ją, aż dotrzesz do ekranu głównego.
Krok 2: Porozmawiaj z Bot Father
Następnym krokiem byłoby poproszenie ojca bota o stworzenie nowego bota. W prawym górnym rogu ekranu głównego pojawi się ikona wyszukiwania, kliknij ją, aby wyszukać nazwę „ojciec bot”. Botfather jest botem sam w sobie, poprowadzi Cię do stworzenia nowego bota. Kliknij Start i wybierz / newbot, jak pokazano na poniższym obrazku. Teraz bot zapyta o kilka szczegółów, takich jak nazwa twojego bota i nazwa użytkownika bota. Wypełnij te dane i zapamiętaj nazwę użytkownika, ponieważ będziemy jej potrzebować w przyszłości.
Krok 3: Uzyskanie tokena w celu uzyskania dostępu
Nazwałem bota jako circuitdigest, a nazwę użytkownika jako circuitdigestBot. Po tym procesie ojciec botu da ci token dostępu. To jest jak hasło do twojego bota, ludzie mogą kontrolować program twojego bota za pomocą tego klucza tokena. Dlatego przechowuj je w bezpiecznym miejscu i nikomu nie udostępniaj. Po otrzymaniu tego klucza tokena czas przejść do Raspberry Pi.
Krok 4: Telepot do instalacji Telegrama na Raspberry Pi
Korzystanie z Telegram Bot w Raspberry Pi jest możliwe dzięki pakietowi Pythona o nazwie Telepot. Musimy zainstalować ten pakiet na Raspberry Pi, używając następujących poleceń na terminalu Lx
sudo apt-get install python-pip sudo pip install telepot
Po zaimportowaniu Telepota do Raspberry możemy użyć tego pakietu w naszym programie w języku Python do komunikacji z naszym Telegram Botem.
Krok 5: Programowanie Raspberry Pi
Bot, którego właśnie stworzyliśmy w Telegramie, jest jak dziecko, nie może nic zrobić sam, dopóki nie nauczymy go, co i jak robić. To nauczanie można przeprowadzić za pomocą Raspberry Pi i skryptu Python. W tym samouczku zaprogramowałem bota do wykonywania podstawowych czynności, takich jak wysyłanie wiadomości, zdjęcia, dźwięku i dokumentu. Więc kiedy wypowiesz określone polecenie, odpowie ono określoną akcją, polecenie i czynność są wymienione w poniższej tabeli
Polecenie z Telegramu |
Odpowiedź Raspberry Pi |
/cześć |
Odpowiada ciągiem „Cześć! CircuitDigest ” |
/czas |
Odpowiedzi z aktualnym czasem |
/logo |
Odpowiedzi za pomocą obrazu (logo CircuitDigest) |
/plik |
Odpowiedzi za pomocą pliku (zawierającego bieżący program) |
/audio |
Odpowiada za pomocą demonstracyjnego pliku audio |
Kompletny program, aby powyższe działania jest podany na dole tej strony. Ale tuż poniżej wyjaśniłem ważne fragmenty programu, aby pomóc ci zrozumieć, jak działa program.
Pierwszym krokiem jest zaimportowanie wszystkich bibliotek, tutaj oczywiście będziemy potrzebować biblioteki teleportacji, aby korzystać z bota Telegrama. Korzystamy również z biblioteki time, timedate, aby odczytać aktualny czas dla Raspberry pi. Następnie tworzymy teraz obiekt, w którym przechowywana jest wartość.
import time, datetime import telepot z telepot.loop import MessageLoop now = datetime.datetime.now ()
Następnym krokiem jest stworzenie funkcji do podejmowania działań na podstawie poleceń przychodzących z aplikacji Telegram na urządzenia mobilne. Tutaj nazwa funkcji to akcja. To właśnie w tej funkcji bot ożywa. Nasz bot nie może sam zainicjować rozmowy, może odpowiedzieć tylko wtedy, gdy o coś zapytamy. Więc za każdym razem, gdy o coś zapytamy, pojawi się identyfikator czatu. Ten identyfikator czatu jest podobny do adresu, tylko używając tego identyfikatora czatu bot może nam odpowiedzieć. Więc pierwszym krokiem jest odczytanie identyfikatora czatu i wiadomości, którą próbuje do nas przekazać. Drukujemy również otrzymaną wiadomość w celu debugowania.
def action (msg): chat_id = msg command = msg print 'Received:% s'% command
W dalszej części funkcji porównujemy to polecenie z predefiniowanym tekstem i wykonujemy określone zadania. Pierwszym poleceniem będzie / hi, na które odpowiadamy „Cześć! CircuitDigest ”
if command == '/ hi': telegram_bot.sendMessage (chat_id, str ("Cześć! CircuitDigest"))
Następnym poleceniem będzie / czas , na który odpowiadamy aktualny czas. Mamy już czas i datę, tutaj po prostu podziel je na podstawie godziny i minuty i dodaj jako używając funkcji str .
elif polecenie == '/ time': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
Następnym poleceniem będzie / logo , do którego bot pobierze obrazek z adresu url i wyśle go do nas. Obraz można wysłać z adresu URL lub z dysku twardego. Tutaj właśnie użyłem adresu URL, który wyświetla logo CircuitDigest.
elif polecenie == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
Następnym poleceniem będzie / file , które wyśle plik o nazwie Aisha.py z dysku twardego. Możesz wysłać dowolny plik, zmieniając adres katalogu
elif polecenie == '/ file': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
Ostatnim poleceniem będzie / audio . To może wysłać dowolny plik mp3 z dysku twardego, właśnie użyłem pliku audio o nazwie test.mp3 jako demonstracji tutaj
elif polecenie == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Dobrze, teraz jest najważniejszy krok, w którym dajemy naszemu botowi Telegrama dostęp do skryptu Pythona. Tutaj nazywamy bota jako telegram_bot i przypisujemy mu adres tokena, który został podany przez naszego ojca w kroku 3. W poniższej linii usunąłem kilka ostatnich cyfr mojego tokena ze względu na prywatność. Używamy również wydruku, aby wyświetlić szczegóły bota na ekranie powłoki, co pomoże nam zauważyć, że działa.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Mam nadzieję, że rozumiesz, jak działa program, przejdźmy teraz do następnego kroku.
Krok 6: Uruchomienie programu w Raspberry Pi
Jak wspomniano wcześniej, pełny program znajduje się na końcu tej strony, można go również pobrać stąd. Po otwarciu kodu pamiętaj, aby zmienić adres tokena programu na adres tokena.
Teraz uruchom kod Pythona i powinieneś zobaczyć szczegóły swojego bota w oknie powłoki w ten sposób
Tutaj moja nazwa użytkownika bota to circuitdigestBot. Jeśli znajdziesz tutaj nazwę swojego botu, oznacza to, że wszystko jest w porządku.
Gdy zobaczysz komunikat „ działa i działa ”, oznacza to, że Twój bot jest gotowy do działania i może teraz odpowiadać na Twoje polecenia.
Krok 7: Radość z rezultatów
Teraz pozostaje tylko sprawdzić, jak dobrze Twój bot reaguje na Twój program. Wyszukaj nazwę swojego bota, w moim przypadku jest to „circuitdigestBot”. Wyszukaj nazwę użytkownika, a nie nazwę bota, nazwa użytkownika powinna kończyć się na bot.
Po otwarciu bota kliknij Start i wpisz dowolne polecenia, takie jak / cześć, / czas, / plik, / logo lub / audio, a powinieneś otrzymać odpowiednią odpowiedź.
Możesz użyć skryptu powłoki, aby zobaczyć, na co obecnie odpowiada twój skrypt. Całość pracy można znaleźć na wideo podanym na końcu tej strony.
Krok 8: Przybij mi piątkę
Mam nadzieję, że zrozumiałeś samouczek i teraz będziesz w stanie stworzyć tego bota telegramowego Raspberry pi i komunikować się z Raspberry Pi za pomocą aplikacji Telegram. Niestety! Jeśli masz jakiekolwiek problemy, daj mi znać w sekcji komentarzy, a postaram się do Ciebie odezwać. Daj mi również znać, jak podobał Ci się ten projekt lub co chciałbyś, abym zbudował, używając go w nadchodzących projektach.
Również w naszym następnym samouczku. Sprawimy, że będzie to wyglądać fajniej, zmieniając sposób wysyłania poleceń i coś bardziej związanego ze sprzętem na Raspberry Pi.