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

Ξεκινήστε την παρουσίαση των διακοπών σας με μια πινελιά μαγείας!: 9 βήματα (με εικόνες)
Ξεκινήστε την παρουσίαση των διακοπών σας με μια πινελιά μαγείας!: 9 βήματα (με εικόνες)

Βίντεο: Ξεκινήστε την παρουσίαση των διακοπών σας με μια πινελιά μαγείας!: 9 βήματα (με εικόνες)

Βίντεο: Ξεκινήστε την παρουσίαση των διακοπών σας με μια πινελιά μαγείας!: 9 βήματα (με εικόνες)
Βίντεο: Πώς να κάνεις καλά πράγματα να σου συμβούν. Ακουστικό βιβλίο 2024, Ιούλιος
Anonim
Ξεκινήστε την παρουσίαση των διακοπών σας με μια πινελιά μαγείας!
Ξεκινήστε την παρουσίαση των διακοπών σας με μια πινελιά μαγείας!
Ξεκινήστε τις Διακοπές των Διακοπών σας με τις πινελιές της μαγείας!
Ξεκινήστε τις Διακοπές των Διακοπών σας με τις πινελιές της μαγείας!

Με τα χρόνια, έχω συνηθίσει να παίρνω ένα μικρό ειδώλιο μαζί μου όταν ταξιδεύω: αγοράζω συχνά ένα μικρό, κενό artoy (όπως αυτό της εικόνας) και το ζωγραφίζω για να ταιριάζει με τη σημαία και το θέμα της χώρας » m επίσκεψη (στην περίπτωση αυτή, Σικελία).

Η ιδέα είναι τότε να τραβήξετε φωτογραφίες του ειδωλίου μπροστά από σκηνές ή διάσημα μνημεία από την εν λόγω χώρα: το βρίσκω πολύ πιο αστείο από το να έχω φωτογραφίες μόνο με το ίδιο το μνημείο (υπάρχει Google για αυτό και είναι πολύ φθηνότερο) αλλά ακόμα πιο εύκολο από το να έχεις να είμαι ο ίδιος σε κάθε εικόνα (όχι φαν, για να είμαι ειλικρινής)

Καθώς είναι πάντα διασκεδαστικό να συγκεντρώνετε τους ανθρώπους με τους οποίους πήγατε διακοπές λίγες μέρες μετά την επιστροφή σας για να δείτε τις εικόνες, σκέφτηκα ότι θα ήταν ωραίο αν κάθε ειδώλιο μπορούσε με κάποιο τρόπο να ξεκινήσει αυτόματα μια παρουσίαση των εικόνων από το ταξίδι για το οποίο έγιναν Το

Αυτό το διδακτικό θα εξηγήσει πώς το έκανα, χρησιμοποιώντας NFC, ένα raspberry pi, nodejs και osmc

Βήμα 1: Επισκόπηση της λύσης

Επισκόπηση της Λύσης
Επισκόπηση της Λύσης
Επισκόπηση της Λύσης
Επισκόπηση της Λύσης

Δεδομένου ότι ολόκληρη η ρύθμιση περιλαμβάνει μερικά πράγματα, εδώ είναι μια γενική επισκόπηση του τι περιλαμβάνει για να σας βοηθήσει να κατανοήσετε όλα όσα ακολουθούν:

Σκεύη, εξαρτήματα

- το ειδώλιο είναι σπιτικό: δεδομένου ότι γράφω αυτά τα διδάγματα ακριβώς στη μέση μιας εβδομάδας ταξιδιού στην Κοπεγχάγη/Όσλο/Στοκχόλμη/Ελσίνκι, θα συμπεριλάβω μερικά πλάνα από το ειδώλιο που γίνονται για αυτό το ταξίδι

- κάτω από κάθε ειδώλιο υπάρχει ένα τσιπ NFC: Χρησιμοποιώ στρογγυλά αυτοκόλλητα που μπορώ να χωρέσω κάτω από κάθε ειδώλιο, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε άλλο παράγοντα μορφής - βεβαιωθείτε ότι το τσιπ που χρησιμοποιείτε είναι συμβατό με τον αναγνώστη σας

- για την εμφάνιση των εικόνων, θα χρησιμοποιήσω ένα raspberry pi με εγκατεστημένο το OSMC: είναι το πρόγραμμα αναπαραγωγής πολυμέσων που έχω επιλέξει για τηλεοπτικές εκπομπές και ταινίες, ώστε να είναι ήδη συνδεδεμένο με την τηλεόρασή μου

- για να διαβάσει το raspberry pi ετικέτες NFC, πρόσθεσα έναν αναγνώστη NFC - αυτός που χρησιμοποίησα είναι το Explore -NFC από το NXP, διαθέσιμο σε πολλούς ιστότοπους: συνδέεται στο Pi και λειτουργεί ως ασπίδα

Λογισμικό

Στο Raspberry Pi, ένα σενάριο NodeJS περιμένει την ανάγνωση μιας ετικέτας NFC: μόλις ολοκληρωθεί, το σενάριο ελέγχει το αναγνωριστικό του έναντι μιας λίστας τιμών/ζεύγους με κάθε φάκελο από την πηγή εικόνων στο OSMC και το αντίστοιχο αναγνωριστικό NFC όπως έχει διαμορφωθεί ο χρήστης.

Όταν διαβάζεται η ετικέτα, εάν το αναγνωριστικό είναι στη λίστα, το σενάριο κόμβου λέει στο OSMC να ξεκινήσει την παρουσίαση για αυτόν τον συγκεκριμένο φάκελο. Για να δημιουργήσετε/διαμορφώσετε αυτήν τη λίστα, το ίδιο σενάριο NodeJS ξεκινά μια λειτουργία σάρωσης κάθε 5 λεπτά: σαρώνει κάθε κατάλογο μέσα στην πηγή "Εικόνες" στο OSMC (χρησιμοποιώντας το JSON-RPC API που προσφέρει το Kodi) και τον προσθέτει σε μια λίστα που στη συνέχεια αποθηκεύεται στο δίσκο. Με την άμεση επεξεργασία αυτού του αρχείου κειμένου, ο χρήστης μπορεί στη συνέχεια να προσθέσει το αντίστοιχο αναγνωριστικό NFC για κάθε άλμπουμ.

Βήμα 2: Δημιουργία ειδωλίου

Δημιουργία ειδωλίου
Δημιουργία ειδωλίου
Δημιουργώντας το ειδώλιο
Δημιουργώντας το ειδώλιο
Δημιουργία ειδωλίου
Δημιουργία ειδωλίου
Δημιουργώντας το ειδώλιο
Δημιουργώντας το ειδώλιο

Μπορείτε να χρησιμοποιήσετε σχεδόν ό, τι σας αρέσει για το ειδώλιο σας: Μου αρέσει να χρησιμοποιώ αυτά τα παιχνίδια τέχνης βινυλίου επειδή είναι - σχετικά - εύκολο να σχεδιαστούν ακόμη και για κάποιον σαν εμένα που δεν του αρέσει να σχεδιάζει και αρκετά εύκολο να μεταφερθεί. Τα παραγγέλνω στην κενή, DIY έκδοση τους, στο μικρότερο μέγεθος που έρχονται και τα σχεδιάζω χρησιμοποιώντας δείκτες Posca. Εδώ μπορείτε να δείτε αυτό που έχω κάνει για αυτό το ταξίδι, με τις σημαίες των τεσσάρων χωρών που επισκεφθήκαμε - έτυχε να είναι αρκετά παρόμοιες για να τις συνδυάσω από πλευρά σε πλευρά. Μπορείτε να χρησιμοποιήσετε πολλά στρώματα χρώματος αρκεί να αφήσετε το καθένα να στεγνώσει πριν βάψετε το επόμενο. Αφού τελειώσω με τη ζωγραφική, μου αρέσει να χρησιμοποιώ ένα πιστόλι θερμότητας στο χρώμα για λίγα λεπτά, καθώς έχω διαβάσει ότι στην πραγματικότητα είναι η θερμότητα που βοηθά το σετ βαφής Posca.

Στην τελευταία εικόνα μπορείτε να δείτε τον Sven - τους δίνω πάντα ονόματα - να κάνει ένα διάλειμμα στο Όσλο μετά από ένα αρκετά μακρύ πρωινό. Δεν έχει το κεφάλι από το αρχικό παιχνίδι, αφού κατάφερα να το μπερδέψω ένα λεπτό πριν φύγω: έπρεπε να διαλύσω ένα προηγούμενο παιχνίδι για να χρησιμοποιήσω το κεφάλι του. Δεν μπορώ να πω ότι δεν έχει ξαναγίνει…

Βήμα 3: Εγκαταστήστε το OSMC

Εγκαταστήστε το OSMC
Εγκαταστήστε το OSMC

Το πρώτο πράγμα που έκανα ήταν να εγκαταστήσω το OSMC σε κάρτα micro SD για το Raspberry Pi: στη ρύθμισή μας, θα χρησιμεύσει ως πρόγραμμα αναπαραγωγής πολυμέσων για να παρακολουθείτε τις φωτογραφίες σας. Δεν θα υπεισέλθω σε πολλές λεπτομέρειες σχετικά με αυτήν την πτυχή, δεδομένου ότι είναι αρκετά καλά τεκμηριωμένο (υπάρχουν μερικά διαθέσιμα εγχειρίδια εάν χρειάζεστε βοήθεια). Απλώς κατεβάστε το πρόγραμμα εγκατάστασης στον υπολογιστή σας και ακολουθήστε τις οδηγίες. Μόλις τελείωσα, απλά συνδέσα ένα πληκτρολόγιο και ένα ποντίκι και συνδέσα το HDMI στην τηλεόραση και ακολούθησα τον οδηγό εγκατάστασης για να ρυθμίσω τη ζώνη ώρας κ.λπ.

Τέλος, πρόσθεσα τον κατάλογο όπου αποθηκεύω τις φωτογραφίες μου στις πηγές: στην περίπτωσή μου αποθηκεύονται σε NAS με σταθερή IP στο ίδιο δίκτυο, αλλά μπορείτε επίσης να τις αποθηκεύσετε σε μονάδα USB ή στον ίδιο τον αρχικό φάκελο, με την προϋπόθεση ότι το micro SD είναι αρκετά μεγάλο.

Όταν προσθέτετε την πηγή, θα σας ζητηθεί να εισαγάγετε ένα όνομα για αυτήν: μπορείτε να αφήσετε την προεπιλογή ή να την αλλάξετε, αλλά φροντίστε να την γράψετε γιατί θα την χρειαστούμε αργότερα. Στην περίπτωσή μου το ονόμασα "MyPictures"

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

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

Βήμα 4: Διαμορφώστε τον αναγνώστη

Για τα υπόλοιπα εκπαιδευτικά, θα συνδεθούμε στο Pi χρησιμοποιώντας τη γραμμή εντολών μέσω SSH. Για να το κάνετε αυτό, απλώς συνδέστε το Pi στο δίκτυό σας χρησιμοποιώντας ένα καλώδιο Ethernet και χρησιμοποιήστε το τερματικό ή ένα ειδικό λογισμικό sotware για να συνδεθείτε στο Pi. Σε Mac OS και Linux, η εντολή είναι

ssh [email protected]

Θα σας ζητηθεί να εισαγάγετε έναν κωδικό πρόσβασης, είναι ξανά osmc

Για να μπορεί να λειτουργεί ο αναγνώστης, πρέπει να είναι ενεργοποιημένο το SPI: στις περισσότερες διανομές όπως το Raspbian αυτό μπορεί να γίνει χρησιμοποιώντας το raspi-config, ένα εργαλείο διαμόρφωσης που σας επιτρέπει να αλλάξετε ορισμένες τιμές διαμόρφωσης.

Το OSMC, ωστόσο, δεν περιλαμβάνει raspi-config, για τη δική σας ασφάλεια κατά τη χρήση του. Αντ 'αυτού, κλείστε το Raspberry, αφαιρέστε την κάρτα micro SD και απλώς τοποθετήστε την στον υπολογιστή σας: το διαμέρισμα "εκκίνησης" θα πρέπει τώρα να είναι ορατό. Εκεί, στη ρίζα του τόμου, θα δείτε ένα αρχείο που ονομάζεται "config.txt" - απλά ανοίξτε το και προσθέστε αυτήν τη γραμμή στο τέλος:

"dtparam = spi = on"

Τώρα μπορείτε να αποθηκεύσετε το αρχείο, πρέπει να είναι ενεργοποιημένη η επανεκκίνηση και το SPI.

Μετά από αυτό, θα χρειαστεί να κατεβάσετε το συνημμένο αρχείο ZIP και να το αποσυμπιέσετε στο βατόμουρο - συνιστώ να δημιουργήσετε ένα φάκελο Projects και να το αποσυμπιέσετε εκεί. Για να το κάνετε αυτό, μπορείτε είτε να συνδεθείτε στο Raspberry χρησιμοποιώντας FTP μέσω SSH (χρησιμοποιώ το CyberDuck για να το κάνω αυτό) είτε να τοποθετήσετε το αρχείο σε μονάδα USB και να χρησιμοποιήσετε τον διαχειριστή αρχείων του Kodi για να το αντιγράψετε στο Raspberry Pi.

Είτε έτσι είτε αλλιώς, αφού αντιγράψετε το αρχείο zip στο Pi, μπορείτε στη συνέχεια να μεταβείτε στο φάκελο στον οποίο το αντιγράψατε και να το αποσυμπιέσετε, να μετακινηθείτε στον φάκελο που προκύπτει και να εγκαταστήσετε το πακέτο:

αποσυμπιέστε SW2827.zipcd SW2827sudo dpkg -i libneardal0_0.14.3-1_armhf.deb neard-explorenfc_1.2-1_armhf.deb

Εάν όλα πάνε καλά, θα πρέπει να μπορείτε να συνδέσετε τον αναγνώστη, να επανεκκινήσετε και στη συνέχεια να εισαγάγετε

explorenfc-basic

Εάν προσεγγίσετε ένα τσιπ NFC στον αναγνώστη, θα πρέπει τώρα να εμφανίζει μια δέσμη πληροφοριών από το τσιπ (μεταξύ άλλων, το αναγνωριστικό του)

Βήμα 5: Εγκαταστήστε το Node και δημιουργήστε το έργο

Στη συνέχεια, θα εγκαταστήσουμε το NodeJS στο βατόμουρο για να γράψουμε την εφαρμογή μας.

Θέλουμε να εγκαταστήσουμε nodejs, αλλά η έκδοση του προεπιλεγμένου αποθετηρίου είναι πραγματικά παλιά, οπότε πρέπει να κάνετε ένα πρώτο βήμα πριν: στη διεπαφή της γραμμής εντολών, πληκτρολογήστε

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Στη συνέχεια, μπορείτε να πληκτρολογήσετε

sudo apt install nodejs

για να εγκαταστήσετε την τελευταία έκδοση των διαθέσιμων nodejs και npm.

Για να ελέγξουμε το KODI από το nodejs, θα χρησιμοποιήσουμε ένα πακέτο npm που ονομάζεται kodi-ws.

Ας ξεκινήσουμε δημιουργώντας ένα νέο έργο: απλά πληκτρολογήστε την εντολή

npm init

Θα σας υποβληθούν πολλές ερωτήσεις: για τις περισσότερες από αυτές μπορείτε να αφήσετε την προεπιλογή, απλώς επιλέξτε ένα όνομα για την εφαρμογή σας και εισαγάγετε το δικό σας όνομα στο τέλος. Όταν σας ζητηθεί το σημείο εκκίνησης, αφήστε το index.js

Αυτό θα δημιουργήσει ένα αρχείο package.json που θα συνοψίζει τα χαρακτηριστικά του πακέτου σας, όπως τις εξαρτήσεις του.

Τώρα μπορείτε να εισάγετε

sudo npm install kodi-ws sudo npm install jsonfilesudo npm install cronsudo npm install child_process

Εάν ανοίξετε το package.json μετά από αυτό, θα σημειώσετε ότι όλα αυτά τα πακέτα προστέθηκαν στις εξαρτήσεις.

Βήμα 6: Ο κώδικας, εξηγημένος

Ο Κώδικας, Εξηγημένος
Ο Κώδικας, Εξηγημένος

Επισυνάπτεται σε αυτό το βήμα ο κωδικός για την εφαρμογή.

Έχω αφήσει μια αρκετά καλή καταγραφή που μπορεί να γίνει χωρίς σχολιασμό για να κατανοήσω το σενάριο, αλλά οι et's το διασπούν μαζί.

Θα παρατηρήσετε ότι παρά όλες τις δηλωμένες λειτουργίες, ο κώδικας κάνει μόνο μερικά πράγματα στην αρχή:

kodi ('localhost', 9090). τότε (λειτουργία (σύνδεση) {

Το σενάριο προσπαθεί να συνδεθεί με το API OSMC JSON-RPC. Μόλις πετύχει (και μόνο τότε), συνεχίζει με το υπόλοιπο αρχείο.

Εάν για κάποιο λόγο δεν το εκτελείτε από το Raspberry Pi, αλλάξτε localhost στη διεύθυνση IP σας. Βεβαιωθείτε επίσης ότι στις ρυθμίσεις υπηρεσίας εντός του OSMC (Ρυθμίσεις/Υπηρεσίες) το πλαίσιο ελέγχου "Να επιτρέπεται το τηλεχειριστήριο από εφαρμογές σε άλλα συστήματα" (δείτε εικόνα)

Το υπόλοιπο αρχείο είναι ως επί το πλείστον δηλώσεις συναρτήσεων που θα χρησιμοποιήσουμε αργότερα: οι δύο συναρτήσεις που πράγματι ξεκινούν από εδώ είναι (γραμμές 172/173)

scanAndSetCron (); listenForTag ();

Στο scanAndSetCron:

- ξεκινά η λειτουργία scanPictures. Μέσα σε αυτό, ελέγχουμε αν η μεταβλητή "mypicturedirectory", η οποία θα κρατήσει τη διαδρομή προς τις εικόνες μας, είναι κενή. Εάν είναι, ζητάμε από το OSMC να μας δώσει όλες τις πηγές που διαθέτει για περιεχόμενο εικόνας (μέσα στη λειτουργία getPictureDirectory, γραμμή 11):

var piclist = αναμονή σύνδεσης. Files. GetSources ("εικόνες");

Το OSMC μας δίνει έναν πίνακα ως αντάλλαγμα: για κάθε στοιχείο, ελέγχουμε αν το όνομα της πηγής περιλαμβάνει το "My": εάν συμβαίνει αυτό, το αποθηκεύουμε ως πηγή εικόνας (γραμμή 16 και επόμενη). Εδώ θα θέλετε να αλλάξετε τη συμβολοσειρά από "My" σε ό, τι έχετε εισαγάγει προηγουμένως ως όνομα για την πηγή των εικόνων σας

if (piclist.sources .label.includes ("My")) {console.log (">>> Βρέθηκε ο κατάλογος" + piclist.sources .file); mypicturedirectory = piclist.sources .file; }

Τώρα που έχουμε τη διαδρομή προς την πηγή (ουσιαστικά ο ριζικός φάκελος στα άλμπουμ μας), ζητάμε από το OSMC να το σαρώσει και να προσθέσει τη διαδρομή για κάθε φάκελο σε έναν πίνακα που ονομάζεται album_directories (αν δεν είναι ήδη εκεί). Δεδομένου ότι αυτή η λειτουργία θα εκτελείται κάθε X δευτερόλεπτα, ελέγχουμε ότι ο κατάλογος δεν είναι ήδη στη λίστα πριν τον προσθέσουμε, με το αναγνωριστικό NFC να έχει οριστεί σε μια κενή συμβολοσειρά - με αυτόν τον τρόπο, κάθε νέος φάκελος που προσθέτετε στις φωτογραφίες σας θα γίνεται αυτόματα προστέθηκε - γραμμή 46

για (var j = 0; j <directories.length; j ++) {if (directories [j].filetype.includes ("directory")) {if (searchDirectory (directories [j].file, album_directories)) {κονσόλα log (καταλόγοι [j].file +"ήδη εκεί"); } else {console.log (">> Προσθήκη dir" + καταλόγους [j].file); album_directories.push ({κατάλογος: κατάλογοι [j].file, nfc: ""}); }}}

Στο τέλος, αποθηκεύουμε τον πίνακα album_directories σε ένα αρχείο json στο Pi, το οποίο προσπαθούμε να φορτώσουμε κάθε φορά που εκτελείται η συνάρτηση: αυτό συμβαίνει στο τέλος της συνάρτησης scanAndSetCron όπου χρησιμοποιούμε ένα πακέτο που μοιάζει με cron για να διασφαλίσουμε ότι η λειτουργία μας εκτελείται κάθε 15 δευτερόλεπτα.

Το αρχείο JSON που δημιουργούμε, album_directories.json, μπορεί να ανοίξει χρησιμοποιώντας οποιαδήποτε εφαρμογή σημειωματάριου. Μόλις το κάνετε αυτό, θα εμφανιστεί η λίστα με τα άλμπουμ φωτογραφιών σας, καθένα από τα οποία έχει ένα κενό πεδίο "nfc":

[{"directory": "/home/osmc/Pictures/Mada 2016/", "nfc": ""}, {"directory": "/home/osmc/Pictures/NewFolder/", "nfc": "" }, {"directory": "/home/osmc/Pictures/Test/", "nfc": ""}]

Σε αυτό το πεδίο, πρέπει τώρα να επικολλήσετε το αναγνωριστικό της ετικέτας που θέλετε να συσχετίσετε με αυτό το άλμπουμ. Για να λάβετε αυτό το αναγνωριστικό, απλώς μεταβείτε στο φάκελο SW2827, εκτελέστε το explorenfc-Basic και σαρώστε την ετικέτα που θέλετε να χρησιμοποιήσετε. Στην έξοδο που λαμβάνετε, απλώς αναζητήστε την τιμή δίπλα στο ISO14443A UID. Αντιγράψτε το στο άλμπουμ που θέλετε να διαμορφώσετε. Στην περίπτωσή μου, για παράδειγμα,

[{"directory": "/home/osmc/Pictures/Mada 2016/", "nfc": "040A12EAFC3881"}, {"directory": "/home/osmc/Pictures/NewFolder/", "nfc": " "}, {" directory ":"/home/osmc/Pictures/Test/"," nfc ":" "}]

Αποθηκεύστε το αρχείο και το περιεχόμενό του θα φορτωθεί κατά την εκκίνηση της εφαρμογής την επόμενη φορά.

Στη συνάρτηση listenForTag, κάνουμε ακριβώς αυτό: δεδομένου ότι δεν φαίνεται να υπάρχει μια ειδική θύρα της βιβλιοθήκης αναγνώστη για το NodeJS, βασιζόμαστε σε παιδικές διαδικασίες για την εκκίνηση του δυαδικού για τον αναγνώστη:

var spawn = απαιτούν ('child_process'). spawn, child = spawn ('/usr/bin/explorenfc-basic', );

Στηριζόμαστε σε ένα eventlistener για να λάβουμε την έξοδο από αυτήν την εκτέλεση: μέσα στην επανάκληση για το child.stdout.on («δεδομένα», συνάρτηση (δεδομένα), αναλύουμε την έξοδο αυτής της εντολής χρησιμοποιώντας τη συνάρτηση analysisOutput: ψάχνουμε γραμμή που είδαμε νωρίτερα, ξεκινώντας με "ISO14443A UID:", αφού εκεί αποθηκεύεται το αναγνωριστικό για την ετικέτα που σαρώσαμε. Μόλις βρούμε αυτήν τη γραμμή, την περικόπτουμε και αποθηκεύουμε την ταυτότητα σε ένα αντικείμενο (που ονομάζεται ID, πώς πρωτότυπο).

Τέλος, προσπαθούμε να αντιστοιχίσουμε αυτό το αναγνωριστικό με τα αναγνωριστικά που καταχωρίσαμε στη συστοιχία αντικειμένων album_directories (φορτωμένα μέσω του αρχείου album_directories.json). Εάν βρεθεί αντιστοίχιση, δίνουμε εντολή στο OSMC να ξεκινήσει μια παρουσίαση για τον συγκεκριμένο φάκελο:

var nfcid = analysisOutput (δεδομένα); console.log ("nfcid is" + nfcid.id); var respectivealbum = searchTag (nfcid.id, album_directories); εάν (αντίστοιχο άλμπουμ) {console.log ("Βρέθηκε άλμπουμ" + JSON.stringify (αντίστοιχο άλμπουμ) + "για αυτήν την ετικέτα"); var args = [{'path': respectivealbum.directory}]; connection.run ('Player. Open', args); } listenForTag ();

Παρατηρείτε πώς στο τέλος της λειτουργίας ξεκινάμε ξανά το listenForTag; Αυτός είναι ο μόνος τρόπος αντιμετώπισης που βρήκα για να λειτουργήσει η εφαρμογή: το explorenfc-Basic θα περιμένει από προεπιλογή μια ετικέτα, θα το διαβάσει και μετά θα κλείσει. Η εφαρμογή έχει μια συνεχή λειτουργία που μπορούμε να την ονομάσουμε χρησιμοποιώντας explorenfc -Basic -k, αλλά σε αυτήν τη λειτουργία, η διαδικασία child_process δεν βγάζει ποτέ το περιεχόμενο της ετικέτας αφού δεν τελειώνει ποτέ (με άλλα λόγια το child.stdout.on ("δεδομένα") δεν ενεργοποιείται ποτέ). Δεδομένου ότι δεν έχω βρει άλλο τρόπο χρήσης αυτού του προγράμματος ανάγνωσης, αυτό που κάνουμε εδώ είναι βασικά η εκκίνηση του explorenfc-basic σε λειτουργία μεμονωμένης ετικέτας και όταν διαβάζεται μια ετικέτα, ξεκινάμε το listenForTag και επομένως κάνουμε επανεκκίνηση του explorenfc-Basic.

Αν έπρεπε να επιστρέψω (και νομίζω ότι θα επιστρέψω), θα επέλεγα έναν αναγνώστη NFC που προσφέρει περισσότερες επιλογές: για παράδειγμα, το Adafruit (ίσως έχετε παρατηρήσει ότι μου αρέσουν πολύ) έχει αυτόν τον αναγνώστη https:// www.adafruit.com/product/789 που είναι συμβατό με το libnfc, το οποίο πιστεύω σημαίνει ότι ο αναγνώστης θα είναι πιο καθαρός στη διεπαφή από το να καλέσει μια διαδικασία παιδιών από τον κόμβο και να αναλύσει το stdout!

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

Για να ξεκινήσετε την εφαρμογή, απλώς μεταβείτε σε αυτόν τον φάκελο και πληκτρολογήστε "node index.js" (ή ξεκινήστε npm αφού την έχουμε ρυθμίσει νωρίτερα στο package.json). Στα αρχεία καταγραφής θα πρέπει να δείτε την εφαρμογή να συνδέεται με το OSMC/Kodi και να σαρώνει για πρώτη φορά. Μετά από μερικά δευτερόλεπτα το αρχείο album_directories.json θα δημιουργηθεί μέσα στον κατάλογο του έργου. Στη συνέχεια, μπορείτε να εισαγάγετε τα αναγνωριστικά ετικετών NFC όπως εξηγήθηκε νωρίτερα και να τα συσχετίσετε με τα άλμπουμ που θέλετε.

Βήμα 8: Εκκίνηση αυτόματα

Συνοψίζοντας, δημιουργήσαμε την εφαρμογή Node η οποία (1) σαρώνει τη βιβλιοθήκη εικόνων σας KODI και προσπαθεί να βρει το φάκελο στον οποίο αποθηκεύετε τις φωτογραφίες των διακοπών σας, (2) ακούει τις ετικέτες NCF βασίζοντας στο explorenfc-basic και στη συνέχεια (3) εγκαινιάζει το άλμπουμ που σχετίζεται με αυτό το αναγνωριστικό NFC.

Για να τρέξει όλη αυτή η διαδικασία στο παρασκήνιο, θα χρησιμοποιήσουμε το PM2, έναν διαχειριστή διαδικασίας για κόμβο.

Στη γραμμή εντολών, μεταβείτε στο φάκελο έργων σας (όπου βρίσκεται το αρχείο index.js) και πληκτρολογήστε τις ακόλουθες γραμμές:

sudo npm εγκατάσταση pm2 -gpm2 έναρξη index.js

Η εφαρμογή σας τώρα παρακολουθείται από PM2 και θα επανεκκινηθεί αυτόματα! Για να βεβαιωθείτε ότι έχει ξεκινήσει, πληκτρολογήστε pm2 list και θα πρέπει να το δείτε στη λίστα. Αν θέλετε να δείτε τα αρχεία καταγραφής, απλώς πληκτρολογήστε αρχεία καταγραφής pm2.

Συνιστάται: