Boa Noite, Galera!
Estou começando um projeto na universidade onde tem que pegar os dados do módulo fotovoltaico (corrente, tensão) e salvar em um Sd-Card. Mas como sou novo no assunto, estou testando uns sensores primeiro em casa ( temperatura, entre outros). Minha duvida é a seguinte, como faço para salvar essas informações no Sd-Card ? Tenho um Adaptador (Catalex) para salvar os arquivos, já fiz a ligação dele no arduino. Não sei como faço para implementar esse código. Se alguém puder dar uma ajuda aí. Agradeço.
Tags:
Opa, e ai Carlos.
Então, já tinha olhado esses exemplos que você me passou, e ajudou bastante. Porém, minha dúvida continua sendo em como implementar um código para salvar os dados em um outro que já está feito. Tipo tenho um de temperatura feito, para salvar esses dados, como faço a implementação ? Pois estou declarando as variáveis, incluindo a biblioteca Sd, igual mostra nos exemplos. Mas não dá certo.
Oi MFB, bom dia.
Anexe um arquivo aqui com o seu code para que possamos sugerir onde você deverá inserir
a rotina de salvamento dos dados.
Rui
Opa, e ai Rui. Bom dia!
Deu certo, meu irmão deu uma força aqui.
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SD.h>
Sd2Card SDcard;
SdVolume volume;
const int chipSelect = 4;
// Declarando pino de entrada do sinal do sensor
#define sinal_sensor 2
// Iniciando instancia OneWire para comunicado com o dispositivo
OneWire oneWire(sinal_sensor);
// Referencia
DallasTemperature sensors(&oneWire);
// Indereço de cada sensor DS18B20
DeviceAddress sensor01 = { 0x28, 0xFC, 0xCD, 0x8B, 0x04, 0x00, 0x00, 0x0C };
void setup()
{
// inicializando porta serial
Serial.begin(9600);
sensors.begin();
// Setando a resolução para 10 bit (Mas pode ir de 9 a 12)
sensors.setResolution(sensor01, 10);
if (!SD.begin(chipSelect))
{
Serial.println("Falha ao acessar o cartao !");
Serial.println("Verifique o cartao/conexoes e reinicie o Arduino...");
return;
}
Serial.println("Cartao iniciado corretamente !");
Serial.println();
}
void loop()
{
File dataFile = SD.open("arquivo.txt", FILE_WRITE);
delay(1000);
// Chamando todos os sensores a forncer a temperatura
sensors.requestTemperatures();
Serial.print("Temperatura: ");
printTemperature(sensor01);
Serial.println();
if (dataFile)
{
float temp = sensors.getTempC(sensor01);
dataFile.print("Temperatura: ");
dataFile.println(temp);
dataFile.close();
}
else
{
// Mensagem de erro caso ocorra algum problema
// na abertura do arquivo
Serial.println("Erro ao abrir arquivo.txt !");
}
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00)
{
Serial.print(" Erro ao calcular temperatura ");
}
else
{
Serial.print("C: ");
Serial.print(tempC);
}
}
Oi MFB,
que legal ter conseguido resolver.
Um alerta.
Pelo que percebi no seu code você grava no SD card cada ciclo da função loop.
Se cada ciclo ocorrer em 1 segundo, voce fará
60 * 60 * 24 = 86.400 gravações por dia.
Como um SD card suporta em média 100.000 "writes", ele durará pouco mais que um dia.
" Flash memory indeed has limited write cycles. However, by now it is unlikely that you'll encounter this within the normal lifetime of such a card. Usually this is in the order of 100,000 write cycles"
Rui
Valeu pela dica Rui. Vou me atendar a isso quando for fazer o projeto de verdade.
Vou automatizar o sistema de limpeza de um módulo fotovoltaico.
Ai estou fazendo primeiro a parte de coleta de dados (Corrente, Tensão), vou armazenar tudo em um SD, só que vou fazer a programação para coletar os dados a cada 1minuto. O que você acha?
Depois vou utilizar uma Ponte H para acionar 2 motores a uma determinada hora, para realizar a limpeza dos módulos fotovoltaicos.
Oi MFB, se for a cada minuto, deverá durar aproximadamente 70 dias.
Rui
Olá Matheus,
Bom que solucionou seu problema, apenas aproveito para deixar aqui um pedido para que siga as indicações para quando postar novamente suas duvidas aqui no fórum, veja este link por favor, COMO POSTAR
Por outra parte, se em algum momento considerar que sua duvida esta esclarecida, edite o nome atual do tópico, e coloque antes do mesmo a palavra RESOLVIDO, isso ajudara outros colegas a encontrar de maneira mais fácil no futuro duvidas esclarecidas.
Atenção, nenhuma das indicações que faço são regras obrigatórias, mas todos tratamos de segui-las por entender que trazem melhoras para toda a comunidade do LDG.
Grande abraço!
CK
Opa, já alterei lá Carlos.
Valeu pela dica.
Oi Matheus,
Obrigado por atender a minha solicitação.
Abs.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por