This compiles:
#include <OneWire.h>
#include <DallasTemperature.h>
//TODO: Investigate the ~ in beside the port number in the board (e.g., ~3 vs 4)
#define ONE_WIRE_BUS 4 //temperature on port 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer = { 0x28, 0x43, 0xC2, 0x03, 0x04, 0x00, 0x00, 0x85 };
volatile boolean r1IsEvent;
volatile boolean r2IsEvent;
volatile int pcounter;
int RELAY = 13; //pin for the RELAY
void setup(void)
{
Serial.begin(9600);
sensors.begin();
sensors.setResolution(insideThermometer, 10);
r1IsEvent = false;
r2IsEvent = false;
pcounter = 0;
//attach receiver one to pin 2
attachInterrupt(0, receiverOneChanged, FALLING);
//attach receiver one to pin 3
attachInterrupt(1, receiverTwoChanged, FALLING);
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
Serial.print("Error getting temperature");
} else {
Serial.print("C: ");
Serial.print(tempC);
Serial.print(" F: ");
Serial.print(DallasTemperature::toFahrenheit(tempC));
}
}
void loop(void)
{
delay(4000);
Serial.print("Here we go!!!...\n\r");
sensors.requestTemperatures();
Serial.print("The temperature is: \n\r");
printTemperature(insideThermometer);
Serial.print("\n\r");
Serial.print("We got it!!!!\n\r");
Serial.print("\n\r");
Serial.print("\n\r");
Serial.print("\n\r");
}
void receiverOneChanged(){
r1IsEvent = true;
if(r2IsEvent){
r1IsEvent = false;
r2IsEvent = false;
//person exit
pcounter = pcounter - 1;
if(pcounter == 0){
digitalWrite(RELAY, LOW);
}
}
}
void receiverTwoChanged(){
r2IsEvent = true;
if(r1IsEvent){
if(pcounter == 0){
digitalWrite(RELAY, HIGH);
}
r1IsEvent = false;
r2IsEvent = false;
//person entered
pcounter = pcounter + 1;
}
}
By the way, the ~ on pins denotes that they are PWM capable.