- Wymagane materiały:
- Moduł GSM SIM900 Fly Scale:
- Moduł głosowy ISD1820:
- Schemat obwodu i wyjaśnienie:
- Programowanie Arduino:
- Pracujący:
W dzisiejszym współczesnym świecie wszyscy jesteśmy uzależnieni od telefonów komórkowych jako podstawowego środka komunikacji bezprzewodowej. Ale wszyscy mieliśmy do czynienia z sytuacjami, w których możemy nie być w stanie odpowiedzieć na nasze telefony, te połączenia mogą być ważnym telefonem osobistym lub rozmową biznesową, która zmieni Twoje życie i mogłeś po prostu przegapić tę okazję, ponieważ nie byłeś w stanie na to odpowiedzieć zadzwonić w tym konkretnym czasie.
Ten projekt ma na celu rozwiązanie tego problemu poprzez stworzenie automatycznej sekretarki połączeń przy użyciu Arduino i modułu GSM. Następnym razem, gdy zmieniasz numer telefonu lub wybierasz się na długą pielgrzymkę lub ciesząc się zasłużonymi wakacjami, po prostu użyj tego urządzenia, aby nagrać swój głos z podaniem przyczyny nieobecności, a wszystkie twoje połączenia zostaną automatycznie odebrane przez to urządzenie i twój nagrany głos zostanie im odtworzony. Można to również wykorzystać w przypadku numerów firmowych, aby odbierać telefony klientów poza godzinami pracy. Brzmi interesująco, prawda? Więc zbudujmy to…
Wymagane materiały:
Projekt może wydawać się nieco skomplikowany, ale jest naprawdę łatwy do zbudowania, potrzebujesz tylko następujących komponentów
- Arduino Uno
- Moduł GSM - Flyscale SIM 900
- Moduł głosowy ISD 1820
- Adapter 12V do zasilania modułu GSM
- Bateria 9V do zasilania Arduino
- Przewody łączące
Zanim przystąpimy do realizacji projektu, zapoznajmy się z modułem GSM i modułem głosowym ISD 1820
Moduł GSM SIM900 Fly Scale:
Moduły GSM są fascynujące w użyciu, zwłaszcza gdy nasz projekt wymaga zdalnego dostępu. Moduły te mogą wykonywać wszystkie czynności, które mógłby wykonywać nasz zwykły telefon komórkowy, takie jak wykonywanie / odbieranie połączeń, wysyłanie / odbieranie wiadomości SMS, łączenie się z Internetem za pomocą GPRS itp. Możesz również podłączyć normalny mikrofon i głośnik do tego modułu i rozmawiać przez połączenia komórkowe. Oto kilka samouczków na ich temat przy użyciu innego mikrokontrolera:
- Dzwoń i wysyłaj wiadomości za pomocą Arduino i modułu GSM
- Dzwoń i wysyłaj SMS-y za pomocą Raspberry Pi i modułu GSM
- Moduł GSM współpracujący z mikrokontrolerem PIC - nawiązywanie i odbieranie połączeń
Jak pokazano na poniższym zdjęciu, moduł GSM jest dostarczany z adapterem USART, który można bezpośrednio podłączyć do komputera za pomocą modułu MAX232 lub można użyć pinów Tx i Rx do podłączenia go do mikrokontrolera. Możesz również zauważyć inne piny, takie jak MIC +, MIC-, SP +, SP- itp., Do których można podłączyć mikrofon lub głośnik. Moduł może być zasilany przez zasilacz 12V poprzez normalną baryłkę gniazda DC.
Włóż kartę SIM do gniazda modułu i włącz go, powinieneś zauważyć zapaloną diodę LED. Teraz poczekaj około minuty i powinieneś zobaczyć czerwona (lub jakikolwiek inny kolor) dioda LED migająca raz na 3 sekundy. Oznacza to, że moduł był w stanie nawiązać połączenie z kartą SIM. Teraz możesz przystąpić do łączenia modułu z Telefonem lub dowolnym Mikrokontrolerem.
Moduł głosowy ISD1820:
Moduł głosowy ISD 1820 to naprawdę fajny moduł, który może urozmaicić Twoje projekty zapowiedziami głosowymi. Ten moduł może nagrywać klip audio przez 10 sekund, a następnie odtwarzać go w razie potrzeby. Sam moduł jest wyposażony w mikrofon i głośnik (8 omów 0,5 wata) i powinien wyglądać mniej więcej tak, jak pokazano poniżej.
Moduł pracuje na + 5V i może być zasilany za pomocą laski Berg po lewej stronie. Posiada również trzy przyciski na dole, które są Rec. przycisk PlayE. przycisk i PlayL. odpowiednio przycisk. Możesz nagrać swój głos, naciskając przycisk Rec. i odtwórz za pomocą przycisku PlayE. PlayL będzie odtwarzać głos tak długo, jak przytrzymasz przycisk. Łącząc się z MCU, możemy użyć pinów po lewej stronie. Te piny są tolerowane 3 V-5 V i dlatego mogą być bezpośrednio sterowane przez Arduino / ESP8266. W naszym projekcie pin PLAYE sterujemy za pomocą pinu D8 naszego modułu Arduino. Dzięki temu możemy odtworzyć nagrany głos po wykryciu i odebraniu połączenia przez moduł GSM.
Schemat obwodu i wyjaśnienie:
Pełny schemat obwodu tego projektu automatycznej sekretarki głosowej podano powyżej. Jak widać połączenia są naprawdę proste. Moduł GSM zasilamy adapterem 12V 1A a Arduino baterią 9V, moduł ISD Voice zasilany jest z pinu + 5V Arduino. Jak wiemy, możemy nagrać wszystko na naszym module głosowym, naciskając przycisk nagrywania, a to zostanie odtworzone po naciśnięciu PE, to audio musi zostać przesłane do mikrofonu modułu GSM. Więc łączymy pin głośnika modułu głosowego z pinem mikrofonu modułu GSM.
Tutaj Arduino i moduł GSM są połączone szeregowo, pin Tx Arduino jest połączony z pinem 9, a pin Rx jest połączony z pinem 10. To pomoże Arduino w nasłuchiwaniu modułu GSM. Kiedy nadejdzie połączenie do modułu GSM, Arduino nasłucha i poprosi moduł GSM o odebranie połączenia. Arduino upewnia się, że połączenie jest aktywne, a następnie odtwarza nagraną wiadomość głosową na module głosowym, ustawiając pin 8 (podłączony do PE modułu głosowego) w stan wysoki na 200 ms.
Programowanie Arduino:
Z powyższego akapitu wiemy, jaka jest tutaj rola Arduino; teraz przyjrzyjmy się kodowi, który robi to samo. Kompletny Arduino kod projektu jest podany na dole tej strony, dalej tu mam rozlany kod na małe dżonki to wyjaśnić.
Zanim przejdziemy do dalszej instalacji Biblioteki GSM, prosimy kliknąć link do biblioteki Github GSM, aby pobrać bibliotekę używaną w tym projekcie. Otrzymasz plik zip, który należy dodać do biblioteki Arduino przez Sketch -> Include Librarey -> Add.Zip file .
Pierwsze trzy wiersze kodu pokazanego poniżej służą do dołączenia biblioteki do naszego kodu. Używamy biblioteki szeregowej i biblioteki przewodów, ponieważ nie używamy domyślnych pinów Rx i Tx Arduino do komunikacji z modułem GSM.
#zawierać
Mamy umożliwić komunikację szeregową na piny 9 i 10, stosując następujący wiersz. Jest to możliwe dzięki bibliotece szeregowej oprogramowania, którą zamieściliśmy powyżej.
OprogramowanieSerial gprs (9,10); // TX, RX
W ramach naszej funkcji konfiguracji inicjalizujemy monitor szeregowy z szybkością 9600 bodów, a moduł GSM jest również inicjalizowany z szybkością 9600 bodów. Pin 8, który wyzwala głos, jest zadeklarowany jako pin wyjściowy.
void setup () {Serial.begin (9600); // Monitor szeregowy działa z szybkością transmisji 9600 do debugowania sim900_init (& gprs, 9600); // Moduł GSM pracuje na szybkości transmisji 9600 pinMode (8, OUTPUT); // pin, aby włączyć Voice Serial.println ("Arduino - Automatyczna maszyna głosowa"); }
Następnie musimy stworzyć funkcję, która mogłaby odczytać i zrozumieć, co mówi moduł GSM przez jego port szeregowy. Jeśli użyjemy prostej linii odczytu szeregowego, takiej jak „gprs.read ()” do odczytania wiadomości, otrzymamy je w postaci dziesiętnych wartości ASCII, nie będzie to dla nas sensu.
Dlatego następująca funkcja służy do konwersji tych wartości dziesiętnych na ciągi przy użyciu obiektów typu string, a następnie łączenia ich w celu utworzenia ciągu. Ostateczna wartość ciągu jest przechowywana w zmiennej Fdata , która jest typu string i może być używana do porównywania z dowolnymi wartościami String.
void check_Incoming () {if (gprs.available ()) // Jeśli GSM coś mówi {Incomingch = gprs.read (); // Odsłuchaj i zapisz w tej zmiennej if (Incomingch == 10 - Incomingch == 13) // Jeśli jest napisane spacja (10) lub Newline (13), oznacza to, że wypełniło jedno słowo {Serial.println (dane); Fdata = dane; data = ""; } // Wydrukuj słowo i wyczyść zmienną, aby rozpocząć od nowa else {String newchar = String (char (Incomingch)); // przekonwertuj znak na łańcuch, używając obiektów typu string data = data + newchar; // Po konwersji na łańcuch wykonaj konkatenację ciągów}}}
Na następujące linie są używane do debugowania, debuger z tych linii można wysyłać komendy AT z seryjnym monitor Arduino do sieci GSM, a także zobaczyć, co jest odpowiedź na monitorze szeregowego.
if (Serial.available ()) {// Używane do debugowania gprs.write (Serial.read ()); // Używany do debugowania} // Używany do debugowania
Jak wspomniano wcześniej, Arduino musi sprawdzić, czy moduł GSM odbiera połączenia. Można to zrobić, zmuszając Arduino do sprawdzenia „ RING ”, ponieważ moduł GSM wyśle RING w przypadku połączenia zgodnie z listą poleceń AT. Po znalezieniu połączenia odczeka 5 sekund i wyśle polecenie „ ATA ” do modułu GSM, co zmusi moduł GSM do odebrania połączenia, a po odebraniu odpowie „OK”. Arduino ponownie czeka na potwierdzenie „ OK ”, a następnie ustawia pin 8 w stan wysoki na 200 ms, aby odtworzyć nagrany głos z modułu głosowego.
if (Fdata == "RING") // Jeśli moduł GSM mówi RING {delay (5000); // poczekaj 5 sekund, aby utworzyć opóźnienie 3 dzwonków. gprs.write ("ATA \ r \ n"); // Odbierz połączenie Serial.println ("Placed Received"); // Używany do debugowania while (Fdata! = "OK") // Dopóki połączenie nie zostanie pomyślnie odebrane {check_Incoming (); // Przeczytaj, co mówi moduł GSM Serial.println ("Odtwarzam nagraną wiadomość"); // Używany do debugowania // Odtwórz nagrane opóźnienie wiadomości głosowej (500); digitalWrite (8, WYSOKI); // Idź do dużego opóźnienia (200); // czekaj na 200 ms digitalWrite (8, LOW); // Nisko}
Pracujący:
Gdy kod i sprzęt będą gotowe, czas na zabawę. Włącz oba moduły i naciśnij przycisk REC na module głosowym i nagraj wiadomość. Ta wiadomość może mieć tylko 10 sekund długości.
Teraz zaprogramuj swoje Arduino za pomocą podanego poniżej kodu i włóż samochód SIM do modułu GSM, powinieneś teraz odczekać co najmniej 2 minuty, aby moduł GSM mógł nawiązać połączenie z dostawcą usług sieciowych. Po zakończeniu powinieneś zobaczyć czerwoną diodę LED migającą raz na 3 sekundy, co oznacza, że Twoja karta SIM jest gotowa do odbierania połączeń. Możesz teraz spróbować zadzwonić na tę kartę SIM z dowolnego numeru i po trzech nieprzerwanych dzwonkach usłyszysz nagraną wiadomość. Pełne działanie projektu pokazano na poniższym filmie.
Tadaaaaaa !!! Teraz masz własną automatyczną sekretarkę głosową i po prostu korzystaj z niej w razie potrzeby i zadziw swoich przyjaciół i rodzinę.
Mam nadzieję, że podobał Ci się projekt i zbudowałeś coś podobnego. Jeśli miałeś jakieś problemy, napisz je w sekcji komentarzy, a ja Ci pomogę.