- Erforderliche Komponenten:
- RF-Modul:
- Arbeitserklärung:
- Schaltungserklärung:
- Installieren der wiringPi-Bibliothek in Raspberry Pi:
- Programmiererklärung:
In dieser Sitzung werden wir eine RF-Fernbedienung mit Raspberry Pi entwickeln, mit der die Geräte drahtlos gesteuert werden können. Mit dieser RF-Fernbedienung können wir die Geräte ein- und ausschalten. Wir haben bereits viele Projekte mit RF-Modulen wie RF-gesteuerten Robotern, handgestengesteuerten Robotern usw. entwickelt. Überprüfen Sie diese, um die Funktionsweise des RF-Moduls zu verstehen.
Erforderliche Komponenten:
Senderseite:
- HF-Sender (ASK Hybrid Transmitter)
- HT12E IC
- 4 Drucktasten
- 750k Widerstand
- 9 Volt Batterie
Empfängerseite:
- Himbeer-Pi
- 16x2 LCD
- 10K POT
- Brotbrett
- 1K Widerstand (fünf)
- 33K Widerstand
- HT12D IC
- HF-Empfänger (ASK Hybrid Receiver)
- LEDs (fünf)
- 10K Widerstand (vier)
- Verbindungskabel
- Energieversorgung
RF-Modul:
Dies ist ein ASK-Hybrid-Sender- und Empfängermodul, das mit einer Frequenz von 433 MHz arbeitet. Dieses Modul verfügt über einen kristallstabilisierten Oszillator zur Aufrechterhaltung einer genauen Frequenzsteuerung für den besten Bereich. Dort brauchen wir für dieses Modul nur eine externe Antenne.
Dieses Modul ist sehr kosteneffizient, wenn eine HF-Kommunikation über große Entfernungen erforderlich ist. Dieses Modul sendet keine Daten über die UART-Kommunikation von PC oder Mikrocontroller direkt, da bei dieser Frequenz und der analogen Technologie viel Rauschen auftritt. Wir können dieses Modul mit Hilfe von Encoder- und Decoder-ICs verwenden, die Daten aus dem Rauschen extrahieren.
Die Reichweite des Senders beträgt bei maximaler Versorgungsspannung etwa 100 Meter, und bei 5 Volt beträgt die Reichweite des Senders etwa 50 bis 60 Meter, wenn ein einfaches Kabel aus einer 17 cm langen Einzelcode-Antenne verwendet wird.
RF-Senderfunktionen:
- Frequenzbereich: 433 MHz
- Ausgangsleistung: 4-16 dBm
- Eingangsversorgung: 3 bis 12 Volt Gleichstrom
Pin Beschreibung von RF Tx:
- GND - Bodenversorgung
- Dateneingang - Dieser Pin akzeptiert serielle Daten vom Encoder
- An diesen Pin sollte Vcc - +5 Volt angeschlossen werden
- Antenne - Eine umwickelte Verbindung zu diesem Pin für die ordnungsgemäße Übertragung von Daten
RF-Empfängerfunktionen:
- Empfindlichkeit: -105 dBm
- ZF-Frequenz: 1 MHz
- Energieeffizient
- Strom 3,5 mA
- Versorgungsspannung: 5 Volt
Pin Beschreibung von RF Rx:
- GND - Boden
- Data In - Dieser Pin gibt dem Decoder serielle Ausgangsdaten
- Data In - Dieser Pin gibt dem Decoder serielle Ausgangsdaten
- An diesen Pin sollte Vcc - +5 Volt angeschlossen werden
- An diesen Pin sollte Vcc - +5 Volt angeschlossen werden
- GND - Boden
- GND - Boden
- Antenne - Eine umwickelte Verbindung zu diesem Pin für den ordnungsgemäßen Empfang von Daten
Arbeitserklärung:
Die Arbeit an diesem Projekt ist sehr einfach. In diesem Projekt haben wir vier Tasten auf der Senderseite (dient als Fernbedienung) verwendet, um die vier LEDs auf der Empfängerseite zu steuern. Wenn wir eine der vier Tasten drücken, codiert der Encoder-IC das Signal und sendet es an den HF-Sender, und der HF-Sender sendet es in der Umgebung. Jetzt empfängt der RF-Empfänger das gesendete Signal und decodiert es mit dem Decoder-IC HT12D und sendet seinen 4-Bit-Ausgang an Raspberry Pi. Dann liest Raspberry Pi diese Bits und führt die zugehörige Aufgabe aus und leuchtet die entsprechende LED. Ein Summer piept eine Sekunde lang, wenn eine Taste gedrückt wird. Ein 16x2-LCD wird auch verwendet, um den Status "EIN" oder "AUS" aller LEDs anzuzeigen.
In diesem Projekt haben wir vier LEDs nur zu Demonstrationszwecken verwendet. Wir können jede Aufgabe auslösen, indem wir die entsprechende Taste bei 'RF Remote' drücken. Ebenso können wir mithilfe des Relais auch AC-Haushaltsgeräte anstelle von LEDs anschließen und diese Geräte mithilfe derselben „RF-Fernbedienung“ drahtlos steuern. Dieselbe Schaltung kann also als RF-basiertes Hausautomationsprojekt mit Raspberry Pi verwendet werden. Wir haben bereits viele Hausautomationsprojekte entwickelt, die über Bluetooth, DTMF, GSM usw. gesteuert werden. Sie können alle hier Hausautomationsprojekte überprüfen.
Schaltungserklärung:
Die Schaltung dieser Raspberry Pi RF-Fernbedienung ist einfach und enthält eine Raspberry Pi-Platine, einen Druckknopf und ein LCD, ein RF-Paar und einen Encoder / Decoder-IC. Raspberry Pi steuert das LCD, liest die Eingabe und sendet die Ausgabe entsprechend der Eingabe. Wir haben hier Raspberry Pi 3 verwendet, aber jedes Raspberry-Modell sollte funktionieren. Die Schaltung ist in zwei Teile unterteilt, einer ist eine HF-Empfängerschaltung und der andere ist eine HF-Senderschaltung. Beide Schaltungen sind in der folgenden Abbildung dargestellt.
Im Empfängerteil sind die LCD-Pins rs, en, d4, d5, d6, d7 im 4-Bit-Modus an der Verkabelung Pi GPIO Pin 11, 10, 6, 5, 4, 1 angeschlossen. Der RF-Empfänger empfängt das Signal vom RF-Sender und der HT12D-IC decodiert es. D8, D9, D10, D11 des HT12D-Decoder-ICs sind direkt an der Verdrahtung PI GPIO-Pin 25, 24, 23 und 22 angeschlossen. Die Ausgangs-LEDs sind an der Verdrahtung Pi GPIO Pin 26, 27, 28 und 29 angeschlossen. Ein Summer wird auch zum Einschalten verwendet Taste bei Verkabelung gedrücktPi GPIO 0.
Die HF-Senderschaltung enthält den HT12E-Encoder-IC und 4 Drucktasten zur Steuerung der 4 LEDs. Im Encoder- und Decoder-IC sind alle Adressleitungen mit Masse verbunden.
Installieren der wiringPi-Bibliothek in Raspberry Pi:
Wie in Python importieren wir den Import RPi.GPIO als IO- Header-Datei, um die GPIO-Pins von Raspberry Pi zu verwenden. Hier in C-Sprache müssen wir die wiringPi-Bibliothek verwenden, um die GPIO-Pins in unserem C-Programm zu verwenden. Wir können es installieren, indem wir die folgenden Befehle einzeln verwenden. Sie können diesen Befehl vom Terminal oder von einigen SSH-Clients wie Putty ausführen (wenn Sie Windows verwenden). In unserem Tutorial Erste Schritte mit Raspberry Pi erfahren Sie mehr über die Handhabung und Konfiguration des Raspberry Pi.
sudo apt-get installiere git-core sudo apt-get aktualisiere sudo apt-get aktualisiere git klon git: //git.drogon.net/wiringPi cd wiringPi git pull origin cd wiringPi./build
Testen Sie die Installation der wiringPi-Bibliothek mit den folgenden Befehlen:
gpio -v gpio readall
Programmiererklärung:
Zuerst fügen wir Header-Dateien hinzu und definieren Pins für LCD, dann initialisieren wir einige Variablen und Pins für die Aufnahme von Eingangs- und LED-Anzeigen.
#einschließen
Danach geben wir allen verwendeten GPIO-Pins in void setup () -Funktionen Anweisungen.
void setup () {if (wiringPiSetup () == -1) {clear (); print ("Start nicht möglich"); setCursor (0,1); print ("wiringPi"); } pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT);……………….
Im Code haben wir die DigitalRead- Funktion verwendet, um die Ausgabe von Decoder zu lesen, und DigitalWrite , um die Ausgabe an LED oder Gerät zu senden.
…………….. while (1) {setCursor (0,0); Drucken ("D1 D2 D3 D4"); if (digitalRead (d1) == 0) {flag1 ++; setCursor (0,1); if (flag1% 2 == 1) {print ("ON"); digitalWrite (led1, HIGH); }……………..
Hier sind einige weitere Funktionen, die in diesem Projekt verwendet wurden.
Die Funktion void lcdcmd wird zum Senden eines Befehls an das LCD verwendet, und die Funktion void write wird zum Senden von Daten an das LCD verwendet.
Die Funktion void clear () wird zum Löschen des LCD verwendet, void setCursor wird zum Festlegen der Cursorposition und des void print zum Senden einer Zeichenfolge an das LCD verwendet.
Die Funktion void begin wird verwendet, um das LCD im 4-Bit-Modus zu initialisieren und den Summer () zu leeren, um den Summer zu piepen.
Überprüfen Sie den vollständigen Code für diese Raspberry RF-Fernbedienung unten.