Move to CMake
This commit is contained in:
94
arduino/WeatherStationLogger/WeatherStationLogger.ino
Normal file
94
arduino/WeatherStationLogger/WeatherStationLogger.ino
Normal file
@ -0,0 +1,94 @@
|
||||
#include <SD.h>
|
||||
#include <Wire.h>
|
||||
#include "BMP085.h"
|
||||
#include "DHT.h"
|
||||
#include "TSL2561.h"
|
||||
#include "Chronodot.h"
|
||||
|
||||
#define TIMING 1000 // milliseconds
|
||||
#define DHTPIN 2
|
||||
#define DHTTYPE DHT22
|
||||
#define SDPIN 4
|
||||
|
||||
BMP085 bmp;
|
||||
DHT dht(DHTPIN, DHTTYPE);
|
||||
TSL2561 tsl(TSL2561_ADDR_FLOAT);
|
||||
Chronodot chronodot;
|
||||
File file;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
pinMode(5, OUTPUT);
|
||||
|
||||
//----- SD Card
|
||||
Serial.println("INIT SD Card");
|
||||
|
||||
if (!SD.begin(4)) {
|
||||
Serial.println("FAILED");
|
||||
return;
|
||||
}
|
||||
Serial.println("DONE");
|
||||
|
||||
//----- Sensors
|
||||
Serial.println("INIT Sensors");
|
||||
|
||||
bmp.begin();
|
||||
dht.begin();
|
||||
tsl.begin();
|
||||
chronodot.begin();
|
||||
|
||||
// You can change the gain on the fly, to adapt to brighter/dimmer light situations
|
||||
//tsl.setGain(TSL2561_GAIN_0X); // set no gain (for bright situtations)
|
||||
tsl.setGain(TSL2561_GAIN_16X); // set 16x gain (for dim situations)
|
||||
|
||||
// Changing the integration time gives you a longer time over which to sense light
|
||||
// longer timelines are slower, but are good in very low light situtations!
|
||||
tsl.setTiming(TSL2561_INTEGRATIONTIME_13MS); // shortest integration time (bright light)
|
||||
//tsl.setTiming(TSL2561_INTEGRATIONTIME_101MS); // medium integration time (medium light)
|
||||
//tsl.setTiming(TSL2561_INTEGRATIONTIME_402MS); // longest integration time (dim light)
|
||||
|
||||
if (!SD.exists("data.tsv")) {
|
||||
file = SD.open("data.tsv", FILE_WRITE);
|
||||
|
||||
if (file) {
|
||||
Serial.print("Creating data.tsv");
|
||||
file.println("#Time\t\tT [°C]\tP [Pa]\tAlt [m]\tHr [%]\tLx [lux]");
|
||||
file.close();
|
||||
Serial.println("DONE");
|
||||
} else {
|
||||
Serial.println("Error opening data.tsv");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void loop() {
|
||||
float temperature = bmp.readTemperature();
|
||||
int32_t pressure = bmp.readPressure();
|
||||
float altitude = bmp.readAltitude();
|
||||
|
||||
float humidity = dht.readHumidity();
|
||||
|
||||
uint32_t lum = tsl.getFullLuminosity();
|
||||
uint16_t lightIr = lum >> 16;
|
||||
uint16_t lightFull = lum & 0xFFFF;
|
||||
|
||||
DateTime time = chronodot.now();
|
||||
|
||||
file = SD.open("data.tsv", FILE_WRITE);
|
||||
|
||||
if (file) {
|
||||
Serial.print("Writing to data.tsv...");
|
||||
file.print(time.year()); file.print("-"); file.print(time.month()); file.print("-"); file.print(time.day()); file.print(" "); file.print(time.hour()); file.print(":"); file.print(time.minute()); file.print(":"); file.print(time.second()); file.print("\t");
|
||||
file.print(temperature); file.print("\t");
|
||||
file.print(pressure); file.print("\t");
|
||||
file.print(altitude); file.print("\t");
|
||||
file.print(humidity); file.print("\t");
|
||||
file.println(tsl.calculateLux(lightFull, lightIr));
|
||||
file.close();
|
||||
Serial.println("DONE");
|
||||
} else {
|
||||
Serial.println("Error opening data.tsv");
|
||||
}
|
||||
|
||||
delay(TIMING);
|
||||
}
|
Reference in New Issue
Block a user