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

Smart B.A.L (συνδεδεμένο γραμματοκιβώτιο): 4 βήματα
Smart B.A.L (συνδεδεμένο γραμματοκιβώτιο): 4 βήματα

Βίντεο: Smart B.A.L (συνδεδεμένο γραμματοκιβώτιο): 4 βήματα

Βίντεο: Smart B.A.L (συνδεδεμένο γραμματοκιβώτιο): 4 βήματα
Βίντεο: Scott Aaronson: The Greatest Unsolved Problem in Math 2024, Νοέμβριος
Anonim
Smart B. A. L (συνδεδεμένο γραμματοκιβώτιο)
Smart B. A. L (συνδεδεμένο γραμματοκιβώτιο)

Έχετε κουραστεί να ελέγχετε κάθε φορά το γραμματοκιβώτιό σας ενώ δεν υπάρχει τίποτα μέσα. Θέλετε να μάθετε εάν λαμβάνετε την αλληλογραφία σας ή ένα δέμα κατά τη διάρκεια ενός ταξιδιού. Επομένως, το συνδεδεμένο γραμματοκιβώτιο είναι για εσάς. Θα σας ειδοποιήσει εάν ο ταχυδρόμος έχει καταθέσει ένα ταχυδρομείο ή ένα δέμα, απευθείας στο smartphone σας μέσω μηνύματος ηλεκτρονικού ταχυδρομείου, χάρη στις τελευταίες τεχνολογίες LORAWAN της Γαλλίας. Πηγαίνουμε βήμα προς βήμα πώς να σχεδιάσουμε ένα πρωτότυπο σε όλο αυτό το διδακτικό.

Βήμα 1: Εξοπλισμός

Εξοπλισμός
Εξοπλισμός

Γλώσσες που χρησιμοποιούνται: C/C ++

Βασικές γνώσεις σε ψηφιακά ηλεκτρονικά.

Απαιτήσεις υλικού:

Grove-3-Axis Digital Gyro:

Κιτ sigfox module με κεραία:

Τυχαίο κουμπί (επιλέξτε αυτό που θέλετε).

Nucleo F030R8:

Απαιτήσεις λογισμικού:

Ένας υπολογιστής με καλό πρόγραμμα περιήγησης για εργασία με μεταγλωττιστή Mbed.

Βήμα 2: Προετοιμάστε τη συσκευή σας

Προετοιμάστε τη συσκευή σας
Προετοιμάστε τη συσκευή σας

Πρώτον, πρέπει να συνδέσουμε όλες τις μονάδες στο τσιπ.

Τροφοδοτήστε τη μονάδα Sigfox και το γυροσκόπιο με τάση 3,3! Στη συνέχεια, συνδέστε τα καλώδια UART στη μονάδα Sigfox (PA_9, PA_10) και τα καλώδια I2C στο γυροσκόπιο (PB_10; PB_11). Συνδέστε το κουμπί με ακίδες PB_3. όταν τελειώσετε, μεταγλωττίστε τον παρακάτω κώδικα.

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

#include "mbed.h" #include "ITG3200.h" // ---------------------------------- -// Υπερθερμική διαμόρφωση // 9600 bauds, δεδομένα 8 bit, χωρίς ισοτιμία // ------------------------------ ------ Σειριακός υπολογιστής (SERIAL_TX, SERIAL_RX); Σειριακό sigfox (PA_9, PA_10, NULL, 9600). InterruptIn bouton (PB_3); ITG3200 γυροσκόπιο (PB_11, PB_10); πτητική εφαρμογή int. int facteur = 0; Χρονόμετρο t; AnalogIn batterie (A3)? AnalogIn ref_batt (ADC_VREF); void lol () {pc.printf ("appui / r / n"); εφαρμογή = 1; } /* void batt () {pc.printf ("batterie faible! / r / n"); }*/ int main () {int x, y, z; // Ορίστε το υψηλότερο εύρος ζώνης. gyro.setLpBandwidth (LPFBW_42HZ); buff buff [20]; bouton.fall (& lol); bouton.mode (PullDown); //batterie_faible.rise(&batt); //batterie_faible.mode(PullDown); pc.printf ("έναρξη / r / n"); ενώ (1) {app = 0; x = gyro.getGyroX (); y = gyro.getGyroY (); z = gyro.getGyroZ (); εάν (x> 5000) {t.start (); pc.printf ("ντεμπούτο λεπτό / r / n"); ενώ (t.read () <10); pc.printf ("fin temps / r / n"); //pc.printf("app= %d / r / n ", εφαρμογή); if (app == 0) {sigfox.printf ("AT $ SF = 636f757272696572 / r / n"); // colis: 636f6c69732e202020 sigfox.scanf ("%s", buffer); pc.printf ("%s / r / n", buffer); } pc.printf ("fin if / r / n"); t.stop (); t.reset (); } /* if (batterie.read () <= (2.8* ref_batt.read () /1.23)) pc.printf ("batterie faible / r / n"); sigfox.printf ("AT $ SF = 636f757272696572 / r / n"); // colis: 636f6c69732e202020 αναμονή (10); sigfox.printf ("AT $ P = 1"); περιμένετε (10)? sigfox.printf ("AT $ P = 0 / r / n");*/}}

Βήμα 3: Συναρμολόγηση PCB

Το προηγούμενο πρωτότυπο είναι πολύ μεγάλο για να το τοποθετήσετε στο γραμματοκιβώτιο. Εδώ είναι μερικά αρχεία Gerber για να εκτυπώσετε το κύκλωμά σας και να συναρμολογήσετε το εξάρτημά σας.

Βήμα 4: Ιστοσελίδα back-end

Ιστοσελίδα Back-End
Ιστοσελίδα Back-End
Ιστοσελίδα Back-End
Ιστοσελίδα Back-End

Έχουμε βασίσει την αρχιτεκτονική του backend στο IBM Cloud (IBM IoT Watson Platform και NodeRED) και σε αιτήματα API REST. Το IBM Cloud χρησιμοποιήθηκε για τη διαχείριση της επικοινωνίας μεταξύ διαφορετικών τμημάτων του συστήματός μας. Όπως μπορείτε να δείτε στη ροή NodeRED, ελέγχουμε όλα τα αιτήματα που λαμβάνονται από το Sigfox API (που στέλνει τα μηνύματα από τη συσκευή μας) και από τον ιστότοπό μας Wix (για εγγραφή νέας συσκευής). Επίσης, το cloud είναι υπεύθυνο για την αποστολή του μηνύματος ηλεκτρονικού ταχυδρομείου ειδοποίησης στον πελάτη και για την εγγραφή ενός νέου πελάτη του οποίου οι πληροφορίες θα αποθηκευτούν στη βάση δεδομένων που βασίζεται στο σύννεφο (MongoDB). Έτσι, το NodeRED διαχειρίζεται βασικά τα αιτήματα API REST και τα ερωτήματα βάσης δεδομένων (INSERT και SELECT) για να διασφαλίσει ότι η σωστή ειδοποίηση θα σταλεί στον κατάλληλο πελάτη εγκαίρως.

Συνιστάται: