- Необхідні матеріали:
- Модуль Fly Scale SIM900 GSM:
- Голосовий модуль ISD1820:
- Електрична схема та пояснення:
- Програмування вашого Arduino:
- Робоча:
У сучасному світі ми всі залежамо від мобільних телефонів як основного засобу бездротового зв'язку. Але ми всі стикалися з ситуаціями, під час яких ми не могли відповісти на наші дзвінки, ці дзвінки могли бути важливим особистим дзвінком або діловим дзвінком, що змінює життя, і ви могли просто упустити таку можливість, оскільки не змогли відповісти на це дзвоніть у той конкретний час.
Цей проект спрямований на вирішення цієї проблеми шляхом створення автоматичної автовідповідача за допомогою модулів Arduino та GSM. Наступного разу, коли ви переходите на новий номер телефону або виїжджаєте на довгу паломницьку поїздку або насолоджуєтесь заслуженим відпочинком, просто використовуйте цю машину, щоб записати свій голос із зазначенням причини відсутності, і ця машина автоматично відповість на всі ваші дзвінки їм буде відтворений записаний голос. Це також можна використовувати для номерів вашої компанії, щоб відповідати на дзвінки ваших клієнтів у неробочий час. Звучить цікаво, правда? Тож давайте побудуємо його..
Необхідні матеріали:
Проект може здатися дещо складним, але його дуже легко побудувати, вам потрібні лише такі компоненти
- Arduino Uno
- Модуль GSM - Flyscale SIM 900
- Голосовий модуль ISD 1820
- 12В адаптер для живлення GSM-модуля
- 9В акумулятор для живлення Arduino
- Підключення проводів
Перш ніж ми фактично приступимо до проекту, давайте ознайомимось з модулем GSM та голосовим модулем ISD 1820
Модуль Fly Scale SIM900 GSM:
Модулі 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 живиться від виводу + 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, ВИХІД); // шпилька, щоб увімкнути Voice Serial.println ("Arduino - автоматична голосова машина"); }
Далі ми повинні створити функцію, яка зможе читати і розуміти, що говорить модуль GSM через свій послідовний порт. Якщо ми використовуємо простий послідовний рядок для читання, як “gprs.read ()”, для читання повідомлення, ми отримаємо їх у формі десяткових значень ASCII, це не матиме для нас сенсу.
Отже, наступна функція використовується для перетворення цих десяткових значень у рядки за допомогою рядкових об’єктів, а потім об’єднує їх, утворюючи рядок. Кінцеве значення рядка зберігається у змінній Fdata , яка має тип string і може бути використана для порівняння з будь-якими значеннями рядка.
void check_Incoming () {if (gprs.available ()) // Якщо GSM щось говорить {Incomingch = gprs.read (); // Прослухайте це і збережіть у цій змінній if (Incomingch == 10 - Incomingch == 13) // Якщо там написано пробіл (10) або Newline (13), це означає, що він заповнив одне слово {Serial.println (дані); Fdata = дані; дані = ""; } // Роздрукуйте слово і очистіть змінну, щоб почати свіже else {String newchar = String (char (Incomingch)); // перетворюємо char у рядок за допомогою рядкових об'єктів 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 на 200 мс, щоб відтворити записаний голос з голосового модуля.
if (Fdata == "RING") // Якщо в модулі GSM написано RING {затримка (5000); // чекаємо 5 секунд, щоб створити 3 затримки дзвінка. gprs.write ("ATA \ r \ n"); // Відповісти на виклик Serial.println ("Розміщений отриманий"); // Використовується для налагодження під час (Fdata! = "OK") // Доки на виклик не буде відповідено {check_Incoming (); // Прочитайте, про що говорить модуль GSM Serial.println ("Відтворення записаного повідомлення"); // Використовується для налагодження // Відтворення відновленої затримки голосового повідомлення (500); digitalWrite (8, HIGH); // Перейти на велику затримку (200); // чекаємо 200 мс digitalWrite (8, LOW); // Йти низько}
Робоча:
Після того, як ваш код та обладнання готові, настав час трохи розважитися. Увімкніть обидва модулі та натисніть кнопку REC на голосовому модулі та запишіть повідомлення. Це повідомлення може тривати лише 10 секунд.
Тепер запрограмуйте свій Arduino, використовуючи вказаний нижче код, і вставте SIM-карту в модуль GSM, вам слід почекати щонайменше 2 хвилини, щоб модуль GSM зміг встановити зв’язок з вашим постачальником послуг мережі. Після закінчення ви повинні побачити червоний кольоровий світлодіод, який блиматиме раз на 3 секунди, це означає, що ваша SIM-картка готова приймати дзвінки. Тепер ви можете спробувати зателефонувати на цю SIM-карту з будь-якого номера, і ви почуєте записане повідомлення після трьох безперервних дзвінків. Повна робота проекту показана у відео нижче.
Тадаааааа !!! Тепер у вас є власний автомат-автовідповідач і просто використовуйте його, коли це потрібно, і вражайте ним своїх друзів та родину.
Сподіваюся, вам сподобався проект і побудуйте щось подібне. Якщо у вас виникли проблеми, опублікуйте їх у розділі коментарів, і я допоможу вам.