Witam wszystkich!!
Mam taki problem i nie wiem co jest grane męczę się z tym już 3 dzień i nie daje mi to usnąć.
Mianowicie robie stację pogodową na Arduino Nano v3, wszystko działa jak na razie jak powinno poza RTC DS3231. Jak użyje przykładowego kodu do testu zegara ładnie pokazuje mi date, godzine i co tam chcę, ale ten sam kod wklepany w program stacji w róznych konfiguracjach (na dole pętli czy na gorze pętli czy też w środku) wyświetla mi date, 00-00-0000 i godzine 00:00:00. Próbowałem na dwóch różnych zegarach oraz na dwóch różnych egzemplarzach i dalej jest to samo.
Edit: Godzina w zegarze jest zaprogramowana przy próbach na programie testującym działanie zegara
Czy ktoś się z was z podobna rzeczą spotkał?
Poniżej kod stacji pogodowej.
Mam taki problem i nie wiem co jest grane męczę się z tym już 3 dzień i nie daje mi to usnąć.
Mianowicie robie stację pogodową na Arduino Nano v3, wszystko działa jak na razie jak powinno poza RTC DS3231. Jak użyje przykładowego kodu do testu zegara ładnie pokazuje mi date, godzine i co tam chcę, ale ten sam kod wklepany w program stacji w róznych konfiguracjach (na dole pętli czy na gorze pętli czy też w środku) wyświetla mi date, 00-00-0000 i godzine 00:00:00. Próbowałem na dwóch różnych zegarach oraz na dwóch różnych egzemplarzach i dalej jest to samo.
Edit: Godzina w zegarze jest zaprogramowana przy próbach na programie testującym działanie zegara
Czy ktoś się z was z podobna rzeczą spotkał?
Poniżej kod stacji pogodowej.
Kod:
//biblioteki i definicje wilgotnościomierza
#include "DHT.h"
#define DHTPIN 2 // pin pod którym mamy czujnik wilgoci
#define DHTTYPE DHT22 // DHT 22 typ czujnika
DHT dht(DHTPIN, DHTTYPE); // czesc dla wilgotnocsciomierza
//biblioteki i definiowanie barometru
#include <Wire.h>
#include "i2c.h" //biblioteka magistrali i2c
#include "i2c_BMP280.h" //--||-- dla barometru i2c
BMP280 bmp280; //definiowanie barometru
//Zegar ds3231
#include <Wire.h>
#include <DS3231.h> //biblioteka zegara
DS3231 clock; //definiowanie zegara
RTCDateTime dt; //definicja czasu
//biblioteki i pin anenometru
#include <LaCrosseTX23.h> //biblioteka anenometru
LaCrosseTX23 anemometer = LaCrosse_TX23(7);//
//bibliioteki i definiowanie czujnika opadów
int sensorA0 = A1; // podłączenie od A0 na czujniku do A1 na Arduino
int sensorD0 = 8; // podłączenie od D0 na czujniku do pinu 8 na Arduino
int wartoscA0; // zmienna dla wartości A0
int wartoscD0; // zmienna dla wartości A0
// czujnik swiatła
int LDR_Pin = A0; //analog pin 0
//czujki temperatury
#include <DallasTemperature.h>
#define ONEWIREBUS 9
OneWire oneWire(ONEWIREBUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600);
clock.begin(); //uruchomienie zegara
Serial.println("Test Wilgotnosciomierza");
dht.begin(); //uruchomienie wilgotnosciomierza
delay(1000);
//uruchamianie Barometru
Serial.print("Sprawdzam barometr: ");
if (bmp280.initialize()) Serial.println("Działa"); //uruchomienie barometru
else
{
Serial.println("Sensor missing");
while (1) {}
}
// onetime-measure:
bmp280.setEnabled(0);
bmp280.triggerMeasurement();
}
void loop() {
//wyswietlanie daty
Serial.print("Data i godzina ");
Serial.println(clock.dateFormat("d-m-Y H:i:s",dt ));
if (clock.isAlarm1())
{
Serial.println("funkcja zapisywania!"); //tutaj będzie pętla zapisu do różnych plików o zadanej godzinie, funkcje aktywujaca alarm dodam pozniej
}
//część wilgotnościomierza
// Czekaj na pomiar.
delay(2000);
float h = dht.readHumidity();
// Jeżeli nie odczyta czujnika
if (isnan(h)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Wilgotność: ");
Serial.println(String(h) + "" + String("%"));
//część barometru
bmp280.awaitMeasurement();
float temperature;
bmp280.getTemperature(temperature);
float pascal;
bmp280.getPressure(pascal);
static float meters, metersold;
bmp280.triggerMeasurement();
Serial.print(" Ciśnienie: ");
Serial.print(pascal/100);
Serial.println(" hPa; : ");
Serial.print(" Ciśnienie wg poziomu morza: ");
Serial.print(pascal/100+19);
Serial.println(" hPa; : ");
//czesc anenometru
String dirTable[]= {"N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"};
float speed;
int direction;
if(anemometer.read(speed, direction))
{
Serial.print("Prędkość Wiatru = " + String(speed,1) + " m/s , ");
Serial.println("Kierunek = " + dirTable[direction]);
}
else
{
Serial.println("Read error");
delay(2000);
}
//część czujnika opadów
wartoscA0 = analogRead(sensorA0); // pobranie wartości z A0
wartoscD0 = digitalRead(sensorD0); // pobranie wartości z D0
// wyświetlenie na monitorze szeregowym
if(wartosc_D0 = 1);{
Serial.print("Brak Opadów");
}
//czujnik swiatla analogowy
int LDRReading = analogRead(LDR_Pin);
Serial.print("Nasłonecznienie : ");
Serial.print(LDRReading);
Serial.println( "");
if(LDRReading < 50) { //Jeżeli pochmurno jest wartość ~900 → skalibrować
Serial.println( "noc");
}
//Czujniki ds18b20
float T1;
float T2;
static int a=0;
//Wysłanie komendy do pobrania temperatury
sensors.requestTemperatures();
T1 = sensors.getTempCByIndex(0);
T2 = sensors.getTempCByIndex(1);
Serial.print( " Czujnik osłonięty ");
Serial.print(T1);
Serial.println(" C");
Serial.print(" Czujnik odsłonięty ");
Serial.print(T2);
Serial.println(" C");
delay(6000);
}