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

[Σειρά Docker Pi] Πώς να χρησιμοποιήσετε την ενότητα IoT Node (A) στο Raspberry Pi: 18 βήματα
[Σειρά Docker Pi] Πώς να χρησιμοποιήσετε την ενότητα IoT Node (A) στο Raspberry Pi: 18 βήματα

Βίντεο: [Σειρά Docker Pi] Πώς να χρησιμοποιήσετε την ενότητα IoT Node (A) στο Raspberry Pi: 18 βήματα

Βίντεο: [Σειρά Docker Pi] Πώς να χρησιμοποιήσετε την ενότητα IoT Node (A) στο Raspberry Pi: 18 βήματα
Βίντεο: Abusing Docker builds with BuildKit | Docker Athens | 12 Dec 2023 2024, Ιούλιος
Anonim
[Σειρά Docker Pi] Πώς να χρησιμοποιήσετε τη μονάδα IoT Node (A) στο Raspberry Pi
[Σειρά Docker Pi] Πώς να χρησιμοποιήσετε τη μονάδα IoT Node (A) στο Raspberry Pi

Τι είναι η ενότητα IoT Node (A);

Το IoT Node (A) είναι ένα από τα στοιχεία της σειράς Docker Pi.

IOT Node (A) = GPS/BDS + GSM + Lora.

Το I2C ελέγχει άμεσα τη Lora, στέλνει και λαμβάνει δεδομένα, ελέγχει τη μονάδα GSM/GPS/BDS μέσω του SC16IS752, η κεντρική πλακέτα χρειάζεται μόνο υποστήριξη I2C.

Υποστηρίξτε το Raspberry Pi και άλλα παρόμοια προϊόντα.

Προμήθειες

1x Raspberry Pi 2B/3B/3B+/4B/3A+/Zero/Zero W

1x προϊόν σειράς Docker Pi: μονάδα IoT Node (A)

1x κάρτα 16 GB TF 10 κατηγορίας

Τροφοδοσία 1x 5V/2.5A (5V@3A για Pi 4B)

Βήμα 1: Χαρακτηριστικά

Χαρακτηριστικά
Χαρακτηριστικά
Χαρακτηριστικά
Χαρακτηριστικά
Χαρακτηριστικά
Χαρακτηριστικά
  • Σειρά Docker Pi
  • Προγραμματιζόμενος
  • Έλεγχος απευθείας (χωρίς προγραμματισμό)
  • Επεκτείνετε τις καρφίτσες GPIO
  • Υποστήριξη GPS/BDS
  • Υποστήριξη GSM
  • Υποστήριξη Lora
  • Μπορεί να στοιβάζεται με άλλο πίνακα στοίβας
  • Ανεξάρτητα από το υλικό της κεντρικής πλακέτας (απαιτείται υποστήριξη I2C)

Βήμα 2: Βήμα 1: Μάθετε για τον πίνακα IoT (A)

Βήμα 1: Μάθετε για τον πίνακα IoT (A)
Βήμα 1: Μάθετε για τον πίνακα IoT (A)
Βήμα 1: Μάθετε για τον πίνακα IoT (A)
Βήμα 1: Μάθετε για τον πίνακα IoT (A)
Βήμα 1: Μάθετε για τον πίνακα IoT (A)
Βήμα 1: Μάθετε για τον πίνακα IoT (A)

Το IoT Node (A) είναι ένα από τα στοιχεία της σειράς Docker Pi.

IOT Node (A) = GPS/BDS + GSM + Lora.

Το I2C ελέγχει άμεσα τη Lora, στέλνει και λαμβάνει δεδομένα, ελέγχει τη μονάδα GSM/GPS/BDS μέσω του SC16IS752, η πλακέτα χρειάζεται μόνο υποστήριξη I2C. Υποστήριξη Raspberry Pi και άλλα παρόμοια προϊόντα.

Έτσι, μπορείτε να δημιουργήσετε μια συσκευή επικοινωνίας μεσαίας εμβέλειας χρησιμοποιώντας δύο από αυτές.

Επίσης, μπορείτε να εντοπίσετε την τοποθεσία της συσκευής σας χρησιμοποιώντας τη μονάδα GPS επί του σκάφους.

Τοποθετήστε μια κάρτα SIM, θα γίνει σταθμός πομπού μέσω μηνύματος SMS.

Βήμα 3: Βήμα 2: Πώς να το συναρμολογήσετε

Βήμα 2: Πώς να το συναρμολογήσετε
Βήμα 2: Πώς να το συναρμολογήσετε
Βήμα 2: Πώς να το συναρμολογήσετε
Βήμα 2: Πώς να το συναρμολογήσετε

Είναι πολύ εύκολο να το συναρμολογήσετε λόγω του σχεδιασμού του "HAT", απλά το βάζετε στο βατόμουρο pi και το συνδέετε μέσω καρφιτσών GPIO, είναι σαν "καπέλο" στο raspberry pi, έτσι ώστε να μην χρειάζεται να προσθέσετε μάζα σύρμα.

Βήμα 4: Βήμα 3: Συνδέστε την κεραία

Βήμα 3: Συνδέστε την κεραία
Βήμα 3: Συνδέστε την κεραία
Βήμα 3: Συνδέστε την κεραία
Βήμα 3: Συνδέστε την κεραία
Βήμα 3: Συνδέστε την κεραία
Βήμα 3: Συνδέστε την κεραία

Υπάρχουν 3 κομμάτια κεραίας για αυτήν την ενότητα IoT (A), ένα από αυτά είναι για το loar module, είναι μια κεραία τύπου SMA και ένα από αυτά είναι καλό για σας GPS, είναι μια κεραία τετραγωνικού κουτιού που διαθέτει θύρα IPX. και το τελευταίο είναι για τη μονάδα SIM (A9G), Είναι μια μικρή κεραία που διαθέτει θύρα IPX. συνδέστε την κεραία και τοποθετήστε το καπέλο στο raspberry pi σας.

Τοποθετήστε τον πίνακα Iot Node (A) στο Raspberry Pi

Σύνδεση GPS antana και Lora antana στη θύρα IPX.

  • E1 : GPS-ANTANA-IPX
  • E3 : LoRa-ANTANA-IPX

Βιδώνει την κεραία GPRS στη θύρα SMA.

Βήμα 5: Βήμα 4: Διαμόρφωση περιβάλλοντος λειτουργικού συστήματος και λογισμικού

Σε αυτό το βήμα, πρέπει να κάνετε τα εξής:

1. Κατεβάστε το πιο πρόσφατο αρχείο εικόνας από: www.raspberrypi.org/downloads

2. Αποσυμπιέστε το.

3. Αναβοσβήστε την κάρτα TF με την πιο πρόσφατη εικόνα μέσω του εργαλείου etcher

4. Τροποποιήστε το αρχείο /boot/config.txt και προσθέστε αυτήν την παράγραφο.

dtoverlay = sc16is752-i2c

5. Αντικαθιστά το αρχείο /boot/overlay/sc16is752-i2c.dtbo με αυτό το αρχείο:

wiki.52pi.com/index.php/File:Sc16is752-i2c…

ΥΓ: θυμηθείτε να το αποσυμπιέσετε και να το βάλετε στο/boot/overlay/φάκελό σας και αντικαθιστά το παλιό.

6. Επανεκκινήστε το Raspberry Pi.

Βήμα 6: Βήμα 5: Διαμόρφωση του I2C (Raspberry Pi)

Βήμα 5: Διαμόρφωση I2C (Raspberry Pi)
Βήμα 5: Διαμόρφωση I2C (Raspberry Pi)
Βήμα 5: Διαμόρφωση I2C (Raspberry Pi)
Βήμα 5: Διαμόρφωση I2C (Raspberry Pi)
Βήμα 5: Διαμόρφωση I2C (Raspberry Pi)
Βήμα 5: Διαμόρφωση I2C (Raspberry Pi)
Βήμα 5: Διαμόρφωση I2C (Raspberry Pi)
Βήμα 5: Διαμόρφωση I2C (Raspberry Pi)

Εκτελέστε sudo raspi-config και ακολουθήστε τις οδηγίες για να εγκαταστήσετε υποστήριξη i2c για τον πυρήνα ARM και τον πυρήνα linux Μετάβαση στις επιλογές διασύνδεσης

Βήμα 7: Βήμα 6: Μάθετε για τις πληροφορίες εγγραφής

Ενότητα GPRS

Χαμηλή κατανάλωση ενέργειας, ρεύμα αναμονής αναμονής <1mA2.

Υποστηρίξτε τέσσερις ζώνες συχνοτήτων GSM/GPRS, συμπεριλαμβανομένων των 850, 900, 1800, 1900MHZ

GPRS Κλάση 10

Υποστήριξη υπηρεσίας δεδομένων GPRS, μέγιστος ρυθμός δεδομένων, λήψη 85,6Kbps, μεταφόρτωση 42,8Kbps

Υποστήριξη τυπικών εντολών GSM07.07, 07.05 AT και πρόσβαση στη σειριακή θύρα μέσω μετατροπής διεπαφής I2C

Οι εντολές AT υποστηρίζουν τυπικές θύρες εντολών AT και TCP/IP

Τμήμα GPS Υποστήριξη τοποθέτησης αρθρώσεων BDS/GPS

Υποστήριξη A-GPS, A-BDS

Υποστήριξη τυπικής κάρτας SIM

Τμήμα LORA Απόσταση μετάδοσης: 500 μέτρα (παράμετροι RF: 0x50 @ China City)

Υποστήριξη μεθόδων διαμόρφωσης FSK, GFSK, MSK, GMSK, LoRaTM και OOK

Εξαιρετικά υψηλή ευαισθησία δέκτη τόσο χαμηλή όσο -141 dBm

Υποστήριξη ανίχνευσης προοιμίου

Πακέτο κινητήρα με CRC, έως 256 byte

Ένδειξη πομποδέκτη LORA

Εύκολο TX/RX από Docker Pi

Βήμα 8:

Ενότητα A9G

Η μονάδα A9G προσφέρει δύο σειριακές θύρες.

Χρησιμοποιήστε τη γέφυρα I2C UART για επικοινωνία.

Όνομα μονάδας σειριακής θύρας

  • /dev/ttySC0 GSM
  • /dev/ttySC1 GPS/BDS

Εγγραφή χάρτη

  • Εγγραφή Διεύθυνση Λειτουργία Τιμή
  • 0x01 LORA_TX1 Lora TX Buffer 1 - Δεδομένα χρήστη
  • 0x02 LORA_TX2 Lora TX Buffer 2 - Δεδομένα χρήστη
  • 0x03 LORA_TX3 Lora TX Buffer 3 - Δεδομένα χρήστη
  • 0x04 LORA_TX4 Lora TX Buffer 4 - Δεδομένα χρήστη
  • 0x05 LORA_TX5 Lora TX Buffer 5 - Δεδομένα χρήστη
  • 0x06 LORA_TX6 Lora TX Buffer 6 - Δεδομένα χρήστη
  • 0x07 LORA_TX7 Lora TX Buffer 7 - Δεδομένα χρήστη
  • 0x08 LORA_TX8 Lora TX Buffer 8 - Δεδομένα χρήστη
  • 0x09 LORA_TX9 Lora TX Buffer 9 - Δεδομένα χρήστη
  • 0x0a LORA_TX10 Lora TX Buffer 10 - Δεδομένα χρήστη
  • 0x0b LORA_TX11 Lora TX Buffer 11 - Δεδομένα χρήστη
  • 0x0c LORA_TX12 Lora TX Buffer 12 - Δεδομένα χρήστη
  • 0x0d LORA_TX13 Lora TX Buffer 13 - Δεδομένα χρήστη
  • 0x0e LORA_TX14 Lora TX Buffer 14 - Δεδομένα χρήστη
  • 0x0f LORA_TX15 Lora TX Buffer 15 - Δεδομένα χρήστη
  • 0x10 LORA_TX16 Lora TX Buffer 16 - Δεδομένα χρήστη
  • 0x11 LORA_RX1 Lora RX Buffer 1 - Δεδομένα χρήστη
  • 0x12 LORA_RX2 Lora RX Buffer 2 - Δεδομένα χρήστη
  • 0x13 LORA_RX3 Lora RX Buffer 3 - Δεδομένα χρήστη
  • 0x14 LORA_RX4 Lora RX Buffer 4 - Δεδομένα χρήστη
  • 0x15 LORA_RX5 Lora RX Buffer 5 - Δεδομένα χρήστη
  • 0x16 LORA_RX6 Lora RX Buffer 6 - Δεδομένα χρήστη
  • 0x17 LORA_RX7 Lora RX Buffer 7 - Δεδομένα χρήστη
  • 0x18 LORA_RX8 Lora RX Buffer 8 - Δεδομένα χρήστη
  • 0x19 LORA_RX9 Lora RX Buffer 9 - Δεδομένα χρήστη
  • 0x1a LORA_RX10 Lora RX Buffer 10 - Δεδομένα χρήστη
  • 0x1b LORA_RX11 Lora RX Buffer 11 - Δεδομένα χρήστη
  • 0x1c LORA_RX12 Lora RX Buffer 12 - Δεδομένα χρήστη
  • 0x1d LORA_RX13 Lora RX Buffer 13 - Δεδομένα χρήστη
  • 0x1e LORA_RX14 Lora RX Buffer 14 - Δεδομένα χρήστη
  • 0x1f LORA_RX15 Lora RX Buffer 15 - Δεδομένα χρήστη
  • 0x20 LORA_RX16 Lora RX Buffer 16 - Δεδομένα χρήστη
  • 0x01 - 0x10 Μόνο εγγραφή.
  • 0x11 - 0x20 Μόνο για ανάγνωση.

Βήμα 9: Οδηγίες:

Οδηγίες
Οδηγίες

L_SET (Μόνο για εγγραφή)

  • Γράψτε 1 για να ορίσετε παραμέτρους από 0x22 σε μονάδα LORA.
  • Γράψτε 0 δεν ισχύει

G_RESET (Μόνο για εγγραφή)

  • Γράψτε 1 για επαναφορά της μονάδας A9G
  • Γράψτε 0 δεν ισχύει

L_RXNE (Ανάγνωση και εγγραφή)

  • Γράψτε 1 σφάλμα αιτίας
  • Γράψτε 0 για διαγραφή
  • Η ανάγνωση 1 σημαίνει ότι έχουν ληφθεί δεδομένα, λάβετε τα δεδομένα από τον μητρώο 0x11 - 0x20.
  • Η ανάγνωση 0 σημαίνει ότι δεν υπάρχουν διαθέσιμα δεδομένα τώρα.

L_SET (Μόνο για εγγραφή)

  • Γράψτε 1 για αποστολή δεδομένων, συμπληρώστε τα δεδομένα στο μητρώο 0x01 - 0x10 πριν από την αποστολή.
  • Γράψτε 0 δεν ισχύει

Βήμα 10: Πώς να χρησιμοποιήσετε τη μονάδα GPS με το Gpsd (Raspberry Pi)

Πώς να χρησιμοποιήσετε τη μονάδα GPS με το Gpsd (Raspberry Pi)
Πώς να χρησιμοποιήσετε τη μονάδα GPS με το Gpsd (Raspberry Pi)
Πώς να χρησιμοποιήσετε τη μονάδα GPS με το Gpsd (Raspberry Pi)
Πώς να χρησιμοποιήσετε τη μονάδα GPS με το Gpsd (Raspberry Pi)
Πώς να χρησιμοποιήσετε τη μονάδα GPS με το Gpsd (Raspberry Pi)
Πώς να χρησιμοποιήσετε τη μονάδα GPS με το Gpsd (Raspberry Pi)

Πώς να χρησιμοποιήσετε τη μονάδα GPS με το gpsd (Raspberry Pi)

Αρχικά, αντικαταστήστε το /boot/overlays/sc16is752-i2c.dtbo και βεβαιωθείτε ότι το I2C λειτουργεί σωστά.

  • Αντικαταστήστε το sc16is752-i2c.dtbo
  • Διαμόρφωση του I2C
  • Εγκαταστήστε εργαλεία gpsd.

Ανοίξτε ένα τερματικό και πληκτρολογήστε αυτήν την εντολή:

sudo apt εγκατάσταση gpsd gpsd-client

Τροποποιήστε το αρχείο/etc/default/gpsd και προσθέστε τις ακόλουθες παραμέτρους:

  • ΣΥΣΚΕΥΕΣ = "/dev/ttySC1"
  • GPSD_OPTIONS = "-F /var/run/gpsd.sock"

Εισαγάγετε την εντολή i2cset -y 1 0x16 0x23 0x40 για να επαναφέρετε τη μονάδα GPRS.

Σενάριο Python για ανοιχτό GPS:

εισαγωγή serialimport os ώρα εισαγωγής # Επανεκκίνηση υπηρεσίας gpsd. os.system ("sudo systemctl επανεκκίνηση gpsd.socket") # Άνοιγμα σειριακής θύρας ser = serial. Serial ('/dev/ttySC0', 115200) i = 0 if ser.isOpen == Λάθος: ser.open () δοκιμάστε: εκτύπωση ("Ενεργοποίηση GPS …") ενώ True: ser.write (str.encode ("AT+GPS = 1 / r")) size = ser.inWaiting () if size! = 0: ticks = time.time () respond = ser.read (μέγεθος) gps = str (απάντηση, κωδικοποίηση = "utf -8") if (gps.find ("OK")! = -1): os.system ("sudo cgps -s") exit () else: i = i + 1 print ("Waiting GPS Enable, If the time is too long, Please test in outdoor:" + str (i)) ser.flushInput () time.sleep (1) εκτός KeyboardInterrupt: ser.flushInput () ser.close ()

Αποθηκεύστε το και εκτελέστε το:

python3 GPS.py

Βήμα 11: Πώς να χρησιμοποιήσετε τη μονάδα GPS με το C (Raspberry Pi)

Εγκαταστήστε εργαλεία gpsd

sudo apt-get install libgps-dev

Δημιουργήστε πηγαίο κώδικα και ονομάστε το "gps.c"

#συμπεριλάβω #συμπεριλάβω #συμπεριλάβω

#περιλαμβάνω

#περιλαμβάνω

int main ()

{int rc; struct timeval tv? struct gps_data_t gps_data? if ((rc = gps_open ("localhost", "2947", & gps_data)) == -1) {printf ("κωδικός: %d, λόγος: %s / n", rc, gps_errstr (rc)); επιστροφή EXIT_FAILURE; } gps_stream (& gps_data, WATCH_ENABLE | WATCH_JSON, NULL);

ενώ (1)

{ / * περιμένετε 2 δευτερόλεπτα για να λάβετε δεδομένα * / εάν (gps_waiting (& gps_data, 2000000)) { / * διαβάστε δεδομένα * / if ((rc = gps_read (& gps_data)) == -1) {printf ("σφάλμα που προέκυψε κατά την ανάγνωση δεδομένα gps. κωδικός: %d, λόγος: %s / n ", rc, gps_errstr (rc)); } else { /* Εμφάνιση δεδομένων από το δέκτη GPS. */ if ((gps_data.status == STATUS_FIX) && (gps_data.fix.mode == MODE_2D || gps_data.fix.mode == MODE_3D) &&! isnan (gps_data.fix.latitude) &&! isnan (gps_data.fix.longitude)) { /* gettimeofday (& tv, NULL); ΕΠΕΞΕΡΓΑΣΙΑ: Το tv.tv_sec δεν είναι στην πραγματικότητα η χρονική σήμανση! */

printf ("γεωγραφικό πλάτος: %f, γεωγραφικό μήκος: %f, ταχύτητα: %f, χρονική σήμανση: %lf / n", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.speed, gps_data.fix.time) ?

// EDIT: Αντικαταστάθηκε το tv.tv_sec με gps_data.fix.time} else {printf ("δεν υπάρχουν διαθέσιμα δεδομένα GPS / n"); }}} ύπνος (3); } / * Όταν τελειώσετε… * / gps_stream (& gps_data, WATCH_DISABLE, NULL); gps_close (& gps_data); επιστροφή EXIT_SUCCESS; }

Βήμα 12: Μεταγλωττίστε το

Μεταγλωττίστε το
Μεταγλωττίστε το

Συντάσσω!

gcc gps.c -lm -lgps -o gps

Εκτέλεσε το!

./gps

Βήμα 13: Πώς να χρησιμοποιήσετε μονάδα GPS με Python (Raspberry Pi)

Πώς να χρησιμοποιήσετε μονάδα GPS με Python (Raspberry Pi)
Πώς να χρησιμοποιήσετε μονάδα GPS με Python (Raspberry Pi)

Ο ακόλουθος κώδικας συνιστάται να εκτελεστεί χρησιμοποιώντας Python 3 και να εγκαταστήσετε τη βιβλιοθήκη gpsd-py3 και το GPS 2D/3D Fix:

εισαγωγή gpsd

# Συνδεθείτε στο τοπικό gpsd

gpsd.connect ()

# Λάβετε θέση gps

πακέτο = gpsd.get_current ()

# Δείτε τα ενσωματωμένα έγγραφα για το GpsResponse για τα διαθέσιμα δεδομένα

εκτύπωση (packet.position ())

Βήμα 14: Πώς να χρησιμοποιήσετε τη μονάδα GSM με PPPd (Raspberry Pi)

Πώς να χρησιμοποιήσετε τη μονάδα GSM με PPPd (Raspberry Pi)
Πώς να χρησιμοποιήσετε τη μονάδα GSM με PPPd (Raspberry Pi)
Πώς να χρησιμοποιήσετε τη μονάδα GSM με PPPd (Raspberry Pi)
Πώς να χρησιμοποιήσετε τη μονάδα GSM με PPPd (Raspberry Pi)
Πώς να χρησιμοποιήσετε τη μονάδα GSM με PPPd (Raspberry Pi)
Πώς να χρησιμοποιήσετε τη μονάδα GSM με PPPd (Raspberry Pi)

Α) Αρχικά, αντικαταστήστε το /boot/overlays/sc16is752-i2c.dtbo και βεβαιωθείτε ότι το I2C λειτουργεί σωστά.

  • Αντικαταστήστε το sc16is752-i2c.dtbo
  • Διαμόρφωση του I2C

Β) Εισαγάγετε την εντολή i2cset -y 1 0x16 0x23 0x40 για να επαναφέρετε τη μονάδα GPRS.

Αφού εκτελέσετε την εντολή, πρέπει να περιμένετε λίγο, περίπου 10 δευτερόλεπτα

Μπορείτε επίσης να χρησιμοποιήσετε την ακόλουθη μέθοδο για επαναφορά.

Γ) Εισαγάγετε την εντολή

sudo apt install ppp

για εγκατάσταση εργαλείων ppp.

Δ) Αντιγράψτε/etc/ppp/peers/provider στο/etc/ppp/peers/gprs

Ε) Τροποποίηση/etc/ppp/peers/gprs

  • Γραμμή 10: Συμβουλευτείτε τον παροχέα υπηρεσιών σας για τον χρήστη (Παράδειγμα: cmnet).
  • Γραμμή 15: Συμβουλευτείτε τον πάροχο υπηρεσιών σας για το apn (Παράδειγμα: cmnet).
  • Γραμμή 18 - Γραμμή 24: Προτεινόμενη ρύθμιση

ΣΤ) Τροποποίηση/etc/chatscripts/gprs (Αλλαγή γραμμής 34 σε Γραμμή 35, Αριθμός κλήσης μπορεί να μην είναι *99#)

Ζ) Εισαγάγετε την εντολή sudo pppd call gprs για κλήση.

Η) Ελέγξτε τη ρύθμιση παραμέτρων ppp από τον ISP σας.

I) Εισαγάγετε εντολή ping -I ppp0 8.8.8.8 δοκιμάστε το δίκτυό σας (Εάν υπάρχει Διαδίκτυο και ο πίνακας διαδρομής είναι σωστός)

J) Διατηρήστε το σήμα GSM καλό, διαφορετικά θα συμβούν τα ακόλουθα.

Βήμα 15: Πώς να διαγνώσετε τη μονάδα GSM μου (Raspberry Pi)

Πώς να διαγνώσετε τη μονάδα GSM μου (Raspberry Pi)
Πώς να διαγνώσετε τη μονάδα GSM μου (Raspberry Pi)
Πώς να διαγνώσετε τη μονάδα GSM μου (Raspberry Pi)
Πώς να διαγνώσετε τη μονάδα GSM μου (Raspberry Pi)
Πώς να διαγνώσετε τη μονάδα GSM μου (Raspberry Pi)
Πώς να διαγνώσετε τη μονάδα GSM μου (Raspberry Pi)
Πώς να διαγνώσετε τη μονάδα GSM μου (Raspberry Pi)
Πώς να διαγνώσετε τη μονάδα GSM μου (Raspberry Pi)

Ο ακόλουθος κώδικας συνιστάται να εκτελεστεί χρησιμοποιώντας Python 3 και να εγκαταστήσετε τη βιβλιοθήκη smbus:

εισαγωγή σειριακής εισαγωγής χρόνου εισαγωγής smbus φορέας εισαγωγής εισαγωγής os

εκτύπωση ("Αναμονή για αρχικοποίηση …")

bus = smbus. SMBus (1)

bus.write_byte_data (0x16, 0x23, 0x40)

ser = serial. Serial ('/dev/ttySC0', 115200)

εάν ser.isOpen == Λάθος:

ser.open () try: print ('-'*60) print ("Initializing A9G GPRS module.") print ("GSM Connect…") time.sleep (3) i = 0 while True: ser.write (str.encode ("AT+CCID / r")) size = ser.inWaiting () if size! = 0: ticks = time.time () respond = ser.read (size) ccid = str (response, encoding = "utf -8 ") εκτύπωση (ccid) αλλιώς: i = i + 1 ser.flushInput () time.sleep (1) εκτός KeyboardInterrupt: ser.close ()

Εκτελέστε το Test Script, με βάση τα αποτελέσματα της εφαρμογής, μπορούμε να διαγνώσουμε τη μονάδα GSM. Για παράδειγμα, η ακόλουθη επιστροφή, το σφάλμα CME ERROR 53 μας λέει ότι η ισχύς δεν είναι καλή. Κωδικός CME = Σχετικά σφάλματα εξοπλισμού GSM

Φυσικά, το σενάριο έχει επίσης λειτουργία επαναφοράς. Εάν μπορείτε να εμφανίσετε σωστά το CCID, η επαναφορά ολοκληρώθηκε.

Βήμα 16: Πώς να χρησιμοποιήσετε το Lora TX & RX με C (Raspberry Pi)

Ο ακόλουθος κώδικας συνιστάται να εκτελεστεί χρησιμοποιώντας Python 3 και να εγκαταστήσετε τη βιβλιοθήκη smbus.

Πρέπει να μεταφερθεί μεταξύ των δύο κόμβων IOT (A). Το περιεχόμενο που αποστέλλεται από μόνο του δεν μπορεί να ληφθεί από μόνο του. Παρακαλώ αποθηκεύστε το ως py script για εκτέλεση.

Τρόπος αποστολής: Αφού συμπληρώσετε τα δεδομένα στον καταχωρητή 0x01 - 0x10, ρυθμίστε το bit L_TX για να ξεκινήσει η αποστολή δεδομένων.

import timeimport smbus import os import sys

bus = smbus. SMBus (1)

προσπαθήστε:

data_list = [170, 85, 165, 90] # εγγραφή δεδομένων για εγγραφή και στη συνέχεια τα δεδομένα θα σταλούν. για ευρετήριο στο εύρος (1, len (data_list) + 1): bus.write_byte_data (0x16, index, list_list [index - 1]) print ("LORA send data to %d register %d data" %(index, list_list [ευρετήριο - 1])) bus.write_byte_data (0x16, 0x23, 0x01) εκτός από το Πληκτρολόγιο Διακοπή: sys.exit ()

Τρόπος αποστολής παραλαβής: Ελέγξτε το bit L_RXNE, Εάν έχει οριστεί, έφτασαν νέα δεδομένα, αυτή η σημαία πρέπει να είναι καθαρή με μη αυτόματο τρόπο

import timeimport smbus import os import sys

bus = smbus. SMBus (1)

recv_data =

προσπαθήστε:

αν bus.read_byte_data (0x16, 0x23) & 0x02: # μη αυτόματη εκκαθάριση L_RXNE bus.write_byte_data (0x16, 0x23, 0x00) register_list = [0x11, 0x12, 0x13, 0x14] # ανάγνωση δεδομένων για ευρετήριο στην περιοχή (0x11, len (λίστα_εγγραφής) + 0x11): recv_data.append (bus.read_byte_data (0x16, list_ Register] [index - 0x11]))

εκτύπωση ("Λήφθηκαν δεδομένα:")

εκτύπωση (recv_data) else: print ("Δεν έχουν ληφθεί ακόμη δεδομένα ~") εκτός από το KeyboardInterrupt: sys.exit ()

Βήμα 17: Ειδική περιγραφή του εύρους ζώνης I2C

Το όριο της ταχύτητας I2C είναι 400kHz, λόγω του πρωτοκόλλου I2C, οπότε το αποτελεσματικό εύρος ζώνης μιας συσκευής είναι χαμηλότερο από 320kbps, το εύρος ζώνης πολλαπλών συσκευών είναι μικρότερο από 160kbps. Το όριο της ταχύτητας γέφυρας I2C UART είναι 115200bps. Όταν GPS και GSM λειτουργούν ταυτόχρονα, το εύρος ζώνης I2C είναι ανεπαρκές, επειδή 115.2kbps * 2 = 230.4kbps, οπότε ορισμένα δεδομένα θα υπερχειλίσουν. Η μείωση του ρυθμού baud των επικοινωνιών GPS και GSM μπορεί να βελτιώσει την έλλειψη εύρους ζώνης επικοινωνίας. Η στοίβαξη άλλων μονάδων DockerPi ενδέχεται επιπλέον εύρος ζώνης I2C. Συνήθως, η ταχύτητα δεδομένων δικτύου είναι αργή, επομένως το εύρος ζώνης GSM δεν είναι πλήρες, οπότε δεν υπάρχει πρόβλημα υπερχείλισης.

Βήμα 18: Ολοκληρώθηκε

Ελπίζω να σας αρέσει και να το φτιάξετε.

μπορείτε να το βρείτε εδώ:

Αμαζόνα

Νυχτερινό φως : Https: //www.amazon.co.uk/dp/B07TD595VS? Ref = myi_title_dp IoT Node (A) : https://www.amazon.co.uk/dp/B07TY15M1C Sensor HUB : https:// www. amazon.co.uk/dp/B07TZD8B61 πύργος πάγου :

Συνιστάται: