- Wymagane komponenty:
- Moduł RF:
- Objaśnienie robocze:
- Objaśnienie obwodu:
- Instalowanie bibliotekiiringPi w Raspberry Pi:
- Objaśnienie programowania:
W tej sesji zamierzamy opracować pilota RF przy użyciu Raspberry Pi, który może być używany do bezprzewodowego sterowania urządzeniami. Za pomocą tego pilota RF możemy włączać i wyłączać urządzenia. Wcześniej opracowaliśmy wiele projektów wykorzystujących moduł RF, takich jak robot sterowany radiowo, robot sterowany gestami dłoni itp., Sprawdź je, aby zrozumieć działanie modułu RF.
Wymagane komponenty:
Strona nadajnika:
- Nadajnik RF (nadajnik hybrydowy ASK)
- HT12E IC
- 4 Przyciski
- Rezystor 750k
- Akumulator 9 V.
Strona odbiornika:
- Raspberry Pi
- Wyświetlacz LCD 16x2
- 10K POT
- Deska do chleba
- Rezystor 1 K (pięć)
- Rezystor 33K
- HT12D IC
- Odbiornik RF (odbiornik hybrydowy ASK)
- Diody LED (pięć)
- Rezystor 10 K (cztery)
- Przewód łączący
- Zasilacz
Moduł RF:
Jest to hybrydowy nadajnik i moduł odbiornika ASK pracujący na częstotliwości 433 MHz. Ten moduł ma stabilizowany kryształowo oscylator, który zapewnia dokładną kontrolę częstotliwości i najlepszy zakres. Tam potrzebujemy tylko jednej anteny zewnętrznej dla tego modułu.
Ten moduł jest bardzo opłacalny, gdy wymagana jest komunikacja radiowa o dużym zasięgu. Moduł ten nie przesyła danych bezpośrednio za pomocą komunikacji UART z komputera PC lub mikrokontrolera, ponieważ na tej częstotliwości i w technologii analogowej występuje dużo szumów. Możemy użyć tego modułu za pomocą układów scalonych kodera i dekodera, które wyodrębniają dane z szumu.
Zasięg nadajnika to około 100 metrów przy maksymalnym napięciu zasilania, a dla 5 V zasięg nadajnika to około 50-60 metrów przy zastosowaniu prostego przewodu z pojedynczą anteną kodową o długości 17cm.
Funkcje nadajnika RF:
- Zakres częstotliwości: 433 Mhz
- Moc wyjściowa: 4-16 dBm
- Zasilanie wejściowe: od 3 do 12 V DC
Opis pinów RF Tx:
- GND - uziemienie
- Wejście danych - Ten pin akceptuje dane szeregowe z kodera
- Vcc - +5 Volt należy podłączyć do tego pinu
- Antena - owinięte połączenie do tego pinu w celu poprawnego przesyłania danych
Funkcje odbiornika RF:
- Czułość: -105dBm
- Częstotliwość IF: 1 MHz
- Niskie zużycie energii
- Prąd 3,5 mA
- Napięcie zasilania: 5 woltów
Opis pinów RF Rx:
- GND - ziemia
- Wejście danych - ten styk przekazuje dane wyjściowe do dekodera
- Wejście danych - ten styk przekazuje dane wyjściowe do dekodera
- Vcc - +5 Volt należy podłączyć do tego pinu
- Vcc - +5 Volt należy podłączyć do tego pinu
- GND - ziemia
- GND - ziemia
- Antena - owinięte połączenie z tym pinem w celu prawidłowego odbioru danych
Objaśnienie robocze:
Praca nad tym projektem jest bardzo łatwa. W tym projekcie użyliśmy czterech przycisków po stronie nadajnika (służy jako pilot) do sterowania czterema diodami LED po stronie odbiornika. Po naciśnięciu dowolnego z czterech przycisków układ scalony kodera koduje sygnał i wysyła go do nadajnika RF, a nadajnik RF przesyła go do otoczenia. Teraz odbiornik RF odbiera przesyłany sygnał i dekoduje go za pomocą IC dekodera HT12D i wysyła swoje 4-bitowe wyjście do Raspberry Pi. Następnie Raspberry Pi odczytuje te bity i wykonuje powiązane zadanie oraz zaświeca odpowiednią diodę LED. Po każdym naciśnięciu dowolnego klawisza brzęczyk wydaje dźwięk przez sekundę. Wyświetlacz LCD 16x2 służy również do wyświetlania stanu włączenia lub wyłączenia wszystkich diod LED.
W tym projekcie użyliśmy czterech diod LED tylko do celów demonstracyjnych, możemy uruchomić dowolne zadanie, naciskając odpowiedni przycisk na „RF Remote”. Tak jak możemy również podłączyć urządzenia domowe AC zamiast diod LED, używając przekaźnika i sterować tymi urządzeniami za pomocą tego samego pilota radiowego. Więc ten sam obwód może działać jako projekt automatyki domowej oparty na RF przy użyciu Raspberry Pi. Wcześniej opracowaliśmy wiele projektów automatyki domowej sterowanych za pomocą Bluetooth, DTMF, GSM itp., Możesz sprawdzić wszystkie tutaj Projekty automatyki domowej.
Objaśnienie obwodu:
Obwód tego pilota zdalnego sterowania Raspberry Pi RF jest prosty, który zawiera płytkę Raspberry Pi, przycisk i wyświetlacz LCD, parę RF i układ scalony kodera / dekodera. Raspberry Pi steruje wyświetlaczem LCD, odczytuje dane wejściowe i wysyła dane wyjściowe zgodnie z wejściem. Użyliśmy tutaj Raspberry Pi 3, ale każdy model Raspberry powinien działać. Obwód jest podzielony na dwie części, jedna to obwód odbiornika RF, a druga to obwód nadajnika RF. Oba obwody pokazano na poniższym schemacie.
W części odbiornika, pin rs, en, d4, d5, d6, d7 LCD są podłączone na okablowaniuPi GPIO Pin 11, 10, 6, 5, 4, 1 w trybie 4-bitowym. Odbiornik RF odbiera sygnał z nadajnika RF, a układ scalony HT12D go dekoduje. D8, D9, D10, D11 układu scalonego dekodera HT12D są bezpośrednio podłączone do okablowania pinów 25, 24, 23 i 22 złącza PI GPIO. Diody wyjściowe są podłączone do pinów 26, 27, 28 i 29 w przypadku połączeń GPIO. naciśnięty klawisz na okablowaniuPi GPIO 0.
Obwód nadajnika RF zawiera układ scalony enkodera HT12E i 4 przyciski do sterowania 4 diodami LED. W układach scalonych kodera i dekodera wszystkie linie adresowe są podłączone do masy.
Instalowanie bibliotekiiringPi w Raspberry Pi:
Podobnie jak w Pythonie importujemy RPi.GPIO jako plik nagłówkowy IO , aby używać pinów GPIO Raspberry Pi, tutaj w języku C musimy użyć biblioteki wirePi, aby użyć pinów GPIO w naszym programie C. Możemy go zainstalować za pomocą poniższych poleceń jeden po drugim, możesz uruchomić to polecenie z terminala lub z niektórych klientów SSH, takich jak Putty (jeśli używasz systemu Windows). Przejdź przez nasz samouczek Pierwsze kroki z Raspberry Pi, aby dowiedzieć się więcej na temat obsługi i konfiguracji Raspberry Pi.
sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade git clone git: //git.drogon.net/wiringPi cd okablowaniePi git pull origin cd cablesPi./build
Przetestuj instalację bibliotekiiringPi, użyj poniższych poleceń:
gpio -v gpio readall
Objaśnienie programowania:
Najpierw dołączamy pliki nagłówkowe i definiujemy piny dla LCD, następnie inicjalizujemy niektóre zmienne i piny do pobierania wskazań wejść i diod LED.
#zawierać
Następnie podajemy kierunek wszystkim używanym pinom GPIO w funkcjach void setup () .
void setup () {if (iringPiSetup () == -1) {clear (); print ("Nie można uruchomić"); setCursor (0,1); print ("iringPi "); } pinMode (led1, OUTPUT); pinMode (led2, WYJŚCIE); pinMode (led3, WYJŚCIE); pinMode (led4, WYJŚCIE);……………….
W kodzie wykorzystaliśmy funkcję digitalRead do odczytania wyjścia Dekodera i digitalWrite do wysłania wyjścia do diody LED lub urządzenia.
…………….. while (1) {setCursor (0,0); print ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); if (flag1% 2 == 1) {print ("ON"); digitalWrite (led1, HIGH); }……………..
Oto kilka innych funkcji, które zostały użyte w tym projekcie.
Funkcja void lcdcmd służy do wysyłania poleceń do LCD, a funkcja void write służy do wysyłania danych do LCD.
Funkcja void clear () służy do czyszczenia wyświetlacza LCD, void setCursor służy do ustawiania pozycji kursora, a void print do wysyłania ciągu na LCD.
Funkcja void begin służy do inicjalizacji wyświetlacza LCD w trybie 4-bitowym oraz void brzęczyk () do sygnalizowania brzęczyka.
Sprawdź poniżej pełny kod tego pilota zdalnego sterowania Raspberry RF.