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

Παρακολούθηση και εγγραφή θερμοκρασίας με Bluetooth LE και RaspberryPi: 9 βήματα (με εικόνες)
Παρακολούθηση και εγγραφή θερμοκρασίας με Bluetooth LE και RaspberryPi: 9 βήματα (με εικόνες)

Βίντεο: Παρακολούθηση και εγγραφή θερμοκρασίας με Bluetooth LE και RaspberryPi: 9 βήματα (με εικόνες)

Βίντεο: Παρακολούθηση και εγγραφή θερμοκρασίας με Bluetooth LE και RaspberryPi: 9 βήματα (με εικόνες)
Βίντεο: 30 Ultimate Windows 10 Συμβουλές και κόλπα για το 2020 2024, Νοέμβριος
Anonim
Παρακολούθηση και καταγραφή θερμοκρασίας με Bluetooth LE και RaspberryPi
Παρακολούθηση και καταγραφή θερμοκρασίας με Bluetooth LE και RaspberryPi
Παρακολούθηση και καταγραφή θερμοκρασίας με Bluetooth LE και RaspberryPi
Παρακολούθηση και καταγραφή θερμοκρασίας με Bluetooth LE και RaspberryPi

Αυτό το διδακτικό είναι για το πώς να δημιουργήσετε ένα σύστημα παρακολούθησης θερμοκρασίας πολλαπλών κόμβων με σφάλμα αισθητήρα Bluetooth LE από Blue Radios (BLEHome) και RaspberryPi 3B Χάρη στην ανάπτυξη του προτύπου Bluetooth LE, υπάρχουν πλέον άμεσα διαθέσιμοι ασύρματοι αισθητήρες χαμηλής ισχύος στην αγορά για πολύ χαμηλό κόστος και μπορεί να λειτουργήσει σε ένα κελί νομίσματος για μήνες κάθε φορά. Ένας από αυτούς τους αισθητήρες που πήρα είναι από το Blue Radio που ονομάζεται Sensor Bugs. Κοστίζει περίπου 25 δολάρια στο Amazon, είναι μια συσκευή Bluetooth LE με αισθητήρα θερμοκρασίας, αισθητήρα φωτός και επιταχυνσιόμετρο, όλα ενσωματωμένα σε μια μικρή μονάδα που μπορεί να επικοινωνεί ασύρματα. Αυτό είναι το τέλειο ταίρι για το Raspberry Pi 3B, το οποίο έχει ενσωματωμένη υποστήριξη για ραδιόφωνο Bluetooth LE Το

Βήμα 1: Ρύθμιση Raspberry Pi

Το πρώτο βήμα είναι να αποκτήσετε μια λειτουργική ρύθμιση Raspberry Pi. Ακολουθήστε τις οδηγίες από τον ιστότοπο του Raspberry Pi, φορτώστε το Raspbian σε μια κάρτα SD, τοποθετήστε το στο Raspberry Pi και ξεκινήστε το. Εγκαθιστώ το σύστημά μου με την έκδοση Raspbian Stretch Lite (No GUI) Νοέμβριος 2017. Ρυθμίστε το WiFi αν χρειαστεί, προτιμώ να προσαρμόσω το ζώνη ώρας στην τρέχουσα ζώνη ώρας αντί για UTC. Μπορείτε να το κάνετε αυτό με την εντολή: $ sudo dpkg-reconfigure tzdataΤο υπόλοιπο της εντολής υποθέστε ότι η ρύθμιση γίνεται μέσω της διεπαφής γραμμής εντολών.

Βήμα 2: Ρύθμιση του MySQL στο Raspberry Pi

Είναι χρήσιμο να εγκαταστήσετε μια βάση δεδομένων τοπικά για να αποθηκεύσετε όλα τα δεδομένα που καταγράφηκαν. Η εγκατάσταση του MySQL στο Raspberry Pi είναι εξαιρετικά εύκολη. Δεν είναι επίσης δύσκολο να τροποποιήσετε το σενάριο για σύνδεση εξωτερικά με έναν διακομιστή SQL, μπορείτε να παραλείψετε αυτό το βήμα εάν θέλετε να χρησιμοποιήσετε έναν διακομιστή SQL στο δίκτυο. Υπάρχουν πολλές οδηγίες στο διαδίκτυο, το προτείνω αυτό: https:// www.stewright.me/2014/06/tutorial-install-…

Μόλις εγκατασταθεί ο διακομιστής SQL, μπορείτε να χρησιμοποιήσετε το πρόγραμμα -πελάτη MySQL CLI για να δημιουργήσετε χρήστη, βάση δεδομένων και πίνακα. Για να εισαγάγετε το MySQL CLI, χρησιμοποιήστε την εντολή:

$ sudo mysql -uroot -pΠρώτον, δημιουργήστε έναν τοπικό χρήστη για να εισαγάγετε δεδομένα που έχουν καταγραφεί:> ΔΗΜΙΟΥΡΓΙΑ ΧΡΗΣΤΗ 'datasrc'@'localhost' IDENTIFYED BY 'datasrc000'; Στη συνέχεια, δημιουργήστε μια βάση δεδομένων και έναν πίνακα:> ΔΗΜΙΟΥΡΓΙΑ ΔΕΔΟΜΕΝΩΝ SensorBug; Ρύθμιση του χρήστη άδεια:> ΧΟΡΗΓΗΣΗ ΟΛΩΝ ΤΩΝ ΠΡΟΝΟΜΙΩΝ ΣΤΟ SensorBug.* ΣΤΟ 'datasrc'@'localhost'; Τώρα προσθέστε έναν νέο πίνακα στη βάση δεδομένων. Για αυτό το παράδειγμα, θα προσθέσω έναν πίνακα με τις ακόλουθες στήλες: ΗΜΕΡΟΜΗΝΙΑ, ΩΡΑ, ΔΙΕΥΘΥΝΣΗ, ΤΟΠΟΘΕΣΙΑ, ΘΕΡΜΟΚΡΑΣΙΑ και ΑΚΕΡΟΜΕΤΡΟ

  • ΗΜΕΡΟΜΗΝΙΑ/ΩΡΑ - Αυτή είναι η ημερομηνία και η ώρα που καταγράφονται τα δεδομένα
  • ΔΙΕΥΘΥΝΣΗ - Αυτό είναι το MAC του SensorBug από το οποίο λαμβάνεται το μήνυμα
  • ΤΟΠΟΘΕΣΙΑ - Μια ευανάγνωστη συμβολοσειρά που υποδεικνύει πού βρίσκεται ο αισθητήρας
  • ΘΕΡΜΟΚΡΑΣΙΑ - Αυτή είναι η καταγεγραμμένη θερμοκρασία
  • ACCELE - Αυτή είναι η τιμή της εξόδου του επιταχυνσιόμετρου, χρήσιμη για την καταγραφή της θέσης του αισθητήρα (εάν είναι ενεργοποιημένη)

Η εντολή που κάνει αυτό είναι:> ΧΡΗΣΗ SensorBug; > ΔΗΜΙΟΥΡΓΙΑ δεδομένων ΠΙΝΑΚΑΣ (ημερομηνία DATE, ώρα TIME, διεύθυνση TINYTEXT, τοποθεσία TINYTEXT, θερμοκρασία FLOAT, επιτάχυνση INT). Τώρα η βάση δεδομένων είναι έτοιμη, μπορούμε να προχωρήσουμε στη ρύθμιση του αισθητήρα σφάλματα.

Βήμα 3: Ρύθμιση των SensorBugs

Τα σφάλματα των αισθητήρων είναι αρκετά προσεγμένες μικρές συσκευές. Δυστυχώς, ο κατασκευαστής παρείχε μόνο την εφαρμογή IOS για τον προγραμματισμό της. Ωστόσο, είναι ακόμα δυνατό να συνεργαστείτε εάν έχετε μόνο μια συσκευή Android. Πρώτο βήμα, συνδέστε τη συσκευή με ένα τηλέφωνο. Χωρίς σύζευξη της συσκευής, το SensorBug δεν θα διαφημίζει δεδομένα. Προσπάθησα να δω αν μπορώ να το κάνω αυτό απευθείας με το RaspberryPi, δυστυχώς, φαίνεται ότι το πρόγραμμα οδήγησης Bluetooth LE στο RaspberryPi εξακολουθεί να είναι πειραματικό και περιέχει σφάλματα για να αποτρέψει τη σύζευξή του με συσκευές Bluetooth LE. Η μελλοντική έκδοση του προγράμματος οδήγησης blueZ μπορεί να το διορθώσει αυτό, αλλά ως τρέχουσα γραφή, δεν υπάρχει τρόπος σύζευξης του SensorBug με το RaspberryPi. Ευτυχώς, δεν χρειάζεται να αντιστοιχίσουμε τη συσκευή για να καταγράψουμε τα διαφημισμένα δεδομένα της. Το μόνο που χρειαζόμαστε είναι ένα τηλέφωνο για τη διαμόρφωση του SensorBug. Από προεπιλογή, το SensorBug θα ξεκινήσει να διαφημίζει δεδομένα θερμοκρασίας σε διάστημα 1 δευτ. Μόλις συζευχθεί με μια συσκευή. Για τη λήψη δεδομένων θερμοκρασίας, αυτό είναι το μόνο που χρειάζεται. Εάν σκοπεύετε να επεκταθείτε για να χρησιμοποιήσετε τη θέση ή τον αισθητήρα φωτός, τότε θα χρειαστεί η διαμόρφωση της συσκευής. Για αρχή, θα αντιστοιχίσουμε τη συσκευή και θα αποσυνδεθούμε. Αυτό θα είναι αρκετά καλό για σκοπούς λήψης θερμοκρασίας. Ξεκινήστε πατώντας και τα δύο κουμπιά στο SensorBug. Η μπλε/πράσινη λυχνία LED θα αναβοσβήνει, υποδεικνύοντας ότι είναι ενεργοποιημένη. Πατήστε ένα από τα κουμπιά, η πράσινη λυχνία LED θα ανάψει, υποδεικνύοντας ότι η τροφοδοσία είναι ενεργοποιημένη. Εάν η πράσινη λυχνία LED δεν είναι αναμμένη, πατήστε και τα δύο κουμπιά για να ενεργοποιήσετε ξανά τη συσκευή. Πατήστε παρατεταμένα ένα από τα κουμπιά μέχρι να αρχίσει να αναβοσβήνει η μπλε λυχνία LED. Αυτό θα θέσει τη συσκευή σε λειτουργία ζεύγους. Μεταβείτε στο μενού διαμόρφωσης Bluetooth στο τηλέφωνο και αναζητήστε τη συσκευή SensorBug. Μόλις εμφανιστεί, επιλέξτε το για σύζευξη με τη συσκευή. Αυτό είναι, τώρα το SensorBug τροφοδοτείται και διαφημίζει τα δεδομένα θερμοκρασίας

Βήμα 4: Εγκατάσταση του Bluetooth LE Python Wrapper

Στη συνέχεια, πρέπει να εγκαταστήσουμε τη βιβλιοθήκη για την python για να μιλήσει με στοίβα Bluetooth LE. Η οδηγία μπορεί να βρεθεί εδώ: https://github.com/IanHarvey/bluepy Για το Python 2.7, είναι τόσο απλό όσο η εισαγωγή των ακόλουθων εντολών:

$ sudo apt-get install python-pip libglib2.0-dev $ sudo pip install bluepy

Βήμα 5: Σάρωση και εύρεση της διεύθυνσης του SensorBug

Για να μάθετε τη διεύθυνση MAC του SensorBug, χρησιμοποιήστε αυτήν την εντολή: $ sudo hcitool lescan Θα πρέπει να δείτε έξοδο όπως:

EC: FE: 7E: 10: B1: 92 (άγνωστο) Εάν έχετε πολλές συσκευές bluetooth LE γύρω σας, μπορεί να είναι δύσκολο να μάθετε σε ποια μιλάτε. Μπορείτε να δοκιμάσετε το bluetoothctl που δίνει περισσότερες λεπτομέρειες:

$ sudo bluetoothctl [bluetooth]# σάρωση σε [ΝΕΑ] Συσκευή EC: FE: 7E: 10: B1: 92 SensorBug10B192 [CHG] Συσκευή EC: FE: 7E: 10: B1: 92 ΚατασκευαστήςΚλειδί δεδομένων: 0x0085 [CHG] Συσκευή EC: FE: 7E: 10: B1: 92 ΚατασκευαστήςΑξία δεδομένων: 0x02 [CHG] Συσκευή EC: FE: 7E: 10: B1: 92 ManufacturerData Value: 0x00 [CHG] Device EC: FE: 7E: 10: B1: 92 ManufacturerData Value: 0x3c [CHG] Συσκευή EC: FE: 7E: 10: B1: 92 ManufacturerData Value: 0x25 [CHG] Device EC: FE: 7E: 10: B1: 92 ManufacturerData Value: 0x09 [CHG] Device EC: FE: 7E: 10: B1: 92 ManufacturerData Value: 0x41 [CHG] Device EC: FE: 7E: 10: B1: 92 ManufacturerData Value: 0x02 [CHG] Device EC: FE: 7E: 10: B1: 92 ManufacturerData Value: 0x02 [CHG] Device EC: FE: 7E: 10: B1: 92 ManufacturerData Value: 0x43 [CHG] Device EC: FE: 7E: 10: B1: 92 ManufacturerData Value: 0x0b [CHG] Device EC: FE: 7E: 10: B1: 92 ManufacturerData Τιμή: 0x01 [CHG] EC συσκευής: FE: 7E: 10: B1: 92 Κατασκευαστής Τιμή δεδομένων: 0x6f

Καταγράψτε τη διεύθυνση MAC, αυτή θα πρέπει να εισαχθεί στο σενάριο python για να φιλτράρετε ανεπιθύμητες συσκευές Bluetooth LE

Βήμα 6: Προσθέστε το Python Script

Ένα αντίγραφο του σεναρίου Python διατίθεται από:

drive.google.com/open?id=10vOeEAbS7mi_eXn_…

Εδώ είναι το ίδιο αρχείο, προσέξτε την εσοχή κατά την αντιγραφή:

Επίσης, ενημερώστε τη διεύθυνση MAC στο αρχείο python ώστε να ταιριάζει με τη διεύθυνση αισθητήρα που λαμβάνεται από το αποτέλεσμα σάρωσης.

# Αυτό το πρόγραμμα είναι δωρεάν λογισμικό: μπορείτε να το αναδιανείμετε ή/και να το τροποποιήσετε

# it υπό τους όρους της GNU General Public License όπως δημοσιεύτηκε από

# το Freeδρυμα Ελεύθερου Λογισμικού, είτε έκδοση 3 της Άδειας, είτε

# (κατά την επιλογή σας) οποιαδήποτε μεταγενέστερη έκδοση.

#

# Αυτό το πρόγραμμα διανέμεται με την ελπίδα ότι θα είναι χρήσιμο, # αλλά ΧΩΡΙΣ ΚΑΜΙΑ ΕΓΓΥΗΣΗ. χωρίς καν την σιωπηρή εγγύηση του

# ΕΜΠΟΡΙΚΟΤΗΤΑ ή ΚΑΤΑΛΛΗΛΟΤΗΤΑ ΓΙΑ ΙΔΙΑΙΤΕΡΟ ΣΚΟΠΟ. Δείτε το

# Γενική δημόσια άδεια GNU για περισσότερες λεπτομέρειες.

#

# Θα έπρεπε να έχετε λάβει αντίγραφο της GNU General Public License

# μαζί με αυτό το πρόγραμμα. Αν όχι, δείτε.

# bscan.py - Απλός σαρωτής bluetooth LE και εξαγωγέας δεδομένων

από το σαρωτή εισαγωγής bluepy.btle, DefaultDelegate

χρόνο εισαγωγής

εισαγωγή pymysql

δομή εισαγωγής

hostname = 'localhost'

όνομα χρήστη = 'datasrc'

κωδικός πρόσβασης = 'datasrc000'

βάση δεδομένων = 'SensorBug'

#Εισαγάγετε τη διεύθυνση MAC του αισθητήρα από το lescan

SENSOR_ADDRESS = ["ec: fe: 7e: 10: b9: 92", "ec: fe: 7e: 10: b9: 93"]

SENSOR_LOCATION = ["Γκαράζ", "Εξωτερικό"]

κλάση DecodeErrorException (Εξαίρεση):

def _init _ (self, value):

self.value = αξία

def _str _ (self):

return repr (self.value)

κλάση ScanDelegate (DefaultDelegate):

def _init _ (self):

DefaultDelegate._ init _ (self)

def handleDiscovery (self, dev, isNewDev, isNewData):

αν είναιNewDev:

εκτύπωση "Ανακαλυφθείσα συσκευή", dev.addr

elif isNewData:

εκτύπωση "Λήφθηκαν νέα δεδομένα από", dev.addr

def doQueryInsert (conn, addr, loc, temp, accero):

Ο πίνακας #blesensor είναι ημερομηνία, ώρα, addr, τοποθεσία, θερμοκρασία, accero

cur = conn.cursor ()

dostr = 'ΕΙΣΑΓΩΓΗ ΣΕ ΤΙΜΕΣ ΤΩΝ δεδομένων (CURRENT_DATE (), ΤΩΡΑ (), %s, %s, %s, %s);'

cur.execute (dostr, (addr, loc, temp, accero))

conn.commit ()

σαρωτής = Σαρωτής (). withDelegate (ScanDelegate ())

myConnection = pymysql.connect (host = όνομα κεντρικού υπολογιστή, χρήστης = όνομα χρήστη, passwd = κωδικός πρόσβασης, db = βάση δεδομένων)

ManuDataHex =

ReadLoop = Αλήθεια

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

ενώ (ReadLoop):

συσκευές = scanner.scan (2.0)

ManuData = ""

για dev σε συσκευές:

είσοδος = 0

AcceroData = 0

AcceroType = 0

TempData = 0

για saddr στο SENSOR_ADDRESS:

καταχώριση += 1

εάν (dev.addr == saddr):

εκτύπωση "Συσκευή %s (%s), RSSI = %d dB" %(dev.addr, dev.addrType, dev.rssi)

CurrentDevAddr = saddr

CurrentDevLoc = SENSOR_LOCATION [είσοδος-1]

για (adtype, desc, value) στο dev.getScanData ():

εκτύπωση " %s = %s" %(περιγραφή, τιμή)

εάν (desc == "Κατασκευαστής"):

ManuData = τιμή

εάν (ManuData == ""):

εκτύπωση "Δεν ελήφθησαν δεδομένα, τερματίστηκε η αποκωδικοποίηση"

να συνεχίσει

#print ManuData

για i, j σε zip (ManuData [:: 2], ManuData [1:: 2]):

ManuDataHex.append (int (i+j, 16))

#Ξεκινήστε την αποκωδικοποίηση των ακατέργαστων δεδομένων κατασκευαστή

εάν ((ManuDataHex [0] == 0x85) και [ManuDataHex [1] == 0x00)):

εκτύπωση "Βρέθηκε κεφαλίδα byte 0x0085"

αλλού:

εκτύπωση "Δεν βρέθηκε byte κεφαλίδας 0x0085, διακοπή αποκωδικοποίησης"

να συνεχίσει

#Skip Major/Minor

#Index 5 είναι 0x3c, υποδείξτε το επίπεδο μπαταρίας και διαμορφώστε #

εάν (ManuDataHex [4] == 0x3c):

BatteryLevel = ManuDataHex [5]

ConfigCounter = ManuDataHex [6]

idx = 7

#print "TotalLen:" + str (len (ManuDataHex))

while (idx <len (ManuDataHex)):

#print "Idx:" + str (idx)

#print "Data:" + hex (ManuDataHex [idx])

εάν (ManuDataHex [idx] == 0x41):

#Δεδομένα ακρομέτρου

idx += 1

AcceleroType = ManuDataHex [idx]

AcceleroData = ManuDataHex [idx+1]

idx += 2

elif (ManuDataHex [idx] == 0x43):

#Δεδομένα θερμοκρασίας

idx += 1

TempData = ManuDataHex [idx]

TempData += ManuDataHex [idx +1] * 0x100

TempData = TempData * 0,0625

idx += 2

αλλού:

idx += 1

εκτύπωση "Διεύθυνση συσκευής:" + CurrentDevAddr

εκτύπωση "Θέση συσκευής:" + CurrentDevLoc

εκτύπωση "Επίπεδο μπαταρίας:" + str (BatteryLevel) + "%"

εκτύπωση "Config Counter:" + str (ConfigCounter)

εκτύπωση "Accelero Data:" + hex (AcceleroType) + "" + hex (AcceleroData)

εκτύπωση "Δεδομένα Temp:" + str (TempData)

doQueryInsert (myConnection, CurrentDevAddr, CurrentDevLoc, TempData, AcceleroData)

ReadLoop = Λάθος

εκτός από το DecodeErrorException:

πέρασμα

Βήμα 7: Δοκιμάστε το σενάριο Python

Το σενάριο πρέπει να εκτελείται στη ρίζα, επομένως:

$ sudo python bscan.pyΑνακάλυψη συσκευής ec: 6e: 7e: 10: b1: 92 Συσκευή ec: 6e: 7e: 10: b1: 92 (δημόσια), RSSI = -80 dB Flags = 06 Ελλιπείς 16b Υπηρεσίες = 0a18 Κατασκευαστής = 850002003c25094102024309016f Βάιτ κεφαλίδας 0x0085 βρέθηκε Διεύθυνση συσκευής: ec: 6e: 7e: 10: b1: 92 Τοποθεσία συσκευής: Γκαράζ Μπαταρία Επίπεδο: 37% Counter Counter: 9 Accero Data: 0x2 0x2 Temp Data: 16.5625

Βήμα 8: Προσθέστε το Python Scrip στο Crontab

Το σενάριο python πρέπει να εκτελείται στη ρίζα, οπότε εάν θέλετε να καταγράψετε τα δεδομένα αυτόματα, θα πρέπει να προστεθεί στο crontab της ρίζας. Για αυτό το παράδειγμα, τρέχω το σενάριο κάθε 20 λεπτά Χρησιμοποιήστε την εντολή:

$ sudo crontab -e

# Επεξεργαστείτε αυτό το αρχείο για να εισαγάγετε εργασίες που πρέπει να εκτελούνται από το cron.

# # Κάθε εργασία που πρέπει να εκτελεστεί πρέπει να ορίζεται μέσω μίας γραμμής # που υποδεικνύει με διαφορετικά πεδία πότε θα εκτελεστεί η εργασία # και ποια εντολή θα εκτελεστεί για την εργασία # # Για να καθορίσετε το χρόνο μπορείτε να δώσετε συγκεκριμένες τιμές για # λεπτό (m), ώρα (η), ημέρα του μήνα (dom), μήνας (μη), # και ημέρα της εβδομάδας (dow) ή χρησιμοποιήστε το '*' σε αυτά τα πεδία (για 'οποιοδήποτε'). # # Παρατηρήστε ότι οι εργασίες θα ξεκινήσουν βασίζεται στην έννοια του συστήματος # του δαίμονα για τον χρόνο και τις ζώνες ώρας. # # Η έξοδος των εργασιών του crontab (συμπεριλαμβανομένων των σφαλμάτων) αποστέλλεται μέσω # email στον χρήστη στον οποίο ανήκει το αρχείο crontab (εκτός εάν ανακατευθυνθεί). # # Για παράδειγμα, μπορείτε να δημιουργήσετε αντίγραφο ασφαλείας όλων των λογαριασμών χρηστών σας # στις 5 το πρωί κάθε εβδομάδα με: # 0 5 * * 1 tar -zcf /var/backups/home.tgz/home/ # # Για περισσότερες πληροφορίες, ανατρέξτε στο χειροκίνητες σελίδες crontab (5) και cron (8) # # mh dom mon dow command 0 * * * * python /home/pi/bscan.py 20 * * * * python /home/pi/bscan.py 40 * * * * python /home/pi/bscan.py

Αυτό είναι. Το σενάριο python θα εκτελείται σε τακτά χρονικά διαστήματα και θα κωδικοποιεί την έξοδο στη βάση δεδομένων SQL

Βήμα 9: Επιπλέον: Διαμορφώστε το SensorBug για έξοδο ανίχνευσης θέσης

Extra: Διαμορφώστε το SensorBug για έξοδο ανίχνευσης θέσης
Extra: Διαμορφώστε το SensorBug για έξοδο ανίχνευσης θέσης
Extra: Διαμορφώστε το SensorBug για έξοδο ανίχνευσης θέσης
Extra: Διαμορφώστε το SensorBug για έξοδο ανίχνευσης θέσης

Είναι δυνατή η διαμόρφωση του SensorBug στο Android για έξοδο ανίχνευσης θέσης Για την ανίχνευση αλλαγής θέσης, που ονομάζεται πόρτα γκαράζ. Ανίχνευση, το SensorBug θα εντοπίσει αν η συσκευή στέκεται όρθια ή ξαπλώνει. Όταν η συσκευή είναι επίπεδη, η τιμή που καταγράφεται είναι 0x20 ενώ αν η συσκευή στέκεται όρθια, η τιμή είναι 0x02Δεν διαφοροποιείται αν η θέση Χ ή Υ είναι πάνω, εφόσον ο άξονας Ζ δεν είναι πάνω ή κάτω. Ο ευκολότερος τρόπος για να γίνει αυτό είναι να χρησιμοποιήσετε το LightBlue App. Το SensorBug πρέπει να εμφανίζεται στο μενού σάρωσης. Επιλέξτε τη συσκευή που θέλετε να ρυθμίσετε, μεταβείτε στα χαρακτηριστικά GATT για διαμόρφωση επιταχυνσιόμετρου UUID: 9DC84838-7619-4F09-A1CE-DDCF63225B11

Δείτε την εικόνα: Γράψτε μια νέα συμβολοσειρά διαμόρφωσης:

010d3f02020000002d00000002Διαβάστε πίσω τη συμβολοσειρά διαμόρφωσης για να επιβεβαιώσετε την εγγραφή. Αυτό επιτρέπει στο επιταχυνσιόμετρο για την ανίχνευση θέσης.

Συνιστάται: