Inhaltsverzeichnis:
- Schritt 1: Sendermodifikationen
- Schritt 2: Empfängermodifikationen: Hinzufügen von PIC16F887 und HD44780 LCD
- Schritt 3: Ein paar Referenzen…
- Schritt 4: Schlussfolgerungen und zukünftige Arbeiten
Video: Drahtlose Kommunikation mit billigen 433MHz-HF-Modulen und Pic-Mikrocontrollern. Teil 2: 4 Schritte (mit Bildern)
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
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
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
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:
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
LoRa 3Km bis 8Km Drahtlose Kommunikation mit kostengünstigem E32 (sx1278/sx1276) Gerät für Arduino, Esp8266 oder Esp32 - Gunook
LoRa 3Km bis 8Km Drahtlose Kommunikation mit kostengünstigem E32-Gerät (sx1278/sx1276) für Arduino, Esp8266 oder Esp32: Ich erstelle eine Bibliothek zur Verwaltung von EBYTE E32 basierend auf der Semtech-Serie von LoRa-Geräten, sehr leistungsstarkes, einfaches und billiges Gerät 3Km-Version hier, 8Km-Version hierSie können über eine Distanz von 3000m bis 8000m arbeiten und haben viele Funktionen und
Drahtlose Kopfhörer Teil 2: 3 Schritte
Drahtlose Kopfhörer Teil 2: Für dieses Upgrade verwenden:Neue Bluetooth-EmpfängerTastenDrähte können aus Twisted Pair entnommen werden
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E
So bauen Sie Ihr eigenes Anemometer mit Reed-Schaltern, Hall-Effekt-Sensor und einigen Schrott auf Nodemcu. - Teil 1 - Hardware: 8 Schritte (mit Bildern)
So bauen Sie Ihr eigenes Anemometer mit Reed-Schaltern, Hall-Effekt-Sensor und einigen Schrott auf Nodemcu. - Teil 1 - Hardware: EinführungSeit ich mit dem Studium von Arduino und der Maker-Kultur begonnen habe, habe ich gerne nützliche Geräte aus Schrott- und Schrottstücken wie Kronkorken, PVC-Stücken, Getränkedosen usw. gebaut. Ich liebe es, eine Sekunde zu geben Leben für jedes Stück oder jeden Kumpel