- Απαιτούμενα συστατικά:
- Επεξήγηση εργασίας:
- Εξηγώντας τέσσερα χαρακτηριστικά του Raspberry Pi Mobile Phone:
- Διάγραμμα κυκλώματος και επεξήγηση:
- Επεξήγηση προγραμματισμού:
Σε αυτό το έργο DIY πρόκειται να φτιάξουμε ένα απλό κινητό τηλέφωνο χρησιμοποιώντας το Raspberry Pi, στο οποίο το GSM Module χρησιμοποιείται για την πραγματοποίηση ή απάντηση στην κλήση και την αποστολή ή ανάγνωση του SMS , και επίσης αυτό το τηλέφωνο Raspberry Pi έχει Mic και Speaker για να μιλήσουν για αυτό Τηλέφωνο . Αυτό το έργο θα χρησιμεύσει επίσης ως κατάλληλη διασύνδεση του GSM Module με το Raspberry Pi, με όλο τον κώδικα που απαιτείται για τη λειτουργία των βασικών λειτουργιών του τηλεφώνου. Προηγουμένως είχαμε κατασκευάσει το ίδιο είδος απλού κινητού τηλεφώνου χρησιμοποιώντας το Arduino, ελέγξτε εδώ
Απαιτούμενα συστατικά:
- Raspberry Pi 3 (οποιοδήποτε μοντέλο)
- Ενότητα GSM
- LCD 16x2
- Πληκτρολόγιο 4x4 (ο χρήστης μπορεί να χρησιμοποιεί πληκτρολόγιο μεμβράνης)
- 10k ποτ
- Ψωμί
- Σύνδεση καλωδίου βραχυκυκλωτήρα
- Παροχή ηλεκτρικού ρεύματος
- Ομιλητής
- ΜΙΚ
- Κάρτα SIM
- Ομιλητής
- Κύκλωμα ενισχυτή ήχου (προαιρετικό)
Επεξήγηση εργασίας:
Σε αυτό το έργο κινητού τηλεφώνου Raspberry Pi, χρησιμοποιήσαμε τη μονάδα GSM και το Raspberry Pi 3 για τον έλεγχο των χαρακτηριστικών ολόκληρου του συστήματος και τη διασύνδεση όλων των στοιχείων αυτού του συστήματος. Ένα 4x4 αλφαριθμητικό πληκτρολόγιο χρησιμοποιείται για τη λήψη όλων των ειδών των εισροών όπως: Εισάγετε τον αριθμό του κινητού, μηνύματα τύπου, να πραγματοποιήσετε μια κλήση, να λάβετε μια κλήση, αποστολή SMS, να διαβάσετε SMS κλπ GSM Module SIM900A χρησιμοποιείται για την επικοινωνία με το δίκτυο για την κλήση και μηνυμάτων σκοπός. Έχουμε επίσης διασυνδέσει ένα MIC και ένα ηχείο για φωνητική κλήση και ήχο κλήσης και ένα LCD 16x2 χρησιμοποιείται για την εμφάνιση μηνυμάτων, οδηγιών και ειδοποιήσεων.
Το αλφαριθμητικό είναι μια μέθοδος εισαγωγής αριθμών και αλφαβητικών και των δύο χρησιμοποιώντας το ίδιο πληκτρολόγιο. Σε αυτήν τη μέθοδο, έχουμε διασυνδέσει το πληκτρολόγιο 4x4 με το Raspberry Pi και γραπτό κώδικα για την αποδοχή αλφαβήτων, ελέγξτε την ενότητα Κωδικός στην ενότητα παρακάτω.
Η εργασία αυτού του έργου είναι εύκολη. Όλες οι λειτουργίες θα εκτελεστούν χρησιμοποιώντας το αλφαριθμητικό πληκτρολόγιο. Ελέγξτε τον Πλήρες κώδικα και ένα Demo Video παρακάτω για να κατανοήσετε σωστά τη διαδικασία. Εδώ θα εξηγήσουμε και τα τέσσερα χαρακτηριστικά των παρακάτω έργων.
Εξηγώντας τέσσερα χαρακτηριστικά του Raspberry Pi Mobile Phone:
1. Πραγματοποιήστε μια κλήση:
Για να πραγματοποιήσετε μια κλήση χρησιμοποιώντας το τηλέφωνό μας που βασίζεται στο Raspberry Pi, πρέπει να πατήσετε "C" και στη συνέχεια πρέπει να εισαγάγετε τον αριθμό κινητού τηλεφώνου στον οποίο θέλουμε να πραγματοποιήσουμε μια κλήση. Ο αριθμός θα εισαχθεί χρησιμοποιώντας αλφαριθμητικό πληκτρολόγιο. Αφού εισαγάγετε τον αριθμό πρέπει να πατήσουμε ξανά το πλήκτρο C. Τώρα το Raspberry Pi θα επεξεργαστεί για τη σύνδεση της κλήσης με τον καταχωρημένο αριθμό χρησιμοποιώντας την εντολή AT:
ATDxxxxxxxxxx;
2. Λήψη κλήσης:
Η λήψη κλήσης είναι πολύ εύκολη. Όταν κάποιος καλεί στον αριθμό SIM του συστήματός σας, ο οποίος υπάρχει στη μονάδα GSM, τότε το σύστημά σας θα εμφανίζει το μήνυμα «Εισερχόμενα…» μέσω της οθόνης LCD με τον εισερχόμενο αριθμό του καλούντος. Τώρα πρέπει απλώς να πατήσουμε 'A' για να παρακολουθήσουμε αυτήν την κλήση. Όταν πατάμε «Α», το Raspberry Pi θα στείλει μια εντολή στο GSM Module:
ΑΤΑ
3. Αποστολή SMS:
Όταν θέλουμε να στείλουμε ένα SMS χρησιμοποιώντας το τηλέφωνό μας με βάση το Raspberry Pi, τότε πρέπει να πατήσουμε 'D'. Τώρα το σύστημα θα ζητήσει τον αριθμό παραλήπτη, σημαίνει «σε ποιον» θέλουμε να στείλουμε SMS. Αφού εισαγάγετε τον αριθμό πρέπει να πατήσουμε ξανά το 'D' και τώρα η LCD ζητά μήνυμα. Τώρα πρέπει να πληκτρολογήσουμε το μήνυμα, όπως μπαίνουμε σε κανονικό κινητό, χρησιμοποιώντας το πληκτρολόγιο και μετά μετά την εισαγωγή του μηνύματος πρέπει να πατήσουμε ξανά το 'D' για να στείλουμε SMS. Για να στείλετε SMS Το Raspberry Pi στέλνει δεδομένη εντολή:
AT + CMGF = 1
Και στείλτε 26 στο GSM για να στείλετε SMS.
4. Λήψη και ανάγνωση SMS:
Αυτή η δυνατότητα είναι επίσης απλή. Σε αυτό, το GSM θα λαμβάνει SMS και θα το αποθηκεύει στην κάρτα SIM. Και το Raspberry Pi παρακολουθεί συνεχώς την ληφθείσα ένδειξη SMS μέσω UART. Όποτε υπάρχει ένα νέο μήνυμα, η οθόνη LCD θα εμφανίζει κείμενο "Νέο μήνυμα" και στη συνέχεια πρέπει απλώς να πατήσουμε το "B", για να διαβάσουμε το SMS. Η ένδειξη λήψης SMS είναι:
+ CMTI: "SM", 6 Πού 6 είναι η θέση μηνυμάτων όπου αποθηκεύτηκε στην κάρτα SIM.
Όταν το Raspberry Pi λαμβάνει αυτήν την ένδειξη «Λήψη SMS», τότε εξάγει τη θέση αποθήκευσης SMS και στέλνει εντολή στο GSM για να διαβάσει το ληφθέν SMS. Και δείξτε ένα κείμενο «Νέο μήνυμα» μέσω της οθόνης LCD
AT + CMGR =
Τώρα το GSM στέλνει αποθηκευμένο μήνυμα στο Raspberry Pi και στη συνέχεια το Raspberry Pi εξαγάγετε τα κύρια SMS και το εμφανίζετε μέσω της οθόνης LCD.
Σημείωση: Δεν υπάρχει κωδικοποίηση για MIC και ηχείο.
Ελέγξτε τον Πλήρες κώδικα και ένα Demo Video παρακάτω για να κατανοήσετε σωστά τη διαδικασία.
Διάγραμμα κυκλώματος και επεξήγηση:
Οι ακίδες 16x2 LCD RS, EN, D4, D5, D6 και D7 συνδέονται με τον αριθμό pin GPIO 18, 23, 24, 25, 8 και 7 του Raspberry Pi αντίστοιχα. Ο ακροδέκτης Rx και Tx της μονάδας GSM συνδέεται απευθείας με τον ακροδέκτη Tx και Rx του Raspberry Pi αντίστοιχα (Η γείωση του Raspberry Pi και το GSM πρέπει να είναι συνδεδεμένα μεταξύ τους). Πληκτρολόγιο 4x4 Οι σειρές R1, R2, R3, R4 συνδέονται απευθείας με τον αριθμό pin GPIO 12,16, 20, 21 του Raspberry Pi και τον ακροδέκτη στήλης του πληκτρολογίου C1, C2, C3, C4 συνδέονται με τον αριθμό pin GPIO 26, 19, 13 και 6 του Raspberry Pi. Το MIC συνδέεται απευθείας με το μικρόφωνο + και το μικρόφωνο της μονάδας GSM και το ηχείο συνδέεται στα sp + και spins για τη μονάδα GSM με τη βοήθεια αυτού του κυκλώματος ενισχυτή ήχου, για την ενίσχυση του ήχου εξόδου. Αυτό το κύκλωμα ενισχυτή ήχου είναι προαιρετικό και μπορείτε να συνδέσετε απευθείας το ηχείο με τη μονάδα GSM χωρίς αυτόν τον ενισχυτή ήχου.
Επεξήγηση προγραμματισμού:
Ο προγραμματισμός μέρους αυτού του κινητού τηλεφώνου Raspberry Pi είναι λίγο περίπλοκος για αρχάριους. Χρησιμοποιούμε τη γλώσσα Python εδώ για το Πρόγραμμα. Εάν είστε αρχάριος στο Raspberry Pi, θα πρέπει να ελέγξετε τα προηγούμενα μαθήματά μας για να ξεκινήσετε με το Raspberry Pi και να εγκαταστήσετε και να ρυθμίσετε το Raspbian Jessie OS στο Pi.
Σε αυτόν τον κώδικα, έχουμε δημιουργήσει def keypad (): function για διασύνδεση απλού πληκτρολογίου για την εισαγωγή αριθμών. Και για την εισαγωγή αλφαβήτων, έχουμε δημιουργήσει def alphaKeypad (): έτσι ώστε το ίδιο πληκτρολόγιο να μπορεί να χρησιμοποιηθεί και για την εισαγωγή αλφαβήτων. Τώρα έχουμε κάνει αυτό το πληκτρολόγιο πολλαπλών λειτουργιών ίδιο με τη βιβλιοθήκη πληκτρολογίων Arduino. Χρησιμοποιώντας αυτό το πληκτρολόγιο μπορούμε να εισαγάγουμε χαρακτήρες και ακέραιο χρησιμοποιώντας μόνο 10 πλήκτρα.
Όπως εάν πατήσουμε το πλήκτρο 2 (abc2), θα δείξει «a» και αν το πατήσουμε ξανά τότε θα αντικαταστήσει το «a» στο «b» και αν πάλι πατήσουμε τρεις φορές τότε θα εμφανιστεί το «c» στο ίδιο μέρος σε LCD. Εάν περιμένουμε για λίγο μετά το πάτημα του πλήκτρου, ο κέρσορας θα μετακινηθεί αυτόματα στην επόμενη θέση στην οθόνη LCD. Τώρα μπορούμε να εισαγάγουμε τον επόμενο αριθμό ή τον αριθμό. Η ίδια διαδικασία εφαρμόζεται και για άλλα κλειδιά.
def keypad (): for j in range (4): gpio.setup (COL, gpio.OUT) gpio.output (COL, 0) ch = 0 for i in range (4): if gpio.input (ROW) = = 0: ch = MATRIX επιστροφή ch ενώ (gpio.input (ROW) == 0): pass gpio.output (COL, 1)
def alphaKeypad (): lcdclear () setCursor (x, y) lcdcmd (0x0f) msg = "" while 1: key = 0 count = 0 key = keypad () if key == '1': ind = 0 maxInd = 6 Κλειδί = '1' getChar (Key, ind, maxInd)……………….
Πρώτα απ 'όλα, σε αυτό το σενάριο python έχουμε συμπεριλάβει μερικές απαιτούμενες βιβλιοθήκες και καθορισμένες καρφίτσες για LCD, πληκτρολόγιο και άλλα στοιχεία:
εισαγωγή RPi.GPIO ως gpio εισαγωγή σειριακής εισαγωγής msg = "" alpha = "1! @.,:? ABC2DEF3GHI4JKL5MNO6PQRS7TUV8WXYZ90 * #" x = 0 y = 0 MATRIX =,,]…………
Τώρα ήρθε η ώρα να δώσετε κατεύθυνση στις ακίδες:
gpio.setwarnings (False) gpio.setmode (gpio.BCM) gpio.setup (RS, gpio.OUT) gpio.setup (EN, gpio.OUT) gpio.setup (D4, gpio.OUT) gpio.setup (D5, gpio.OUTup (D6, gpio.OUT) gpio.setup (D7, gpio.OUT) gpio.setup (led, gpio.OUT) gpio.setup (buz, gpio.OUT) gpio.setup (m11, gpio.OUT) gpio.setup (m12, gpio.OUT) gpio.setup (κουμπί, gpio.IN) gpio.output (led, 0) gpio.output (buz, 0) gpio.output (m11, 0) gpio. έξοδος (m12, 0)
Στη συνέχεια, αρχικοποιήστε τη σειριακή επικοινωνία όπως παρακάτω:
Serial = serial.Serial ("/ dev / ttyS0", baudrate = 9600, timeout = 2)
Τώρα πρέπει να γράψουμε κάποια λειτουργία για την οδήγηση LCD. Λειτουργία def lcdcmd (ch): χρησιμοποιείται για αποστολή εντολής σε LCD και def lcdwrite (ch): χρησιμοποιείται για αποστολή δεδομένων σε LCD. Μαζί με αυτές τις λειτουργίες, def lcdclear (): χρησιμοποιείται για την εκκαθάριση της οθόνης LCD, def setCursor (x, y): χρησιμοποιείται για τον καθορισμό της θέσης του δρομέα στην οθόνη LCD και def lcdprint (Str): χρησιμοποιείται για την εκτύπωση συμβολοσειράς στην οθόνη LCD.
def lcdcmd (ch): gpio.output (RS, 0) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) εάν ch & 0x10 == 0x10: gpio.output (D4, 1)………………
def lcdwrite (ch): gpio.output (RS, 1) gpio.output (D4, 0) gpio.output (D5, 0) gpio.output (D6, 0) gpio.output (D7, 0) εάν ch & 0x10 == 0x10: gpio.output (D4, 1) εάν ch & 0x20 == 0x20: gpio.output (D5, 1)………………….
def lcdclear (): lcdcmd (0x01) def lcdprint (Str): l = 0; l = len (Str) για i στην περιοχή (l): lcdwrite (ord (Str)) def setCursor (x, y): if y == 0: n = 128 + x elif y == 1: n = 192 + x lcdcmd (n)
Μετά από αυτό πρέπει να γράψουμε ορισμένες λειτουργίες για την αποστολή SMS, τη λήψη SMS, την πραγματοποίηση κλήσης και την παρακολούθηση της κλήσης.
Λειτουργία def call (): χρησιμοποιείται για την πραγματοποίηση της κλήσης. Και η λειτουργία def ReceCall (δεδομένα): χρησιμοποιείται για την εμφάνιση του εισερχόμενου μηνύματος και του αριθμού στην οθόνη LCD. Τέλος def menghadiriCall (): χρησιμοποιείται για την παρακολούθηση της κλήσης.
Λειτουργία def sendSMS (): χρησιμοποιείται για τη σύνταξη και την αποστολή του μηνύματος με τη βοήθεια της λειτουργίας alphaKeypad () . Και λειτουργία def ReceSMS (δεδομένα): χρησιμοποιείται λήψη και ανάκτηση της θέσης SMS. Τέλος def readSMS (index): χρησιμοποιείται για την εμφάνιση του μηνύματος σε LCD.
Μπορείτε να βρείτε όλες τις παραπάνω λειτουργίες στον Κώδικα που δίνεται παρακάτω.
Έτσι μπορείτε να μετατρέψετε το Raspberry Pi σε κινητό τηλέφωνο με τη βοήθεια της μονάδας GSM. Ελέγξτε επίσης αυτό το έξυπνο τηλέφωνο οθόνης αφής Raspberry Pi.