- Необходими материали:
- Fly Scale SIM900 GSM модул:
- Гласов модул ISD1820:
- Електрическа схема и обяснение:
- Програмиране на вашия Arduino:
- Работа:
В съвременния свят ние всички зависим от мобилните телефони като основно средство за безжична комуникация. Но всички ние сме се сблъсквали със ситуации, по време на които може да не сме в състояние да отговорим на нашите обаждания, тези обаждания може да са важен личен разговор или бизнес промяна, която променя живота ви и може просто да сте пропуснали тази възможност, тъй като не сте били в състояние да отговорите на това обадете се в точно това време.
Този проект има за цел да реши този проблем чрез създаване на автоматичен телефонен секретар с помощта на Arduino и GSM модул. Следващия път, когато превключите на нов телефонен номер или излезете за дълго поклонение или се наслаждавате на заслужена почивка, просто използвайте тази машина, за да запишете гласа си, като посочите причината за отсъствието и всички ваши обаждания ще бъдат автоматично отговорени от тази машина и вашия ще им се възпроизведе записан глас. Това може да се използва и за вашите служебни номера, за да отговаряте на обажданията на вашите клиенти в извънработно време. Звучи интересно нали? Така че нека го изградим..
Необходими материали:
Проектът може да звучи малко сложно, но наистина е лесен за изграждане, просто се нуждаете от следните компоненти
- Arduino Uno
- GSM модул - Flyscale SIM 900
- Гласов модул ISD 1820
- 12V адаптер за захранване на GSM модул
- 9V батерия за захранване на Arduino
- Свързващи проводници
Преди да продължим действително към проекта, нека се запознаем с GSM модула и ISD 1820 Voice Module
Fly Scale SIM900 GSM модул:
GSM модулите са очарователни за използване, особено когато нашият проект изисква отдалечен достъп. Тези модули могат да извършват всички действия, които може да направи нашият нормален мобилен телефон, като например осъществяване / получаване на повикване, изпращане / получаване на SMS, свързване към интернет чрез GPRS и т.н. Можете също така да свържете нормален микрофон и високоговорител към този модул и да разговаряте на мобилни разговори. Ето няколко урока за тях с помощта на различен микроконтролер:
- Обаждане и съобщение чрез Arduino и GSM модул
- Обаждане и изпращане на текст с помощта на Raspberry Pi и GSM модул
- GSM модул Взаимодействие с микроконтролер PIC - Извършване и получаване на повиквания
Както е показано на снимката по-долу, GSM модулът се доставя с USART адаптер, който може да бъде директно свързан към компютъра чрез модул MAX232 или Tx и Rx щифтовете могат да бъдат използвани за свързването му с микроконтролер. Можете също така да забележите другите щифтове като MIC +, MIC-, SP +, SP- и т.н., където може да се свърже микрофон или високоговорител. В модула може да се захранва от 12V адаптер чрез нормална DC барел жак.
Поставете вашата SIM карта в слота на модула и го включете, трябва да забележите, че светодиодът за захранване свети. Сега изчакайте около минута и ще видите червен (или друг цвят) светодиод, който мига веднъж на всеки 3 секунди. Това означава, че вашият модул е в състояние да установи връзка с вашата SIM карта. Сега можете да продължите със свързването на модула с телефон или друг микроконтролер.
Гласов модул ISD1820:
Гласовият модул ISD 1820 е наистина страхотен модул, който може да подправи вашите проекти с гласови съобщения. Този модул може да записва аудио клип за 10 секунди и след това да го възпроизвежда, когато е необходимо. Самият модул се доставя с микрофон и високоговорител (8 ома 0,5 вата) и той трябва да изглежда по следния начин.
В модула работи на + 5V и може да се захранва с помощта на Берг пръчки в ляво. Той също така има три бутона в долната част, които са Rec. бутон, PlayE. бутон и PlayL. съответно. Можете да запишете гласа си, като натиснете Rec. и го пуснете с помощта на бутона PlayE. PlayL ще възпроизвежда гласа, докато държите бутона. Когато взаимодействаме с MCU, можем да използваме щифтовете отляво. Тези щифтове са 3V-5V поносими и следователно могат да бъдат управлявани директно от Arduino / ESP8266. В нашия проект ние контролираме PLAYE щифта с помощта на D8 пина на нашия модул Arduino. За да можем да възпроизведем записания глас, когато повикване бъде открито и получено от GSM модула.
Електрическа схема и обяснение:
Пълната електрическа схема на този проект за автоматичен гласов разговор е дадена по-горе. Както можете да видите връзките са наистина прости. Захранваме GSM модула с адаптер 12V 1A и Arduino с 9V батерия, модулът ISD Voice се захранва от + 5V щифт на Arduino. Тъй като знаем, че можем да записваме всичко на нашия гласов модул, като натискаме бутона за запис и това ще се възпроизведе при натискане на PE, това аудио трябва да бъде изпратено към микрофона на GSM модула. Така свързваме щифта на високоговорителя на модула Voice към микрофона на GSM модула.
Тук модулът Arduino и GSM се свързва последователно, Tx щифтът на Arduino е свързан към щифт 9, а Rx щифтът е свързан щифт 10. Това ще помогне на Arduino да слуша GSM модула. Когато пристигне повикване към GSM модула, Arduino ще го изслуша и ще помоли GSM модула да отговори на повикването. Arduino се уверява, че разговорът е активен и след това възпроизвежда записаното гласово съобщение на гласовия модул, като кара щифта 8 (Свързан с PE на гласов модул) да премине високо за 200ms.
Програмиране на вашия Arduino:
От горния параграф знаем каква е ролята на Arduino тук; сега нека да разгледаме кода, който прави същото. Най- пълен Arduino кода на проекта е дадено в долната част на тази страница, освен това тук съм разсипан кода на малки джонки да го обясня.
Преди да предшестваме по-нататъшно инсталиране на GSM библиотеката, моля, кликнете върху тази връзка към библиотеката на Github GSM, за да изтеглите библиотеката, използвана в този проект. Ще получите zip файл, който трябва да бъде добавен към вашата библиотека на Arduino чрез Sketch -> Include Librarey -> Add.Zip файл .
Първите три реда от кода, показани по-долу, се използват за включване на библиотеката в нашия код. Използваме серийната библиотека и кабелната библиотека, защото не използваме стандартните щифтове Rx и Tx на Arduino за комуникация с GSM модул.
#include
Ние се даде възможност на серийна комуникация на щифтове 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); // щифт за включване на Voice Serial.println ("Arduino - автоматична гласова машина"); }
След това трябва да създадем функция, която може да чете и разбира какво казва GSM модулът чрез своя сериен порт. Ако използваме прост сериен ред за четене като „gprs.read ()“, за да прочетем съобщението, ще ги получим под формата на ASCII десетични стойности, това няма да има смисъл за нас.
Следната функция се използва за преобразуване на тези десетични стойности в низове чрез използване на низови обекти и след това ги обединява, за да образува низ. Крайната стойност на низа се съхранява в променливата Fdata , която е от тип string и може да се използва за сравнение с всякакви 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; // След конвертиране в низ, направете конкатенация на низове}}}
В следващите редове се използват за отстраняване на грешки, с тези Debugger линии можете да изпратите AT команди от Serial монитора на Arduino за GSM, а също и да видим какво е отговор на сериен монитора.
if (Serial.available ()) {// Използва се за отстраняване на грешки в gprs.write (Serial.read ()); // Използва се за отстраняване на грешки} // Използва се за отстраняване на грешки
Както беше казано по-рано, Arduino трябва да провери дали GSM модулът приема обаждания. Това може да се направи, като се накара Arduino да провери за “ RING ”, защото GSM модулът ще изведе RING в случай на повикване съгласно списъка с команди AT. Когато намери повикване, ще изчака 5 секунди и ще изпрати командата “ ATA ” към GSM модула, това ще накара GSM модула да отговори на повикването и след като отговори, той ще отговори с “OK”. Arduino отново изчаква потвърждението „ ОК “ и след това превръща в Pin 8 високо за 200ms, за да възпроизведе записания глас от гласов модул.
if (Fdata == "RING") // Ако GSM модулът казва RING {delay (5000); // изчакайте 5sec, за да създадете 3 забавяне на позвъняване gprs.write ("ATA \ r \ n"); // Отговорете на повикването Serial.println („Поставено получено“); // Използва се за отстраняване на грешки докато (Fdata! = "OK") // Докато повикването не бъде успешно отговорено {check_Incoming (); // Прочетете какво казва GSM модулът Serial.println ("Възпроизвеждане на записано съобщение"); // Използва се за отстраняване на грешки // Възпроизвеждане на възстановеното забавяне на гласовото съобщение (500); digitalWrite (8, HIGH); // Преминаване с голямо закъснение (200); // изчакваме 200 msec digitalWrite (8, LOW); // Отидете ниско}
Работа:
След като кодът и хардуерът ви са готови, е време за малко забавление. Включете и двата модула и натиснете бутона REC на модула Voice и запишете съобщение. Това съобщение може да бъде само 10 секунди.
Сега програмирайте вашия Arduino, като използвате посочения по-долу код и поставете SIM колата в GSM модула, трябва да изчакате поне 2 минути, за да може GSM модулът да установи връзка с вашия доставчик на мрежови услуги. След като приключите, трябва да видите, че червеният светодиод мига веднъж на всеки 3 секунди, това показва, че вашата SIM карта е готова да приема повиквания. Вече можете да опитате да се обадите на тази SIM карта от произволен номер и трябва да чуете записаното съобщение след три непрекъснати позвънявания. Цялостната работа на проекта е показана във видеото по-долу.
Тадаааааа !!! Сега имате свой собствен автоматичен телефонен секретар и просто продължете и го използвайте, когато е необходимо, и изумете приятелите и семейството си с него.
Надявам се да ви е харесал проектът и да изградите нещо подобно. Ако имате някакви проблеми, публикувайте ги в раздела за коментари и аз ще ви помогна