Consulta e armazenamento de variáveis através de SMS c/ GBoard

Bom dia a todos!, sou o mais novo integrante do Forúm, e venho pedir a ajuda de vocês caros colegas…
Estou com esse projeto Consulta e armazenamento de variáveis através de SMS c/ GBoard, sensores DHT11 e sensor HL-69.
A ideia é que quando enviar um SMS ‘Consulta’, ele me responda os valores das variáveis e também armazene os dados em um arquivo TXT no cartão microSD
Acontece que tenho as duas partes do código criadas por separado, e sim funcionam, o tema é q ao juntar os códigos a GBoard so imprime sujeira so Debug e também reinicia.
Se alguém puder analizar o código e conceder uma ajuda, ficarei muito Grato!
Obrigado desde já!..

COD_LIMPO_FUNCIONA_SMS_SENSORES_TXT.ino (9.09 KB)

Eu não conheço as bibliotecas que está a utilizar. Não seria má ideia mostrar os dois sketchs que deram origem a este para perceber se existe algum "erro estúpido".

EDIT: Depois de olhar com alguma atenção para o código, chego à conclusão que o programa é tão simples que há muito poucas coisas que "podem correr mal". O que significa exactamente:

ao juntar os códigos a GBoard so imprime sujeira so Debug e também reinicia.

Consegue mostrar algum exemplo? O que é o "Debug"? Em que condições reinicia (quando recebe a SMS)?

Veja que ambos código funcionam quando separados.
Mas eu preciso juntar esses dois códigos, pois como expliquei, quando eu enviar um SMS “Consulta”,
me responderá a temperatura e a umidade do solo, e também preciso guardar esses dados em um cartão microSD

Mas quando eu juntei os códigos, simplesmente a GBoard Trava, pois eu carrego o código nela, e fico controlando oque ela
fazendo a través do Serial, e vejo que ela trava.

Ja no inicio do código ela trava, me parece que ela não consegue iniciar o cartão
parece q é nessa parte

res=file.initFAT();
delay(1000);
if (res!=NO_ERROR)
{
Serial.print("***** ERROR: ");
Serial.println(verboseError(res));
while (true) {};
}
Serial.println(“Crearemos un archivo TXT con nombre de ‘BIGFILE.TXT’. Para salvar los datos de los sensores.”);
Serial.println();

subVerificaArchivo();

testes_guardar_sd (FUNCIONA).ino (3.94 KB)

COD_LIMPO_FUNCIONA_SMS_SENSORES.ino (6.6 KB)

Formataste o cartão antes de o meter no Arduino?

Não vejo esta linha:

  dht.comeco();                                                 //Inicia a comunicaçao com o sensor

no sketch do SD card.

Isso é normal?

Sim, tenho cartão Kingston e outro SanDisk de 2GB ambos, formatados em FAT16.

Bem, verifiquei o código e realmente faltava "dht.comeco()", mas já o inclui, e testei e funciona tudo OK. Salva direitinho o TXT dentro do cartão com os dados das variáveis dos sensores.

Agora estou tentando outras coisas como trocar a fonte de alimentação da GBoard de 12v para 24v.

Veja que quando eu carrego o código (sms+sensores+SD), a GBoard liga normalmente,
então quando a ligo sem cartão de memoria no slot, obtenho a mensagem de erro configurada no código (anexo 1)

Já quando a ligo com cartão de memoria no slot, obtenho isso no Monitor Serial. (anexo 2)

Estive realizando testes durante todo o día, e utilizei a biblioteca SD.h também Tanto a tinyFAT quanto a SD funcionaram muito bem, realizei leituras dos sensores e guardei no cartão com ambas bibliotecas.

Mas outra vez ao juntar os códigos de guardar no cartão com o de enviar sms não obtive sucesso.. :(

Realizei buscas e mais buscas, e nada de soluções

Poderia ser falta de memoria RAM durante a execução do código???

Parece ser algo desse género no exemplo 2....

Mas teria de ver melhor o código.

Como faço pra saber se não me falta memoria RAM? pois com todos os testes que realizei realmente tudo indica que seja isso o problema, pois testei os códigos parte por parte e pude iniciar GSM+SD em parte, pois quando coloquei todo o código de leitura dos sensores aí a GBoard trava...

Podes usar isto

http://playground.arduino.cc/code/AvailableMemory

Normalmente o que eu faço para ver se está a acontecer algo do género é colocar um serial print no final do setup. Se esse serial print aparecer sem que eu tenha carregado no reset, então é muito provavel que falte memória.

Rapaz, ja testei o modifiquei código de todas as formas que pude pensar. Alguma outra ideia?