Πίνακας περιεχομένων:

Ασύρματη επικοινωνία χρησιμοποιώντας φθηνές μονάδες RF 433MHz και μικροελεγκτές Pic. Μέρος 2: 4 βήματα (με εικόνες)
Ασύρματη επικοινωνία χρησιμοποιώντας φθηνές μονάδες RF 433MHz και μικροελεγκτές Pic. Μέρος 2: 4 βήματα (με εικόνες)

Βίντεο: Ασύρματη επικοινωνία χρησιμοποιώντας φθηνές μονάδες RF 433MHz και μικροελεγκτές Pic. Μέρος 2: 4 βήματα (με εικόνες)

Βίντεο: Ασύρματη επικοινωνία χρησιμοποιώντας φθηνές μονάδες RF 433MHz και μικροελεγκτές Pic. Μέρος 2: 4 βήματα (με εικόνες)
Βίντεο: EDCM-ΠΒ04-ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΒΑΛΛΟΝΤΟΣ-7-5-2016-Β. Αντωνίου 2024, Ιούλιος
Anonim
Ασύρματη επικοινωνία χρησιμοποιώντας φθηνές μονάδες RF 433MHz και μικροελεγκτές Pic. Μέρος 2ο
Ασύρματη επικοινωνία χρησιμοποιώντας φθηνές μονάδες RF 433MHz και μικροελεγκτές Pic. Μέρος 2ο

Στο πρώτο μέρος αυτού του οδηγού, έδειξα πώς να προγραμματίσετε ένα PIC12F1822 χρησιμοποιώντας μεταγλωττιστή MPLAB IDE και XC8, για να στείλετε μια απλή συμβολοσειρά ασύρματα χρησιμοποιώντας φθηνές μονάδες TX/RX 433MHz.

Η μονάδα δέκτη συνδέθηκε μέσω προσαρμογέα καλωδίου USB σε UART TTL σε υπολογιστή και τα δεδομένα που ελήφθησαν εμφανίστηκαν στο RealTerm. Η επικοινωνία πραγματοποιήθηκε στα 1200 baud και η μέγιστη εμβέλεια που επιτεύχθηκε ήταν περίπου 20 μέτρα μέσω τοίχων. Οι δοκιμές μου έδειξαν ότι για εφαρμογές όπου δεν υπάρχει ανάγκη για υψηλό ρυθμό δεδομένων και μεγάλη εμβέλεια και για συνεχή μετάδοση, αυτές οι μονάδες είχαν εξαιρετική απόδοση.

Το δεύτερο μέρος αυτού του έργου δείχνει πώς μπορείτε να προσθέσετε έναν μικροελεγκτή PIC16F887 και μια μονάδα LCD 16 × 2 χαρακτήρων στον δέκτη. Επιπλέον, στον πομπό, ακολουθείται ένα απλό πρωτόκολλο με την προσθήκη μερικών προκαταρκτικών byte. Αυτά τα byte είναι απαραίτητα για την ενότητα RX για να προσαρμόσει το κέρδος της πριν λάβει το πραγματικό ωφέλιμο φορτίο. Από την πλευρά του παραλήπτη, ο PIC είναι υπεύθυνος για τη λήψη και την επικύρωση των δεδομένων που εμφανίζονται στην οθόνη LCD.

Βήμα 1: Τροποποιήσεις πομπού

Τροποποιήσεις πομπού
Τροποποιήσεις πομπού
Τροποποιήσεις πομπού
Τροποποιήσεις πομπού
Τροποποιήσεις πομπού
Τροποποιήσεις πομπού

Στο πρώτο μέρος, ο πομπός έστελνε μια απλή συμβολοσειρά κάθε λίγα ms χρησιμοποιώντας οκτώ δυαδικά ψηφία δεδομένων, έναρξη και ένα bit διακοπής στα 1200 bit ανά δευτερόλεπτο. Καθώς η μετάδοση ήταν σχεδόν συνεχής, ο δέκτης δεν είχε πρόβλημα να προσαρμόσει το κέρδος του στα ληφθέντα δεδομένα. Στο δεύτερο μέρος, το υλικολογισμικό τροποποιείται έτσι ώστε η μετάδοση να εκτελείται κάθε 2,3 δευτερόλεπτα. Αυτό επιτυγχάνεται χρησιμοποιώντας τη διακοπή του χρονοδιακόπτη του φύλακα (ρυθμισμένο σε 2,3 δευτερόλεπτα) για να αφυπνιστεί ο μικροελεγκτής, ο οποίος τίθεται σε κατάσταση αδράνειας μεταξύ κάθε μετάδοσης.

Προκειμένου ο δέκτης να έχει χρόνο για να ρυθμίσει με ακρίβεια το κέρδος του, αποστέλλονται μερικά πριμολογικά byte με σύντομους χρόνους LO "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" πριν από τα πραγματικά δεδομένα. Το ωφέλιμο φορτίο υποδεικνύεται από ένα byte έναρξης & και ένα stop**.

Ως εκ τούτου, το απλό πρωτόκολλο περιγράφεται ως εξής:

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

Επιπλέον, ένας πυκνωτής τανταλίου αποσύνδεσης 10uF προστίθεται μεταξύ του V+ και του GND της μονάδας RF για να απαλλαγούμε από τον κυματισμό που προκαλείται από τη μονάδα αύξησης του dc-dc.

Ο ρυθμός Baud παρέμεινε ο ίδιος, αλλά οι δοκιμές μου έδειξαν ότι και στα 2400 baud, η μετάδοση ήταν αποτελεσματική.

Βήμα 2: Τροποποιήσεις δέκτη: Προσθήκη PIC16F887 και HD44780 LCD

Τροποποιήσεις δέκτη: Προσθήκη PIC16F887 και HD44780 LCD
Τροποποιήσεις δέκτη: Προσθήκη PIC16F887 και HD44780 LCD
Τροποποιήσεις δέκτη: Προσθήκη PIC16F887 και HD44780 LCD
Τροποποιήσεις δέκτη: Προσθήκη PIC16F887 και HD44780 LCD
Τροποποιήσεις δέκτη: Προσθήκη PIC16F887 και HD44780 LCD
Τροποποιήσεις δέκτη: Προσθήκη PIC16F887 και HD44780 LCD

Ο σχεδιασμός του δέκτη βασίστηκε στο PIC16F887, αλλά μπορείτε να χρησιμοποιήσετε έναν διαφορετικό PIC με μικρές τροποποιήσεις. Στο έργο μου χρησιμοποίησα αυτό το 40 ακίδων μC, καθώς θα χρειαστώ επιπλέον καρφίτσες για μελλοντικά έργα με βάση αυτό το σχέδιο. Η έξοδος της μονάδας RF συνδέεται με τον ακροδέκτη UART rx, ενώ ένα LCD 16x2 χαρακτήρων (HD44780) συνδέεται μέσω των ακίδων PORTB b2-b7 για την εμφάνιση των ληφθέντων δεδομένων.

Όπως και στο Μέρος 1, τα δεδομένα που λαμβάνονται εμφανίζονται επίσης στο RealTerm. Αυτό επιτυγχάνεται χρησιμοποιώντας τον ακροδέκτη UART tx, ο οποίος συνδέεται μέσω προσαρμογέα καλωδίου USB σε UART TTL σε υπολογιστή.

Εξετάζοντας το υλικολογισμικό, όταν πραγματοποιείται διακοπή UART, το πρόγραμμα ελέγχει εάν το byte που λαμβάνεται είναι byte έναρξης ('&'). Εάν ναι, ξεκινά την εγγραφή των επόμενων byte, έως ότου πιάσει ένα stop byte ('*'). Μόλις ληφθεί ολόκληρη η πρόταση και αν συμμορφώνεται με το απλό πρωτόκολλο που περιγράφηκε προηγουμένως, τότε αποστέλλεται στην οθόνη LCD, καθώς και στη θύρα UART tx.

Πριν από τη λήψη του byte εκκίνησης, ο δέκτης έχει ήδη προσαρμόσει το κέρδος του χρησιμοποιώντας τα προηγούμενα bytes προοιμίου. Αυτά είναι κρίσιμα για την ομαλή λειτουργία του δέκτη. Πραγματοποιείται ένας απλός έλεγχος σφάλματος υπέρβασης και πλαισίωσης, ωστόσο αυτό είναι μόνο μια βασική εφαρμογή χειρισμού σφαλμάτων UART.

Όσον αφορά το υλικό, χρειάζονται μερικά μέρη για τον δέκτη:

1 x PIC16F887

1 x HD44780

1 x μονάδα RF Rx 433Mhz

Πυκνωτής τανταλίου 1 x 10 μF (αποσύνδεση)

Περικοπή 1 x 10 K (φωτεινότητα γραμματοσειράς LCD)

1 x 220 Ω 1/4 W αντίσταση (LCD οπίσθιος φωτισμός)

1 x 1 KΩ 1/4 W

1 x Κεραία 433Mhz, 3dbi

Στην πράξη, τα λαμβανόμενα λειτούργησαν εξαιρετικά καλά σε εμβέλεια έως 20 μέτρα μέσω τοίχων.

Βήμα 3: Λίγες αναφορές…

Υπάρχουν πολλά ιστολόγια στον ιστό που παρέχουν συμβουλές για προγραμματισμό και αντιμετώπιση προβλημάτων PIC εκτός από τον επίσημο ιστότοπο της Microschip. Βρήκα τα ακόλουθα πολύ χρήσιμα:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

Βήμα 4: Συμπεράσματα και μελλοντική εργασία

Ελπίζω ότι αυτό το εκπαιδευτικό σάς βοήθησε να καταλάβετε πώς να χρησιμοποιείτε μονάδες RF και μικροελεγκτές Pic. Μπορείτε να προσαρμόσετε το υλικολογισμικό σας στις δικές σας ανάγκες και να συμπεριλάβετε CRC και κρυπτογράφηση. Εάν θέλετε να κάνετε το σχέδιό σας ακόμη πιο εξελιγμένο, μπορείτε να χρησιμοποιήσετε την τεχνολογία Keeloq της Microschip. Σε περίπτωση που η εφαρμογή σας χρειάζεται δεδομένα διπλής κατεύθυνσης, θα πρέπει να έχετε ένα ζευγάρι TX/RX και στους δύο μικροελεγκτές ή μπορείτε να χρησιμοποιήσετε πιο εξελιγμένο πομποδέκτη ενότητες. Ωστόσο, χρησιμοποιώντας αυτού του είδους τις φθηνές μονάδες 433MHz, μόνο η μισή διπλή επικοινωνία μπορεί να επιτευχθεί. Επιπλέον, για να κάνετε την επικοινωνία πιο αξιόπιστη, θα πρέπει να έχετε κάποια μορφή χειραψίας μεταξύ TX και RX.

Στο επόμενο εκπαιδευτικό, θα σας δείξω μια πρακτική εφαρμογή όπου στον πομπό προστίθεται περιβαλλοντικός αισθητήρας με θερμοκρασία, βαρομετρική πίεση και υγρασία. Εδώ, τα δεδομένα που μεταδίδονται θα περιλαμβάνουν crc και θα έχουν μια βασική κρυπτογράφηση.

Ο αισθητήρας θα χρησιμοποιεί τη θύρα i2c του PIC12F1822, ενώ η εφαρμογή τόσο του πομπού όσο και του δέκτη θα εκτεθεί μέσω σχηματικών και αρχείων pcb. Ευχαριστώ που με διαβάζετε!

Συνιστάται: