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

Έξυπνος συναγερμός: 6 βήματα
Έξυπνος συναγερμός: 6 βήματα

Βίντεο: Έξυπνος συναγερμός: 6 βήματα

Βίντεο: Έξυπνος συναγερμός: 6 βήματα
Βίντεο: Εξελιγμένος συναγερμός HIKVISION ασύρματος 2024, Νοέμβριος
Anonim
Έξυπνος συναγερμός
Έξυπνος συναγερμός

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

Προμήθειες

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

  1. Βατόμουρο πι 3
  2. T-cobbler breakout board
  3. Αισθητήρας PIR
  4. Φωτοανιχνευτής
  5. Αισθητήρας ανίχνευσης ήχου
  6. Βομβητής
  7. οθόνη LCD
  8. Κουμπί

Βήμα 1: Υλικό

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

Πριν ξεκινήσω να κατασκευάζω τα πάντα, έφτιαξα 2 σχήματα (1 ηλεκτρικό και 1 στο ψωμί) στο φούρνο και τα έλεγξα για να βεβαιωθώ ότι δεν υπήρχαν σφάλματα σε αυτό. Μόλις ήμουν σίγουρος ότι όλα ήταν εντάξει, ξεκίνησα με το έργο. Πρώτα απ 'όλα ξεκίνησα με το βομβητή και το κουμπί γιατί αυτά ήταν τα πιο εύκολα εξαρτήματα. Μετά από αυτό, συνέδεσα την οθόνη μου με το raspberry pi. Στο τέλος, συνέδεσα τους αισθητήρες μου. ο αισθητήρας φωτός και ο αισθητήρας κίνησης είναι εύκολοι επειδή δεν χρειάζεστε τίποτα άλλο, αλλά ο αισθητήρας PIR χρειάζεται κάτι επιπλέον. Για να διασφαλίσετε ότι το PIR δεν θα κάνει βραχυκύκλωμα, πρέπει να χρησιμοποιήσετε γέφυρα τάσης. Αυτό σημαίνει ότι πρέπει να χρησιμοποιήσετε μια πρόσθετη αντίσταση 1k ohm και 2k ohm για να είστε σίγουροι ότι όλα πάνε καλά. Μπορείτε να βρείτε την ακριβή χρήση των ακίδων και πώς να συνδέσετε τα πάντα με το pi στα σχήματα.

Βήμα 2: Βάση δεδομένων

Βάση δεδομένων
Βάση δεδομένων

Για να αποθηκεύσω όλα τα δεδομένα χρειαζόμουν μια βάση δεδομένων.

Η βάση δεδομένων μου περιλαμβάνει 6 πίνακες.

  1. Αισθητήρας
  2. Αισθητήρες ιστορίας
  3. Πρόσωπο
  4. Alarm_person
  5. Sleep_patern
  6. Τρομάζω

υπάρχουν 2 μέρη στη βάση δεδομένων. 1 για τους αισθητήρες και 1 για το άτομο και όλα τα στατιστικά του.

Ο πίνακας αισθητήρων περιέχει ένα αναγνωριστικό και ένα όνομα. Αυτός ο πίνακας είναι συνδεδεμένος με το History_sensors που έχει αναγνωριστικό, τιμή, Sensor_id και όνομα. το sensor_id είναι απαραίτητο για να ξέρετε ποιος αισθητήρας έχει μια τιμή και η ημερομηνία είναι απαραίτητη για να μάθετε πότε ο αισθητήρας το μέτρησε.

Το άτομο του πίνακα περιέχει ένα αναγνωριστικό, ένα όνομα και έναν κωδικό πρόσβασης. Ο κωδικός πρόσβασης και το όνομα είναι απαραίτητα για να συνδεθείτε, ώστε κανένας άλλος να μην μπορεί να σας ειδοποιήσει. Αυτός ο πίνακας συνδέεται με τον πίνακα sleep_pattern και τον πίνακα Alarm_person. Ο πίνακας Sleep_patern περιέχει ένα αναγνωριστικό, Hours_sleep, Date, Person_id, Bedtime και Wake_up_time. Έτσι, εδώ είναι τα δεδομένα που αποθηκεύονται για να δημιουργήσετε ένα γράφημα σχετικά με τον πατέρα του ύπνου σας.

Ο πίνακας Alarm_person περιέχει ένα Person_id, Alarm_id και την ώρα. Αυτός ο πίνακας είναι απαραίτητος επειδή διαφορετικά άτομα μπορούν να χρησιμοποιούν συναγερμό ταυτόχρονα και 1 άτομο μπορεί να χρησιμοποιήσει πολλαπλούς συναγερμούς. Ο τελευταίος πίνακας είναι ο πίνακας συναγερμού. Αυτό περιέχει ένα αναγνωριστικό και μια περιγραφή.

Βήμα 3: Back-end

Back-end
Back-end
Back-end
Back-end

Στο back-end έπρεπε να γράψω διαφορετικές συναρτήσεις.

  1. ζητήστε τους αισθητήρες τραπεζιού
  2. ζητήστε τον πίνακα history_sensors
  3. ζητήστε το μοτίβο ύπνου
  4. βάλτε νέο συναγερμό
  5. ζητήστε τον συναγερμό του τραπεζιού
  6. εγγραφή χρήστη
  7. Σύνδεση
  8. τοποθετήστε τις τιμές των αισθητήρων στον πίνακα history_sensors

Χρησιμοποίησα pycharm και έγραψα τον κώδικα σε python.

για όλες τις λειτουργίες χρησιμοποιώ το @app.route και μετά τη διεύθυνση. κάθε φορά που πρέπει να χρησιμοποιείτε διαφορετική διεύθυνση γιατί διαφορετικά δεν θα λειτουργήσει. Μετά από αυτό γράφω μια συνάρτηση if με τη μέθοδο ως τιμή, οπότε όταν αυτό είναι αληθές εκτελεί τον κώδικα. στην τιμή if υπάρχει ένα try catch και μια δήλωση sql για να λάβετε τα δεδομένα ή να τα αφαιρέσετε.

Για τις λειτουργίες με τους αισθητήρες είναι διαφορετικό. Εδώ δεν χρησιμοποίησα το @app.route αλλά απλώς έκανα μια λειτουργία για τον αισθητήρα. εδώ δηλώνετε τις καρφίτσες σας και κάνετε μια λειτουργία επανάκλησης. με αυτόν τον τρόπο κάθε φορά που ο αισθητήρας ανιχνεύει κάτι που εκτελείται η λειτουργία. Στη λειτουργία επανάκλησης χρησιμοποίησα ένα αν λειτουργεί όταν ο αισθητήρας ανιχνεύσει κάτι. Στο if βρίσκεται ο κωδικός για την τοποθέτηση των δεδομένων στον πίνακα με μια δήλωση sql. Υπάρχει επίσης ένας ύπνος, γιατί διαφορετικά θα έβαζε πάρα πολλές τιμές στον πίνακα μόνο για 1 ανίχνευση.

Στο github μου μπορείτε να βρείτε τον πλήρη κώδικα για το έργο.

Βήμα 4: Ιστότοπος

Δικτυακός τόπος
Δικτυακός τόπος
Δικτυακός τόπος
Δικτυακός τόπος
Δικτυακός τόπος
Δικτυακός τόπος

Για τον ιστότοπό μου δούλεψα με html και css ο ιστότοπός μου περιέχει 11 σελίδες html.

Υπάρχουν τόσες πολλές σελίδες γιατί όλα λειτουργούν από τον ιστότοπο. μπορείτε να ορίσετε ένα ξυπνητήρι, να προσθέσετε ένα ξυπνητήρι και να διαγράψετε ένα. Στη σελίδα ρυθμίσεων μπορείτε να αλλάξετε τον κωδικό πρόσβασης και το email σας. Έχετε μια σελίδα για το μοτίβο ύπνου σας. Μπορείτε επίσης να προσθέσετε τη στιγμή που κοιμηθήκατε και όταν ξυπνήσετε. Το θετικό είναι ότι κάθε σελίδα έχει την ίδια εμφάνιση και χρησιμοποιεί κυρίως τα ίδια πράγματα, οπότε το css είναι συχνά το ίδιο σε κάθε σελίδα.

Βήμα 5: Front-end

Το μπροστινό μέρος είναι γραμμένο σε javascript.

Βήμα 6: Θήκη

Υπόθεση
Υπόθεση
Υπόθεση
Υπόθεση

Για την περίπτωσή μου επέλεξα να χρησιμοποιήσω ξύλο. Δεν είναι τόσο δύσκολο να το κόψεις φαίνεται ωραίο. Η θήκη μου είναι 26 εκατοστά σε 14 εκατοστά με ύψος 7, 5 εκατοστά. Είναι τόσο μεγάλο γιατί όλα όσα χρειάζονται για να χωρέσουν. Έκανα τρύπες για τους αισθητήρες, το κουμπί και την οθόνη LCD έτσι ώστε να είναι ορατός ο χρόνος και οι αισθητήρες να μπορούν να ανιχνεύσουν κίνηση ή φως. Για να τα φτιάξω χρησιμοποίησα λέιζερ. Μέσα στη θήκη κάθεται το breadboard μου και το raspberry pi.

Συνιστάται: