#include "HC4067.h"
//#include <DallasTemperature.h>
#include "Wire.h"
#include <DallasTemperature.h>
#include <Thermistor.h>
#include <NTC_Thermistor.h>
#include <SmoothThermistor.h>
#define ONE_WIRE_BUS 25
float realtemp1 = 0;
float realtemp2 = 0;
#define buzzer 15 // 5//D1 15//D8
#define inICs0 12
#define inICs1 14
#define inICs2 27
#define inICs3 26
#define sigPin 25
#define dallas 0
#define led2 14
#define relay 1
#define health 2
#define anlgsens 3
#define btn1 4
#define btn2 5
#define SENSOR_PIN 25
#define REFERENCE_RESISTANCE 8000
#define NOMINAL_RESISTANCE 100000
#define NOMINAL_TEMPERATURE 25
#define B_VALUE 3950
#define SMOOTHING_FACTOR 5
bool relaystatus = HIGH;
int lop = 0;
bool tsthealth = LOW;
bool lastLed2 = LOW;
int lasthealth = 0;
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
HC4067 mp(12,14,26,27,13);
Thermistor* thermistor = NULL;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Alirz Test is passed!");
mp.setChannel(dallas);
sensors.begin();
mp.setChannel(anlgsens);
Thermistor* originThermistor = new NTC_Thermistor(
SENSOR_PIN,
REFERENCE_RESISTANCE,
NOMINAL_RESISTANCE,
NOMINAL_TEMPERATURE,
B_VALUE
);
thermistor = new SmoothThermistor(originThermistor, SMOOTHING_FACTOR);
}
void loop() {
if(lop>=32000)
{
lop=0;
}
else
{
lop++;
Serial.println(lop);
}
//Stage01
mp.setChannel(dallas);
sensors.requestTemperatures();
realtemp1=sensors.getTempCByIndex(0);
Serial.print("Dallas sensor value is: ");
Serial.println(realtemp1);
//Stage02
mp.setChannel(anlgsens);
realtemp2= thermistor->readCelsius();
Serial.print("Analog sensor value is: ");
Serial.println(realtemp2);
//Stage03
if(lop==(lasthealth+5))
{
Serial.println("25 Loops has passed!");
lasthealth=lop;
mp.setChannel(health);
digitalWrite(sigPin, tsthealth);
digitalWrite(sigPin, tsthealth);
tsthealth=!tsthealth;
mp.setChannel(buzzer);
tone(sigPin,1200,150);
delay(100);
}
//Stage04
mp.setChannel(btn1);
if(digitalRead(sigPin)==HIGH)
{
Serial.println("Button1 is pushed!");
mp.setChannel(relay);
digitalWrite(sigPin,!relaystatus);
relaystatus=!relaystatus;
mp.setChannel(buzzer);
tone(sigPin,1900,250);
delay(250);
}
//Stage05
mp.setChannel(btn2);
if(digitalRead(sigPin)==HIGH)
{
Serial.println("Button2 is pushed!");
mp.setChannel(led2);
digitalWrite(sigPin,!(lastLed2));
lastLed2=!lastLed2;
mp.setChannel(buzzer);
tone(sigPin,2900,250);
delay(250);
}
//Stage0
}
Loading
cd74hc4067
cd74hc4067