SD kort datalogger med LinkitOne (3 / 4 steg)
Steg 3: programmering
Programmeringen är ganska lätt också. Vi utnyttjar LStorage bibliotek för SD kortet funktionalitet.
Även DHT biblioteket för sensorn.
Kod:
#include "DHT.h"
#include "LTask.h"
#include "LFlash.h"
#include "LSD.h"
#include "LStorage.h"
#define Drv LSD / / använda SD-kort
#define DHTPIN 2 / / vilken pin vi är ansluten till
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
DHT dht (DHTPIN, DHTTYPE);
void setup()
{
Öppna seriell kommunikation och vänta på port att öppna:
Serial.BEGIN(9600);
tag (!. Serial.available()); Mata in någon sak att starta
Serial.Print ("initiera SD-kortet...");
se till att den standard chip välja stiftet är inställd
utgång, även om du inte använder det:
pinMode (10, OUTPUT);
se om kortet är närvarande och kan initieras:
LTask.begin();
Drv.BEGIN();
Serial.println ("kort initierats.");
DHT.BEGIN(); initiera sensor bibliotek
}
void loop()
{
gör en sträng för att samla data logga:
String dataString = "";
flyta t = 0,0;
flyta h = 0,0;
int härda;
om (dht.readHT (& t & h))
{
Temp = (int) t;
dataString += String(temp);
}
Öppna filen. Observera att endast en fil kan vara öppna samtidigt,
så du måste stänga detta en innan du öppnar en annan.
LFile dataFile = Drv.open ("datalog.txt", FILE_WRITE);
om filen är tillgänglig, skriva till det:
om (dataFile)
{
dataFile.println(dataString);
dataFile.close();
skriva ut till den seriella porten alltför:
Serial.println(dataString);
}
om filen inte är öppen, dyker upp ett felmeddelande:
annat
{
Serial.println ("fel öppna datalog.txt");
}
Delay(1000);
}