Навскидку, можно попробовать прикрутить такого малыша, обмениваются с основным МК, скажем, 1 раз в минуту сообщениями. Если сообщение не пришло, малыш кратковременно щелкает релюшкой.
Блин.. устройство на устройстве и устройством погоняет.. А если малыш зависнет? Не.. не вариант. Мне кажется SIM900 должна такие вещи уметь..
Думаю, не прокатит. Предположим, SIM900 имеет такую команду. Но вот вопрос - кто будет извлекать эту команду из СМС? Кто будет проверять , что СМС пришло от нужного номера? Как SIM900 догадается, на какое время включать пин?
Это я все к тому. что кроме просто возможности включения пина, в модеме должен быть некий "язык программирования" со своими командами, почти как в ардуине. Не думаю, что он там есть. Но проверить-то просто - найдите подробный даташит по SIM900 и почитайте. Если такие команды есть - они будут в даташите.
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(7,8);int btnPin =12;
boolean prevBtn = LOW;void setup(){
gprsSerial.begin(19200);
delay(500);}void loop(){
boolean currBtn = digitalRead(btnPin);if(prevBtn != currBtn && currBtn == HIGH){//сразу после нажатия кнопки отправляем "тревожное" сообщение по заданному номеру
sendTextMessage();}
prevBtn = currBtn;}/*
* Функция отправки SMS-сообщения
*/void sendTextMessage(){// Устанавливает текстовый режим для SMS-сообщений
gprsSerial.print("AT+CMGF=1\r");
delay(100);// даём время на усваивание команды// Устанавливаем адресата: телефонный номер в международном формате
gprsSerial.println("AT + CMGS = \"+79031034423\"");
delay(100);// Пишем текст сообщения
gprsSerial.println("ALARM!");
delay(100);// Отправляем Ctrl+Z, обозначая, что сообщение готово
gprsSerial.println((char)26);}
А вот Управление светодиодами с помощью SMS
скетч
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(7,8);//для зелёного светодиода будем использовать второй цифровой вход,//а для жёлтого - третийint greenPin =2;int yellowPin =3;void setup(){
gprsSerial.begin(19200);
pinMode(greenPin, OUTPUT);
pinMode(yellowPin, OUTPUT);// Настраиваем приём сообщений с других устройств// Между командами даём время на их обработку
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("Green on")){
digitalWrite(greenPin, HIGH);}elseif(!currStr.compareTo("Green off")){
digitalWrite(greenPin, LOW);}elseif(!currStr.compareTo("Yellow on")){
digitalWrite(yellowPin, HIGH);}elseif(!currStr.compareTo("Yellow off")){
digitalWrite(yellowPin, LOW);}
isStringMessage =false;}else{if(currStr.startsWith("+CMT")){//если текущая строка начинается с "+CMT",//то следующая строка является сообщением
isStringMessage =true;}}
currStr ="";}elseif('\n'!= currSymb){
currStr += String(currSymb);}}
нет питания на 2м и 3м пине при отправке смс с текстом "Green on" или "Yellow on"
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(7, 8);
//для зелёного светодиода будем использовать второй цифровой вход,
//а для жёлтого - третий
int greenPin = 2;
int yellowPin = 3;
void setup()
{
gprsSerial.begin(19200);
pinMode(greenPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
// Настраиваем приём сообщений с других устройств
// Между командами даём время на их обработку
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("Green on")) {
digitalWrite(greenPin, HIGH);
} else if (!currStr.compareTo("Green off")) {
digitalWrite(greenPin, LOW);
} else if (!currStr.compareTo("Yellow on")) {
digitalWrite(yellowPin, HIGH);
} else if (!currStr.compareTo("Yellow off")) {
digitalWrite(yellowPin, LOW);
}
isStringMessage = false;
} else {
if (currStr.startsWith("+CMT")) {
//если текущая строка начинается с "+CMT",
//то следующая строка является сообщением
isStringMessage = true;
}
}
currStr = "";
} else if ('\n' != currSymb) {
currStr += String(currSymb);
}
}
Ребята я просто заливаю этот скетч и посылаю смс "Green on" или "Yellow on" а вот на 3м и 2м пине не получаю питания,не пойму что делаю не так. Замер произвожу мультиметром соответственно на GND и пинах 2 и 3
Помогите пожалуйста вот с этим скетчам,хочу чтобы по звонку включать и выключать реле. У меня уно.На какие мне пины содить реле?
Скорость порта поменяю на 19200,номер как то тут не так забит вроде?
//#include <SoftwareSerial.h> // если программный
//SoftwareSerial gsm(7, 8); // RX, TX
//#define gsm Serial // если аппаратный в UNO
#define gsm Serial1 // если аппаратный в леонардо
#define LED 13
#define TELMODE "70001112233" // !! номер с которого принимаем команду
#define relay A2 // !! выход на реле
#define pinBOOT 9 // нога BOOT или K на модеме M590, на SIM900 это 9
/////////////////////////
void setup() {
delay(1000); //// !! чтобы нечего не повисало при включении
gsm.begin(9600); /// незабываем указать скорость работы UART модема
//Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(pinBOOT, OUTPUT); /// нога BOOT на модеме
pinMode(relay, OUTPUT); /// нога для реле
delay(1000);
digitalWrite(LED, HIGH); // включаем лед
///// включаем модем,
gsm.println("AT"); // смотрим есть ли ответ от модема
delay(100);
if (!gsm.find("OK")){ // если нет, дергаем ногу включения
digitalWrite(pinBOOT, HIGH);
delay(1000);
digitalWrite(pinBOOT, LOW);
}
// нужно дождатся включения модема и соединения с сетью
delay(2000);
gsm.println("ATE0"); // выключаем эхо
while(1){ // ждем подключение модема к сети
gsm.println("AT+COPS?");
if (gsm.find("+COPS: 0")) break;
digitalWrite(LED, LOW); // блымаем светодиодом
delay(50);
digitalWrite(LED, HIGH);
delay(500);
}
//Serial.println("Modem OK");
digitalWrite(LED, LOW); // блымаем светодиодом
delay(1500);
digitalWrite(LED, HIGH);
delay(250);
digitalWrite(LED, LOW);
}
void loop() {
if(gsm.find("RING")){ // если нашли RING
while(1){ // в цикле
if (gsm.find(TELMODE)){ // ищим номер телефона, если нашли
digitalWrite(relay, !digitalRead(relay)); // переключаем реле
//Serial.print("relay:");
//Serial.println(digitalRead(relay));
break; // и выходим
}
else{ // иначе
gsm.println("AT+CPAS"); // спрашиваем состояние модема
delay(50);
if (gsm.find("+CPAS: 0")) break; // и если он в "готовности", выходим из цикла
// если звонок в процессе, возвращает +CPAS: 3
gsm.println("AT+CLCC"); // даем команду для АОН, нужно для SIM900
// и крутимся дальше
}
}
gsm.println("ATH0"); // сбрасываем вызов
digitalWrite(LED, LOW); // сигнализируем об этом
delay(500);
digitalWrite(LED, HIGH);
delay(250);
digitalWrite(LED, LOW);
}
}
Не могу прикрутить к этому скетчу что бы включить модуль программно! выдаёт ошибку
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(7, 8);
//для зелёного светодиода будем использовать второй цифровой вход,
//а для жёлтого - третий
int nasos1Pin = 2;
int nasos2Pin = 3;
void setup()
{
gprsSerial.begin(19200);
pinMode(nasos1Pin, OUTPUT);
pinMode(nasos2Pin, OUTPUT);
// Настраиваем приём сообщений с других устройств
// Между командами даём время на их обработку
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("Nasos1 on")) {
digitalWrite(nasos1Pin, HIGH);
} else if (!currStr.compareTo("Nasos1 off")) {
digitalWrite(nasos1Pin, LOW);
} else if (!currStr.compareTo("Nasos2 on")) {
digitalWrite(nasos2Pin, HIGH);
} else if (!currStr.compareTo("Nasos2 off")) {
digitalWrite(nasos2Pin, LOW);
}
isStringMessage = false;
} else {
if (currStr.startsWith("+CMT")) {
//если текущая строка начинается с "+CMT",
//то следующая строка является сообщением
isStringMessage = true;
}
}
currStr = "";
} else if ('\n' != currSymb) {
currStr += String(currSymb);
}
}
Прикрутить надо вот это
void setup()
{
//Включаем GPRS Shield, эмулируя нажатие кнопки POWER
pinMode(9, OUTPUT);
digitalWrite(9, HIGH); // Подаем High на пин 9
delay(3000); // на 3 секунды
digitalWrite(9, LOW); // и отпускаем в Low.
delay(5000); // Ждём 5 секунд для старта шилда
}
void loop()
{
//Пока ничего больше не делаем
}
ОШИБКА ВОТ
C:\Users\User\Downloads\sketch_cmc_works\sketch_cmc_works.ino: In function 'void setup()':
sketch_cmc_works:65: error: redefinition of 'void setup()'
void setup()
^
C:\Users\User\Downloads\sketch_cmc_works\sketch_cmc_works.ino:10:6: note: 'void setup()' previously defined here
void setup()
^
C:\Users\User\Downloads\sketch_cmc_works\sketch_cmc_works.ino: In function 'void loop()':
sketch_cmc_works:74: error: redefinition of 'void loop()'
void loop()
^
C:\Users\User\Downloads\sketch_cmc_works\sketch_cmc_works.ino:32:6: note: 'void loop()' previously defined here
Не могу прикрутить к этому скетчу что бы включить модуль программно! выдаёт ошибку
#include <SoftwareSerial.h>
SoftwareSerial gprsSerial(7, 8);
//для зелёного светодиода будем использовать второй цифровой вход,
//а для жёлтого - третий
int nasos1Pin = 2;
int nasos2Pin = 3;
void setup()
{
gprsSerial.begin(19200);
pinMode(nasos1Pin, OUTPUT);
pinMode(nasos2Pin, OUTPUT);
// Настраиваем приём сообщений с других устройств
// Между командами даём время на их обработку
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("Nasos1 on")) {
digitalWrite(nasos1Pin, HIGH);
} else if (!currStr.compareTo("Nasos1 off")) {
digitalWrite(nasos1Pin, LOW);
} else if (!currStr.compareTo("Nasos2 on")) {
digitalWrite(nasos2Pin, HIGH);
} else if (!currStr.compareTo("Nasos2 off")) {
digitalWrite(nasos2Pin, LOW);
}
isStringMessage = false;
} else {
if (currStr.startsWith("+CMT")) {
//если текущая строка начинается с "+CMT",
//то следующая строка является сообщением
isStringMessage = true;
}
}
currStr = "";
} else if ('\n' != currSymb) {
currStr += String(currSymb);
}
}
Прикрутить надо вот это
void setup()
{
//Включаем GPRS Shield, эмулируя нажатие кнопки POWER
pinMode(9, OUTPUT);
digitalWrite(9, HIGH); // Подаем High на пин 9
delay(3000); // на 3 секунды
digitalWrite(9, LOW); // и отпускаем в Low.
delay(5000); // Ждём 5 секунд для старта шилда
}
void loop()
{
//Пока ничего больше не делаем
}
ОШИБКА ВОТ
C:\Users\User\Downloads\sketch_cmc_works\sketch_cmc_works.ino: In function 'void setup()':
sketch_cmc_works:65: error: redefinition of 'void setup()'
void setup()
^
C:\Users\User\Downloads\sketch_cmc_works\sketch_cmc_works.ino:10:6: note: 'void setup()' previously defined here
void setup()
^
C:\Users\User\Downloads\sketch_cmc_works\sketch_cmc_works.ino: In function 'void loop()':
sketch_cmc_works:74: error: redefinition of 'void loop()'
void loop()
^
C:\Users\User\Downloads\sketch_cmc_works\sketch_cmc_works.ino:32:6: note: 'void loop()' previously defined here
Да бог с ним с этим пином. Реакция не меняется если я убираю совсем управление 9 пином и руками нажимаю кнопку. Сообщение все-равно не шлется. Мне кажется проблема в отправке команды или в самом шилде. На всех видео он после включения и нажатия на кнопку должен включать два светодиода Status и NetLight. Status должен оставаться светящимся. NetLight должен подмаргивать время от времени. У меня же во всех ситуациях оба светодиода гаснут спустя примерно 5 секунд. Из этого я делаю вывод что плата или не смогла прочитать симкарту или не смогла с ее помощью войти в сеть. Можно предположить что симка не читаемая. Я перепробовал новых симок штук 5 уже. У всех работников на конторе брал попробовать. Только на старой забытой симке с включенным пинкодом ситуация была иная. Но пина никто уже не помнит. На всех остальных симках с выключенным запросом оба светодиода гасли через 5 секунд.
Уменя такая фигня, буду менять его. Негорит STATUS и с резистором и без и с перемычкой. На комнды не отвечает, как тока не подключал.
Как и все купил этот GSM модуль, оч. долго ковырялся, советы были разные как включать поять..как у меня включилось раскажу:
этот скетч я не придумывал а взял из спицификации. У меня небыл запаян резистор рядом с "С6" мелко не вижу, кто то советовал что мал замкни отверткой пробовал не работало. Нашел дома рещистор на 5.6 кОм МЛТ 0,125 Вт просто его приставил, запустил скетч и он включился!
Схема соеденения такая:
ARDUINO GND -->GSM (желтый J14) ножка по счету 5 от J20 перемычки желтой. (ЭТО ОБЯЗАТЕЛЬНО!!!)
ARDUINO ~9 -->GSM 9 (красный разьем с обратной стороны написано).
void setup()
{
SIM900.begin(19200);
Serial.begin(19200);
powerUp();
}
// Следующий код включения питания подпрограмма для Arduino при
// использовании программного обеспечения Тригера:
void powerUp()
{
pinMode(9, OUTPUT);
digitalWrite(9,LOW);
delay(1000);
digitalWrite(9,HIGH);
delay(2000);
digitalWrite(9,LOW);
delay(3000);
}
void loop()
{
}
// библиотека для работы с GPRS устройством
#include <GPRSk_Shield_Arduino.h>
#include <SoftwareSerial.h>
// длина сообщения
#define MESSAGE_LENGTH 160
// создаём объект mySerial и передаём номера управляющих пинов RX и TX
SoftwareSerial mySerial(6, 7);
// номер сообщения в памяти сим-карты
int messageIndex = 0;
// текст сообщения
char message[MESSAGE_LENGTH];
// номер, с которого пришло сообщение
char phone[16];
// дата отправки сообщения
char datetime[24];
// создаём объект класса GPRS и передаём в него объект mySerial
GPRSk gprs(mySerial);
void setup()
{
// открываем последовательный порт для мониторинга действий в программе
Serial.begin(9600);
// открываем Serial-соединение с GPRS Shield
mySerial.begin(9600);
// ждём пока не откроется монитор последовательного порта
// для того, чтобы отследить все события в программе
while (!Serial) {
}
Serial.print("Serial init OK\r\n");
// включаем GPRS-шилд
gprs.powerOn();
// проверяем, есть ли связь с GPRS-устройством
while (!gprs.init()) {
// если связи нет, ждём 1 секунду
// и выводим сообщение об ошибке;
// процесс повторяется в цикле,
// пока не появится ответ от GPRS-устройства
delay(1000);
Serial.print("GPRS Init error\r\n");
}
// выводим сообщение об удачной инициализации GPRS Shield
Serial.println("GPRS init success");
Serial.println("Please send SMS message to me!");
}
void loop()
{
// если пришло новое сообщение
if (gprs.ifSMSNow()) {
// читаем его
gprs.readSMS(message, phone, datetime);
// выводим номер, с которого пришло смс
Serial.print("From number: ");
Serial.println(phone);
// выводим дату, когда пришло смс
Serial.print("Datetime: ");
Serial.println(datetime);
// выводим текст сообщения
Serial.print("Recieved Message: ");
Serial.println(message);
}
}
/**
Вывод в монитор:
Serial init OK
GPRS init success
Please send SMS message to me!
From number: +79007654321
Datetime: 17/05/07,21:38:00+12
Recieved Message: Hello
*/
/** read SMS, phone and date if getting a SMS message. It changes SMS status to READ
* @param messageIndex SIM position to read
* @param message buffer used to get SMS message
* @param length length of message buffer
* @param phone buffer used to get SMS's sender phone number
* @param datetime buffer used to get SMS's send datetime
* @returns
* true on success
* false on error
*/
void readSMS(char *message, char *phone, char *datetime);
/** read SMS if getting a SMS message
* @param buffer buffer that get from GPRSk module(when getting a SMS, GPRSk module will return a buffer array)
* @param message buffer used to get SMS message
* @param check whether to check phone number(we may only want to read SMS from specified phone number)
* @returns
* true on success
* false on error
*/
bool readSMS(int messageIndex, char *message, int length);
/** delete SMS message on SIM card
* @param index the index number which SMS message will be delete
* @returns
* true on success
* false on error
*/
void readSMS();
bool deleteSMS(int index);
/** call someone
* @param number the phone number which you want to call
* @returns
* true on success
* false on error
*/
Итак, есть еще мысли на эту тему? Может ли шилд управлять своими gpio посредством смс?
https://ru.aliexpress.com/item/Digispark-kickstarter-Micro-development-board-ATTINY85-module-for-Arduino-usb/32584975067.html
Навскидку, можно попробовать прикрутить такого малыша, обмениваются с основным МК, скажем, 1 раз в минуту сообщениями. Если сообщение не пришло, малыш кратковременно щелкает релюшкой.
Блин.. устройство на устройстве и устройством погоняет..
А если малыш зависнет? Не.. не вариант. Мне кажется SIM900 должна такие вещи уметь..
Думаю, не прокатит. Предположим, SIM900 имеет такую команду. Но вот вопрос - кто будет извлекать эту команду из СМС? Кто будет проверять , что СМС пришло от нужного номера? Как SIM900 догадается, на какое время включать пин?
Это я все к тому. что кроме просто возможности включения пина, в модеме должен быть некий "язык программирования" со своими командами, почти как в ардуине. Не думаю, что он там есть. Но проверить-то просто - найдите подробный даташит по SIM900 и почитайте. Если такие команды есть - они будут в даташите.
Я уж тоже подумал про даташит. Язык в модуле есть - АТ команды же он обрабатывает.
YaSerg
Скинь пожалуйста свой проект.
Что именно, сфоткать как подключено?
Да,да сфоткать и распиновку что бы видать да скетч нужен,буду благодарен очень тебе!
Подскажите что делаю не так?
Отправка SMS при нажатии кнопки всё робит
Скетч
А вот Управление светодиодами с помощью SMS
скетч
нет питания на 2м и 3м пине при отправке смс с текстом "Green on" или "Yellow on"
Подскажите что делаю не так?
в первую - очередь - неправильно выкладываете код на форуме
Ну это понятно ,а вот по делу помочь ты сможешь?
А Вы сначала "по делу" код разместите.
Как тут сослаться н строку с определенным номером?
Ребята я просто заливаю этот скетч и посылаю смс "Green on" или "Yellow on" а вот на 3м и 2м пине не получаю питания,не пойму что делаю не так. Замер произвожу мультиметром соответственно на GND и пинах 2 и 3
СМС без кавычек посылаешь?
Да и так и без них,головная боль. короче тупая голова ногам покоя не даёт
Поставьте контрольную печать, чтобы проверить, что реально приходит в gprsSerial, и приходит ли вообще.
andriano
Спасибо за совет!
Не знаю что было но факт что всё заработало!!!!
Помогите пожалуйста вот с этим скетчам,хочу чтобы по звонку включать и выключать реле. У меня уно.На какие мне пины содить реле?
Скорость порта поменяю на 19200,номер как то тут не так забит вроде?
Не могу прикрутить к этому скетчу что бы включить модуль программно! выдаёт ошибку
Прикрутить надо вот это
ОШИБКА ВОТ
Не могу прикрутить к этому скетчу что бы включить модуль программно! выдаёт ошибку
Прикрутить надо вот это
ОШИБКА ВОТ
redefinition - переопределение
не нужно в скетч вставлять 2 раза void setup()
Чёт вроде этого получилось,на исправлял хрен знает что,может что то тут лишнее?
НЕ РОБИТ
Проверил,этот РОБИТ!!!
Временами надо отправлять аж по две смс на включение или выключение.
Кто знает в чём причина???
И как прописать в скетче чтобы приходило ответное смс типа "я включила"
И как прописать в скетче чтобы приходило ответное смс типа "я включила"
женится тебе барин надо (с)
Фобия у меня на алименты!
Есть готовый скетч с программным включением,надо дополнить его отчётам по смс вкл и выкл реле.Подскажите кто-нибудь!!!!! Что, куда дополнить.
ВООБЩЕМ ВОТ ОН!
Да бог с ним с этим пином. Реакция не меняется если я убираю совсем управление 9 пином и руками нажимаю кнопку. Сообщение все-равно не шлется. Мне кажется проблема в отправке команды или в самом шилде. На всех видео он после включения и нажатия на кнопку должен включать два светодиода Status и NetLight. Status должен оставаться светящимся. NetLight должен подмаргивать время от времени. У меня же во всех ситуациях оба светодиода гаснут спустя примерно 5 секунд. Из этого я делаю вывод что плата или не смогла прочитать симкарту или не смогла с ее помощью войти в сеть. Можно предположить что симка не читаемая. Я перепробовал новых симок штук 5 уже. У всех работников на конторе брал попробовать. Только на старой забытой симке с включенным пинкодом ситуация была иная. Но пина никто уже не помнит. На всех остальных симках с выключенным запросом оба светодиода гасли через 5 секунд.
Уменя такая фигня, буду менять его. Негорит STATUS и с резистором и без и с перемычкой. На комнды не отвечает, как тока не подключал.
Я вот такой кусочек нашёл.
Но, как я понимаю, без этого резистора netlight вообще бы не загорался.
Или я не верно читаю?
Без этого резистора NETLENGTH горит!. Авот СТАТУС не горит - причину не знаю пока.
спокойно можно питать от отдельного БП, только при подключении модуля все равно земля нужна вместе с TX и RX
Валер я так понял ты тут самый умный помоги соеденить GSM + UNO 4 дня с утра до вечера ковыряюсь.
Комута на заметку (програмное включение).
Как и все купил этот GSM модуль, оч. долго ковырялся, советы были разные как включать поять..как у меня включилось раскажу:
этот скетч я не придумывал а взял из спицификации. У меня небыл запаян резистор рядом с "С6" мелко не вижу, кто то советовал что мал замкни отверткой пробовал не работало. Нашел дома рещистор на 5.6 кОм МЛТ 0,125 Вт просто его приставил, запустил скетч и он включился!
Схема соеденения такая:
ARDUINO GND -->GSM (желтый J14) ножка по счету 5 от J20 перемычки желтой. (ЭТО ОБЯЗАТЕЛЬНО!!!)
ARDUINO ~9 -->GSM 9 (красный разьем с обратной стороны написано).
Соединила 9 пин шилда с 9 пином ардуино нано.
R13 сделала перемычку
Как Вы написали рабтает, это я пробовала. Смысл от gprs.powerOn() какой?
без понятия, надо видеть весь скетч,
или заглянуть в библиотеку которую вы используете
эта строка gprs.powerOn(); использует библиотеку, смотрите в библиотекy, я стараюсь избегать библиотеки :)
Это из файла GPRSk_Shield_Arduino.cpp
слишком большие задержки, измените вместо 3000 -> 2000 и 5000 -> 3000
Спасибо. Включается
А нужно согласовывать уровни сигналов rx tx ардуино и модуля?
если подключаете к D7 и D8 gprs модуля то там уже есть согласование
При подключении к 0 и 1 пину модуля - а команды отвечает, а если к 7 и 8 - молчит
Забыла про перемычки
Подскажите как получить номер смс, чтобы сразу её удалить.
из библиотеки:
А есть рабочие в наших сетях модули, дешевле SIM900? Нужен только приём и отправка смс.
А есть рабочие в наших сетях модули, дешевле SIM900? Нужен только приём и отправка смс.
а сколько SIM900 стоит?
Neoway M590 - от 3х баксов (но большинство в продаже - БУ из каких-то старых железок в разобранном виде)
Athinker A6 - от 7 баксов (есть свои заморочки, в основном с ПО)
797,82 рублей стоит
del
А есть рабочие в наших сетях модули, дешевле SIM900? Нужен только приём и отправка смс.
Sim800L
Он работает от 4В поэтому нужен DC-DC преобразователь
антенна
итого не более 400 р.
Кстати, Sim800l V2.0 уже имеет на борту все согласующие элементы - и по питанию и по интерфейсу.
да, и антенна в комплекте , жаль только DTR не вывели для осущетсвления энергосбережения. А так норм, мне пришёл такой но ещё руки не дошли заценить.
sim800l v2
Может опробуете, отпишитесь?)