- Wymagane materiały:
- Schemat obwodu:
- Program Raspberry Python:
- Sterowanie diodami za pomocą Raspberry Pi i Telegrama:
Telegram to optymalna aplikacja do połączenia z Raspberry Pi we wszystkich naszych mobilnych celach sterowania. Ma bardzo dobre wsparcie dla programistów, a wkrótce planowane jest udostępnienie wielu funkcji w celu zwiększenia wydajności botów Telegram. W naszym poprzednim samouczku dowiedzieliśmy się, jak skonfigurować bota telegramowego dla raspberry pi, a także nauczyliśmy się rozmawiać z nim i udostępniać obrazy, dokumenty i pliki audio.
Teraz przejdziemy do następnego kroku, ucząc się, jak możemy kontrolować piny GPIO w pinach Raspberry za pomocą Telegrama, aby zapewnić wsparcie sprzętowe dla naszego bota. W tym samouczku podłączymy cztery diody LED do pinów GPIO Raspberry Pi i przełączymy je za pomocą języka naturalnego (jak na czacie) z Telegrama. Brzmi interesująco, prawda? Zacznijmy.
Wymagane materiały:
- Cztery diody LED (dowolny kolor)
- Raspberry Pi (z połączeniem internetowym)
- Płytka prototypowa
- Przewody łączące
Wymagania wstępne:
Przed przystąpieniem do samouczka upewnij się, że Raspberry Pi jest podłączony do Internetu i możesz uruchamiać programy w języku Python na swoim Pi. Przeczytaj również poprzedni samouczek, aby dowiedzieć się, jak skonfigurować bota Telegrama z Raspberry Pi Pi, ponieważ zakładam, że znasz te rzeczy, aby kontynuować projekt.
Jeśli jesteś nowy w Raspberry Pi, postępuj zgodnie z naszym artykułem wprowadzającym do Raspberry Pi i innymi samouczkami Raspberry Pi.
Schemat obwodu:
Schemat obwodu do sterowania diodami LED za pomocą Raspberry Pi i aplikacji Telegram na Androida to nic innego jak cztery diody LED i kilka przewodów połączeniowych. Nie będziemy potrzebować rezystorów ograniczających prąd, ponieważ piny GPIO Raspberry Pi działają na 3.3V TTL. Postępuj zgodnie z poniższym obwodem i podłącz diodę LED.
Poniższa tabela pomoże Ci określić numer pinu i numer GPIO dla podłączenia czterech diod LED.
Led Terminal |
Kod PIN |
Numer GPIO |
Zielona anoda |
Kołek 31 |
GPIO 6 |
Czerwona anoda |
Kołek 33 |
GPIO 13 |
Żółta anoda |
Kołek 35 |
GPIO 19 |
Biała anoda |
Kołek 37 |
GPIO 26 |
Katoda wszystkich czterech |
Kołek 39 |
Ziemia |
Poniżej znajduje się schemat obwodu, w którym cztery diody LED są połączone zgodnie z tabelą podaną powyżej:
Po wykonaniu połączeń konfiguracja sprzętu powinna wyglądać jak poniżej.
Program Raspberry Python:
Gdy sprzęt będzie gotowy, możemy przejść do programu w języku Python. W tym programie musimy odczytać dane (wiadomość) wysłane z bota Telegrama i odpowiednio przełączyć diodę LED. Aby było to bardziej naturalne, zamiast sprawdzać każde zdanie i na sztywno zakodować je w naszym programie, możemy sprawdzić słowa i postępować zgodnie z nimi.
Więc program przede wszystkim sprawdzi, czy występują dwa słowa, są włączone i wyłączone. Po wykryciu któregokolwiek z tych dwóch słów, będzie szukał innych słów kluczowych, takich jak biały, żółty, zielony i czerwony. Odpowiednia kolorowa dioda LED zostanie przełączona tylko wtedy, gdy słowo zostanie wykryte. Zaktualizujemy również ciąg znaków dla wykrytych słów, aby wysłać wiadomość z powrotem do bota telegramu.
Cały program można znaleźć na dole tej strony; tuż poniżej wyjaśniłem program, dzieląc go na małe znaczące śmieci.
Aby ten program działał, potrzebujemy telepota pobranego i zaimportowanego do naszego Raspberry Pi. W naszym poprzednim samouczku pobraliśmy już teleport w naszym Raspberry Pi, więc teraz musimy tylko zaimportować go do naszego programu wraz z biblioteką GPIO, jak pokazano poniżej.
import RPi.GPIO as GPIO import telepot z telepot.loop import MessageLoop
Będziemy sterować oświetleniem LED za pomocą tego programu, a kolorami diod będzie biały, żółty, czerwony i zielony. Są podłączone do pinów pokazanych na schemacie obwodu; niech nam określić nazwy pinów tych diod w zależności od ich koloru tak, że jest z nich korzystać w programie.
biały = 26 żółty = 19 czerwony = 13 zielony = 6
Następnym krokiem byłoby zdefiniowanie wszystkich tych pinów LED jako pinów wyjściowych i zdefiniowanie ich jako domyślnie wyłączone za pomocą poniższych linii.
#LED Biały GPIO.setup (biały, GPIO.OUT) GPIO.output (biały, 0) # Początkowo wyłączony #LED Żółty GPIO.setup (żółty, GPIO.OUT) GPIO.output (żółty, 0) # Początkowo wyłączony #LED Czerwony GPIO.setup (czerwony, GPIO.OUT) GPIO.output (czerwony, 0) # Początkowo wyłączony #LED zielony GPIO.setup (zielony, GPIO.OUT) GPIO.output (zielony, 0) # Początkowo wyłączony
Jak dowiedzieliśmy się z naszego poprzedniego tutoriala, wszystkie akcje, które musi wykonać bot Raspberry, zostaną zdefiniowane wewnątrz akcji funkcji. Tutaj musimy zmusić bota do odsłuchania wiadomości wysłanej z telefonu komórkowego, porównania go z niektórymi słowami kluczowymi i odpowiednio przełączenia diody LED.
Do każdej wiadomości wysyłanej z telefonu komórkowego będzie dołączony identyfikator i polecenie czatu. Ten identyfikator czatu jest wymagany przez program, aby odpowiedzieć nadawcy. Więc zapisujemy identyfikator czatu i wiadomość, jak pokazano poniżej.
chat_id = msg command = msg
Teraz wszystko, co wyślemy z telefonu, zostanie zapisane jako ciąg w zmiennej polecenie . Więc wszystko, co musimy zrobić, to sprawdzić słowa kluczowe w tej zmiennej. Python ma polecenie ułatwiające pracę. Na przykład, jeśli musimy sprawdzić, czy słowo „on” występuje w ciągu zapisanym w zmiennej polecenia , możemy po prostu użyć poniższej linii.
jeśli „włączone” w poleceniu:
Podobnie sprawdzamy wszystkie słowa kluczowe, a gdy otrzymamy „on”, przystępujemy do sprawdzania, o jakim kolorze wspomniał użytkownik. Odbywa się to również za pomocą tych samych poleceń, porównując te same słowa kluczowe. Aktualizujemy również ciąg o nazwie komunikat, na który można odpowiedzieć użytkownikowi jako komunikat o stanie.
jeśli „on” w poleceniu: message = „Włączony” jeśli „biały” w poleceniu: komunikat = komunikat + „biały” GPIO.output (biały, 1) jeśli „żółty” w poleceniu: komunikat = komunikat + „żółty” GPIO.output (żółty, 1) jeśli „czerwony” w poleceniu: komunikat = wiadomość + „czerwony” GPIO.output (czerwony, 1) jeśli „zielony” w poleceniu: komunikat = komunikat + „zielony” GPIO.output (zielony, 1) jeśli w poleceniu „wszystko”: komunikat = komunikat + „wszystko” GPIO.output (biały, 1) GPIO.output (żółty, 1) GPIO.output (czerwony, 1) GPIO.output (zielony, 1) komunikat = komunikat + "światła" telegram_bot.sendMessage (chat_id, wiadomość)
Jak pokazano powyżej, szukamy słów kluczowych, takich jak „zielony”, „biały”, „czerwony”, „żółty” i „wszystko” oraz „włączony” tylko dla tej konkretnej diody LED. Po zakończeniu pracy wysyłamy wiadomość z powrotem do użytkownika o tym, co się właśnie stało. Tej samej metody można użyć, aby dobrze wyłączyć światła.
jeśli „wyłączone” w poleceniu: komunikat = „Wyłączony” jeśli „biały” w poleceniu: komunikat = komunikat + „biały” GPIO.output (biały, 0) jeśli „żółty” w poleceniu: komunikat = komunikat + „żółty” GPIO.output (żółty, 0) jeśli „czerwony” w poleceniu: komunikat = wiadomość + „czerwony” GPIO.output (czerwony, 0) jeśli „zielony” w poleceniu: komunikat = komunikat + „zielony” GPIO.output (zielony, 0) jeśli w poleceniu „wszystko”: komunikat = wiadomość + „wszystko” GPIO.output (biały, 0) GPIO.output (żółty, 0) GPIO.output (czerwony, 0) GPIO.output (zielony, 0) komunikat = komunikat + "światła" telegram_bot.sendMessage (chat_id, wiadomość)
Sterowanie diodami za pomocą Raspberry Pi i Telegrama:
Podłącz swoje diody LED i uruchom program w Pythonie. Upewnij się, że zmieniłeś adres tokena dla swojego bota. I zacznij wpisywać polecenia, które chcesz. Na przykład, aby włączyć czerwone i żółte światło, możesz użyć dowolnego z następujących poleceń.
1. włącz czerwone i żółte światło
2. Włącz prawy kolor czerwony i żółty
3. Na czerwono i żółto
4.Please umieścić na tym żółtym i czerwonym świetle
Jak widać, bot szuka tylko słów kluczowych i zignoruje inne słowa w zdaniu, w ten sposób możesz mówić do niego w naturalny sposób. Pełne działanie projektu można znaleźć w wideo podanym na końcu tej strony.
Śmiało! baw się swoim projektem i baw się dobrze. Możesz teraz przenieść to na zupełnie nowy poziom. Dzięki połączeniu tego samouczka mamy możliwość kontrolowania dowolnego sprzętu z naszego smartfona z dowolnego miejsca na świecie, a także otrzymywania danych wejściowych / wyników z naszego Raspberry Pi w postaci wiadomości, dźwięku, obrazu, a nawet jako dokumentu. Jeśli zamienisz diody LED na przekaźniki i urządzenia AC, może to być automatyka domowa sterowana smartfonem. Wykorzystaj więc swoją kreatywność i twórz własne fajne projekty…
Mam nadzieję, że spodobał Ci się projekt i podobało Ci się budowanie czegoś podobnego. Daj mi znać, jeśli masz jakieś problemy, korzystając z sekcji komentarzy, a chętnie Ci pomogę. Podziel się także ze mną swoim fajnym pomysłem i pozwól nam zobaczyć, co możemy zbudować.