Авторизация
Регистрация

Напомнить пароль

GSM модем SIM800L V2.0 Первый взгляд

«Мне надо дистанционно открывать дверь. Вернее, отключать магнит, который держит дверь...» Вот такая неожиданная просьба, причем речь изначально шла о gsm модеме, не то чтобы я знал все подробности, но на вопрос как сделать простейший выключатель решил ответить обзором. Буквально 5-7 строчек кода и все дела.


Как и где модуль покупался я уже не помню, но специально нашел самую низкую цену при высоком рейтинге продавца.
Внешний вид






Чем примечательна именно данная версия модема:
1. В отличие от первой версии питается от 5В и не требует никаких dc-dc преобразователей, которые, между прочим тоже стоят денег — все выполнено непосредственно на плате. А как результат меньше устройств, меньше проводов, меньше соединений.
2. Отличная внешняя антенна
3. Маленькие размеры 40х28 мм
4. Отверстия под крепление!!! Не всегда и не везде их делают
5. Антенну будет очень удобно крепить в корпус, судите сами, разъем крепим на корпусе, на него навинчиваем антенну, не обязательно штатную, и проводом подключаем модем.


По конструктиву все, дальше я это чудо загуглил на предмет кто-что с ним делал и скачал библиотеку SIM908IDE100, которая мне понравилась, но справедливости ради должен отметить, что она единственная которую я смотрел.
Подключение:
5В модуля на 5В ардуино
GND на GND
TXD на 2 вывод ардуино
RXD на 3 вывод ардуино
VDD не задействован
RST не задействован

После подключения библиотеки открыл пример:

Собрал все воедино и прошил

Вот пара моментов, на которые можно обратить внимание:
gsm.readSMS(smsbuffer, 160, n, 20)
smsbuffer — массив символов формата char с смс сообщением
n — номер телефона
соответственно, чтобы не выводить свой номер телефона в терминал я закомментировал строку // Serial.println(n);
Если модем поймал сеть, то светодиодный индикатор на модеме мигает примерно раз в 3 секунды, на после прошивки в терминале вы увидите надпись status=READY
Далее я отправил на номер сим карты в модеме (кстати не забудьте ее поставить!) смс с текстом «Hello»

Попробовал раскомментировать следующие строки, вбил свой номер и отправил смс уже себе на телефон

Одним словом все работает замечательно, теперь к открытию двери путем отправки смс. Собственно ничего сложного, для проверки будем использовать светодиод на 13 контакте ардуино (будем им мигать через смс) и добавляем пару строчек кода.
Что добавится к примеру:
#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"
SMSGSM sms;

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];

void setup() 
{
                pinMode(13, OUTPUT);//Вывод, на котором установлен диод
                digitalWrite(13, LOW);  //Выключаем диод
  //Serial connection.
  Serial.begin(9600);
  Serial.println("GSM Shield testing.");
  //Start configuration of shield with baudrate.
  //For http uses is raccomanded to use 4800 or slower.
  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;  
  }
  else Serial.println("\nstatus=IDLE");
  
  if(started){
    //Enable this two lines if you want to send an SMS.
    //if (sms.SendSMS("3471234567", "Arduino SMS"))
      //Serial.println("\nSMS sent OK");
  }

};

void loop() 
{
  if(started){
    //Read if there are messages on SIM card and print them.
    if(gsm.readSMS(smsbuffer, 160, n, 20))
    {
      //Serial.println(n);
         Serial.println(smsbuffer);
         if (smsbuffer[0]=='f')       //если первая буква смс f
         {digitalWrite(13, LOW);} //выключаем диод
        if (smsbuffer[0]=='o')       //если первая буква смс o
         {digitalWrite(13, HIGH);}//включаем диод
//туда можно написать любой симфол на латиннице, с русским шрифтом не дружит   
 }
    delay(1000);
  }
};

Попробовал — все отлично работает, позже подключил реле на 13 вывод ардуино — все отлично переключается

Но для обзора это как-то хреновенько, да и сомневаюсь я, что человек будет рад отправлять по одной букве, а вот сообщения типа on-off подошли бы как нельзя лучше
Код примитивный, но рабочий
Не спешите кидать тапки, потом я спросил у программиста КАК?! сделать лучше.
#include "SIM900.h"
#include <SoftwareSerial.h>

#include "sms.h"
SMSGSM sms;

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
        char mes1[2]={'O','n'};    //сообщения, которые ждем
        char mes2[3]={'O','f','f'};
void setup() 
{
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  //Serial connection.
  Serial.begin(9600);
  Serial.println("GSM Shield testing.");
  //Start configuration of shield with baudrate.
  //For http uses is raccomanded to use 4800 or slower.
  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;  
  }
  else Serial.println("\nstatus=IDLE");
  
  if(started){
  }

};

void loop() 
{
  if(started){
    //Read if there are messages on SIM card and print them.
    if(gsm.readSMS(smsbuffer, 160, n, 20))
    {
      Serial.println(smsbuffer);
             int b=0;
             int c=0;
             for (int i=0;i<2;i++)
      {
      if (smsbuffer[i]==mes1[i])
      {b++;}
      if(b==2){digitalWrite(13, HIGH);}
      }
            for (int i=0;i<3;i++)
      {
      if (smsbuffer[i]==mes2[i])
      {c++;}
      if(c==3){digitalWrite(13, LOW);}
      }
    }
    delay(1000);
  }
};


Код как он должен быть

Это последняя эволюция кода с подключением библиотеки string.h
#include <string.h>

#include "SIM900.h"
#include <SoftwareSerial.h>

#include "sms.h"
SMSGSM sms;

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
char mes1[]="On\r";    //сообщения, которые ждем
char mes2[]="Off\r";
void setup() 
{
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  //Serial connection.
  Serial.begin(9600);
  Serial.println("GSM Shield testing.");
  //Start configuration of shield with baudrate.
  //For http uses is raccomanded to use 4800 or slower.
  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;  
  }
  else Serial.println("\nstatus=IDLE");
  
  if(started){
  }

};

void loop() 
{
  if(started){
    //Read if there are messages on SIM card and print them.
    if(gsm.readSMS(smsbuffer, 160, n, 20))
    {
      Serial.println(smsbuffer);
      if(strcmp(smsbuffer, mes1) == 0){
          digitalWrite(13, HIGH);
      }
      if(strcmp(smsbuffer, mes2) == 0){
          digitalWrite(13, LOW);
      }
    }
    delay(1000);
  }
};

Принципиальная разница между первым и вторым вариантом в том, что после консультации со знающим человеком наступает просветление))) А если по нормальному, то смс заканчивается символом /r, я этого естественно не знал, поэтому сравнивал только 2 или 3 символа массива, остальная часть не учитывалась. Т.е. если послать Onnnn и On — результат будет идентичный, в последней версии этого недостатка нет.

В зависимости от того что спросившему человеку нужно, можно сделать список команд, например отключить на 10 секунд замок, отключить до следующей команды и т.д… Ну и можно сделать на 3d принтере корпус для всего этого, а питать лучше от сети к которой подключен электрический замок.
P.S. Модем мне понравился, все его плюсы относительно его собратьев я перечислил выше. + я надеюсь мой опыт вам пригодится.
Планирую купить +95 Добавить в избранное
+68 +138
свернутьразвернуть
Комментарии (108)
RSS
+
avatar
0
На чем сделан преобразователь? много жрет в спящем режиме?
+
avatar
+1
Я добавил пару фото под спойлер внешний вид. К сожалению я не такой специалист в схемотехнике, чтобы ответить на ваш вопрос, но если подскажете, я могу дополнить обзор.
+
avatar
+1
  • JustACat
  • 30 августа 2016, 13:29
Судя по фото, преобразователем там может быть только та мелкая черная шестиногая микра между маркировкой SIM CARD и, собственно, самим разъемом для сим-карты. Рядом с ней почему-то маркировка R5 — но на резистор или резистивную сборку оно не похоже :-Р
Но у вас на фото не видно маркировки именно этой микросхемки. И с обратной стороны как раз в этом месте кондеров собрано несколько, включая тантал, что тоже похоже на схемы питания.
На A2SHB между GSM-модулем и гребенкой контактов — наверное, согласователь уровней.
А больше там ничего интересного :) Конденсаторы, резисторы, пара диодов да светодиоды.
Так что если маркировку на 6-ногой микре рассмотрите — то будет ясно.
А потребление мультиметром можно померить в режиме измерения тока в разрыв цепи питания модуля.
+
avatar
+3
Ток померил, 23-27mA когда поймает сеть (секунд через 20-30 где-то он устаканился) и до 140mA при включении. Что касается маркировки той микросхемы я не могу ее ни посмотреть ни сфотографировать, слишком мелкая, микроскоп нужен чтобы понять, что там написано.
+
avatar
0
Померяйте пожалуйста потребление в режиме сна (подайте команду AT+CSCLK=2 ). После измерений выведите модем в нормальный режим (он будет помнить состояние сна если не изменить) командой AT+CSCLK=0
+
avatar
0
Сегодня уже не получится, уезжаю скоро. Завтра вечером напиши в личку, попробую замерить. А если напишешь готовый скетч, который вгоняет его в сон на секунд 20-30, а потом будет забацаю видео как показания изменяться будут.
+
avatar
0
  • JustACat
  • 30 августа 2016, 14:37
Ммм, вот, нашел схему, похожа на схему данного модуля: схема взято отсюда.
В общем-то, был неправ. R5 — это «Диодная сборка из пяти защитных диодов» и относится к сим-карте.
А питание устроено на паре диодов последовательно, которые и обеспечивают падение напряжения.
Как-то так…
+
avatar
+1
  • albus
  • 30 августа 2016, 12:52
Надо побольше воды, а то уж очень специфично.
+
avatar
+1
Обзор задумывался как ответ на вопрос, чтобы человек мог сам повторить все, что делал я. Короче, помог как смог.
+
avatar
+6
А как же звонилка нокия за 300р и релюшечка вместо вибромоторчика?;-)
+
avatar
0
Признаться я об этом не слышал, да и навряд ли смог, по крайней мере за день.
+
avatar
+1
  • lamut
  • 30 августа 2016, 13:02
Вибромоторчик символы может различать?
+
avatar
+12
Это если делать сложное управление, наример нагревательным котлом. А если нужна функция открыть-пропустить — то достаточно и варианта с телефоном. У нас так сделан шлагбаум: по умолчанию все номера в черном списке, кто оплачивает — получает включение своего номера в белый список. Все остальные могут звонить и слать смс до посинения.
Очень удобно.
+
avatar
0
  • Onegin45
  • 30 августа 2016, 14:45
А если не секрет, каким образом оперативно редактируете списки?
+
avatar
+1
Честно говоря, я не в правлении, но на сколько я помню — через личный кабинет: сначала ставится запрет на все звонки и смс с любых номеров, а потом необходимые включаются в разрешенные.
Как-то так, где-то 4-й пункт инструкции:
http://static.mts.ru/uploadmsk/contents/1682/instruction_black_list_for_users_042015.pdf
+
avatar
0
  • Onegin45
  • 30 августа 2016, 16:24
А, все понятно, я думал это делается на самом теле.
+
avatar
0
  • Lubimiy
  • 31 августа 2016, 07:29
У Вас речь идёт об своевременной оплате за коммунальные услуги в ТСЖ или какая-то отдельная плата?
+
avatar
0
Садоводческое товарищество, там плата хитро как-то распределяется на две части, одна часть — членские взносы, а вторая — еще как-то называется. Шлагбаум входит в одну из них, уже не помню в какую именно, мы вовремя обе оплачиваем.
+
avatar
0
  • plyatov
  • 04 сентября 2016, 12:41
Т.е. под новый год и другие редкие часы перегрузки сотовой сети, никто не сможет вьехать или выехать со двора? :-)
+
avatar
0
Да не, конечно ключ аварийного открытия у председателя правления есть, ну или у сторожа, если его нет.
И не со двора — с садовых участков.
Но в любом случае, зимой там десять с половиной человек из трехсот.
+
avatar
0
  • bonki
  • 30 августа 2016, 13:02
А это вариант… И денег на смс не надо тратить. Правда сейчас почти у всех смс пакетами включены, но всё же.
+
avatar
-2
  • Parsek
  • 30 августа 2016, 13:25
питание от нокии отвалится, аккум сядет и «моторчик» калитку откроет. или спам рассылка массовая включит «подогрев теплого пола» гениально!
+
avatar
+6
  • Sanja
  • 30 августа 2016, 13:43
функционал «белых-чёрных списков» есть и на стороне оператора и на стороне аппарата (SIM-карты). Для подстраховки можно ещё поставить на все входящие silent-режим и только на звонки с определённого номера — постоянный виброзвонок. Получится 3 уровня защиты.

Единственное, что может доконать простую Nokia 3310 — это глубокая заморозка АКБ. Если аппарат будет воткнут в сеть в помещении с плюсовой температурой — проработает год без вмешательства.
+
avatar
0
  • flyback
  • 30 августа 2016, 13:16
Расскажите или дайте ссылочку где почитать на работающую реализацию с нокией. Интересно
+
avatar
0
Кажется тут:
m.youtube.com/watch?v=wjv-9t7TO3U

Сейчас не могу это видео сам посмотреть.
+
avatar
0
  • Kirillm
  • 30 августа 2016, 13:03
Подскажите у знакомого точно такой же модуль, не может карточка зарегится, мигает быстро, у него сеть как понял 3 поколения www.frequencycheck.com/carriers/hot-mobile-israel
Что можно сделать, может команду какую дать, на другого оператора он не может перейти оч дорого получается.
+
avatar
0
Первая симка, которую я поставил была от Теле2, нихрена не было сети, т.к. для работы сим нужен 3G, по умолчанию он не включен, возможно проблема в этом. Я париться не стал и взял симку от МТС.
+
avatar
0
У меня теле2 и мтс из коробки завелись. Симки новые.
+
avatar
0
  • skyOrbit
  • 19 октября 2019, 18:18
У Теле2 не во всех регионах есть частоты 2G.
+
avatar
+1
  • Diodvbg
  • 31 августа 2016, 19:12
обычно такое бывает когда симка очень старая, возможно у вас такая проблема
+
avatar
0
  • skyOrbit
  • 19 октября 2019, 18:17
Скорее всего там у оператора нет сети покрытия 2G. А в сети 3G и 4G данный модуль не работает.
+
avatar
+6
  • SEM
  • 30 августа 2016, 13:16
Лучше сделать открытие замка по звонку со списка номеров без поднятия трубки — и бесплатно, и быстрее чем SMS набирать.
+
avatar
0
  • Parsek
  • 30 августа 2016, 13:26
одна проблема, пользователь в этой версии ПО, не сможет списки редактировать.
+
avatar
0
  • SEM
  • 30 августа 2016, 14:03
А из памяти SIM-карты ПО читать списки не может? USB-ридер для SIM-карт меньше 2$ стоит, вынул симку, прописал номера, вставил обратно…
Если же решение «для дома, для семьи» (или для небольшого отдела на работе), то список номеров меняется редко, можно и перепрошивать девайс.
+
avatar
+1
Если номеров не так и много, то можно вообще в eeprom хранить
+
avatar
0
  • LynXzp
  • 04 сентября 2016, 14:59
Зачем EEPROM? SRAM. Массив в памяти и все. В данном случае не нужно особо много кода писать. Если номеров конечно не сильно больше сотни.

P.S. В flash памяти тоже ничего если readonly и поправляется только прошивкой.
+
avatar
0
  • Parsek
  • 30 августа 2016, 15:41
человек который попросил сварганить такое, даже не знает что такое IDE, как там в Си программировать и вставлять дополнительные номера.
а в том листинге что был представляет (версия ПО данного изделия) никакого интерфейса не предусмотрено. например можно сделать команду add_t xxxxxxxxxxx, добавить в список разрешенных номер, или del_t xxxxxxx. удалить номер. в такой версии можно было бы написать инструкцию, а где там что хранить, решает программист.
+
avatar
0
  • DMA
  • 30 августа 2016, 18:15
Добавить кнопочку, зажав которую нужно будет сделать один входящий звонок для регистрации номера в памяти. Это как самый удобный вариант. Либо делать первый дозвонившийся после сброса номер мастером, который имеет право через смс добавлять номера в память.
+
avatar
+1
Можно еще интереснее сделать. По сути кидая смс на модем на выходе мы получаем номер и текст сообщения. Так вот, никто не мешает ограничить прием смс от заданных номеров. Можно задать шаблон сообщения: некий код+новый авторизированный номер, единственное придется повозиться с eeprom чтобы после сброса питания не потерять настройки. Можно мастерпароль поставить на открытие двери с любого номера, здесь присутствует широкая свобода творчества, поскольку самое сложное — работу с модемом берет на себя библиотека. Собственно это основная причина, по которой я вообще связался с ардуино ide, библиотеки и куча примеров в сети это очень помогает.
+
avatar
0
  • SEM
  • 30 августа 2016, 21:29
Можно ещё десяток одноразовых паролей сделать, чтобы давать тем, кому надо только один раз открыть.
+
avatar
0
В принципе можно, а можно и динамический пароль сделать по лунному календарю, расположению светила и настроению заказчика — Хрен кто откроет))) По факту здесь нужно сесть, поговорить и подумать какие ситуации возможны и под них делать решение.
+
avatar
+2
  • serg_mur
  • 30 августа 2016, 13:33
я надеюсь мой опыт вам пригодится
Всё, что связано с Ардуино, рано или поздно пригождается.
Спасибо за обзор! Плюс.
+
avatar
0
  • Parsek
  • 30 августа 2016, 13:40
Спасибо! для домашней автоматизации на коленке, вещь весьма полезная. функционал практически «облачный»
+
avatar
-1
  • Sanja
  • 30 августа 2016, 13:45
Автор, напишите, пожалуйста, в обзоре, что SIM800 не поддерживает мобильный интернет. Для этого нужна следующая версия, SIM900, она дороже.
+
avatar
0
+
avatar
0
Sim800 поддерживает мобильный интернет. Более того, он поддерживает HTTP, чего не умеет M590
+
avatar
+1
  • Ctapocta
  • 30 августа 2016, 13:54
Код примИтивный
+
avatar
+1
исправил, спасибо
+
avatar
0
  • lexx
  • 30 августа 2016, 14:23
А можно сам магнит на двери увидет и какая модель этого магнита и как все это к нему подключить без этого как то не до конца тема раскрыта?
+
avatar
0
  • bonki
  • 30 августа 2016, 16:49
По вашей ссылке электромеханическая защёлка, а автор говорит про магнитный замок. А это уже выглядит так
А проще всего его разглядеть при входе в подъезд, если подъезд оборудован домофоном.
+
avatar
0
  • vot
  • 30 августа 2016, 17:17
согласен.
на подъезд такое не ставят. Но на офисные двери очень даже)
+
avatar
0
  • bonki
  • 30 августа 2016, 20:21
Для офисов сейчас применяют немного другого принципа защёлки. Монтируется в дверной косяк, а на двери снаружи снимается дверная ручка и заменяется на «бобышку» выглядит примерно так www.techlaboratory.ru/product/soca-sl-350s/ т. е. снаружи зайти без открывания защёлки нельзя, а изнутри выходим как через обычную межкомнатную дверь
+
avatar
0
  • nevsky
  • 30 августа 2016, 14:45
Что делать, если телефон потерял/дома_забыл?
+
avatar
+4
  • JustACat
  • 30 августа 2016, 14:52
Наверное, то же самое, что и «если ключи потерял, дома забыл» в случае с обычным замком. Только телефон если потерял, то, скорее всего, выйдет дороже, чем поменять личинку в замке.
А если серьезно, то в важных местах (на входной двери, например) я бы использовал замок электромеханический (то есть, считайте, обычный замок с личинкой под ключ, но с электроприводом внутри, который как раз может открыть замок по команде с микроконтроллера). Это, как мне кажется, безопаснее и надежнее электромагнитного замка. И в случае отсутствия электроэнергии замок не теряет своих основных свойств.
Электромагнитные у нас на подъезде народ рывком открывает, увы (да, не перевелись еще богатыри на земле русской… правда непонятно, зачем они силушку на такое расходуют...).
Но все зависит от задачи.
+
avatar
+1
  • SEM
  • 30 августа 2016, 15:10
В отличие от забытого дома ключа — тут можно попросить кого-нибудь позвонить вам домой (или коллеге), чтобы там открыли замок (звонком или SMS).
При потере — всё равно новый телефон покупать и симку (номер) восстанавливать, хоть на изготовлении дубликата ключа можно 100р сэкономить.
+
avatar
+1
  • nevsky
  • 30 августа 2016, 15:38
Ага, представляю такую картину:
Три часа ночи, целый час кого-то ищешь с телефоном, а затем ему типа «Слышь мужик, позвони мне домой, чтобы мне дверь открыли!..» )))))
+
avatar
+2
  • SEM
  • 30 августа 2016, 15:49
Т.е. если в одной, высосанной из пальца, ситуации забытый дома телефон окажется ничем не удобнее забытого дома ключа — описываемую схему не надо применять нигде и никогда?
+
avatar
0
  • nevsky
  • 30 августа 2016, 16:20
Почему высосанной?..
Телефон иногда забываю дома, особенно летом.
А вот ключи не забываю, потому что если даже в кармане не оказалось вязки, то возращаешься домой, чтобы ключом закрыть дверь. И да, у меня на входной двери (калитка) установлен електромеханический. Почему интересует открытие замка телефоном — часто бывает, что руки заняты когда подходишь к двери, а так набрал команду, вышел с машины с пакетами, пнул дверь и готово!..
+
avatar
+1
  • SEM
  • 30 августа 2016, 16:31
Мне трудно судить, я никогда не забывают ни телефон, ни ключи, но «открывать телефоном» в большинстве случаев удобнее — им можно открывать дистанционно. Например должны придти друзья, а вы немного задерживаетесь, вам позвонили — вы открыли замок.
И если всё же телефон где-то забыли — это лучше чем забыть ключ (с точки зрения открывания двери), т.к. за ключом вам только возвращаться. а с телефоном — всё же есть шанс кого-то попросить позвонить.
+
avatar
0
  • kvolk
  • 30 августа 2016, 16:46
То есть вы считаете что замок должен с любого номера открываться? Или я не так вас понял?
+
avatar
0
  • SEM
  • 30 августа 2016, 16:48
Не так поняли. Звонок домой с любого телефона, просьба найти забытый и с него «позвонить» (отправить SMS) на замок. С забытым ключом такой фокус не пройдёт.
+
avatar
0
  • kvolk
  • 30 августа 2016, 17:04
Фантастическая ситуация, если кто-то есть дома то и в звонок можно позвонить, а если один живёшь то, наверное только в 112 :)
+
avatar
0
  • SEM
  • 30 августа 2016, 17:27
Если замок на работе, а телефон забыл дома — в какой звонок позвонить?
+
avatar
+1
  • Z2K
  • 31 августа 2016, 00:29
Звонок домой
— не, не домой. Дзвонок родным, которые через те же двери ходят. И чтобы они позвонили на номер двери со своего и открыли дверь.
+
avatar
0
  • nevsky
  • 30 августа 2016, 15:32
Полностью согласен.
+
avatar
+3
  • DMA
  • 30 августа 2016, 18:20
Все эти M590 являются Б/У-шными и обладают кучей плавающих проблем. Лучше заплатить двойную цену и быть уверенным в работоспособности модуля. Плюс, M590 не приспособлен к нормальной работе по сетевым протоколам. И ходят слухи, что имеет несовместимость с новыми симками.
+
avatar
+2
  • gaudin2
  • 30 августа 2016, 20:18
Это не слухи, M590 не работает не 3G не 4G симками, сам с этим столкнулся. Зато на SIM800L все заработало.
+
avatar
0
  • Z2K
  • 31 августа 2016, 00:31
Да. 2 шт не запустились
+
avatar
+1
  • smith777
  • 30 августа 2016, 17:40
Неужели такая переплата за антенну?
Заказал за 4,40$ тут: https://aliexpress.com/item/item/Smallest-SIM800L-GPRS-GSM-Module-MicroSIM-Card-Core-BOard-Quad-band-TTL-Serial-Port/32286088224.html
+
avatar
0
  • gaudin2
  • 30 августа 2016, 20:20
Антенна стоит 1 евро + 3,5 евро sim800L
+
avatar
0
Тут нет адаптации под питание 5В, т.е. прибавьте к антенне еще dc-dc, далее за продуманность платы в плане креплений я готов переплачивать.
+
avatar
0
  • gaudin2
  • 30 августа 2016, 21:31
Зачем DC-DC? Подключаешь SIM 800L напрямую от литиевой батареи, а ардуинку используешь на 3,3 вольта, подключаешь к литиевой батареи к пину RAW.
+
avatar
+1
Давайте определимся, цикл работы литиевого аккумулятора 2,5В (или 2.75) — 4.25В, в зависимости от аккумулятора и контроллера питания цифры могут немного отличаться. Т.е. если вы работаете с аккумулятором, то даете полный цикл заряд-разряд, чтобы получить максимальное время работы от него. По вашей логике цикл работы примерно 4.25-3В, а значит около 10% емкости аккумулятора вы вообще никогда не увидите, а колебания напряжения на модеме меня реально напрягают. В случае обзора питание будет браться от замка и такие вещи немного не подойдут
+ первая версия платки немного устарела, эта намного удобнее для новичков вроде меня, да и стаб на ардуине амперный, этого для смс выше крыши.
+
avatar
0
  • areht
  • 28 июля 2018, 11:41
А у вас что за замок на 5 вольт? Я только на 12-24 видел

> а значит около 10% емкости аккумулятора вы вообще никогда не увидите

Ну, это ужас-ужас, конечно…
+
avatar
0
  • smith777
  • 31 августа 2016, 18:16
Где Вы были ранее? :))
«не гонялся бы ты поп за дешевизной»
Как можно реализовать питание моего модуля от Arduino uno?
+
avatar
0
Если рассматривать только смс сообщения при хорошем приеме, то хоть от юсб порта, замерял ток, он не превышает 300мА, при подключении gprs ток будет естественно выше. Если вопрос стоит как сделал бы я, то взял бы амперный 12В блок питания (9В тоже подойдет и тоже есть) от старого роутера, благо разъем подходит для ардуины, а модем запитал от 5В выхода. У ардуины стоит хороший 1А стабилизатор. Но это если от сети 220В, в противном случае взял бы повербанк и запитал ардуину и модем параллельно, это тоже будут стабильные 5В, только их нужно подавать уже не Vin ардуины, а на 5В выход.
+
avatar
0
  • smith777
  • 01 сентября 2016, 03:48
у меня первая ревизия шилда, и напряжение питания 3.2-4,7 в.
Питать требуется в «поле» от акб и солнечных батарей.
Отправлять по gprs минимальные пакеты по 1кб вкл/выкл, или уводить в сон для экономии.
+
avatar
0
  • smith777
  • 31 августа 2016, 18:28
Тогда Вам и такой вопрос: где дешевле всего НА АЛИЭКСПРЕСС купить HoldPeak HP-890CN?
(Ebay отпадает, т.к. я из Казахстана а виртуальная QIWI карта регистрируется в России… — короче с ebay не предлагать)
*Самая дешевая цена, которую удалось найти на али $24.48 (с бесплатной доставкой в Казахстан)
+
avatar
0
  • ROCSPB
  • 31 августа 2016, 21:59
Наверное это действительно лучшая цена
+
avatar
0
  • SNB
  • 30 августа 2016, 23:05
За обзор спасибо! Люблю обзоры с конкретными примерами применения. Сразу понятен уровень сложности применения устройства и возможные модификации под свои задачи.
+
avatar
+1
  • tklim
  • 31 августа 2016, 08:44
1. В отличие от первой версии питается от 5В и не требует никаких dc-dc преобразователей, которые, между прочим тоже стоят денег — все выполнено непосредственно на плате. А как результат меньше устройств, меньше проводов, меньше соединений.
И гораздо меньше надежность. GSM-модули обычно довольно капризны к качеству питания. Схема на двух диодах в данном случае — это дичайший «колхозинг». БП тут надо на честные 2-3А, по-хорошему.
Вторая проблема — модуль очень легко может зависнуть. Особенно если у вас там близко мощный электромагнит коммутируется. Еще плохо, что у всех этих модулей RESET не выведен наружу. Так что я бы рекомендовал, все же, использовать внешний DC-DC со входом SHUTDOWN, через который можно было его отключать при помощи ардуины.
+
avatar
+1
Reset там как раз выведен, по крайней мере вывод с соответствующей маркировкой есть. Питание от ардуины стабильные 5В до 1А, без скачков, просадок, я пока игрался питал от usb 3.0 ноутбука, около 50-80 смс пришли без осечек, надежность меня устраивает. Так что для данной задачи все подходит и стабильно пашет, а вот от магнита модем действительно лучше держать на расстоянии.
+
avatar
+1
  • tklim
  • 31 августа 2016, 09:43
Точно, RESET с перепутал с POWER_KEY. Он полезнее ресета, но все равно наиболее действенное решение — выкл-вкл питания модуля.

1А — это маловато. Видимо, у вас GSM1800 и хороший уровень сигнала в доме.

Производитель все же настаивает на 2А:
4.1. Power Supply
The power supply range of SIM800 is from 3.4V to 4.4V. Recommended voltage is 4.0V. The transmitting burst
will cause voltage drop and the power supply must be able to provide sufficient current up to 2A.
+
avatar
0
Тогда нужно нормальный ас-dс искать, хорошая 2А телефонная зарядка для рассмотренного модема и ардуино подойдет идеально. Но опять таки замечу, для стабильной работы с смс на практике оказалось достаточно питания от usb 3.0, если правильно помню это 1А (usb2.0 где-то 0,5А), однако если есть такая рекомендация лучше перебдеть.
+
avatar
0
Вполне возможно, что 2А — это без конденсатора на входе. Мне не удалось зарегистрировать ток больше 200мА при передаче данных и минимуме сигнала (антенна отпаяна)
+
avatar
0
  • areht
  • 28 июля 2018, 12:10
Только по факту, «питание usb 3.0» припаяно к общей шине БП и стянуть можно ампер 10, а то и 20. Ну, пока разъем usb 3.0 не сгорит или предохранитель какой не сработает.
+
avatar
0
  • smith777
  • 31 августа 2016, 18:02
Возможно мой вопрос будет дилетантским, на какой минимальный объем трафика можно рассчитывать при отправке малого пакета данных (50 символов), без подтверждения о получении.
Наверное что то написал и сам не понял, что… (натыкался на информацию, что по gprs если отправлять неким образом, без подтверждения о получении расход трафика значительно уменьшается)
Вся задача заключается в следующем, есть оператор с бесплатным трафиком 2Мб\сутки и округлением тарификации 1Кб. Хочу наладить удаленный мониторинг.
Заранее спасибо.
+
avatar
+1
  • tklim
  • 31 августа 2016, 18:25
Size of TCP Header (without any options) — 20 Bytes
So total size of empty TCP datagram — 24 + 20 + 20 = 64 bytes

Size of UDP header — 8 bytes
So total size of empty UDP datagram — 24 + 20 + 8 = 52 bytes

Если без подтверждения — то UDP
т.е. пакет будет 102 байта. Насчет округления — это касается вопросов выключения/включения gprs. Если не отключать — то так и будет. Если каждый раз включать интеренет, отправлять 50байт и отключать — будет 1кб на посылку
+
avatar
0
  • smith777
  • 31 августа 2016, 18:48
Огромное Вам спасибо!
Искал именно этот ответ, т.е. получается если вкл\выкл интернет, то особо экономить на методе UDP не стоит? И 2 Мб грубо должно хватить на 2048 пакетов?
P\S как мне не хватает таких людей как Вы в Казахстане, с кем можно было бы просто сесть и в захватывающей беседе поговорить о идеях…
+
avatar
+1
  • tklim
  • 31 августа 2016, 19:29
Грубо говоря, да. Но сотовый оператор может «округлять» ооочень по-своему. Так что лучше сначала проверьте «на столе»
+
avatar
0
  • ROCSPB
  • 31 августа 2016, 21:19
Выше уже ответили, но все-таки встряну- убедитесь, что оператор действительно округляет до одного килобайта. В России некоторые операторы с размахом округляют почасовую передачу до 100 — 150, а то и 250 килобайт. И ваши бесплатные 2 мега трафика в подобной ситуации улетят за 8 посылок. А дальше — платить.
+
avatar
0
А этот модем улавливает входящий звонок и отбой или возможна работа только с sms?
Если да, то как это выглядит в терминале? Другими словами есть в библиотеке функции работы со звонками?
Может ли определять номер звонящего?
+
avatar
0
  • andell
  • 10 сентября 2016, 12:55
Хороший обзор. Спасибо. интересует возможность согласования подобных устройств с USB. Насколько это реально? Может есть уже готовые платы с USB поддержкой?
+
avatar
0
Попробовал повторить, только в комбинации с Nano — какая-то странная хрень творится — платка смс отправляет, а принимать не хочет. Все остальное 1 в 1 как в посте. Пробовал и с отдельным питанием, и от USB — одинаково. В чем может быть проблема?
+
avatar
0
Скорее всего все рабочее, замени провода от модема к плате и проверь правильность сборки. Код в обзоре рабочий, в примере библиотеки тоже. Питание от платы вполне достаточно токи там маленькие
+
avatar
0
Ок, спасибо за ответ, буду пробовать.
+
avatar
0
Скажи хоть потом заработало или нет
+
avatar
0
Вобщем, какой-то бред происходит. Платка отсылает смс и видит входящие звонки, при них кстати жалуется на недостаток питания, если подключена к +5В Ардуины. Отсылаешь смс на неё — тишина. Достал сим-карту из платки, вставил в другой телефон — тишина. (Подождал пару минут). Отправляю на неё еще 1 смс — приходят все отправленные на неё штук 5 разом. Вставляю симку в плату — снова ничего не принимает. Переставляю в телефон — приходят все сразу только если еще одну отправить. Поменял сим-карту (правда, тот же оператор, яйцовый) — та же фигня. ВТФ? Плата бракованная? Почему тогда в телефоне сразу смс-ки не приходят?
Ах да, пробовал уже и gsm.h родной, и AT-командами через softwareserial — один хрен.
+
avatar
0
В Москве? Если да, то могу протестить твою симку на своём модеме и наоборотмою мою сим на твоём. Зразу все ясно будет на кого грешить
+
avatar
0
Спасибо за участие) Но симки в порядке — пробовал разные. Походу какой-то косяк с инициализацией платы. Нашел вот такой код — с ним стало принимать смс
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(10, 11);
void setup()
{
    Serial.begin (9600);
    gprsSerial.begin(9600);
    // Настраиваем приём сообщений с других устройств
    // Между командами даём время на их обработку
    gprsSerial.print("AT+CMGF=1\r");
    delay(300);
    gprsSerial.print("AT+IFC=1, 1\r");
    delay(300);
    gprsSerial.print("AT+CPBS=\"SM\"\r");
    delay(300);
    gprsSerial.print("AT+CNMI=1,2,2,1,0\r");
    delay(500);
}
String currStr = "";
// Переменная принимает значение True, если текущая строка является сообщением
boolean isStringMessage = false;
void loop()
{
    if (!gprsSerial.available())
        return;
    char currSymb = gprsSerial.read();   
    if ('\r' == currSymb) {
        if (isStringMessage) {
            //если текущая строка - SMS-сообщение,
            //отреагируем на него соответствующим образом
            if (!currStr.compareTo("Lera")) {
                Serial.println ("Hello Lera");
            } else if (!currStr.compareTo("Jula")) {
                Serial.println ("Hello Jula");
            }
            isStringMessage = false;
        } else {
            if (currStr.startsWith("+CMT")) {
                //если текущая строка начинается с "+CMT",
                //то следующая строка является сообщением
                isStringMessage = true;
            }
        }
        currStr = "";
    } else if ('\n' != currSymb) {
        currStr += String(currSymb);
    }
}

Похорошему, надо читать мануал по АТ командам и проверять библиотеки. Возможно, конкретная версия модуля слегка отличается (сравнил с фотками в обзоре, компоновка чуть другая, пишет что версия 14.8). Но если честно, уже жаль потраченного времени на этот кусок г… Проще и дешевле купить готовое устройство.
+
avatar
0
Всем привет. Поделюсь своим опытом общения с Sim800L. Купил себе не такой, как на фото, а красный обрезок с Али экспресс. Пока баловался с отсылкой всяких смс себе на телефон по условиям работы всяких датчиков, вроде все шло без сбоев. Когда решил научить читать входящие смски, вот тут и выяснились подводные камни. Во первых, свой модем запитал от dc dc преобразователя, как по инструкции. Плюс для верности опытов купил пару обрезков sim800l. Так вот, когда в Setup прописаны команды (например установить скорость соединения, установить текстовый режим смс, установить программный контроль передаяи данных, да и еще пару) на которые должны придти ответы ОК, у меня что один модуль, что второй выполняют пару строк а потом просто то ли зависают, то ли отказыватся выполнять команды. В итоге в мониторе такая картина:
AT+CMGF=1
OK
AT+IFC=1, 1
OK
AT+CB

На этом процесс установочных комманд закончен. В чем кроется ответ ума не приложу. Менял преобразователь не помогло. Может кто сталкивался?
+
avatar
0
Поправка:
VDD — если управляющие сигналы 3.3 вольта — подключается к 3.3V, если 5 вольт — подключается к 5V питания.
Отличный модуль, подключен и питается непосредственно от UNO, принимает, отправляет, звонит без проблем. Ваши скетчи очень помогли, спасибо!
А теперь вопрос:
у этой модификации SIM800L совершенно точно есть голосовые функции — телефон и микрофон: но как к ним получить доступ? Куда и как подключаться? Может быть, Вы и/или Ваши товарищи смогут подсказать — было бы здорово…
+
avatar
0
прошло пару лет, но статья огонь! все работает. очень спасибо :)
если у кого светодиода под рукой не нашлось то можно светить с платы:

//pinMode(13, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);

// digitalWrite(13, HIGH);
digitalWrite(LED_BUILTIN, HIGH);

//digitalWrite(13, LOW);
digitalWrite(LED_BUILTIN, LOW);
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.