- Необходимые материалы:
- Модуль GSM Fly Scale SIM900:
- ISD1820 Голосовой модуль:
- Принципиальная схема и пояснения:
- Программирование вашего Arduino:
- За работой:
В современном мире мы все зависим от мобильных телефонов как от основного средства беспроводной связи. Но все мы сталкивались с ситуациями, во время которых мы могли не отвечать на наши звонки, эти звонки могли быть важным личным звонком или бизнес-звонком, меняющим жизнь, и вы могли просто упустить эту возможность, так как не смогли ответить звоните именно в это время.
Этот проект направлен на решение этой проблемы путем создания автоответчика с использованием Arduino и модуля GSM. В следующий раз, когда вы перейдете на новый номер телефона или отправитесь в длительное паломническое путешествие или наслаждаетесь заслуженным отпуском, просто используйте этот аппарат, чтобы записать свой голос с указанием причины отсутствия, и на все ваши звонки будет автоматически отвечать этот аппарат и им будет воспроизведен записанный голос. Это также можно использовать для номеров вашей компании, чтобы отвечать на звонки клиентов в нерабочее время. Звучит интересно, правда? Так что давайте построим это..
Необходимые материалы:
Проект может показаться немного сложным, но его действительно легко построить, вам просто понадобятся следующие компоненты
- Ардуино Уно
- GSM модуль - Flyscale SIM 900
- Голосовой модуль ISD 1820
- Адаптер 12В для питания GSM модуля
- Аккумулятор 9 В для питания Arduino
- Соединительные провода
Прежде чем мы фактически приступим к проекту, давайте познакомимся с модулем GSM и голосовым модулем ISD 1820.
Модуль GSM Fly Scale SIM900:
Модули GSM интересны в использовании, особенно когда нашему проекту требуется удаленный доступ. Эти модули могут выполнять все действия, которые может выполнять наш обычный мобильный телефон, такие как совершение / получение звонка, отправка / получение SMS, подключение к Интернету с помощью GPRS и т. Д. Вы также можете подключить к этому модулю обычный микрофон и динамик и разговаривать на своем мобильные звонки. Вот несколько руководств по ним с использованием другого микроконтроллера:
- Звонок и сообщение с использованием Arduino и модуля GSM
- Звонок и текст с использованием Raspberry Pi и модуля GSM
- Модуль GSM, взаимодействующий с микроконтроллером PIC - совершение и прием вызовов
Как показано на рисунке ниже, модуль GSM поставляется с адаптером USART, который может быть напрямую подключен к компьютеру с помощью модуля MAX232, или контакты Tx и Rx могут использоваться для подключения его к микроконтроллеру. Вы также можете заметить другие контакты, такие как MIC +, MIC-, SP +, SP- и т. Д., К которым можно подключить микрофон или динамик. Модуль может питаться от адаптера 12В через обычный разъем ствола постоянного тока.
Вставьте SIM-карту в слот модуля и включите его, вы должны заметить, что загорается индикатор питания. Теперь подождите около минуты, и вы должны увидеть красный (или любой другой цвет) светодиод, мигающий один раз каждые 3 секунды. Это означает, что ваш модуль смог установить соединение с вашей SIM-картой. Теперь вы можете продолжить подключение вашего модуля к телефону или любому микроконтроллеру.
ISD1820 Голосовой модуль:
Голосовой модуль ISD 1820 - действительно крутой модуль, который может оживить ваши проекты голосовыми объявлениями. Этот модуль может записывать аудиоклип в течение 10 секунд, а затем воспроизводить его при необходимости. Сам модуль поставляется с микрофоном и динамиком (8 Ом 0,5 Вт) и должен выглядеть примерно так, как показано ниже.
Модуль работает на + 5В и может питаться от Берга палочки на левой стороне. Он также имеет три кнопки внизу, которые являются Rec. кнопка, PlayE. кнопку и PlayL. кнопку соответственно. Вы можете записать свой голос, нажав кнопку Rec. и воспроизведите его с помощью кнопки PlayE. PlayL будет воспроизводить голос, пока вы удерживаете кнопку. При взаимодействии с MCU мы можем использовать контакты слева. Эти контакты допускают напряжение 3–5 В и, следовательно, могут напрямую управляться Arduino / ESP8266. В нашем проекте мы контролируем вывод PLAYE с помощью вывода D8 нашего модуля Arduino. Так что мы можем воспроизводить записанный голос при обнаружении и получении вызова модулем GSM.
Принципиальная схема и пояснения:
Полная принципиальная схема этого проекта автоответчика для голосовых вызовов приведена выше. Как видите, соединения действительно простые. Мы питаем GSM-модуль от адаптера 12В 1А и Arduino от батареи 9В, модуль ISD Voice питается от вывода + 5В на Arduino. Как мы знаем, мы можем записать что угодно на нашем голосовом модуле, нажав кнопку записи, и это будет воспроизведено при нажатии PE, этот звук должен быть отправлен на микрофон модуля GSM. Итак, мы подключаем контакт динамика модуля Voice к контакту микрофона модуля GSM.
Здесь модуль Arduino и GSM подключаются последовательно, вывод Tx Arduino подключен к выводу 9, а вывод Rx - к выводу 10. Это поможет Arduino прослушивать GSM-модуль. Когда на модуль GSM поступает вызов, Arduino его прослушивает и просит модуль GSM ответить на вызов. Arduino проверяет, активен ли вызов, а затем воспроизводит записанное голосовое сообщение на голосовом модуле, устанавливая высокий уровень на контакте 8 (подключенный к PE голосового модуля) на 200 мс.
Программирование вашего Arduino:
Из вышеприведенного абзаца мы знаем, какова здесь роль Arduino; Теперь давайте посмотрим на код, который делает то же самое. Полный Arduino код проекта дается в нижней части этой страницы, далее здесь я пролил код на мелкие джонки, чтобы объяснить это.
Прежде чем мы приступим к дальнейшей установке библиотеки GSM, пожалуйста, щелкните ссылку на эту библиотеку Github GSM, чтобы загрузить библиотеку, используемую в этом проекте. Вы получите zip-файл, который нужно добавить в вашу библиотеку Arduino с помощью Sketch -> Include Librarey -> Add.Zip file .
Первые три строки кода, показанного ниже, используются для включения библиотеки в наш код. Мы используем последовательную библиотеку и библиотеку проводов, потому что мы не используем выводы Rx и Tx по умолчанию Arduino для связи с модулем GSM.
#включают
Мы включаем последовательную связь на контактах 9 и 10, используя следующую строку. Это стало возможным благодаря программной библиотеке последовательного порта, которую мы включили выше.
SoftwareSerial gprs (9,10); // TX, RX
Внутри нашей функции настройки мы инициализируем последовательный монитор со скоростью 9600 бод, а модуль GSM также инициализируется со скоростью 9600 бод. Контакт 8, который запускает голос, объявлен как выходной контакт.
void setup () {Serial.begin (9600); // Последовательный монитор работает на скорости 9600 бод для отладки sim900_init (& gprs, 9600); // Модуль GSM работает со скоростью 9600 бод pinMode (8, OUTPUT); // пин для включения голоса Serial.println ("Arduino - Automatic Voice Machine"); }
Затем нам нужно создать функцию, которая могла бы читать и понимать, что модуль GSM говорит через свой последовательный порт. Если мы используем простую строку последовательного чтения, такую как «gprs.read ()», для чтения сообщения, мы получим их в виде десятичных значений ASCII, это не будет иметь для нас никакого смысла.
Таким образом, следующая функция используется для преобразования этих десятичных значений в строки с использованием строковых объектов и последующего объединения их в строку. Конечное строковое значение сохраняется в переменной Fdata , которая имеет строковый тип и может использоваться для сравнения с любыми строковыми значениями.
void check_Incoming () {if (gprs.available ()) // Если GSM что-то говорит {Incomingch = gprs.read (); // Слушаем его и сохраняем в этой переменной if (Incomingch == 10 - Incomingch == 13) // Если он говорит пробел (10) или Newline (13), это означает, что он завершил одно слово {Serial.println (data); Fdata = данные; данные = ""; } // Распечатайте слово и очистите переменную, чтобы начать все заново else {String newchar = String (char (Incomingch)); // преобразование символа в строку с использованием строковых объектов 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 снова ждет подтверждения « ОК », а затем устанавливает высокий уровень на контакте 8 на 200 мс, чтобы воспроизвести записанный голос из голосового модуля.
if (Fdata == "RING") // Если модуль GSM говорит RING {delay (5000); // ждем 5 секунд, чтобы создать задержку 3 звонка. gprs.write ("ATA \ r \ n"); // Ответить на вызов Serial.println ("Placed Received"); // Используется для отладки while (Fdata! = "OK") // До успешного ответа на вызов {check_Incoming (); // Прочитать, что говорит модуль GSM Serial.println ("Воспроизведение записанного сообщения"); // Используется для отладки // Воспроизведение записанного голосового сообщения delay (500); digitalWrite (8, ВЫСОКИЙ); // Увеличить задержку (200); // ждем 200 мсек digitalWrite (8, LOW); // Опускаемся}
За работой:
Когда ваш код и оборудование будут готовы, пришло время повеселиться. Включите оба модуля, нажмите кнопку REC на голосовом модуле и запишите сообщение. Это сообщение может длиться не более 10 секунд.
Теперь запрограммируйте Arduino, используя приведенный ниже код, и вставьте SIM-карту в модуль GSM, вы должны подождать не менее 2 минут, чтобы модуль GSM мог установить соединение с вашим поставщиком сетевых услуг. После этого вы должны увидеть красный светодиод, мигающий один раз каждые 3 секунды, это означает, что ваша SIM-карта готова принимать звонки. Теперь вы можете попробовать позвонить на эту SIM-карту с любого номера, и вы должны услышать записанное сообщение после трех непрерывных звонков. Полная работа проекта показана на видео ниже.
Тадаааааа !!! Теперь у вас есть собственный автоответчик для голосовых вызовов, и вы можете использовать его, когда это необходимо, и удивить своих друзей и семью.
Надеюсь, вам понравился проект и вы создали что-то подобное. Если у вас возникли проблемы, опубликуйте их в разделе комментариев, и я помогу вам.