#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);
}
};
#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);
}
};
+34 |
2362
130
|
Но у вас на фото не видно маркировки именно этой микросхемки. И с обратной стороны как раз в этом месте кондеров собрано несколько, включая тантал, что тоже похоже на схемы питания.
На A2SHB между GSM-модулем и гребенкой контактов — наверное, согласователь уровней.
А больше там ничего интересного :) Конденсаторы, резисторы, пара диодов да светодиоды.
Так что если маркировку на 6-ногой микре рассмотрите — то будет ясно.
А потребление мультиметром можно померить в режиме измерения тока в разрыв цепи питания модуля.
В общем-то, был неправ. R5 — это «Диодная сборка из пяти защитных диодов» и относится к сим-карте.
А питание устроено на паре диодов последовательно, которые и обеспечивают падение напряжения.
Как-то так…
Очень удобно.
Как-то так, где-то 4-й пункт инструкции:
http://static.mts.ru/uploadmsk/contents/1682/instruction_black_list_for_users_042015.pdf
И не со двора — с садовых участков.
Но в любом случае, зимой там десять с половиной человек из трехсот.
Единственное, что может доконать простую Nokia 3310 — это глубокая заморозка АКБ. Если аппарат будет воткнут в сеть в помещении с плюсовой температурой — проработает год без вмешательства.
m.youtube.com/watch?v=wjv-9t7TO3U
Сейчас не могу это видео сам посмотреть.
Что можно сделать, может команду какую дать, на другого оператора он не может перейти оч дорого получается.
Если же решение «для дома, для семьи» (или для небольшого отдела на работе), то список номеров меняется редко, можно и перепрошивать девайс.
P.S. В flash памяти тоже ничего если readonly и поправляется только прошивкой.
а в том листинге что был представляет (версия ПО данного изделия) никакого интерфейса не предусмотрено. например можно сделать команду add_t xxxxxxxxxxx, добавить в список разрешенных номер, или del_t xxxxxxx. удалить номер. в такой версии можно было бы написать инструкцию, а где там что хранить, решает программист.
Спасибо за обзор! Плюс.
А проще всего его разглядеть при входе в подъезд, если подъезд оборудован домофоном.
на подъезд такое не ставят. Но на офисные двери очень даже)
А если серьезно, то в важных местах (на входной двери, например) я бы использовал замок электромеханический (то есть, считайте, обычный замок с личинкой под ключ, но с электроприводом внутри, который как раз может открыть замок по команде с микроконтроллера). Это, как мне кажется, безопаснее и надежнее электромагнитного замка. И в случае отсутствия электроэнергии замок не теряет своих основных свойств.
Электромагнитные у нас на подъезде народ рывком открывает, увы (да, не перевелись еще богатыри на земле русской… правда непонятно, зачем они силушку на такое расходуют...).
Но все зависит от задачи.
При потере — всё равно новый телефон покупать и симку (номер) восстанавливать, хоть на изготовлении дубликата ключа можно 100р сэкономить.
Три часа ночи, целый час кого-то ищешь с телефоном, а затем ему типа «Слышь мужик, позвони мне домой, чтобы мне дверь открыли!..» )))))
Телефон иногда забываю дома, особенно летом.
А вот ключи не забываю, потому что если даже в кармане не оказалось вязки, то возращаешься домой, чтобы ключом закрыть дверь. И да, у меня на входной двери (калитка) установлен електромеханический. Почему интересует открытие замка телефоном — часто бывает, что руки заняты когда подходишь к двери, а так набрал команду, вышел с машины с пакетами, пнул дверь и готово!..
И если всё же телефон где-то забыли — это лучше чем забыть ключ (с точки зрения открывания двери), т.к. за ключом вам только возвращаться. а с телефоном — всё же есть шанс кого-то попросить позвонить.
Заказал за 4,40$ тут: https://aliexpress.com/item/item/Smallest-SIM800L-GPRS-GSM-Module-MicroSIM-Card-Core-BOard-Quad-band-TTL-Serial-Port/32286088224.html
+ первая версия платки немного устарела, эта намного удобнее для новичков вроде меня, да и стаб на ардуине амперный, этого для смс выше крыши.
> а значит около 10% емкости аккумулятора вы вообще никогда не увидите
Ну, это ужас-ужас, конечно…
«не гонялся бы ты поп за дешевизной»
Как можно реализовать питание моего модуля от Arduino uno?
Питать требуется в «поле» от акб и солнечных батарей.
Отправлять по gprs минимальные пакеты по 1кб вкл/выкл, или уводить в сон для экономии.
https://aliexpress.com/item/item/Smallest-SIM800L-GPRS-GSM-Module-MicroSIM-Card-Core-BOard-Quad-band-TTL-Serial-Port/32284560394.html
(Ebay отпадает, т.к. я из Казахстана а виртуальная QIWI карта регистрируется в России… — короче с ebay не предлагать)
*Самая дешевая цена, которую удалось найти на али $24.48 (с бесплатной доставкой в Казахстан)
Вторая проблема — модуль очень легко может зависнуть. Особенно если у вас там близко мощный электромагнит коммутируется. Еще плохо, что у всех этих модулей RESET не выведен наружу. Так что я бы рекомендовал, все же, использовать внешний DC-DC со входом SHUTDOWN, через который можно было его отключать при помощи ардуины.
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.
Наверное что то написал и сам не понял, что… (натыкался на информацию, что по gprs если отправлять неким образом, без подтверждения о получении расход трафика значительно уменьшается)
Вся задача заключается в следующем, есть оператор с бесплатным трафиком 2Мб\сутки и округлением тарификации 1Кб. Хочу наладить удаленный мониторинг.
Заранее спасибо.
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кб на посылку
Искал именно этот ответ, т.е. получается если вкл\выкл интернет, то особо экономить на методе UDP не стоит? И 2 Мб грубо должно хватить на 2048 пакетов?
P\S как мне не хватает таких людей как Вы в Казахстане, с кем можно было бы просто сесть и в захватывающей беседе поговорить о идеях…
Если да, то как это выглядит в терминале? Другими словами есть в библиотеке функции работы со звонками?
Может ли определять номер звонящего?
Ах да, пробовал уже и gsm.h родной, и AT-командами через softwareserial — один хрен.
Похорошему, надо читать мануал по АТ командам и проверять библиотеки. Возможно, конкретная версия модуля слегка отличается (сравнил с фотками в обзоре, компоновка чуть другая, пишет что версия 14.8). Но если честно, уже жаль потраченного времени на этот кусок г… Проще и дешевле купить готовое устройство.
AT+CMGF=1
OK
AT+IFC=1, 1
OK
AT+CB
На этом процесс установочных комманд закончен. В чем кроется ответ ума не приложу. Менял преобразователь не помогло. Может кто сталкивался?
VDD — если управляющие сигналы 3.3 вольта — подключается к 3.3V, если 5 вольт — подключается к 5V питания.
Отличный модуль, подключен и питается непосредственно от UNO, принимает, отправляет, звонит без проблем. Ваши скетчи очень помогли, спасибо!
А теперь вопрос:
у этой модификации SIM800L совершенно точно есть голосовые функции — телефон и микрофон: но как к ним получить доступ? Куда и как подключаться? Может быть, Вы и/или Ваши товарищи смогут подсказать — было бы здорово…
если у кого светодиода под рукой не нашлось то можно светить с платы:
//pinMode(13, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
// digitalWrite(13, HIGH);
digitalWrite(LED_BUILTIN, HIGH);
//digitalWrite(13, LOW);
digitalWrite(LED_BUILTIN, LOW);
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.