You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Having issues with the timestamp while logging data with SD using Hypnos.
I tried to reset it by taking the coin cell battery out but it still not synching with the current time.
const float startingWeight = 815.00; // Known weight to divide by in grams
int unit = 0; // Units: {0 = grams, 1 = kilograms, 2 = ounces}
char buff[] = "Start time is hh:mm:ss DDD, DD MMM YYYY";
int packet = 0; // Packet number
void do_calibration() {
long t_new_offset = 0;
long t_raw_read = 0;
float t_set_scale_value = 0;
float t_weight = 0;
// tare
t_new_offset = weight.raw_read(100); // Takes 8 measurements and averages it
weight.OFFSET = t_new_offset;
Serial.print("Calibration offset = ");Serial.println(weight.OFFSET);
Serial.println("You have 15 seconds to put a known weight on the scale");
delay(15000);
// do calibration based on a known weight
t_raw_read = weight.raw_read(3);
Serial.print("Units read = ");Serial.println(t_raw_read);
t_set_scale_value = t_raw_read / startingWeight; // divide it to a known weight
weight.SCALE = t_set_scale_value;
Serial.print("Calibration scale value = ");Serial.println(weight.SCALE);
/*
// Force Calibrate
weight.OFFSET = 8521423; // Set to "Calibration offset" from calibration (8527704)
weight.SCALE = 2069.49; // Set to "Calibration Scale value" from calibration (427.06) */
void print_units() {
if (unit == 0)
Serial.println(" g");
else if (unit == 1)
Serial.println(" kg");
else if (unit == 2)
Serial.println(" oz");
else
Serial.println("Unknown unit");
}
void rtcSetup() {
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, let's set the time!");
// When time needs to be set on a new device, or after a power loss, the
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(DATE), F(TIME)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
DateTime now = rtc.now(); // Get current time
// Print current time and date
Serial.println(now.toString(buff));
}
void sdSetup() {
// Checking if SD is active
if (!SD.begin(sdPin)) {
Serial.println("initialization failed!");
return;
}
Having issues with the timestamp while logging data with SD using Hypnos.
I tried to reset it by taking the coin cell battery out but it still not synching with the current time.
#define _dout A0 //MISO
#define _sclk A1 //SCK
#define _pdwn A2 //A2
#define sdPin 11 // Change to 11 if using HypnosV3.3
#define alarmPin 12 // Hypnos interrupt pin
#include "ADS1232.h"
#include "RTClib.h"
#include <SD.h>
ADS1232 weight = ADS1232(_pdwn, _sclk, _dout);
File myFile;
RTC_DS3231 rtc;
const float startingWeight = 815.00; // Known weight to divide by in grams
int unit = 0; // Units: {0 = grams, 1 = kilograms, 2 = ounces}
char buff[] = "Start time is hh:mm:ss DDD, DD MMM YYYY";
int packet = 0; // Packet number
void do_calibration() {
long t_new_offset = 0;
long t_raw_read = 0;
float t_set_scale_value = 0;
float t_weight = 0;
// reset to default values
weight.OFFSET = 0;
weight.SCALE = 1.0;
// tare
t_new_offset = weight.raw_read(100); // Takes 8 measurements and averages it
weight.OFFSET = t_new_offset;
Serial.print("Calibration offset = ");Serial.println(weight.OFFSET);
Serial.println("You have 15 seconds to put a known weight on the scale");
delay(15000);
// do calibration based on a known weight
t_raw_read = weight.raw_read(3);
Serial.print("Units read = ");Serial.println(t_raw_read);
t_set_scale_value = t_raw_read / startingWeight; // divide it to a known weight
weight.SCALE = t_set_scale_value;
Serial.print("Calibration scale value = ");Serial.println(weight.SCALE);
/*
// Force Calibrate
weight.OFFSET = 8521423; // Set to "Calibration offset" from calibration (8527704)
weight.SCALE = 2069.49; // Set to "Calibration Scale value" from calibration (427.06) */
// read weight
t_weight = weight.units_read(3);
Serial.print("Weight = ");Serial.println(t_weight, 5);
}
void print_units() {
if (unit == 0)
Serial.println(" g");
else if (unit == 1)
Serial.println(" kg");
else if (unit == 2)
Serial.println(" oz");
else
Serial.println("Unknown unit");
}
void rtcSetup() {
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, let's set the time!");
// When time needs to be set on a new device, or after a power loss, the
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(DATE), F(TIME)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
DateTime now = rtc.now(); // Get current time
// Print current time and date
Serial.println(now.toString(buff));
}
void sdSetup() {
// Checking if SD is active
if (!SD.begin(sdPin)) {
Serial.println("initialization failed!");
return;
}
Serial.println("SD initialized!");
myFile = SD.open("data.csv", FILE_WRITE);
// if the file opened okay, write to it:
if (myFile) {
} else {
// if the file didn't open, print an error:
Serial.println("Error opening data.csv");
}
}
void sdLog() {
DateTime now = rtc.now(); // Get current time
myFile = SD.open("data.csv", FILE_WRITE);
// Writes sensor values
if (myFile) {
}
else {
// if the file didn't open, print an error
Serial.println("Error opening data.csv");
}
}
void setup() {
Serial.begin(9600);
//while(!Serial);
// Initializing and setting pinouts
pinMode(5, OUTPUT);
digitalWrite(5, LOW);
pinMode(6, OUTPUT);
digitalWrite(6, HIGH);
pinMode(sdPin, OUTPUT);
// Setting up scale and calibrating it
weight.power_up();
do_calibration();
// Setting up RTC and SD
rtcSetup();
sdSetup();
}
void loop() {
packet++;
DateTime now = rtc.now(); // Get current time
// Print data on serial monitor
// Packet Number
Serial.println("Packet: " + String(packet));
// Timestamp
Serial.print("Date: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" Time: ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
// Weight
Serial.println(weight.units_read(3), 5);
// Log data to SD
sdLog();
delay(60000);
}
The text was updated successfully, but these errors were encountered: