hello, I would like help for a code-project that uses DTH11 and records the temperature and humidity on an sd card, using a real clock. thank you in advance
OK - provide the code you have so far, along with the wiring you have, and the datasheet for the real time clock you are using.
this project does that
https://create.arduino.cc/projecthub/madmark2150/talking-alarm-clock-with-8x8x4-matrix-display-2ae9f6
I'm using the Real Time Clock RTC DS3231 module with Battery and the SD-card module, I'm using this code below and an error appears in DS 3231 !
code: Arduino Data Logger Project (Log Temperature, Humidity, Time on SD Card and Computer)
That's not the way to provide code. Check this link: How to get the best out of this forum - Using Arduino / Project Guidance - Arduino Forum
What error?
Make sure you have the correct library for the DS3231. That is a common problem, and I don't recall that particular library being in the IDE library manager.
C:\Users\Giovanni\Documents\Arduino\arduino-data-logger-software\data-logger\data-logger.ino:34:6: note: 'void Initialize_RTC()' previously defined here
void Initialize_RTC() {
^~~~~~~~~~~~~~
exit status 1
Compilation error: no matching function for call to 'DS3231::DS3231(const uint8_t&, const uint8_t&)'
Sorry, words alone are not helpful. Please provide information or links to the actual module.
Also we're still waiting for you to post code.
code :
/*
-
Program to demonstrate Data Logging/Visualisation using Arduino
-
###Connection with SD card module###
-
Vcc->5V
-
Gnd->Gnd
-
MISO->pin 12
-
MOSI->pin 11
-
SCK-> pin 13
-
CS-> pin 4
-
###Connection with DS3231###
-
Vcc->5V
-
Gns->Gnd
-
SCL->pin A5
-
SDA-> pin A4
-
###Connection with DT11###
-
Vcc->5V
-
Gnd->Gnd
-
Out-> pin 7
*/
#include <DS3231.h> //Library for RTC module (Download from Link in article)
#include <SPI.h> //Library for SPI communication (Pre-Loaded into Arduino)
#include <SD.h> //Library for SD card (Pre-Loaded into Arduino)
#include <dht.h> //Library for dht11 Temperature and Humidity sensor (Download from Link in article)
#define DHT11_PIN 7 //Sensor output pin is connected to pin 7
dht DHT; //Sensor object named as DHT
const int chipSelect = 4; //SD card CS pin connected to pin 4 of Arduino
// Init the DS3231 using the hardware interface
DS3231 rtc(SDA, SCL);
void setup()
{
// Setup Serial connection
Serial.begin(9600);
Initialize_SDcard();
Initialize_RTC();
Initialize_PlxDaq();
}
void loop()
{
Read_DHT11();
Write_SDcard();
Write_PlxDaq();
delay(5000); //Wait for 5 seconds before writing the next data
}
void Write_PlxDaq()
{
Serial.print("DATA"); //always write "DATA" to Indicate the following as Data
Serial.print(","); //Move to next column using a ","
Serial.print("DATE"); //Store date on Excel
Serial.print(","); //Move to next column using a ","
Serial.print("TIME"); //Store date on Excel
Serial.print(","); //Move to next column using a ","
Serial.print(DHT.temperature); //Store date on Excel
Serial.print(","); //Move to next column using a ","
Serial.print(DHT.humidity); //Store date on Excel
Serial.print(","); //Move to next column using a ","
Serial.println(); //End of Row move to next row
}
void Initialize_PlxDaq()
{
Serial.println("CLEARDATA"); //clears up any data left from previous projects
Serial.println("LABEL,Date,Time,Temperature,Humidity"); //always write LABEL, to indicate it as first line
}
void Write_SDcard()
{
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
File dataFile = SD.open("LoggerCD.txt", FILE_WRITE);
// if the file is available, write to it:
if (dataFile) {
dataFile.print(rtc.getDateStr()); //Store date on SD card
dataFile.print(","); //Move to next column using a ","
dataFile.print(rtc.getTimeStr()); //Store date on SD card
dataFile.print(","); //Move to next column using a ","
dataFile.print(DHT.temperature); //Store date on SD card
dataFile.print(","); //Move to next column using a ","
dataFile.print(DHT.humidity); //Store date on SD card
dataFile.print(","); //Move to next column using a ","
dataFile.println(); //End of Row move to next row
dataFile.close(); //Close the file
}
else
Serial.println("OOPS!! SD card writing failed");
}
void Initialize_SDcard()
{
// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return;
}
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
File dataFile = SD.open("LoggerCD.txt", FILE_WRITE);
// if the file is available, write to it:
if (dataFile) {
dataFile.println("Date,Time,Temperature,Humidity"); //Write the first row of the excel file
dataFile.close();
}
}
void Initialize_RTC()
{
// Initialize the rtc object
rtc.begin();
//#### The following lines can be uncommented to set the date and time for the first time###
/*
rtc.setDOW(FRIDAY); // Set Day-of-Week to SUNDAY
rtc.setTime(18, 46, 45); // Set the time to 12:00:00 (24hr format)
rtc.setDate(6, 30, 2017); // Set the date to January 1st, 2014
*/
}
void Read_DHT11()
{
int chk = DHT.read11(DHT11_PIN);
}
/*void Read_DateTime()
{
// Send date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Send time
Serial.println(rtc.getTimeStr());
}*/
/*void Read_TempHum()
{
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
// delay(1000);
}*/
It's a mess because you didn't use code tags...
excuse me ! I am learning .
the code this is link : Arduino Data Logger Project (Log Temperature, Humidity, Time on SD Card and Computer)
What you are supposed to do, in the IDE click on the menu item "copy for forum" and then paste in a message...
Also still waiting for the hardware information I asked for.
/*
* Programa para demonstrar Data Logging/Visualization usando Arduino
*
* ###Conexão com módulo de cartão SD###
* Vcc->5V
* Gnd->Gnd
* MISO->pin 12
* MOSI->pin 11
* SCK-> pin 13
* CS-> pin 4
*
* ###Conexão com DS3231###
* Vcc->5V
* Gns->Gnd
* SCL->pin A5
* SDA-> pin A4
*
* ###Conexão com DT11###
* Vcc->5V
* Gnd->Gnd
* Out-> pin 7
*
*
*/
#include <DS3231.h> //Library for RTC module (Download from Link in article)
#include <SPI.h> //Biblioteca para comunicação SPI (pré-carregada no Arduino)
#include <SD.h> //Biblioteca para cartão SD (pré-carregado no Arduino)
#include <dht.h> //Biblioteca para sensor de temperatura e umidade dht11 (Baixe do link no artigo)
#define DHT11_PIN 7 //Sensor output pin is connected to pin 7
dht DHT; //Sensor object named as DHT
const int chipSelect = 4; //SD card CS pin connected to pin 4 of Arduino
// Inicia o DS3231 usando a interface de hardware
DS3231 rtc(SDA, SCL);
void Initialize_RTC() {
// Inicialize o objeto rtc
rtc.begin();
//#### as seguintes linhas podem ser descomentadas para definir a data e hora pela primeira vez### /*
rtc.setDOW(FRIDAY); // Definir dia da semana para DOMINGO
rtc.setTime(18, 46, 45); // Defina a hora para 12:00:00 (formato de 24 horas)
rtc.setDate(6, 30, 2017); // Defina a data para 1º de janeiro de 2014 */
}
void loop()
{
Read_DHT11();
Write_SDcard();
Write_PlxDaq();
delay(5000); //Aguarde 5 segundos antes de gravar os próximos dados
}
void Write_PlxDaq()
{
Serial.print("DATA"); //sempre escreva "DATA" para indicar o seguinte como dados
Serial.print(","); //Mover para a próxima coluna usando um ","
Serial.print("DATE"); //Armazenar data no Excel
Serial.print(","); //Mover para a próxima coluna usando um ","
Serial.print("TIME"); //Armazenar data no Excel
Serial.print(","); //Mover para a próxima coluna usando um ","
Serial.print(DHT.temperature); //Armazenar data no Excel
Serial.print(","); //Mover para a próxima coluna usando um ","
Serial.print(DHT.humidity); //Armazenar data no Excel
Serial.print(","); //Mover para a próxima coluna usando um ","
Serial.println(); //Fim da linha move para a próxima linha
}
void Initialize_PlxDaq()
{
Serial.println("CLEARDATA"); //limpa todos os dados deixados de projetos anteriores
Serial.println("LABEL,Date,Time,Temperature,Humidity"); //escreva sempre LABEL, para indicar como primeira linha
}
void Write_SDcard()
{
// abre o arquivo. observe que apenas um arquivo pode ser aberto por vez,
// então você tem que fechar este antes de abrir outro.
File dataFile = SD.open("LoggerCD.txt", FILE_WRITE);
// se o arquivo estiver disponível, escreva nele:
if (dataFile) {
dataFile.print(rtc.getDateStr()); //Armazenar data no cartão SD
dataFile.print(","); //Mover para a próxima coluna usando um ","
dataFile.print(rtc.getTimeStr()); //Armazenar data no cartão SD
dataFile.print(","); //Mover para a próxima coluna usando um ","
dataFile.print(DHT.temperature); //Armazenar data no cartão SD
dataFile.print(","); //Mover para a próxima coluna usando um ","
dataFile.print(DHT.humidity); //Armazenar data no cartão SD
dataFile.print(","); //Mover para a próxima coluna usando um ","
dataFile.println(); //Fim da linha move para a próxima linha
dataFile.close(); //Feche o arquivo
}
else
Serial.println("OPA!! Falha na gravação do cartão SD");
}
void Initialize_SDcard() {
// veja se o cartão está presente e pode ser inicializado:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present"); // don't do anything more:
return;
}
// abra o arquivo. observe que apenas um arquivo pode ser aberto por vez,
// então você tem que fechar este antes de abrir outro.
File dataFile = SD.open("LoggerCD.txt", FILE_WRITE);
// se o arquivo estiver disponível, escreva nele:
if (dataFile) {
dataFile.println("Date,Time,Temperature,Humidity"); //Escreva a primeira linha do arquivo excel
dataFile.close();
}
}
void Initialize_RTC()
{
// Inicializa o objeto rtc
rtc.begin();
//#### As seguintes linhas podem ser descomentadas para definir a data e hora pela primeira vez###
/*
rtc.setDOW(FRIDAY); // Definir dia da semana para DOMINGO
rtc.setTime(18, 46, 45); // Defina a hora para 12:00:00 (formato de 24 horas)
rtc.setDate(6, 30, 2017); // Defina a data para 1º de janeiro de 2014
*/
}
void Read_DHT11()
{
int chk = DHT.read11(DHT11_PIN);
}
/*void Read_DateTime()
{
// Envia Data
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Envia Time
Serial.println(rtc.getTimeStr());
}*/
/*void Read_TempHum()
{
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
// delay(1000);
}*/
```
digite ou cole o código aqui
```
That's not the way to supply/post code. Take a swim in this topic: How to get the best out of this forum - Using Arduino / Project Guidance - Arduino Forum
13 posts and still not an acceptabel presentation because the advice topics are not visited.
sorry, i'll try again.
/*
- Programa para demonstrar Data Logging/Visualization usando Arduino
- ###Conexão com módulo de cartão SD###
- Vcc->5V
- Gnd->Gnd
- MISO->pin 12
- MOSI->pin 11
- SCK-> pin 13
- CS-> pin 4
- ###Conexão com DS3231###
- Vcc->5V
- Gns->Gnd
- SCL->pin A5
- SDA-> pin A4
- ###Conexão com DT11###
- Vcc->5V
- Gnd->Gnd
- Out-> pin 7
/
#include <DS3231.h> //Library for RTC module (Download from Link in article)
#include <SPI.h> //Biblioteca para comunicação SPI (pré-carregada no Arduino)
#include <SD.h> //Biblioteca para cartão SD (pré-carregado no Arduino)
#include <dht.h> //Biblioteca para sensor de temperatura e umidade dht11 (Baixe do link no artigo)
#define DHT11_PIN 7 //Sensor output pin is connected to pin 7
dht DHT; //Sensor object named as DHT
const int chipSelect = 4; //SD card CS pin connected to pin 4 of Arduino
// Inicia o DS3231 usando a interface de hardware
DS3231 rtc(SDA, SCL);
void Initialize_RTC() {
// Inicialize o objeto rtc
rtc.begin();
//#### as seguintes linhas podem ser descomentadas para definir a data e hora pela primeira vez### /
rtc.setDOW(FRIDAY); // Definir dia da semana para DOMINGO
rtc.setTime(18, 46, 45); // Defina a hora para 12:00:00 (formato de 24 horas)
rtc.setDate(6, 30, 2017); // Defina a data para 1º de janeiro de 2014 */
}
void loop() {
Read_DHT11();
Write_SDcard();
Write_PlxDaq();
delay(5000); //Aguarde 5 segundos antes de gravar os próximos dados
}
void Write_PlxDaq() {
Serial.print("DATA"); //sempre escreva "DATA" para indicar o seguinte como dados
Serial.print(","); //Mover para a próxima coluna usando um ","
Serial.print("DATE"); //Armazenar data no Excel
Serial.print(","); //Mover para a próxima coluna usando um ","
Serial.print("TIME"); //Armazenar data no Excel
Serial.print(","); //Mover para a próxima coluna usando um ","
Serial.print(DHT.temperature); //Armazenar data no Excel
Serial.print(","); //Mover para a próxima coluna usando um ","
Serial.print(DHT.humidity); //Armazenar data no Excel
Serial.print(","); //Mover para a próxima coluna usando um ","
Serial.println(); //Fim da linha move para a próxima linha
}
void Initialize_PlxDaq() {
Serial.println("CLEARDATA"); //limpa todos os dados deixados de projetos anteriores
Serial.println("LABEL,Date,Time,Temperature,Humidity"); //escreva sempre LABEL, para indicar como primeira linha
}
void Write_SDcard() {
// abre o arquivo. observe que apenas um arquivo pode ser aberto por vez,
// então você tem que fechar este antes de abrir outro.
File dataFile = SD.open("LoggerCD.txt", FILE_WRITE);
// se o arquivo estiver disponível, escreva nele:
if (dataFile) {
dataFile.print(rtc.getDateStr()); //Armazenar data no cartão SD
dataFile.print(","); //Mover para a próxima coluna usando um ","
dataFile.print(rtc.getTimeStr()); //Armazenar data no cartão SD
dataFile.print(","); //Mover para a próxima coluna usando um ","
dataFile.print(DHT.temperature); //Armazenar data no cartão SD
dataFile.print(","); //Mover para a próxima coluna usando um ","
dataFile.print(DHT.humidity); //Armazenar data no cartão SD
dataFile.print(","); //Mover para a próxima coluna usando um ","
dataFile.println(); //Fim da linha move para a próxima linha
dataFile.close(); //Feche o arquivo
} else
Serial.println("OPA!! Falha na gravação do cartão SD");
}
void Initialize_SDcard() {
// veja se o cartão está presente e pode ser inicializado:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present"); // don't do anything more:
return;
}
// abra o arquivo. observe que apenas um arquivo pode ser aberto por vez,
// então você tem que fechar este antes de abrir outro.
File dataFile = SD.open("LoggerCD.txt", FILE_WRITE);
// se o arquivo estiver disponível, escreva nele:
if (dataFile) {
dataFile.println("Date,Time,Temperature,Humidity"); //Escreva a primeira linha do arquivo excel
dataFile.close();
}
}
void Initialize_RTC() {
// Inicializa o objeto rtc
rtc.begin();
//#### As seguintes linhas podem ser descomentadas para definir a data e hora pela primeira vez###
/*
rtc.setDOW(FRIDAY); // Definir dia da semana para DOMINGO
rtc.setTime(18, 46, 45); // Defina a hora para 12:00:00 (formato de 24 horas)
rtc.setDate(6, 30, 2017); // Defina a data para 1º de janeiro de 2014
*/
}
void Read_DHT11() {
int chk = DHT.read11(DHT11_PIN);
}
/void Read_DateTime()
{
// Envia Data
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Envia Time
Serial.println(rtc.getTimeStr());
}/
/void Read_TempHum()
{
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
// delay(1000);
}/
You read a value, assign it to a temporary variable. When you declare a variable in a function, it can be accessed only inside the function.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.