- Απαιτούμενα υλικά:
- Ενότητα Fly Scale SIM900 GSM:
- Μονάδα φωνής ISD1820:
- Διάγραμμα κυκλώματος και επεξήγηση:
- Προγραμματισμός του Arduino:
- Εργαζόμενος:
Στον σημερινό σύγχρονο κόσμο εξαρτώνται όλοι από τα κινητά τηλέφωνα ως το πρωταρχικό μας μέσο ασύρματης επικοινωνίας. Όμως, όλοι έχουμε αντιμετωπίσει καταστάσεις κατά τις οποίες ενδέχεται να μην είμαστε σε θέση να απαντήσουμε στις κλήσεις μας, αυτές οι κλήσεις μπορεί να είναι μια σημαντική προσωπική κλήση ή μια επαγγελματική κλήση που αλλάζει τη ζωή και θα μπορούσατε απλώς να χάσετε αυτήν την ευκαιρία, καθώς δεν μπορούσατε να απαντήσετε σε αυτό καλέστε τη συγκεκριμένη ώρα.
Αυτό το έργο στοχεύει στην επίλυση αυτού του προβλήματος δημιουργώντας έναν αυτόματο τηλεφωνητή χρησιμοποιώντας τις μονάδες Arduino και GSM. Την επόμενη φορά που αλλάζετε έναν νέο αριθμό τηλεφώνου ή βγείτε για ένα μακρινό ταξίδι προσκυνήματος ή απολαμβάνετε διακοπές αξίζει απλά χρησιμοποιήστε αυτό το μηχάνημα για να εγγράψετε τη φωνή σας δηλώνοντας τον λόγο απουσίας και όλες οι κλήσεις σας θα απαντηθούν αυτόματα από αυτό το μηχάνημα και το Θα γίνει αναπαραγωγή της ηχογραφημένης φωνής. Αυτό μπορεί επίσης να χρησιμοποιηθεί για τους αριθμούς της επιχείρησής σας για να απαντήσει στις κλήσεις του πελάτη σας κατά τις ώρες εκτός γραφείου. Ακούγεται ενδιαφέρον, έτσι; Ας το φτιάξουμε λοιπόν..
Απαιτούμενα υλικά:
Το έργο μπορεί να ακούγεται λίγο περίπλοκο, αλλά είναι πολύ εύκολο στην κατασκευή, χρειάζεστε μόνο τα ακόλουθα στοιχεία
- Arduino Uno
- Μονάδα GSM - Flyscale SIM 900
- Μονάδα φωνής ISD 1820
- Προσαρμογέας 12V για τροφοδοσία μονάδας GSM
- Μπαταρία 9V για τροφοδοσία του Arduino
- Σύνδεση καλωδίων
Πριν προχωρήσουμε πραγματικά στο έργο, ας εξοικειωθούμε με τη μονάδα GSM και τη μονάδα φωνής ISD 1820
Ενότητα Fly Scale SIM900 GSM:
Οι ενότητες GSM είναι συναρπαστικές στη χρήση, ειδικά όταν το έργο μας απαιτεί απομακρυσμένη πρόσβαση. Αυτές οι λειτουργικές μονάδες θα μπορούσαν να κάνουν όλες τις ενέργειες που θα μπορούσε να κάνει το κανονικό κινητό μας τηλέφωνο, όπως πραγματοποίηση / λήψη κλήσης, αποστολή / λήψη SMS, σύνδεση στο Διαδίκτυο με χρήση GPRS κ.λπ. Μπορείτε επίσης να συνδέσετε ένα κανονικό μικρόφωνο και ηχείο σε αυτήν την ενότητα και να συνομιλείτε στο κινητές κλήσεις. Ακολουθούν ορισμένα σεμινάρια σχετικά με αυτά χρησιμοποιώντας διαφορετικό μικροελεγκτή:
- Κλήση και μήνυμα χρησιμοποιώντας το Arduino και το GSM Module
- Κλήση και κείμενο χρησιμοποιώντας Raspberry Pi και GSM Module
- Ενότητα GSM Interfacing με PIC Microcontroller - Πραγματοποίηση και λήψη κλήσεων
Όπως φαίνεται στην παρακάτω εικόνα, η μονάδα GSM συνοδεύεται από έναν προσαρμογέα USART που μπορεί να συνδεθεί απευθείας στον υπολογιστή χρησιμοποιώντας μια μονάδα MAX232 ή οι ακίδες Tx και Rx μπορούν να χρησιμοποιηθούν για τη σύνδεσή της με έναν μικροελεγκτή. Μπορείτε επίσης να παρατηρήσετε τις άλλες ακίδες όπως MIC +, MIC-, SP +, SP- κλπ όπου μπορεί να συνδεθεί ένα μικρόφωνο ή ένα ηχείο. Η μονάδα μπορεί να τροφοδοτηθεί από έναν προσαρμογέα 12V μέσω ενός κανονικού γρύλου βαρελιού DC.
Τοποθετήστε την κάρτα SIM στην υποδοχή της μονάδας και ενεργοποιήστε την, θα πρέπει να παρατηρήσετε ότι ανάβει ένα LED τροφοδοσίας. Τώρα περιμένετε ένα λεπτό περίπου και θα πρέπει να βλέπετε μια κόκκινη (ή οποιοδήποτε άλλο χρώμα) LED να αναβοσβήνει μία φορά για κάθε 3 δευτερόλεπτα. Αυτό σημαίνει ότι η Μονάδα σας μπόρεσε να δημιουργήσει σύνδεση με την κάρτα SIM. Τώρα μπορείτε να συνεχίσετε τη σύνδεση της μονάδας σας με τηλέφωνο ή οποιονδήποτε μικροελεγκτή.
Μονάδα φωνής ISD1820:
Η μονάδα φωνής ISD 1820 είναι πραγματικά μια εντυπωσιακή ενότητα που θα μπορούσε να φτιάξει τα έργα σας με ανακοινώσεις φωνής. Αυτή η μονάδα μπορεί να εγγράψει ένα κλιπ ήχου για 10 δευτερόλεπτα και μετά να το αναπαράγει όταν απαιτείται. Η ίδια η μονάδα συνοδεύεται από μικρόφωνο και ηχείο (8ohms 0,5watts) και θα πρέπει να μοιάζει με αυτό που φαίνεται παρακάτω.
Το δομοστοιχείο λειτουργεί σε + 5V και μπορεί να τροφοδοτηθεί χρησιμοποιώντας τα Berg sticks στα αριστερά. Έχει επίσης τρία κουμπιά στο κάτω μέρος που είναι Rec. κουμπί, PlayE. κουμπί και PlayL. κουμπί αντίστοιχα. Μπορείτε να εγγράψετε τη φωνή σας πατώντας το Rec. κουμπί και παίξτε το χρησιμοποιώντας το κουμπί PlayE. Το PlayL θα αναπαράγει τη φωνή όσο κρατάτε πατημένο το κουμπί. Κατά τη διασύνδεση με ένα MCU, μπορούμε να χρησιμοποιήσουμε τις ακίδες στα αριστερά. Αυτές οι ακίδες είναι ανεκτές 3V-5V και ως εκ τούτου μπορούν να οδηγηθούν απευθείας από το Arduino / ESP8266. Στο έργο μας ελέγχουμε τον πείρο PLAYE χρησιμοποιώντας τον πείρο D8 της μονάδας Arduino. Για να μπορούμε να αναπαράγουμε την ηχογραφημένη φωνή όταν εντοπίζεται και λαμβάνεται μια κλήση από τη μονάδα GSM.
Διάγραμμα κυκλώματος και επεξήγηση:
Το πλήρες διάγραμμα κυκλώματος αυτού του έργου αυτόματου τηλεφωνητή αυτόματης κλήσης δίνεται παραπάνω. Όπως μπορείτε να δείτε, οι συνδέσεις είναι πραγματικά απλές. Τροφοδοτούμε τη μονάδα GSM με προσαρμογέα 12V 1A και Arduino με μπαταρία 9V, η μονάδα φωνής ISD τροφοδοτείται από τον πείρο + 5V του Arduino. Όπως γνωρίζουμε μπορούμε να εγγράψουμε οτιδήποτε στη φωνητική μας μονάδα πατώντας το κουμπί rec και αυτό θα παίξει όταν πατηθεί το PE, αυτός ο ήχος πρέπει να σταλεί στο μικρόφωνο της μονάδας GSM. Συνδέουμε λοιπόν τον ακροδέκτη ηχείου της μονάδας φωνής με τον ακροδέκτη μικροφώνου της μονάδας GSM.
Εδώ, η μονάδα Arduino και GSM συνδέεται σειριακά, ο ακροδέκτης Tx του Arduino είναι συνδεδεμένος στον ακροδέκτη 9 και ο ακροδέκτης Rx είναι συνδεδεμένος ο ακροδέκτης 10. Αυτό θα βοηθήσει το Arduino να ακούσει τη μονάδα GSM. Όταν μια κλήση φτάσει στη μονάδα GSM, το Arduino θα το ακούσει και θα ζητήσει από τη μονάδα GSM να απαντήσει στην κλήση. Το Arduino διασφαλίζει ότι η κλήση είναι ενεργή και έπειτα αναπαράγει το ηχογραφημένο φωνητικό μήνυμα στη μονάδα φωνής κάνοντας την ακίδα 8 (Συνδεδεμένη με PE της μονάδας φωνής) να φτάσει ψηλά για 200ms.
Προγραμματισμός του Arduino:
Γνωρίζουμε από την παραπάνω παράγραφο ποιος είναι ο ρόλος του Arduino εδώ; τώρα ας ρίξουμε μια ματιά στον κώδικα που κάνει το ίδιο. Ο πλήρης κωδικός Arduino του έργου δίνεται στο κάτω μέρος αυτής της σελίδας, και εδώ έχω χύσει τον κώδικα σε μικρά σκουπίδια για να το εξηγήσω.
Πριν προχωρήσουμε σε περαιτέρω εγκατάσταση της βιβλιοθήκης GSM, κάντε κλικ σε αυτόν τον σύνδεσμο βιβλιοθήκης Github GSM για να κατεβάσετε τη βιβλιοθήκη που χρησιμοποιείται σε αυτό το έργο. Θα λάβετε ένα αρχείο zip που πρέπει να προστεθεί στη βιβλιοθήκη Arduino από το Sketch -> Include Librarey -> Add.Zip file .
Οι τρεις πρώτες γραμμές του κώδικα που εμφανίζονται παρακάτω χρησιμοποιούνται για να συμπεριλάβουν τη βιβλιοθήκη στον κώδικα μας. Χρησιμοποιούμε τη σειριακή βιβλιοθήκη και τη βιβλιοθήκη καλωδίων, επειδή δεν χρησιμοποιούμε τις προεπιλεγμένες καρφίτσες Rx και Tx του Arduino για επικοινωνία με τη μονάδα GSM.
#περιλαμβάνω
Σας επιτρέπει σειριακή επικοινωνία στις ακίδες 9 και 10, χρησιμοποιώντας την ακόλουθη γραμμή. Αυτό γίνεται εφικτό από τη σειριακή βιβλιοθήκη λογισμικού που συμπεριλάβαμε παραπάνω.
ΛογισμικόSerial gprs (9,10); // TX, RX
Μέσα στη λειτουργία εγκατάστασης , αρχικοποιούμε τη σειριακή οθόνη με ρυθμό baud 9600 και η μονάδα GSM αρχικοποιείται επίσης με 9600 Baudrate. Ο ακροδέκτης 8 που ενεργοποιεί τη φωνή δηλώνεται ως ακίδα εξόδου.
άκυρη ρύθμιση () {Serial.begin (9600); // Η σειριακή οθόνη λειτουργεί σε 9600 baudrate για εντοπισμό σφαλμάτων sim900_init (& gprs, 9600); // Η μονάδα GSM λειτουργεί σε 9600 baudrate pinMode (8, OUTPUT). // pin για να ενεργοποιήσετε το Voice Serial.println ("Arduino - Automatic Voice Machine"); }
Στη συνέχεια πρέπει να δημιουργήσουμε μια λειτουργία που θα μπορούσε να διαβάσει και να καταλάβει τι λέει η μονάδα GSM μέσω της σειριακής θύρας. Εάν χρησιμοποιούμε απλή σειριακή σειρά ανάγνωσης όπως το "gprs.read ()" για να διαβάσουμε το μήνυμα, θα τα λάβουμε με τη μορφή δεκαδικών τιμών ASCII, αυτό δεν θα έχει νόημα για εμάς.
Έτσι, η ακόλουθη συνάρτηση χρησιμοποιείται για να μετατρέψει αυτές τις δεκαδικές τιμές σε συμβολοσειρές χρησιμοποιώντας αντικείμενα συμβολοσειράς και στη συνέχεια να τις συνδυάσει για να σχηματίσει μια συμβολοσειρά. Η τελική τιμή συμβολοσειράς αποθηκεύεται στη μεταβλητή Fdata , η οποία είναι τύπου string και μπορεί να χρησιμοποιηθεί για σύγκριση με οποιεσδήποτε τιμές String.
void check_Incoming () {if (gprs.available ()) // Εάν το GSM λέει κάτι {Incomingch = gprs.read (); // Ακούστε το και αποθηκεύστε σε αυτήν τη μεταβλητή εάν (Incomingch == 10 - Incomingch == 13) // Εάν λέει space (10) ή Newline (13) σημαίνει ότι έχει συμπληρώσει μία λέξη {Serial.println (data); Fdata = δεδομένα; δεδομένα = ""; } // Εκτυπώστε τη λέξη και εκκαθαρίστε τη μεταβλητή για να ξεκινήσετε νέα {String newchar = String (char (Incomingch)); // μετατρέψτε το char σε string χρησιμοποιώντας συμβολοσειρά αντικείμενα data = data + newchar; // Μετά τη μετατροπή σε συμβολοσειρά, κάντε συνένωση συμβολοσειρών}}}
Οι ακόλουθες γραμμές χρησιμοποιούνται για εντοπισμό σφαλμάτων, με αυτές τις γραμμές εντοπισμού σφαλμάτων μπορείτε να στείλετε οποιεσδήποτε εντολές AT από τη σειριακή οθόνη του Arduino στο GSM και επίσης να δείτε ποιες είναι οι απαντήσεις στη σειριακή οθόνη.
if (Serial.available ()) {// Χρησιμοποιείται για τον εντοπισμό σφαλμάτων gprs.write (Serial.read ()); // Χρησιμοποιείται για εντοπισμό σφαλμάτων} // Χρησιμοποιείται για εντοπισμό σφαλμάτων
Όπως ειπώθηκε νωρίτερα, το Arduino πρέπει να ελέγξει εάν η μονάδα GSM δέχεται κλήσεις. Αυτό μπορεί να γίνει κάνοντας το Arduino να ελέγξει για " RING " επειδή η μονάδα GSM θα εξάγει RING σε περίπτωση κλήσης σύμφωνα με τη λίστα εντολών AT. Όταν εντοπίσει μια κλήση, θα περιμένει 5 δευτερόλεπτα και θα στείλει την εντολή " ATA " στη μονάδα GSM, αυτό θα κάνει τη μονάδα GSM να απαντήσει στην κλήση και αφού απαντήσει θα απαντήσει με "ΟΚ". Το Arduino περιμένει και πάλι την αναγνώριση « ΟΚ » και στη συνέχεια γυρίζει το Pin 8 ψηλά για 200ms για αναπαραγωγή της ηχογραφημένης φωνής από τη μονάδα φωνής.
if (Fdata == "RING") // Εάν η μονάδα GSM λέει RING {delay (5000); // περιμένετε 5 δευτερόλεπτα για να δημιουργήσετε καθυστέρηση 3 κουδουνισμάτων. gprs.write ("ATA \ r \ n"); // Απαντήστε στην κλήση Serial.println ("Ελήφθη μέρος"); // Χρησιμοποιείται για εντοπισμό σφαλμάτων ενώ (Fdata! = "OK") // Μέχρι να απαντηθεί επιτυχώς η κλήση {check_Incoming () // Διαβάστε τι λέει η λειτουργία GSM Serial.println ("Αναπαραγωγή εγγεγραμμένου μηνύματος"); // Χρησιμοποιείται για εντοπισμό σφαλμάτων // Αναπαραγωγή της καθυστέρησης φωνητικού μηνύματος (500). digitalWrite (8, ΥΨΗΛΟΣ); // Go high delay (200). // περιμένετε 200 msec digitalWrite (8, LOW). // Χαμηλά}
Εργαζόμενος:
Μόλις ο κωδικός και το υλικό σας είναι έτοιμο, είναι καιρός να διασκεδάσετε. Τροφοδοτήστε και τις δύο μονάδες και πατήστε το κουμπί REC στη μονάδα φωνής και καταγράψτε ένα μήνυμα. Αυτό το μήνυμα μπορεί να έχει διάρκεια μόνο 10 δευτερόλεπτα.
Τώρα προγραμματίστε το Arduino χρησιμοποιώντας τον παρακάτω κωδικό και εισαγάγετε το αυτοκίνητο SIM στη μονάδα GSM, θα πρέπει να περιμένετε τουλάχιστον 2 λεπτά τώρα, ώστε η μονάδα GSM να μπορεί να δημιουργήσει σύνδεση με τον παροχέα υπηρεσιών δικτύου σας. Μόλις τελειώσετε, θα πρέπει να βλέπετε μια κόκκινη λυχνία LED να αναβοσβήνει μία φορά για κάθε 3 δευτερόλεπτα, αυτό δείχνει ότι η SIM σας είναι έτοιμη να λάβει κλήσεις. Τώρα μπορείτε να δοκιμάσετε να καλέσετε σε αυτήν την κάρτα SIM από οποιονδήποτε αριθμό και θα πρέπει να ακούσετε το ηχογραφημένο μήνυμα μετά από τρεις συνεχείς κτύπους. Η πλήρης εργασία του έργου φαίνεται στο παρακάτω βίντεο.
Tadaaaaaa !!! Τώρα έχετε το δικό σας Αυτόματο μηχάνημα αυτόματης κλήσης φωνητικών κλήσεων και απλώς προχωρήστε και χρησιμοποιήστε το όταν απαιτείται και εκπλήξτε τους φίλους και την οικογένειά σας με αυτό.
Ελπίζω να σας άρεσε το έργο και να φτιάξετε κάτι παρόμοιο, Αν έχετε προβλήματα, δημοσιεύστε τα στην ενότητα σχολίων και θα σας βοηθήσω.