#1 Re: Апаратні питання » Arduino Nano+sim800l+Email+SD » 2022-09-06 15:52:15

Большое всем спасибо. Было приятно пообщаться с умными людьми.

#2 Re: Апаратні питання » Arduino Nano+sim800l+Email+SD » 2022-09-05 16:02:30

Honey, большое Вам спасибо, мысль уловил - буду работать.
И, если позволите, последний (вернее крайний) вопрос. Передавать большой текстовый файл получается, а вот бинарное фото - нет.
"Нарыл", что протокол SMTP не умеет работать с бинарным кодом, нужно преобразовать в BASE64. Отсюда вопрос: как в среде Arduino IDE на "железе" NANO реализовать преобразование бинарного файла в BASE64 ? Буду признателен за любые примеры по этому поводу (можно на Си для AтМеги).

#3 Re: Апаратні питання » Arduino Nano+sim800l+Email+SD » 2022-08-31 13:23:19

Kino, Вы были правы. Модем не был готов принимать файл (+SMTPFT: 2, 25). После smtpsend приходил ответ OK, а вот +smtpft: 1,1360 не успевал. Увеличил задержку - все заработало. Огромное Вам спасибо.
Может у кого есть пример кода, как анализировать программно ответы от  sim800 (что бы не применять задержки) - буду очень признателен (taras150162@gmail.com).

#4 Re: Апаратні питання » Arduino Nano+sim800l+Email+SD » 2022-08-31 10:21:50

Спасибо, исправил, но, к сожалению, не сработало. Приходит на почту вложение TEST.TXT с размером "0". Буду рад любому совету.

#5 Апаратні питання » Arduino Nano+sim800l+Email+SD » 2022-08-26 13:23:15

taras150162
відповідей: 10

Уважаемые форумчане прошу помощи.
Есть Ардуино Nano, модуль SD карты и sim800l (1418B05SIM800L24). В среде Arduino IDE нужно взять файл из SD-карты прикрепить к email и отправить по GPRS на указанную почту. Что сделано. Файл с SD читается, содержимое можно вывести в монитор порта. Письмо успешно отправляется и  доходит до адресата, доходит и вложенный файл, но проблема в том что он ПУСТОЙ, т.е. не могу заполнить его данными. Если команды запускаю с монитора порта, то любое вводимое значение сохраняется в файл вложения и он успешно доходит до адресата. А вот с программы - никак. Уже "все мозги разбил на части, все извилины заплел".
Мой код:

#include <SoftwareSerial.h>
#include <Sim800L.h>
#include <SD.h>
#include <SPI.h>

-----тут не важно-------------

  sim800l.println("AT+SAPBR=3,1,"APN","Internet"");
  delay(4000);
  sim800l.println("AT+SAPBR=1,1");
  delay(4000);
  //sim800l.println("AT+SAPBR=2,1");
  //delay(4000);
  sim800l.println("AT+EMAILCID=1");
  delay(4000);
  sim800l.println("AT+EMAILTO=30");
  delay(4000);
  sim800l.println("AT+EMAILSSL=1");
  delay(4000);
  sim800l.println("AT+SMTPSRV="smtp.*.*",465");
  delay(4000);
  sim800l.println("AT+SMTPAUTH=1,"email","password"");
  delay(4000);
  sim800l.println("AT+SMTPFROM="email","Arduino"");
  delay(4000);
  sim800l.println("AT+SMTPRCPT=0,0,"email","Denis"");
  delay(4000);
  sim800l.println("AT+SMTPSUB="test"");
  delay(4000);
  sim800l.println(touse);
  delay(4000);
  sim800l.println(msg);
  delay(4000);
  sim800l.println((char ) 26 );
  delay(4000);
  sim800l.println("AT+SMTPFILE=1,"TEST.TXT",0");
  delay(5000);
  sim800l.println("AT+SMTPSEND");
  delay(2000);
  sim800l.println("AT+SMTPFT=25"); //сколько байт передать
  delay(4000);

//========= вот здесь не могу запихнуть 25 байт в sim 800l ================

//1)---- этот кусок не работает-----
char* file_name = "TEST.TXT";
dataFile = SD.open(file_name);
  if (dataFile) {
    Serial.println("Opening the file: "+String(file_name)+" done.");
  }
  else {
    Serial.println("Error opening " + String(file_name));
  }
while(dataFile.available()>0){
sim800l.write(dataFile.read());
}
//1)----------------------------------------
//2)---  этот то же ------------------------
unsigned int var=0;
while(var < 25){
sim800l.write(dataFile.read());
var++;
}
//2)------------------------------------------
dataFile.close();
//===================================================

  sim800l.println("AT+SMTPFT=0");  //завершить передачу
  delay(1000);
  sim800l.println("AT+SAPBR=0,1");

Підвал форуму