- Erforderliche Materialien:
- Fly Scale SIM900 GSM-Modul:
- ISD1820 Sprachmodul:
- Schaltplan und Erklärung:
- Programmieren Ihres Arduino:
- Arbeiten:
In der heutigen modernen Welt sind wir alle auf Mobiltelefone als unser primäres Mittel zur drahtlosen Kommunikation angewiesen. Wir alle waren jedoch mit Situationen konfrontiert, in denen wir möglicherweise nicht in der Lage sind, auf unsere Anrufe zu antworten. Diese Anrufe können ein wichtiger persönlicher Anruf oder ein lebensverändernder geschäftlicher Anruf sein, und Sie hätten diese Gelegenheit möglicherweise einfach verpasst, da Sie diese nicht beantworten konnten Anruf zu diesem bestimmten Zeitpunkt.
Dieses Projekt zielt darauf ab, dieses Problem zu lösen, indem ein automatischer Anrufbeantworter unter Verwendung des Arduino- und GSM-Moduls erstellt wird. Wenn Sie das nächste Mal zu einer neuen Telefonnummer wechseln oder eine lange Pilgerreise unternehmen oder einen wohlverdienten Urlaub genießen, verwenden Sie dieses Gerät, um Ihre Stimme mit dem Grund für die Abwesenheit aufzuzeichnen. Alle Ihre Anrufe werden automatisch von diesem Gerät und Ihrem Gerät beantwortet Die aufgenommene Stimme wird ihnen vorgespielt. Dies kann auch für Ihre Geschäftsnummern verwendet werden, um auf Anrufe Ihres Kunden außerhalb der Bürozeiten zu antworten. Klingt interessant, oder? Also lasst es uns bauen..
Erforderliche Materialien:
Das Projekt klingt vielleicht etwas kompliziert, ist aber sehr einfach zu erstellen. Sie benötigen lediglich die folgenden Komponenten
- Arduino Uno
- GSM-Modul - Flyscale SIM 900
- ISD 1820 Sprachmodul
- 12-V-Adapter zur Stromversorgung des GSM-Moduls
- 9V Batterie zur Stromversorgung von Arduino
- Kabel anschließen
Bevor wir mit dem Projekt fortfahren, sollten wir uns mit dem GSM-Modul und dem ISD 1820-Sprachmodul vertraut machen
Fly Scale SIM900 GSM-Modul:
Die Verwendung von GSM-Modulen ist besonders dann faszinierend, wenn für unser Projekt ein Fernzugriff erforderlich ist. Diese Module können alle Aktionen ausführen, die unser normales Mobiltelefon ausführen kann, z. B. Tätigen / Empfangen eines Anrufs, Senden / Empfangen einer SMS, Herstellen einer Internetverbindung über GPRS usw. Sie können auch ein normales Mikrofon und einen Lautsprecher an dieses Modul anschließen und sich auf Ihrem Modul unterhalten Mobiltelefongespräche. Hier sind einige Tutorials mit verschiedenen Mikrocontrollern:
- Anruf und Nachricht mit Arduino und GSM-Modul
- Anruf und Text mit Raspberry Pi und GSM-Modul
- GSM-Modul Schnittstelle zum PIC-Mikrocontroller - Tätigen und Empfangen von Anrufen
Wie im folgenden Bild gezeigt, wird das GSM-Modul mit einem USART-Adapter geliefert, der über ein MAX232-Modul direkt an den Computer angeschlossen werden kann, oder die Tx- und Rx-Pins können verwendet werden, um es an einen Mikrocontroller anzuschließen. Sie können auch die anderen Pins wie MIC +, MIC-, SP +, SP- usw. bemerken, an denen ein Mikrofon oder ein Lautsprecher angeschlossen werden kann. Das Modul kann von einem 12-V-Adapter über eine normale DC-Barrel-Buchse mit Strom versorgt werden.
Legen Sie Ihre SIM-Karte in den Steckplatz des Moduls ein und schalten Sie sie ein. Sie sollten feststellen, dass eine Betriebs-LED leuchtet. Warten Sie nun etwa eine Minute, und alle 3 Sekunden sollte eine rote (oder eine andere Farbe) LED einmal blinken. Dies bedeutet, dass Ihr Modul eine Verbindung mit Ihrer SIM-Karte herstellen konnte. Jetzt können Sie Ihr Modul mit dem Telefon oder einem beliebigen Mikrocontroller verbinden.
ISD1820 Sprachmodul:
Das ISD 1820 Voice-Modul ist wirklich ein cooles Modul, das Ihre Projekte mit Sprachansagen aufpeppen kann. Dieses Modul kann einen Audioclip 10 Sekunden lang aufnehmen und bei Bedarf wiedergeben. Das Modul selbst wird mit einem Mikrofon und einem Lautsprecher (8 Ohm, 0,5 Watt) geliefert und sollte ungefähr so aussehen (siehe unten).
Das Modul arbeitet mit +5 V und kann mit den Bergsticks auf der linken Seite mit Strom versorgt werden. Es hat auch drei Tasten am unteren Rand, die Rec sind. Taste, PlayE. Taste und PlayL. Taste jeweils. Sie können Ihre Stimme aufnehmen, indem Sie die Taste Rec drücken. Taste und spielen Sie es mit der PlayE-Taste. Die PlayL spielt die Stimme, solange Sie die Taste gedrückt halten. Bei der Verbindung mit einer MCU können wir die Pins auf der linken Seite verwenden. Diese Pins sind 3V-5V tolerierbar und können daher direkt von Arduino / ESP8266 angesteuert werden. In unserem Projekt steuern wir den PLAYE-Pin mit dem D8-Pin unseres Arduino-Moduls. Damit wir die aufgezeichnete Stimme abspielen können, wenn ein Anruf vom GSM-Modul erkannt und empfangen wird.
Schaltplan und Erklärung:
Das vollständige Schaltbild dieses Projekts für den automatischen Anrufbeantworter ist oben angegeben. Wie Sie sehen können, sind die Verbindungen wirklich einfach. Wir versorgen das GSM-Modul mit einem 12V 1A Adapter und Arduino mit 9V Batterie, das ISD Voice Modul wird über den + 5V Pin des Arduino mit Strom versorgt. Wie wir wissen, können wir durch Drücken der Rec-Taste alles auf unserem Sprachmodul aufnehmen. Dies wird abgespielt, wenn PE gedrückt wird. Dieses Audio muss an das Mikrofon des GSM-Moduls gesendet werden. Also verbinden wir den Lautsprecher-Pin des Voice-Moduls mit dem Mikrofon-Pin des GSM-Moduls.
Hier ist das Arduino- und GSM-Modul seriell verbunden, der Tx-Pin von Arduino ist mit Pin 9 verbunden und der Rx-Pin ist mit Pin 10 verbunden. Dies hilft dem Arduino, das GSM-Modul zu hören. Wenn ein Anruf beim GSM-Modul eingeht, hört der Arduino ihn ab und bittet das GSM-Modul, den Anruf anzunehmen. Das Arduino stellt sicher, dass der Anruf aktiv ist, und spielt dann die aufgezeichnete Sprachnachricht auf dem Sprachmodul ab, indem der Pin 8 (Verbunden mit PE des Sprachmoduls) 200 ms lang hoch geht.
Programmieren Ihres Arduino:
Wir wissen aus dem obigen Absatz, welche Rolle Arduino hier spielt; Schauen wir uns nun den Code an, der dasselbe tut. Der vollständige Arduino-Code des Projekts ist am Ende dieser Seite angegeben. Weiter hier habe ich den Code in kleine Junks verschüttet, um ihn zu erklären.
Bevor Sie mit der weiteren Installation der GSM-Bibliothek beginnen, klicken Sie bitte auf diesen Link zur Github-GSM-Bibliothek, um die in diesem Projekt verwendete Bibliothek herunterzuladen. Sie erhalten eine Zip-Datei, die Ihrer Arduino-Bibliothek über Sketch -> Include Librarey -> Add.Zip-Datei hinzugefügt werden muss .
Die ersten drei Zeilen des unten gezeigten Codes werden verwendet, um die Bibliothek in unseren Code aufzunehmen. Wir verwenden die serielle Bibliothek und die Drahtbibliothek, da wir nicht die Standard-Rx- und Tx-Pins des Arduino für die Kommunikation mit dem GSM-Modul verwenden.
#einschließen
Wir aktivieren die serielle Kommunikation an den Pins 9 und 10 über die folgende Zeile. Dies wird durch die oben enthaltene serielle Softwarebibliothek ermöglicht.
SoftwareSerial gprs (9,10); // TX, RX
Innerhalb unserer Setup- Funktion initialisieren wir den seriellen Monitor mit einer Baudrate von 9600 und das GSM-Modul wird ebenfalls mit einer Baudrate von 9600 initialisiert. Der Pin 8, der die Stimme auslöst, wird als Ausgangs-Pin deklariert.
void setup () {Serial.begin (9600); // Der serielle Monitor arbeitet mit einer Baudrate von 9600 zum Debuggen von sim900_init (& gprs, 9600); // GSM-Modul arbeitet mit 9600 Baudrate PinMode (8, OUTPUT); // Pin zum Einschalten von Voice Serial.println ("Arduino - Automatic Voice Machine"); }}
Als nächstes müssen wir eine Funktion erstellen, die lesen und verstehen kann, was das GSM-Modul über seine serielle Schnittstelle sagt. Wenn wir zum Lesen der Nachricht eine einfache serielle Lesezeile wie "gprs.read ()" verwenden, erhalten wir sie in Form von ASCII-Dezimalwerten. Dies macht für uns keinen Sinn.
Die folgende Funktion wird also verwendet, um diese Dezimalwerte mithilfe von Zeichenfolgenobjekten in Zeichenfolgen zu konvertieren und sie dann zu einer Zeichenfolge zu verketten. Der endgültige Zeichenfolgenwert wird in der Variablen Fdata gespeichert, die vom Typ Zeichenfolge ist und zum Vergleichen mit beliebigen Zeichenfolgenwerten verwendet werden kann.
void check_Incoming () {if (gprs.available ()) // Wenn GSM etwas sagt {Incomingch = gprs.read (); // Hören Sie es sich an und speichern Sie es in dieser Variablen, wenn (Incomingch == 10 - Incomingch == 13) // Wenn Leerzeichen (10) oder Zeilenumbruch (13) angezeigt werden, bedeutet dies, dass ein Wort {Serial.println (Daten) vervollständigt wurde); Fdata = Daten; data = ""; } // Drucke das Wort und lösche die Variable, um neu zu beginnen else {String newchar = String (char (Incomingch)); // konvertiere das Zeichen in einen String unter Verwendung von String-Objekten data = data + newchar; // Führen Sie nach der Konvertierung in einen String eine String-Verkettung durch}}}
Die folgenden Zeilen werden zum Debuggen verwendet. Mit diesen Debugger-Zeilen können Sie beliebige AT-Befehle vom seriellen Monitor von Arduino an GSM senden und auch die Antworten auf dem seriellen Monitor anzeigen.
if (Serial.available ()) {// Wird zum Debuggen von gprs.write (Serial.read ()) verwendet; // Wird zum Debuggen verwendet} // Wird zum Debuggen verwendet
Wie bereits erwähnt, muss der Arduino prüfen, ob das GSM-Modul Anrufe empfängt. Dies kann erreicht werden, indem das Arduino nach „ RING “ sucht, da das GSM-Modul im Falle eines Anrufs RING gemäß der AT-Befehlsliste ausgibt. Wenn ein Anruf gefunden wird, wartet er 5 Sekunden und sendet den Befehl „ ATA “ an das GSM-Modul. Dadurch nimmt das GSM-Modul den Anruf entgegen und antwortet nach der Beantwortung mit „OK“. Der Arduino wartet erneut auf die Bestätigung „ OK “ und dreht dann den Eingang in Pin 8 für 200 ms hoch, um die vom Sprachmodul aufgenommene Stimme abzuspielen.
if (Fdata == "RING") // Wenn das GSM-Modul RING {delay (5000) sagt; // 5 Sekunden warten, um eine Verzögerung von 3 Klingeltönen zu erzeugen. gprs.write ("ATA \ r \ n"); // Beantworte den Anruf Serial.println ("Placed Received"); // Wird zum Debuggen verwendet, während (Fdata! = "OK") // Bis der Anruf erfolgreich beantwortet wurde {check_Incoming (); // Lesen Sie, was der GSM-Modus sagt Serial.println ("Playing Recorded Message"); // Wird zum Debuggen verwendet // Wiedergabe der wiederhergestellten Sprachnachrichtenverzögerung (500); digitalWrite (8, HIGH); // Hohe Verzögerung gehen (200); // warte auf 200 ms digitalWrite (8, LOW); // Geh runter}
Arbeiten:
Sobald Ihr Code und Ihre Hardware fertig sind, ist es Zeit für Spaß. Schalten Sie beide Module ein, drücken Sie die REC-Taste am Sprachmodul und zeichnen Sie eine Nachricht auf. Diese Nachricht kann nur 10 Sekunden lang sein.
Programmieren Sie nun Ihr Arduino mit dem unten angegebenen Code und legen Sie das SIM-Auto in das GSM-Modul ein. Sie sollten jetzt mindestens 2 Minuten warten, damit das GSM-Modul eine Verbindung mit Ihrem Netzwerkdienstanbieter herstellen kann. Sobald Sie fertig sind, sollte alle 3 Sekunden eine rote LED blinken. Dies zeigt an, dass Ihre SIM-Karte bereit ist, Anrufe anzunehmen. Sie können jetzt versuchen, diese SIM-Karte von einer beliebigen Nummer aus anzurufen, und Sie sollten die aufgezeichnete Nachricht nach drei fortlaufenden Klingeltönen hören. Die vollständige Arbeitsweise des Projekts ist im folgenden Video dargestellt.
Tadaaaaaa !!! Jetzt haben Sie Ihren eigenen automatischen Anrufbeantworter und können ihn bei Bedarf verwenden und Ihre Freunde und Familie damit in Erstaunen versetzen.
Ich hoffe, dir hat das Projekt gefallen und du hast etwas Ähnliches gebaut. Wenn du irgendwelche Probleme hattest, poste sie im Kommentarbereich und ich werde dir helfen.