Gprs-логгер для теплицы

У меня нет вашей библиотеки (и искать, честно говоря, нет особого желания). Посмотрите что идет за код перед выводом последнего сообщения (из заголовка темы) в той библиотеке, что после него, и выложите этот код сюда. Лучше всего +/- 10-20 строк (не более).

@ygeek , ссылку на библиотеку выложите

один умный тип когда-то давно заметил, что если вы видите неизлечимо больного, максимум помощи ему вы окажете, просто дав ему спокойно помереть и изъять свои дефектные гены из генотипа. Улови, пожалуйста, смысл этой метафоры, она не содержит ни одного оскорбительного намека.

1 лайк

я вас услышал…
кстати подключение конденсаторов на 2500мкф ничего не изменило

Про delay 500 при чтении каждого чуть ли не байта в библиотеке промолчу - типовое желание упростить код.
Прикололо вот это

void sim900_flush_serial()
{
while(sim900_check_readable()){
char c = serialSIM900->read();
}
}

Т е если команду отправили то пофиг на ответ модема - почистим приход буфера :face_with_peeking_eye:

bool GPRS::init(void)
{
Serial.println (F("Test on AT comand"));
    if (!sim900_check_with_cmd("AT\r\n","OK\r\n",CMD))
    return false;

Serial.println (F("Test on AT+CFUN=1 comand"));
if(!sim900_check_with_cmd("AT+CFUN=1\r\n","OK\r\n",CMD))
return false;


  if (!checkSIMStatus())
    return false;

Serial.println (F("Test on AT+CNMI? comand"));
  if (!sim900_check_with_cmd("AT+CNMI?\r\n", "+CNMI: 2,2,0,0,0\r\nOK\r\n", CMD)) {

я правильно понял, кусок где происходит затуп?
команды “Serial.println” были добавлены, чтоб увидеть где зависает.

Да, правильно.
Что происходит тут:

Судя по всему условие не срабатывает. Что это за функция и её содержимое?


включение с полным функционалом.

но первый же запуск и успешная отправка происходит. меня это смущает

Я говорил о самой функции sim900_check_with_cmd()

И заодно проверьте что будет при ‘AT+CFUN=0’ (не знаю что такое IMSI)