Inhaltsverzeichnis:

Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2: 4 Schritte (mit Bildern)
Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2: 4 Schritte (mit Bildern)

Video: Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2: 4 Schritte (mit Bildern)

Video: Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2: 4 Schritte (mit Bildern)
Video: drahtlose Kameramarken, am besten keine WLAN-Überwachungskameras Billig 2024, Juni
Anonim
Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2
Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2

Im ersten Teil dieser Anleitung habe ich gezeigt, wie man einen PIC12F1822 mit MPLAB IDE und XC8-Compiler programmiert, um eine einfache Zeichenfolge drahtlos mit billigen TX / RX 433 MHz-Modulen zu senden.

Das Empfängermodul wurde über einen USB-zu-UART-TTL-Kabeladapter mit einem PC verbunden und die empfangenen Daten wurden auf RealTerm angezeigt. Die Kommunikation erfolgte mit 1200 Baud und die maximal erreichte Reichweite betrug ca. 20 Meter durch Wände hindurch. Meine Tests haben gezeigt, dass diese Module für Anwendungen, bei denen keine hohe Datenrate und große Reichweite erforderlich ist, und für eine kontinuierliche Übertragung außergewöhnlich gut funktionieren.

Der zweite Teil dieses Projekts zeigt, wie ein PIC16F887-Mikrocontroller und ein 16 × 2-Zeichen-LCD-Modul am Empfänger hinzugefügt werden. Darüber hinaus wird auf dem Sender ein einfaches Protokoll mit dem Hinzufügen einiger Preample-Bytes verfolgt. Diese Bytes sind für das RX-Modul erforderlich, um seine Verstärkung anzupassen, bevor es die tatsächliche Nutzlast erhält. Auf der Empfängerseite ist der PIC dafür verantwortlich, die auf dem LCD-Bildschirm angezeigten Daten zu erhalten und zu validieren.

Schritt 1: Sendermodifikationen

Sendermodifikationen
Sendermodifikationen
Sendermodifikationen
Sendermodifikationen
Sendermodifikationen
Sendermodifikationen

Im ersten Teil sendete der Sender alle paar ms einen einfachen String mit acht Datenbits, einem Start- und einem Stoppbit mit 1200 Bits pro Sekunde. Da die Übertragung fast kontinuierlich war, konnte der Empfänger seine Verstärkung problemlos an die empfangenen Daten anpassen. Im zweiten Teil wird die Firmware so modifiziert, dass die Übertragung alle 2,3 Sekunden erfolgt. Dies wird mit dem Watchdog-Timer-Interrupt (auf 2,3 s eingestellt) erreicht, um den Mikrocontroller aufzuwecken, der zwischen jeder Übertragung in den Schlafmodus versetzt wird.

Damit der Empfänger Zeit hat, seine Verstärkung fein abzustimmen, werden vor den eigentlichen Daten einige Präambelbytes mit kurzen LO-Zeiten "(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)" gesendet. Payload wird dann durch ein Start-'&' und ein Stop-'*'-Byte angezeigt.

Daher wird das einfache Protokoll wie folgt beschrieben:

(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)&Hallo InstWorld!*

Darüber hinaus wird ein 10uF-Entkopplungs-Tantalkondensator zwischen V+ und GND des HF-Moduls hinzugefügt, um die Welligkeit zu beseitigen, die durch das DC-DC-Aufwärtsmodul verursacht wird.

Die Baudrate blieb gleich, aber meine Tests zeigten, dass auch bei 2400 Baud die Übertragung effizient war.

Schritt 2: Empfängermodifikationen: Hinzufügen von PIC16F887 und HD44780 LCD

Empfängermodifikationen: Hinzufügen von PIC16F887 und HD44780 LCD
Empfängermodifikationen: Hinzufügen von PIC16F887 und HD44780 LCD
Empfängermodifikationen: Hinzufügen von PIC16F887 und HD44780 LCD
Empfängermodifikationen: Hinzufügen von PIC16F887 und HD44780 LCD
Empfängermodifikationen: Hinzufügen von PIC16F887 und HD44780 LCD
Empfängermodifikationen: Hinzufügen von PIC16F887 und HD44780 LCD

Das Empfängerdesign basierte auf PIC16F887, aber Sie können mit kleinen Modifikationen einen anderen PIC verwenden. In meinem Projekt habe ich diesen 40-Pin-μC verwendet, da ich für zukünftige Projekte, die auf diesem Design basieren, zusätzliche Pins benötigen werde. Der Ausgang des HF-Moduls ist mit dem UART-RX-Pin verbunden, während ein 16x2-Zeichen-LCD (HD44780) über die PORTB-Pins b2-b7 verbunden ist, um die empfangenen Daten anzuzeigen.

Wie bei Teil 1 werden die empfangenen Daten auch auf RealTerm angezeigt. Dies wird über einen UART-TX-Pin erreicht, der über einen USB-zu-UART-TTL-Kabeladapter mit einem PC verbunden ist.

Wenn ein UART-Interrupt stattfindet, überprüft das Programm, ob das empfangene Byte ein Startbyte ('&') ist. Wenn ja, beginnt es mit der Aufzeichnung der nachfolgenden Bytes, bis ein Stoppbyte abgefangen wird ('*'). Sobald der gesamte Satz erhalten ist und dem zuvor beschriebenen einfachen Protokoll entspricht, wird er an den LCD-Bildschirm sowie an den UART-TX-Port gesendet.

Vor dem Empfang des Startbytes hat der Empfänger seine Verstärkung bereits unter Verwendung der vorhergehenden Präambelbytes angepasst. Diese sind entscheidend für den reibungslosen Betrieb des Empfängers. Es wird eine einfache Überlauf- und Rahmenfehlerprüfung durchgeführt, dies ist jedoch nur eine grundlegende UART-Fehlerbehandlungsimplementierung.

Hardwareseitig werden für den Empfänger einige Teile benötigt:

1 x PIC16F887

1 x HD44780

1 x RF Rx Modul 433Mhz

1 x 10 μF Tantalkondensator (Entkopplung)

1 x 10 K Trimmer (LCD-Schrifthelligkeit)

1 x 220 Ω 1/4 W Widerstand (LCD-Hintergrundbeleuchtung)

1 x 1 KΩ 1/4 W

1 x Antenne 433Mhz, 3dbi

In der Praxis funktionierte der Empfang außergewöhnlich gut in Reichweiten von bis zu 20 Metern durch Wände hindurch.

Schritt 3: Ein paar Referenzen…

Neben der offiziellen Microschip-Website gibt es viele Blogs im Internet, die Tipps zur PIC-Programmierung und Fehlerbehebung geben. Folgendes fand ich sehr hilfreich:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

Schritt 4: Schlussfolgerungen und zukünftige Arbeiten

Ich hoffe, dieses anweisbare hat Ihnen geholfen zu verstehen, wie man HF-Module und Pic-Mikrocontroller verwendet. Sie können Ihre Firmware an Ihre eigenen Bedürfnisse anpassen und CRC und Verschlüsselung einbeziehen. Wenn Sie Ihr Design noch ausgefeilter gestalten möchten, können Sie die Keeloq-Technologie von Microschip verwenden. Falls Ihre Anwendung bidirektionale Daten benötigt, benötigen Sie ein Paar TX/RX an beiden Mikrocontrollern, oder Sie können komplexere Transceiver verwenden Module. Mit dieser Art von billigen 433MHz-Modulen kann jedoch nur eine Halbduplex-Kommunikation erreicht werden. Um die Kommunikation zuverlässiger zu machen, benötigen Sie außerdem eine Form von Handshake zwischen TX und RX.

Auf der nächsten Anleitung zeige ich Ihnen eine praktische Anwendung, bei der ein Umgebungssensor mit Temperatur, Luftdruck und Luftfeuchtigkeit am Sender hinzugefügt wird. Dabei enthalten die übertragenen Daten crc und werden grundsätzlich verschlüsselt.

Der Sensor verwendet den i2c-Port des PIC12F1822, während die Implementierung von Sender und Empfänger durch Schaltpläne und PCB-Dateien offengelegt wird. Danke fürs Lesen!

Empfohlen: