• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

SIM800L не уходит в сон

Vypra

Member
Я пользовался на SIM800L режимом сна AT+CSCKL=2 . Но модуль периодически на секунду искал сеть и жрал 60 мА в эту секунду. Не экономно.
Решил сделать сон через AT+CSCKL=1, на пин DTR подаю высокий уровень с GPIO 16 Node MCU (pinMode(16, OUTPUT); digitalWrite(16, HIGH);)
После модуль как-бы снижает потребление, на AT команды не отвечает, но на него можно позвонить и в покое жрет 17мА.
По даташиту во сне должно быть 1мА.
Как его заставить заснуть?
 

nikolz

Well-known member
Я пользовался на SIM800L режимом сна AT+CSCKL=2 . Но модуль периодически на секунду искал сеть и жрал 60 мА в эту секунду. Не экономно.
Решил сделать сон через AT+CSCKL=1, на пин DTR подаю высокий уровень с GPIO 16 Node MCU (pinMode(16, OUTPUT); digitalWrite(16, HIGH);)
После модуль как-бы снижает потребление, на AT команды не отвечает, но на него можно позвонить и в покое жрет 17мА.
По даташиту во сне должно быть 1мА.
Как его заставить заснуть?
недавно игрался с этим модулем.
Если модуль ищет сеть каждую секунду, то это указывает на слабый источник питания (просадку напряжения)
Режим работы должен быть таким:
светодиод мигает 1 раз в секунду и модуль ищет сеть
Когда найдет то сообщит что готов, sms готов,
После этого модуль будет мигать 1 раз в две секунды и оставаться в ожидании команд.
Если команд не будет то через 5 секунд пойдет спать.
 

Vypra

Member
Собственно схема и тестовый код.
Модуль команды принимает и отвечает.
Что заметил:
1. Если отключить СИМ800, ESP8266 в режиме сна ест у меня 2-3мА. Показывает по разному при нескольких замерах.
2. Если замерить ток только на СИМ800 во сне - 10-17 мА. Хотя должно быть 1мА.
3. Если включить все и замерить потребление всего в режиме сна - 22 мА.
Нестыковочка по потреблению. Такое чувство, что СИМ800 что-то коротит. пин DTR на SIM800 может коротить? Может я не так подключил? Или что-то подгорело уже?


Shema.jpg

//***************************************************************************************************************
String _response = ""; // Переменная для хранения ответа модуля
//***************************************************************************************************************

void setup()
{
pinMode(16, OUTPUT);
digitalWrite(16, LOW);
}

void loop()
{
delay (15000); // время для поиска сети SIM800
sendATCommand("AT+CSCLK=1", true); // режим сна SIM800
sendATCommand("AT&W", true); // запись режима сна SIM800
digitalWrite(16, HIGH); // DTR высокий, SIM800 в сон.
ESP.deepSleep(0); // ESP8266 в сон
}

String sendATCommand(String cmd, bool waiting)
{
Serial.println(cmd); // Пишем команду в монитор порта ПК для себя
delay (300);
Serial.swap(); // Переключаемся на пины SIM800
Serial.flush();
delay (300);
String _resp = ""; // Переменная для хранения результата
Serial.println(cmd); // Даем команду SIM800
if (waiting) // Если необходимо дождаться ответа...
{
_resp = waitResponse(); // ... ждем, когда будет передан ответ
}
else
{
Serial.swap();
Serial.flush();
delay (300);
}
return _resp; // Возвращаем результат.
}

//***************************************************************************************************************
String waitResponse() // Функция ожидания ответа и возврата полученного результата
{
String _resp = ""; // Переменная для хранения результата
unsigned long _timeout = millis() + 10000; // Переменная для отслеживания таймаута (10 секунд)
do
{ delay(0);

if (millis() > _timeout )
{
Serial.swap(); // Переключаемся на монитор порта ПК
Serial.flush();
delay (300);
Serial.println("Timeout..."); // печатаем Timeout... в монитор порта ПК
break;
}

if (Serial.available())
{
_resp = Serial.readString(); // читаем ответ SIM 800
_response = _resp;
Serial.swap(); // Переключаемся на монитор порта ПК
Serial.flush();
delay (300);
Serial.println(_resp); // печатаем ответ SIM 800 в монитор порта ПК
break;
}
}
while (1) ; // Просто событие, которое не наступит
return _resp; // ... возвращаем результат. Пусто, если проблема
}
 

Vypra

Member
Странно себя ведет. Только что потребление всей системы было 5-6 мА во сне. Я обрадовался. Перезагрузил пару раз для закрепления и снова 22 мА. Не пойму что не дает спать.
 

nikolz

Well-known member
Странно себя ведет. Только что потребление всей системы было 5-6 мА во сне. Я обрадовался. Перезагрузил пару раз для закрепления и снова 22 мА. Не пойму что не дает спать.
1)для тестирования лучше подключить к PC
2) попробуйте включить без ESP
3) включите сначала Sim, а потом ESP
------------
режим надо запомнить иначе будет сброшен при выключении
 

nikolz

Well-known member
и еще. NODEMCU много кушает во сне так как включен CH340. Чтобы кушал мало надо его отключать
либо взять ESP-12
 

Vypra

Member
и еще. NODEMCU много кушает во сне так как включен CH340. Чтобы кушал мало надо его отключать
либо взять ESP-12
Отсоединил все и загнал в сон саму Node MCU V3. Да, жрет на CH340 6мА, на СР2102 9мА.
Хорошо, согласен. В будущем сделаю на самой ESP-12.
Это половина от общего потребления.
Еще половина SIM800. Ну никак меньше 10-11 мА не получается.
Делаю режим CSCLK=2, сохраняю. Отсоединяю от Node MCU, перезагружаю. По идее если режим сна записан, нет звонков и команд, он после 5 сек сам в сон уходит. После включения питания запускается, ищет сеть - 40-50мА, а потом 10-11 мА сам SIM800. Сдаюсь.
 

nikolz

Well-known member
Отсоединил все и загнал в сон саму Node MCU V3. Да, жрет на CH340 6мА, на СР2102 9мА.
Хорошо, согласен. В будущем сделаю на самой ESP-12.
Это половина от общего потребления.
Еще половина SIM800. Ну никак меньше 10-11 мА не получается.
Делаю режим CSCLK=2, сохраняю. Отсоединяю от Node MCU, перезагружаю. По идее если режим сна записан, нет звонков и команд, он после 5 сек сам в сон уходит. После включения питания запускается, ищет сеть - 40-50мА, а потом 10-11 мА сам SIM800. Сдаюсь.
В момент соединения SIM800 может потреблять до 2А.
Для решения проблемы лучше сначала подключить его к компьютеру и проверить управление режимом.
У вас используется аккумулятор. Попробуйте зарядить его полностью и если возможно добавить параллельно второй.
 
Сверху Снизу