Уради то сам
Мајсторске класе, упутства, корисни савети, рецепти.
» » »СМС контролер заснован на СИМ800Л
СМС контролер на бази СИМ800Л

СИМ800Л В2.0 ГСМ / ГПРС је четверопојасни ГСМ / ГПРС модул компатибилан са Ардуином. Модул се користи за имплементацију функција ГСМ (позиви и СМС) и ГПРС. Предност овог модула је ТТЛ интерфејс напона од 5 В, који вам омогућава да га директно повежете на Ардуино или било који други систем са 5В напајањем. Већина ГСМ / ГПРС модула на тржишту захтева повезивање регулатора или конверзију нивоа, док у СИМ800Л В.2 ГСМ / ГПРС не захтевају додатне конверзијске кругове на интерфејсу.

Ево примера пројекта који користи СИМ800Л В.2 ГСМ / ГПРС. Смисао пројекта је контрола прекидача помоћу СМС контролера. Лако можете да укључите и искључите већину кућанских апарата у кући, попут ламе, вентилатора и тако даље.

Карактеристике СИМ800Л В.2 ГСМ / ГПРС модула


Испод су све техничке спецификације СИМ800Л В.2 ГСМ / ГПРС модула:
  • ТТЛ серијски интерфејс компатибилан са 3,3 и 5 В микроконтролером компатибилним са Ардуино.
  • СИМ800Л модул има ТТЛ серијски интерфејс.
  • Антенски утикач
  • Мрежна подршка: четири опсега 850/900/1800/1900 МХз, способна за позиве, СМС и пренос података уз значајно смањену потрошњу батерије.
  • ВДД ТТЛ УАРТ интерфејс, тако да можете директно повезати МЦУ као што су 51МЦУ, АРМ или МСП430. ВДД утикач који се користи за подешавање ТТЛ напона.
  • Модел: СИМЦОМ СИМ800Л
  • Радни напон: од 3,7 В до 5В;
  • димензије: 40мм к 28мм к 3мм
  • ГПРС мултислот класа 12/10
  • ГПРС Сервисна класа Б
  • Одговара ГСМ фази 2/2 +
  • Класа 4 (2 вата @ 850/900 МХз)
  • Класа 1 (1 Ват @ 1800/1900 МХз)


Потребни материјали


СМС контролер на бази СИМ800Л


Требат ће вам:


1. .
2. .
3. .
4. .
5. .
(Активне везе до продавнице ради куповине)

Монтажа и конфигурација


СМС контролер на бази СИМ800Л


Након што повежете све компоненте, креирајте програм, а затим га преузмите на свој Ардуино. Али прво, морате да инсталирате ГПРС библиотеку, коју можете да преузмете:

[28.02 Кб] (преузимања: 481)


Програмски код за Ардуино


СМС контролер на бази СИМ800Л


Након што на рачунар повежете СИМ800Л, четвероканални релејни модул и Ардуино, унесите код испод и готови сте.


#инцлуде
#инцлуде
#дефине ТИМЕОУТ 5000
#дефине АКТИВНО НИСКО
#дефине ОФФ ХИГХ

бајт релеј [] = {А0, А1, А2, А3};
бајт СтатРелаи [4];
цхар буффНумбер [20];
цхар цуррентЛине [500] = "";
инт цуррентЛинеИндек = 0;
боол нектЛинеИсМессаге = лажно;
Стринг респонсеНумбер = "089510863958";
ГПРС гпрс;

воид сетуп () {
за (инт и = 0; и <4; и ++) {
пинМоде (Релеј [и], ИЗЛАЗ);
дигиталВрите (релеј [и], МАТИ);
СтатРелаи [и] = МАТИ;
}

Сериал.бегин (9600);
вхиле (! серијски);
Сериал.принтлн ("Активирај СИМ800Л В2 >>> Аутоматски читај СМС");
гпрс.преИнит ();
кашњење (1000);
док је (0! = гпрс.инит ()) {
кашњење (1000);
Сериал.принт ("инит ерроррн");
}

// Управљање поруком у режиму АСЦИИ
иф (0! = гпрс.сендЦмдАндВаитФорРесп ("АТ + ЦМГФ = 1рн", "ОК", ТИМЕОУТ)) {
ГРЕШКА ("ГРЕШКА: ЦНМИ");
повратак
}
// Прочитајте долазни СМС
иф (0! = гпрс.сендЦмдАндВаитФорРесп ("АТ + ЦНМИ = 1,2,0,0,0рн", "ОК", ТИМЕОУТ)) {
ГРЕШКА ("ГРЕШКА: ЦНМИ");
повратак
}
инт пјг = реплиНумбер.ленгтх () + 1;
буффНумбер [пјг];
реплиНумбер.тоЦхарАрраи (буффНумбер, пјг);
Сериал.принт ("Пошаљи одговор на број =>");
Сериал.принтлн (буффНумбер);
Сериал.принтлн ("Завршено од иницијализације");
Сериал.принтлн ("================================================ ================= ");
}

воид лооп () {
// Промена статусног релеја ОН / ОФФ
за (инт и = 0; и <4; и ++) {
дигиталВрите (релеј [и], статРелаи [и]);
}

// Ако постоје улазни подаци са СИМ800
иф (гпрс.сериалСИМ800.аваилабле ()) {
цхар ластЦхарРеад = гпрс.сериалСИМ800.реад ();

// Спремите све податке на ластЦхарРеад, а затим ако постоји р или н, као завршни сигнал долазне поруке
иф (ластЦхарРеад == 'р' || ластЦхарРеад == 'н') {
Стринг ластЛине = Стринг (тренутна линија);

// Ако задња порука + ЦМТ указује да стиже нова порука
иф (ластЛине.стартсВитх ("+ ЦМТ:")) {
Сериал.принтлн (ластЛине);
нектЛинеИсМессаге = тачно;
} елсе иф (ластЛине.ленгтх ()> 0) {
ако (нектЛинеИсМессаге) {
Сериал.принтлн (ластЛине);

// =================================================== ================== >> Функција релејног контролера

// Регулатор релеја 1

иф (ластЛине.индекОф ("Релеј 1 ОН")> = 0) {
СтатРелаи [0] = АКТИФ;
Сериал.принт ("Одговор ==== >>>>");
Сериал.принтлн ("Статус релеја 1 активан");
гпрс.сендСМС (буффНумбер, "Релаи 1 Статус Ацтиве");
}

друго ако (ластЛине.индекОф ("Релеј 1 ОФФ")> = 0) {
СтатРелаи [0] = МАТИ;
Сериал.принт ("Одговор ==== >>>>");
Сериал.принтлн ("Статус релеја 1 искључен");
гпрс.сендСМС (буффНумбер, "Релаи 1 Статус Офф");
}

// Регулатор релеја 2

иф (ластЛине.индекОф ("Релеј 2 УКЉУЧЕН")> = 0) {
СтатРелаи [1] = АКТИФ;
Сериал.принт ("Одговор ==== >>>>");
Сериал.принтлн ("Статус релеја 2 је активан");
гпрс.сендСМС (буффНумбер, "Релаи 2 Статус Ацтиве");
}
друго ако (ластЛине.индекОф ("Релеј 2 искључен")> = 0) {
СтатРелаи [1] = МАТИ;
Сериал.принт ("Одговор ==== >>>>");
Сериал.принтлн ("Статус релеја 2 искључен");
гпрс.сендСМС (буффНумбер, "Релаи 2 Статус Офф");
}

// Контролер релеја 3
иф (ластЛине.индекОф ("Релеј 3 ОН")> = 0) {
СтатРелаи [2] = АКТИФ;
Сериал.принт ("Одговор ==== >>>>");
Сериал.принтлн ("Статус релеја 3 активан");
гпрс.сендСМС (буффНумбер, "Релаи 3 Статус Ацтиве");
}
елсе иф (ластЛине.индекОф ("Релаи 3 ОФФ")> = 0) {
СтатРелаи [2] = МАТИ;
Сериал.принт ("Одговор ==== >>>>");
Сериал.принтлн ("Статус релеја 3 искључен");
гпрс.сендСМС (буффНумбер, "Релаи 3 Статус Офф");
}

// Регулатор релеја 4
иф (ластЛине.индекОф ("Релеј 4 ОН")> = 0) {
СтатРелаи [3] = АКТИФ;
Сериал.принт ("Одговор ==== >>>>");
Сериал.принтлн ("Статус релеја 4 активан");
гпрс.сендСМС (буффНумбер, "Релаи 1 Статус Ацтиве");
}
друго ако (ластЛине.индекОф ("Релеј 4 искључен")> = 0) {
СтатРелаи [3] = МАТИ;
Сериал.принт ("Одговор ==== >>>>");
Сериал.принтлн ("Статус релеја 4 искључен");
гпрс.сендСМС (буффНумбер, "Релаи 4 Статус Офф");
}
нектЛинеИсМессаге = лажно;
}

// =================================================== ==================== >>

}
// Очистите низ знакова за сљедећи ред читања
фор (инт и = 0; и <сизеоф (цуррентЛине); ++ и) {
цуррентЛине [и] = (цхар) 0;
}
цуррентЛинеИндек = 0;
}
елсе {
цуррентЛине [цуррентЛинеИндек ++] = ластЦхарРеад;
}
}
}


Провера уређаја


СМС контролер на бази СИМ800Л


Алат ради слањем СМС-а на СИМ800Л са одређеним низом знакова. На пример, да бисте омогућили релеј 1, користите наредбу „Релеј 1 УКЉУЧЕНО“, а да бисте је искључили, користите команду „Релеј 1 искључено“. Остали релеји имају готово исте команде, с изузетком серијског броја сваког релеја на који желите да делујете. Након аутоматског слања поруке, СИМ800 ће послати одговор у облику статусне поруке за сваку СИМ картицу.

Склапање видео записа, конфигурација и верификација уређаја



Коментари (4)
  1. кееек
    #1 кееек Гости 26. августа 2017. 23:50
    0
    Вау! Како кажу, све генијално је једноставно. Нисам чак ни требало да купујем ништа, вероватно на сваком таквом смећу код куће
  2. Алекеи
    #2 Алекеи Гости 16. децембра 2017. 16:53
    0
    Не успева. Приликом компајлирања пише „Ардуино: 1.8.5 сат по сату 2017/08/28 06:33 (Виндовс 7), табла:„ Ардуино / Генуино Уно “
    1. Денис
      #3 Денис Гости 17. децембра 2017. 08:11
      0
      Морате користити стазу без руских слова до пројекта.
  3. Андреи
    #4 Андреи Гости 10. фебруар 2019. 11:54
    0
    У слици је пуно грешака. Неће успети.

Прочитајте такође

Кодови грешака за веш машине