- Απαιτούμενα υλικά
- Σύνδεση Raspberry Pi με LoRa
- Σύνδεση του Arduino με το LoRa
- pyLoRa για Raspberry Pi
- Διαμόρφωση της μονάδας Raspberry Pi για LoRa
- Προγραμματισμός Raspberry Pi για LoRa
- Κωδικός Arduino για LoRa για επικοινωνία με το Raspberry Pi
- Δοκιμή της επικοινωνίας LoRa μεταξύ Raspberry Pi και Arduino
Το LoRa γίνεται όλο και πιο δημοφιλές με την εμφάνιση των IoT, Connected Cars, M2M, Industry 4.0 κ.λπ. Λόγω της ικανότητάς του να επικοινωνεί σε μεγάλες αποστάσεις με πολύ λιγότερη ισχύ, χρησιμοποιείται κατά προτίμηση από τους σχεδιαστές για την αποστολή / λήψη δεδομένων από μπαταρία Thing. Έχουμε ήδη συζητήσει τα βασικά του LoRa και τον τρόπο χρήσης του LoRa με το Arduino. Αν και η τεχνολογία προορίζεται αρχικά για έναν LoRa Node να επικοινωνεί με μια πύλη LoRa, υπάρχουν πολλά σενάρια στα οποία ένας LoRa Node πρέπει να επικοινωνεί με έναν άλλο LoRa Node για την ανταλλαγή πληροφοριών σε μεγάλες αποστάσεις. Έτσι, σε αυτό το σεμινάριο θα μάθουμε πώς να χρησιμοποιούμε μια μονάδα LoRa SX1278 με Raspberry piγια να επικοινωνήσετε με ένα άλλο SX1278 συνδεδεμένο με έναν μικροελεγκτή όπως το Arduino. Αυτή η μέθοδος μπορεί να είναι χρήσιμη σε πολλά μέρη, δεδομένου ότι το Arduino θα μπορούσε να λειτουργήσει ως διακομιστής για να πάρει δεδομένα από αισθητήρες και να τα στείλει στο Pi σε μεγάλη απόσταση μέσω του LoRa και στη συνέχεια το Pi που ενεργεί ως πελάτης μπορεί να λάβει αυτές τις πληροφορίες και να το ανεβάσει στο θα μπορούσε δεδομένου ότι έχει πρόσβαση στο Διαδίκτυο. Ακούγεται ενδιαφέρον, έτσι; Ας ξεκινήσουμε λοιπόν.
Απαιτούμενα υλικά
- SX1278 433MHz LoRa Module - 2 Αριθ
- Κεραία 433MHz LoRa - 2Nos
- Arduino UNO- ή άλλη έκδοση
- Raspberry Pi 3
Υποτίθεται ότι το Raspberry Pi σας έχει ήδη αναβοσβήνει με ένα λειτουργικό σύστημα και μπορεί να συνδεθεί στο Διαδίκτυο. Εάν όχι, ακολουθήστε τον οδηγό Ξεκινώντας με το Raspberry Pi πριν συνεχίσετε. Εδώ χρησιμοποιούμε το Rasbian Jessie εγκατεστημένο στο Raspberry Pi 3.
Προειδοποίηση: Χρησιμοποιείτε πάντα τη μονάδα SX1278 LoRa με κεραίες 433 MHz. αλλιώς η μονάδα μπορεί να καταστραφεί.
Σύνδεση Raspberry Pi με LoRa
Πριν μπείτε στα πακέτα λογισμικού, ας ετοιμάσουμε το υλικό. Το SX1278 είναι μια μονάδα Lora 16 ακίδων που επικοινωνεί χρησιμοποιώντας SPI σε λογική 3.3V. Το Raspberry pi λειτουργεί επίσης σε λογικό επίπεδο 3.3V και διαθέτει επίσης ενσωματωμένη θύρα SPI και ρυθμιστή 3.3V. Έτσι μπορούμε να συνδέσουμε απευθείας τη μονάδα LoRa με το Raspberry Pi. Ο πίνακας σύνδεσης φαίνεται παρακάτωRaspberry Pi | Ενότητα Lora - SX1278 |
3.3V | 3.3V |
Εδαφος | Εδαφος |
GPIO 10 | MOSI |
GPIO 9 | ΜΙΣΟ |
GPIO 11 | SCK |
GPIO 8 | Nss / Ενεργοποίηση |
GPIO 4 | DIO 0 |
GPIO 17 | DIO 1 |
GPIO 18 | DIO 2 |
GPIO 27 | DIO 3 |
GPIO 22 | RST |
Μπορείτε επίσης να χρησιμοποιήσετε το παρακάτω διάγραμμα κυκλώματος για αναφορά. Σημειώστε ότι το διάγραμμα κυκλώματος δημιουργήθηκε χρησιμοποιώντας τη μονάδα RFM9x που είναι πολύ παρόμοια με τη μονάδα SX1278, επομένως η εμφάνιση ενδέχεται να διαφέρει στην παρακάτω εικόνα.
Οι συνδέσεις είναι αρκετά ευθείες προς τα εμπρός, μόνο το πρόβλημα που μπορεί να αντιμετωπίσετε είναι ότι το SX1278 δεν είναι συμβατό με το breadboard, επομένως πρέπει να χρησιμοποιήσετε καλώδια σύνδεσης απευθείας για να κάνετε τις συνδέσεις ή να χρησιμοποιήσετε δύο μικρές κάρτες ψωμιού όπως φαίνεται παρακάτω. Επίσης, λίγοι άνθρωποι προτείνουν την τροφοδοσία της μονάδας LoRa με ξεχωριστή τροφοδοσία 3.3V, καθώς το Pi ενδέχεται να μην είναι σε θέση να παρέχει αρκετό ρεύμα. Ωστόσο, η Lora που είναι μονάδα χαμηλής ισχύος πρέπει να λειτουργεί στη ράγα 3.3V του Pi, δοκίμασα το ίδιο και βρήκα ότι λειτουργεί χωρίς κανένα πρόβλημα. Αλλά, πάρτε το ακόμα με μια πρέζα αλάτι. Η ρύθμιση σύνδεσης LoRa με Raspberry pi μοιάζει κάπως έτσι παρακάτω
Σύνδεση του Arduino με το LoRa
Η σύνδεση για τη μονάδα Arduino παραμένει η ίδια με αυτήν που χρησιμοποιήσαμε στο προηγούμενο σεμινάριό μας. Η μόνη διαφορά θα είναι αντί να χρησιμοποιήσουμε τη βιβλιοθήκη από το Sandeep Mistry, θα χρησιμοποιήσουμε τη βιβλιοθήκη Rspreal με βάση το Radio head το οποίο θα συζητήσουμε αργότερα σε αυτό το έργο. Το κύκλωμα δίνεται παρακάτω
Και πάλι μπορείτε να χρησιμοποιήσετε τον πείρο 3.3V στο Arduino Uno ή να χρησιμοποιήσετε έναν ξεχωριστό ρυθμιστή 3.3V. Σε αυτό το έργο έχω χρησιμοποιήσει τον ενσωματωμένο ρυθμιστή τάσης. Ο πίνακας σύνδεσης καρφιτσών δίνεται παρακάτω για να σας βοηθήσει να κάνετε τις συνδέσεις εύκολα.
Ενότητα LoRa SX1278 | Διοικητικό Συμβούλιο Arduino UNO |
3.3V | 3.3V |
Gnd | Gnd |
En / Nss | Δ10 |
G0 / DIO0 | Δ2 |
SCK | Δ13 |
ΜΙΣΟ | Δ12 |
MOSI | Δ11 |
RST | Δ9 |
Επειδή η μονάδα δεν ταιριάζει σε ένα breadboard, έχω χρησιμοποιήσει τα καλώδια σύνδεσης απευθείας για να κάνω τις συνδέσεις. Μόλις γίνει η σύνδεση, η ρύθμιση Arduino LoRa θα μοιάζει με την παρακάτω
pyLoRa για Raspberry Pi
Υπάρχουν πολλά πακέτα python που μπορείτε να χρησιμοποιήσετε με το LoRa. Επίσης, συνήθως το Raspberry Pi χρησιμοποιείται ως LoRaWAN για τη λήψη δεδομένων από πολλούς κόμβους LoRa. Όμως, σε αυτό το έργο ο στόχος μας είναι να κάνουμε επικοινωνία Peer to Peer μεταξύ δύο μονάδων Raspberry Pi ή μεταξύ Raspberry Pi και Arduino. Έτσι, αποφάσισα να χρησιμοποιήσω το πακέτο pyLoRa. Διαθέτει μονάδες rpsreal LoRa Arduino και rpsreal LoRa Raspberry pi που μπορούν να χρησιμοποιηθούν στο περιβάλλον Arduino και Raspberry Pi. Προς το παρόν, ας επικεντρωθούμε στο περιβάλλον Raspberry Pi.
Διαμόρφωση της μονάδας Raspberry Pi για LoRa
Όπως είπε νωρίτερα Η μονάδα λειτουργεί Lora με την επικοινωνία SPI, έτσι πρέπει να ενεργοποιήσετε SPI για Pi και, στη συνέχεια, εγκαταστήστε το pylora πακέτο. Ακολουθήστε τα παρακάτω βήματα για να κάνετε το ίδιο, αφού ανοίξετε το παράθυρο τερματικού του Pi. Και πάλι, χρησιμοποιώ στόκος για να συνδεθώ στο Pi μου, μπορείτε να χρησιμοποιήσετε την κατάλληλη μέθοδο
Βήμα 1: Μπείτε στο παράθυρο διαμόρφωσης χρησιμοποιώντας την ακόλουθη εντολή. Για να λάβετε το παρακάτω παράθυρο
sudo raspi-config
Βήμα 2: Μεταβείτε στις επιλογές διασύνδεσης και ενεργοποιήστε το SPI όπως φαίνεται στην παρακάτω εικόνα. Πρέπει να ενεργοποιήσουμε τη διασύνδεση SPI γιατί όπως συζητήσαμε το LCD και το PI επικοινωνεί μέσω του πρωτοκόλλου SPI
Βήμα 3: Αποθηκεύστε τις αλλαγές και επιστρέψτε στο παράθυρο του τερματικού. Βεβαιωθείτε ότι το pip και το python έχουν ενημερωθεί και, στη συνέχεια, εγκαταστήστε το πακέτο RPi.GPIO χρησιμοποιώντας την ακόλουθη εντολή.
εγκατάσταση pip RPi.GPIO
Αυτή η κατηγορία πακέτων θα μας βοηθήσει να ελέγξουμε τον πείρο GPIO στο Pi. Εάν εγκατασταθεί με επιτυχία η οθόνη σας θα μοιάζει με αυτήν
Βήμα 4: Ομοίως προχωρήστε στην εγκατάσταση του πακέτου spidev χρησιμοποιώντας την ακόλουθη εντολή. Το Spidev είναι μια δέσμευση python για Linux που μπορεί να χρησιμοποιηθεί για την εκτέλεση επικοινωνίας SPI στο Raspberry Pi.
εγκατάσταση pip spidev
Εάν η εγκατάσταση είναι επιτυχής, το τερματικό θα πρέπει να μοιάζει με αυτό παρακάτω.
Βήμα 5: Στη συνέχεια ας εγκαταστήσουμε το πακέτο pyLoRa χρησιμοποιώντας την ακόλουθη εντολή pip. Αυτό το πακέτο εγκαθιστά τα μοντέλα Radio που σχετίζονται με το LoRa.
εγκατάσταση pip pyLoRa
Εάν η εγκατάσταση είναι επιτυχής, θα δείτε την ακόλουθη οθόνη.
Το πακέτο PyLoRa υποστηρίζει επίσης κρυπτογραφημένη επικοινωνία που μπορεί να χρησιμοποιηθεί απρόσκοπτα με τα Arduino και Raspberry Pi. Αυτό θα βελτιώσει την ασφάλεια δεδομένων στην επικοινωνία σας. Αλλά πρέπει να εγκαταστήσετε ξεχωριστό πακέτο μετά από αυτό το βήμα το οποίο δεν κάνω αφού η κρυπτογράφηση δεν εμπίπτει στο πεδίο αυτού του σεμιναρίου. Μπορείτε να ακολουθήσετε τους παραπάνω συνδέσμους github για περισσότερες λεπτομέρειες.
Μετά, σε αυτό το βήμα μπορείτε να προσθέσετε τις πληροφορίες διαδρομής πακέτου στο pi και να δοκιμάσετε με το πρόγραμμα python που παρέχεται στο τέλος. Αλλά δεν μπόρεσα να προσθέσω το μονοπάτι με επιτυχία και ως εκ τούτου έπρεπε να κατεβάσω χειροκίνητα τη βιβλιοθήκη και να το χρησιμοποιήσω απευθείας για τα προγράμματά μου. Επομένως, έπρεπε να προχωρήσω στα ακόλουθα βήματα
Βήμα 6: Πραγματοποιήστε λήψη και εγκατάσταση του πακέτου python-rpi.gpio και του spidev χρησιμοποιώντας την παρακάτω εντολή.
sudo apt-get εγκατάσταση python-rpi.gpio python3-rpi.gpio sudo apt-get εγκατάσταση python-spidev python3-spidev
Το παράθυρο τερματικού θα πρέπει να εμφανίζει κάτι τέτοιο μετά τις δύο εγκαταστάσεις.
Βήμα 7: Εγκαταστήστε επίσης το git και, στη συνέχεια, χρησιμοποιήστε το για να κλωνοποιήσετε τον κατάλογο python για το Raspberry Pi. Μπορείτε να το κάνετε χρησιμοποιώντας τις ακόλουθες εντολές.
sudo apt-get εγκατάσταση git sudo git clone
Μόλις ολοκληρωθεί αυτό το βήμα, θα πρέπει να βρείτε τον υποκατάλογο SX127x στον αρχικό φάκελο Raspberry Pi. Αυτό θα έχει όλα τα απαιτούμενα αρχεία που σχετίζονται με τη βιβλιοθήκη.
Προγραμματισμός Raspberry Pi για LoRa
Σε μια επικοινωνία LoRa peer to peer, η ενότητα που μεταδίδει τις πληροφορίες ονομάζεται διακομιστής και η μονάδα που λαμβάνει τις πληροφορίες ονομάζεται πελάτης. Στις περισσότερες περιπτώσεις, το Arduino θα χρησιμοποιείται στο πεδίο με έναν αισθητήρα για τη μέτρηση των δεδομένων και το Pi θα χρησιμοποιείται για τη λήψη αυτών των δεδομένων. Έτσι, αποφάσισα να χρησιμοποιήσω το Raspberry Pi ως πελάτη και το Arduino ως διακομιστή σε αυτό το σεμινάριο. Το πλήρες πρόγραμμα πελάτη Raspberry Pi βρίσκεται στο κάτω μέρος αυτής της σελίδας. Εδώ θα προσπαθήσω να εξηγήσω τις σημαντικές γραμμές του προγράμματος.
Προσοχή: Βεβαιωθείτε ότι το αρχείο προγράμματος βρίσκεται στον ίδιο κατάλογο όπου υπάρχει ο φάκελος βιβλιοθήκης SX127x. Μπορείτε να αντιγράψετε αυτόν το φάκελο και να τον χρησιμοποιήσετε οπουδήποτε αν θέλετε να μεταφέρετε το έργο.
Το πρόγραμμα είναι πολύ απλό, πρέπει να ρυθμίσουμε τη λειτουργική μονάδα LoRa ώστε να λειτουργεί στα 433Mhz και στη συνέχεια να ακούτε εισερχόμενα πακέτα. Εάν λάβουμε κάτι, απλώς τα εκτυπώνουμε στην κονσόλα. Όπως πάντα ξεκινάμε το πρόγραμμα εισάγοντας τις απαιτούμενες βιβλιοθήκες python.
από ώρα εισαγωγής ύπνου από SX127x.LoRa εισαγωγή * από SX127x.board_config εισαγωγή BOARD BOARD.setup ()
Σε αυτήν την περίπτωση το πακέτο χρόνου χρησιμοποιείται για τη δημιουργία καθυστερήσεων, το πακέτο Lora χρησιμοποιείται για επικοινωνία LoRa και το board_config χρησιμοποιείται για τον καθορισμό των παραμέτρων του πίνακα και του LoRa. Εγκαταστήσαμε επίσης τον πίνακα χρησιμοποιώντας τη συνάρτηση BOARD.setup () .
Στη συνέχεια δημιουργούμε την κλάση Python LoRa με τρεις ορισμούς. Δεδομένου ότι θέλουμε μόνο να κάνουμε το πρόγραμμα να λειτουργεί ως πελάτης βατόμουρου, η τάξη έχει μόνο τρεις λειτουργίες, δηλαδή την κλάση init, την τάξη έναρξης και την κλάση on_rx_done . Η κλάση init αρχικοποιεί τη μονάδα LoRa σε 433MHz με εύρος ζώνης 125kHz όπως ορίζεται στη μέθοδο set_pa_config . Στη συνέχεια, θέτει επίσης τη μονάδα σε κατάσταση αναστολής λειτουργίας για εξοικονόμηση ενέργειας.
# Προεπιλογές μεσαίου εύρους μετά το init είναι 434,0MHz, Bw = 125 kHz, Cr = 4/5, Sf = 128chips / σύμβολο, CRC σε 13 dBm lora.set_pa_config (pa_select = 1) def __init __ (self, verbose = False): super (LoRaRcvCont, self).__ init __ (verbose) self.set_mode (MODE.SLEEP) self.set_dio_mapping (* 6)
Η λειτουργία εκκίνησης είναι όπου θα διαμορφώσετε τη μονάδα ως δέκτη και να λάβει, όπως RSSI (Λήψη ένδειξη ισχύος σήματος), την κατάσταση, συχνότητα λειτουργίας κλπ. Ρυθμίζουμε τη λειτουργική μονάδα σε συνεχή λειτουργία δέκτη (RXCONT) από τη λειτουργία αναστολής λειτουργίας και στη συνέχεια χρησιμοποιούμε ένα βρόχο λίγου για να διαβάσουμε τιμές όπως το RSSI και η κατάσταση του μόντεμ. Ξεπλένουμε επίσης τα δεδομένα στο σειριακό buffer στο τερματικό.
def start (self): self.reset_ptr_rx () self.set_mode (MODE.RXCONT) while True: sleep (.5) rssi_value = self.get_rssi_value () status = self.get_modem_status () sys.stdout.flush ()
Τέλος, η συνάρτηση on_rx_done εκτελείται μετά την ανάγνωση του εισερχόμενου πακέτου. Σε αυτήν τη συνάρτηση, οι ληφθείσες τιμές μετακινούνται σε μια μεταβλητή που ονομάζεται ωφέλιμο φορτίο από το buffer Rx μετά τη ρύθμιση της σημαίας λήψης. Στη συνέχεια, οι ληφθείσες τιμές αποκωδικοποιούνται με utf-8 για να εκτυπώσουν δεδομένα αναγνώσιμα από το χρήστη στο κέλυφος. Επίσης, επαναφέρουμε τη μονάδα σε κατάσταση αναστολής λειτουργίας έως ότου ληφθεί άλλη τιμή.
def on_rx_done (self): print ("\ nReceived:") self.clear_irq_flags (RxDone = 1) payload = self.read_payload (nocheck = True) print (bytes (payload).decode ("utf-8", "αγνοήστε")) self.set_mode (MODE.SLEEP) self.reset_ptr_rx () self.set_mode (MODE.RXCONT)
Το υπόλοιπο μέρος του προγράμματος είναι απλώς να εκτυπώσετε τις ληφθείσες τιμές στην κονσόλα και να τερματίσετε το πρόγραμμα χρησιμοποιώντας μια διακοπή πληκτρολογίου. Ρυθμίζουμε ξανά την πλακέτα σε κατάσταση αναστολής λειτουργίας ακόμα και μετά τη λήξη του προγράμματος για εξοικονόμηση ενέργειας.
δοκιμάστε: lora.start () εκτός από το KeyboardInterrupt: sys.stdout.flush () print ("") sys.stderr.write ("KeyboardInterrupt \ n") τελικά: sys.stdout.flush () print ("") lora. set_mode (MODE.SLEEP) BOARD.teardown ()
Κωδικός Arduino για LoRa για επικοινωνία με το Raspberry Pi
Όπως ανέφερα νωρίτερα, ο κώδικας rpsreal υποστηρίζει τόσο Arduino όσο και Pi και ως εκ τούτου είναι δυνατή η επικοινωνία μεταξύ Arduino και Pi. Λειτουργεί με βάση τη βιβλιοθήκη Radiohead της AirSpayce's. Επομένως, πρέπει πρώτα να εγκαταστήσετε τη βιβλιοθήκη της κεφαλής ραδιοφώνου στο Arduino IDE.
Για να το κάνετε αυτό, επισκεφθείτε τη σελίδα Github και κατεβάστε τη βιβλιοθήκη στο φάκελο ZIP. Στη συνέχεια, τοποθετήστε το στο φάκελο της βιβλιοθήκης του Arduino IDE. Τώρα, επανεκκινήστε το Arduino IDE και θα βρείτε παραδείγματα αρχείων για τη βιβλιοθήκη Head head. Εδώ θα προγραμματίσουμε το Arduino να λειτουργεί ως διακομιστής LoRa για την αποστολή πακέτων δοκιμής όπως 0 έως 9. Ο πλήρης κώδικας για να κάνετε το ίδιο μπορεί να βρεθεί στο κάτω μέρος αυτής της σελίδας όπως πάντα. Εδώ, θα εξηγήσω μερικές σημαντικές γραμμές στο πρόγραμμα.
Ξεκινάμε το πρόγραμμα εισάγοντας τη βιβλιοθήκη SPI (εγκατεστημένη από προεπιλογή) για να χρησιμοποιήσουμε το πρωτόκολλο SPI και στη συνέχεια τη βιβλιοθήκη RH_RF95 από το Radio head για να εκτελέσουμε την επικοινωνία LoRa. Στη συνέχεια, ορίζουμε σε ποια καρφίτσα του Arduino έχουμε συνδέσει το Chip select (CS), Reset (RST) και Interrupt (INT) του LoRa με το Arduino. Τέλος, ορίζουμε επίσης ότι η μονάδα πρέπει να λειτουργεί σε συχνότητα 434MHz και να προετοιμάζει τη μονάδα LoRa.
#περιλαμβάνω
Μέσα στη λειτουργία ρύθμισης θα επαναφέρουμε τη μονάδα LoRa τραβώντας τον πείρο επαναφοράς σε χαμηλό για 10 χιλιοστά δευτερολέπτου για να ξεκινήσει φρέσκο. Στη συνέχεια το αρχικοποιήσαμε με την ενότητα που δημιουργήσαμε νωρίτερα χρησιμοποιώντας τη βιβλιοθήκη Head head. Στη συνέχεια, ορίζουμε τη συχνότητα και την ισχύ μετάδοσης για το διακομιστή LoRa. Όσο υψηλότερη είναι η μετάδοση, τόσο μεγαλύτερη είναι η απόσταση των πακέτων σας, αλλά θα καταναλώνει περισσότερη ισχύ.
άκυρη ρύθμιση () { // Initialize Serial Monitor Serial.begin (9600); // Επαναφορά LoRa Module pinMode (RFM95_RST, OUTPUT); digitalWrite (RFM95_RST, LOW); καθυστέρηση (10) digitalWrite (RFM95_RST, ΥΨΗΛΟ); καθυστέρηση (10) // Αρχικοποιήστε το LoRa Module ενώ (! Rf95.init ()) { Serial.println ("LoRa radio init απέτυχε"); ενώ (1); } // Ορίστε την προεπιλεγμένη συχνότητα 434.0MHz εάν (! Rf95.setFrequency (RF95_FREQ)) { Serial.println ("setFrequency απέτυχε"); ενώ (1); } rf95.setTxPower (18); // Ισχύς μετάδοσης της μονάδας Lora }
Μέσα στη λειτουργία άπειρου βρόχου , απλά πρέπει να στείλουμε το πακέτο δεδομένων μέσω της μονάδας LoRa. Αυτά τα δεδομένα μπορούν να μοιάζουν με την τιμή του αισθητήρα της εντολής χρήστη. Αλλά για απλότητα θα στείλουμε την τιμή char 0 έως 9 για κάθε 1 δευτερόλεπτο και στη συνέχεια θα αρχικοποιήσουμε την τιμή στο 0 μετά την επίτευξη του 9. Σημειώστε ότι οι τιμές μπορούν να σταλούν μόνο σε μορφή πίνακα char και ο τύπος δεδομένων πρέπει να είναι unit8_t ότι είναι 1 byte κάθε φορά. Ο κώδικας για να κάνετε το ίδιο φαίνεται παρακάτω
void loop () { Serial.print ("Αποστολή:"); char radiopacket = char (τιμή)}; rf95.send ((uint8_t *) radiopacket, 1); καθυστέρηση (1000) τιμή ++; if (τιμή> '9') τιμή = 48; }
Δοκιμή της επικοινωνίας LoRa μεταξύ Raspberry Pi και Arduino
Τώρα, που έχουμε ετοιμάσει τόσο το υλικό όσο και το πρόγραμμά μας, απλά πρέπει να ανεβάσουμε τον κωδικό Arduino στον πίνακα UNO και το σκίτσο python θα πρέπει να ξεκινήσει στο pi. Η δοκιμαστική μου ρύθμιση και με το υλικό συνδεδεμένο, μοιάζει με αυτό παρακάτω
Μόλις ξεκινήσει το σκίτσο πελάτη python στο Pi (χρησιμοποιήστε μόνο το python 3), εάν όλα λειτουργούν σωστά, θα πρέπει να δείτε τα πακέτα Arduino που λαμβάνονται στο pi μέσω του παραθύρου του κελύφους. Θα πρέπει να παρατηρήσετε "Ελήφθη: 0" έως 9 όπως φαίνεται στην παρακάτω εικόνα.
Μπορείτε να κατεβάσετε τον πλήρη κωδικό Raspberry pi με όλες τις απαιτούμενες βιβλιοθήκες από εδώ.
Τώρα μπορείτε να μετακινήσετε τον διακομιστή Arduino και να ελέγξετε το εύρος της μονάδας. είναι επίσης δυνατό να εμφανιστεί η τιμή RSSI στο κέλυφος, εάν απαιτείται. Η πλήρης εργασία του έργου βρίσκεται στο παρακάτω βίντεο. Τώρα, που ξέρουμε πώς να δημιουργήσουμε επικοινωνία LoRa χαμηλής ισχύος μεγάλης απόστασης μεταξύ Arduino και Raspberry pi, μπορούμε να προχωρήσουμε με την προσθήκη αισθητήρα στην πλευρά Arduino και την πλατφόρμα cloud στην πλευρά Pi για να φτιάξουμε ένα πλήρες πακέτο IoT.
Ελπίζω ότι καταλάβατε το έργο και σας άρεσε να το φτιάξετε. Εάν αντιμετωπίζετε πρόβλημα με τη λειτουργία του, χρησιμοποιήστε την παρακάτω ενότητα σχολίων ή τα φόρουμ για άλλα τεχνικά ζητήματα.