Странно работает SIM800L

nadno
Offline
Зарегистрирован: 25.11.2016

Доброго времени суток,являюся новичков в среде ардуино.Пытаюся отправлять данные с температурного датчика посредством смс.Скеич взял из этои темы- http://arduino.ru/forum/programmirovanie/neoway-590-kak-peredat-temperaturu Все вроде получается но есть загвоздка скеич отказывается работать без подключения к компу,то есть автономно AT команды не работают?Заранее спасибо,железо SIM800L и Arduino UNO R3 MEGA328P.

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

нужно показать свой скетч, и рассказать про подключение и особенно питание

nadno
Offline
Зарегистрирован: 25.11.2016

использовал вот этот-

#include <SoftwareSerial.h>
#include "stDHT.h"
#define DHTPIN 6    // данные с датчика температуры
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);
SoftwareSerial mySerial(2, 3); // RX, TX
int ch = 0;
char a;
char w;
int t;
int led = 13;
int pit = 7;
String val = "";
 
void setup()
{
  //int h = dht.readHumidity(6);
  int t = dht.readTemperature(6);
 // pinMode(led, OUTPUT);
  pinMode(pit, OUTPUT); //пин 7 работает на выход для питания датчика DHT
  digitalWrite(led, LOW);
  digitalWrite(pit, HIGH); //включаем питание на DHT11
  Serial.begin(115200);  //скорость порта
  Serial.println("GSM tester v1.0");
  delay(500);
  mySerial.begin(115200);//скорость порта общение с модулем GSM
  delay(500);
  mySerial.println("AT+CLIP=1");  //включаем АОН
  delay(500);
  mySerial.println("AT+CMGF=1");  //режим кодировки СМС - обычный (для англ.)
  delay(500);
  mySerial.println("AT+CSCS=\"GSM\"");  //режим кодировки текста
  delay(100);
}
 
void loop()
{
  if (mySerial.available()) {  //если GSM модуль что-то послал нам, то
    while (mySerial.available()) {  //сохраняем входную строку в переменную val
      ch = mySerial.read();
      val += char(ch);
      a += char(w);
      delay(10);
    }
    if (val.indexOf("RING") > -1) {  //если звонок обнаружен
      if (val.indexOf("71234567890") > -1) {  //если номер совпадает
        Serial.println("--- MASTER RING DETECTED ---");
        mySerial.println("ATH0");  //разрываем связь
        //digitalWrite(led, HIGH);  //включаем светодиод на 3 сек
        delay(3000);
        // String a = atoi (t); // попытка преобразовать
        //sms("TEMP" t, "+71234567890"); // 1 попытка отправить
        //sms(String("TEMP: " t , String("+71234567890"));  //отправляем СМС с температурой мне 2 попытка
 
        //digitalWrite(led, LOW);  //выключаем светодиод 
        sms(String("TEMP"), String("+71234567890"), String(t)); // 3 попытка
 
      }
    } else
      Serial.println(val);  //печатаем в монитор порта пришедшую строку
    val = "";
  }
  if (Serial.available()) {  //если в мониторе порта ввели что-то
    while (Serial.available()) {  //сохраняем строку в переменную val
      ch = Serial.read();
      val += char(ch);
      delay(10);
    }
    //mySerial.println(val);  //передача всех команд, набранных в мониторе порта в GSM модуль
    if (val.indexOf("sendsms") > -1) {  //если увидели команду отправки СМС
      sms(String("hello world"), String("+71234567890"));  //отправляем СМС на номер +71234567890
    }
    val = "";  //очищаем
  }
}
 
void sms(String text, String phone)  //процедура отправки СМС
{
  Serial.println("SMS send started");
  mySerial.println("AT+CMGS=\"" + phone + "\"");
  delay(500);
  mySerial.print(text);
  delay(500);
  mySerial.print((char)26);
  delay(500);
  Serial.println("SMS send complete");
  delay(2000);
}
 
питание на ардуино 5.4вольт на sim800l 4.3 где то,питаеться отдельно все от блок питания,мерил напряжение под нагрузкой,непросаживаеться меньше 4.3
Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

ардуинка какая? если УНО то для нее мало 5.4в

для встаки кода используйте

Вставка-редактирование кода. в таком виде как у вас не удобно смотреть

 

 в скетче криминала не увидил

nadno
Offline
Зарегистрирован: 25.11.2016

Спасибо,попробую сегодня запитать от 9вольтовои батареи

 

nadno
Offline
Зарегистрирован: 25.11.2016

Собрал блок питания на 9вольт,теперь стабильно показывает мультик 4.9вольт на выводах 5в ардуино,раньше при старом блок питании 5.4 было 3.9 где то.Но всеравно плата нехочет работать отдельно от компа,как только перезагружаешь ардуино плата молчит,как будто проблема с памятью,но заливал другие скеитчи все отлично работает.пробывал передавать смс с помощью библиотек то же все передает.Еще заметил что если прошить ардуино и выткнуть шнур usb то все прекрасно работает,только перегрузил все уходит в отказ,гудки идут от звонка а at команды не выполняються.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Какое напряжение выдает БП при нагрузке 2А? (желательно посмотреть осциллографом по нижней границе пульсаций)

nadno
Offline
Зарегистрирован: 25.11.2016

Я думаю питание все таки тут непричем,плата работает когда провод отцеплен от компа,пытался грузить током 1.2А ,питание gsm меньше 4.1 не было а сама плата так и держала 4.9 вольта.

nadno
Offline
Зарегистрирован: 25.11.2016

приэтом скеитч на основе библиотек 900 работаеет при этих параметрах

 

Baks
Baks аватар
Offline
Зарегистрирован: 11.01.2016

от ардуинки питать нельза, питание должно быть раздельным и по даташиту на модуль должно подаваться 2А, а ардуино отдельно питается, модуль при поиске сети жрет много, поэтому при перезагрузке у вас встает все колом, и да как запитываете ардуинку?

nadno
Offline
Зарегистрирован: 25.11.2016

питание раздельное,два разных блок питания,просадки по напряжению нет,запитываю ардуино через штекерное соединение в плате.колом ничего не встает,дозвон делаешь гудки идут,что то с портами,перезагружаешь gsm модуль и скеитч перестает работать,но только цепляешь ардуино к компу все начинает работать.на компе среда ардуина выключена.