Ви не увійшли.
Сторінки 1
Большое всем спасибо. Было приятно пообщаться с умными людьми.
Honey, большое Вам спасибо, мысль уловил - буду работать.
И, если позволите, последний (вернее крайний) вопрос. Передавать большой текстовый файл получается, а вот бинарное фото - нет.
"Нарыл", что протокол SMTP не умеет работать с бинарным кодом, нужно преобразовать в BASE64. Отсюда вопрос: как в среде Arduino IDE на "железе" NANO реализовать преобразование бинарного файла в BASE64 ? Буду признателен за любые примеры по этому поводу (можно на Си для AтМеги).
Kino, Вы были правы. Модем не был готов принимать файл (+SMTPFT: 2, 25). После smtpsend приходил ответ OK, а вот +smtpft: 1,1360 не успевал. Увеличил задержку - все заработало. Огромное Вам спасибо.
Может у кого есть пример кода, как анализировать программно ответы от sim800 (что бы не применять задержки) - буду очень признателен (taras150162@gmail.com).
Спасибо, исправил, но, к сожалению, не сработало. Приходит на почту вложение TEST.TXT с размером "0". Буду рад любому совету.
Уважаемые форумчане прошу помощи.
Есть Ардуино 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");
Сторінки 1