#include "DHT.h"
#include "EEPROM.h"
#define DHTPIN 50
#define DHTTYPE DHT22
int addr = 0;
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
dht.begin();
}
void loop()
{
int h = dht.readHumidity() * 10;
int t = dht.readTemperature() * 10;
if (isnan(t) && isnan(h))
{
EEPROM.write(addr, highByte(h));
addr = addr + 1;
if (addr == 2048)
Serial.end();
EEPROM.write(addr, lowByte(h));;
addr = addr + 1;
if (addr == 2048)
Serial.end();
EEPROM.write(addr, highByte(t));
addr = addr + 1;
if (addr == 2048)
Serial.end();
EEPROM.write(addr, lowByte(t));
addr = addr + 1;
if (addr == 2048)
Serial.end();
}
delay(5000);
}
Wenn h als float 41,7 wäre, dann ist der int in diesem Fall 417, wobei 4 das highByte und 17 das lowByte ist?
Dann wird bei addr = 0 eine 4 gespeichert, bei addr = 1 eine 17?
Beim Auslesen muss ich zwei Byte nacheinander lesen und daraus mit word() einen int machen, den ich im
Serial Monitor ausgeben kann?