Added move sensor to smallroom
This commit is contained in:
@@ -11,7 +11,8 @@
|
|||||||
#define LED_BLUE D5 //GPIO14
|
#define LED_BLUE D5 //GPIO14
|
||||||
#define LED_GREEN D6 //GPIO12
|
#define LED_GREEN D6 //GPIO12
|
||||||
#define LED_RED D7 //GPIO13
|
#define LED_RED D7 //GPIO13
|
||||||
#define PWR_SENS D8 //GPIO13
|
#define PWR_SENS D8 //GPIO15
|
||||||
|
#define MOVE_SENS D0 //GPIO16
|
||||||
|
|
||||||
Adafruit_HTU21DF htu = Adafruit_HTU21DF();
|
Adafruit_HTU21DF htu = Adafruit_HTU21DF();
|
||||||
WiFiClient espClient;
|
WiFiClient espClient;
|
||||||
@@ -29,6 +30,8 @@ bool izm = false;
|
|||||||
unsigned long cRun;
|
unsigned long cRun;
|
||||||
int minCnt = 0;
|
int minCnt = 0;
|
||||||
int measCnt = 1;
|
int measCnt = 1;
|
||||||
|
uint8_t mv, oldmv;
|
||||||
|
uint16_t adc, oldadc, delta;
|
||||||
|
|
||||||
void reconnect();
|
void reconnect();
|
||||||
void publishMin();
|
void publishMin();
|
||||||
@@ -64,6 +67,7 @@ void setup() {
|
|||||||
pinMode(LED_BLUE, OUTPUT);
|
pinMode(LED_BLUE, OUTPUT);
|
||||||
pinMode(LED_RED, OUTPUT);
|
pinMode(LED_RED, OUTPUT);
|
||||||
pinMode(PWR_SENS, OUTPUT);
|
pinMode(PWR_SENS, OUTPUT);
|
||||||
|
pinMode(MOVE_SENS, INPUT);
|
||||||
digitalWrite(LED_GREEN, LOW);
|
digitalWrite(LED_GREEN, LOW);
|
||||||
digitalWrite(LED_BLUE, LOW);
|
digitalWrite(LED_BLUE, LOW);
|
||||||
digitalWrite(LED_RED, LOW);
|
digitalWrite(LED_RED, LOW);
|
||||||
@@ -93,23 +97,32 @@ void loop() {
|
|||||||
}
|
}
|
||||||
client.loop();
|
client.loop();
|
||||||
|
|
||||||
if(cRun + 999 < millis()){
|
if(cRun + 99 < millis()){
|
||||||
cRun = millis();
|
cRun = millis();
|
||||||
|
adc = analogRead(A0);
|
||||||
|
mv = digitalRead(MOVE_SENS);
|
||||||
|
if(mv != oldmv){
|
||||||
|
oldmv = mv;
|
||||||
|
client.publish("/home/smallroom/light", mv == 0 ? "0" : "1");
|
||||||
|
};
|
||||||
|
if(abs(adc - oldadc) > delta){
|
||||||
|
//publish
|
||||||
|
}
|
||||||
if(measCnt == 0){
|
if(measCnt == 0){
|
||||||
temp += (htu.readTemperature() - temp) / 6.0f;
|
temp += (htu.readTemperature() - temp) / 6.0f;
|
||||||
rel_hum += (htu.readHumidity() - rel_hum) / 6.0f;
|
rel_hum += (htu.readHumidity() - rel_hum) / 6.0f;
|
||||||
digitalWrite(PWR_SENS, LOW);
|
digitalWrite(PWR_SENS, LOW);
|
||||||
}
|
}
|
||||||
if(++measCnt == 29){
|
if(++measCnt == 299){
|
||||||
digitalWrite(PWR_SENS, HIGH);
|
digitalWrite(PWR_SENS, HIGH);
|
||||||
measCnt = 0;
|
measCnt = 0;
|
||||||
}
|
}
|
||||||
//Serial.print("T: ");Serial.print(temp);Serial.print("\tH: ");Serial.println(rel_hum);
|
//Serial.print("T: ");Serial.print(temp);Serial.print("\tH: ");Serial.println(rel_hum);
|
||||||
if(++minCnt == 59){
|
if(++minCnt == 599){
|
||||||
publishMin();
|
publishMin();
|
||||||
minCnt = 0;
|
minCnt = 0;
|
||||||
}
|
}
|
||||||
if(minCnt % 10 == 0) publishSec();
|
if(minCnt % 100 == 0) publishSec();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,6 +136,7 @@ void reconnect() {
|
|||||||
//Serial.println("connected"); // "подключен"
|
//Serial.println("connected"); // "подключен"
|
||||||
// подписываемся или переподписываемся на топик;
|
// подписываемся или переподписываемся на топик;
|
||||||
// можно подписаться не только на один, а на несколько топиков
|
// можно подписаться не только на один, а на несколько топиков
|
||||||
|
client.subscribe("home/smallroom/ldelta");
|
||||||
} else {
|
} else {
|
||||||
//Serial.print("failed, rc="); // "подключение не удалось"
|
//Serial.print("failed, rc="); // "подключение не удалось"
|
||||||
//Serial.print(client.state());
|
//Serial.print(client.state());
|
||||||
@@ -146,6 +160,8 @@ void publishMin()
|
|||||||
dtostrf(rel_hum, 6, 1, strFVal);
|
dtostrf(rel_hum, 6, 1, strFVal);
|
||||||
client.publish("/home/smallroom/rel_hum", strFVal);
|
client.publish("/home/smallroom/rel_hum", strFVal);
|
||||||
}
|
}
|
||||||
|
itoa(adc, strFVal, 10);
|
||||||
|
client.publish("/home/smallroom/light", strFVal);
|
||||||
// itoa(cRun, strFVal, 10);
|
// itoa(cRun, strFVal, 10);
|
||||||
// client.publish("/home/smallroom/millis", strFVal);
|
// client.publish("/home/smallroom/millis", strFVal);
|
||||||
//digitalWrite(LED_BLUE, LOW);
|
//digitalWrite(LED_BLUE, LOW);
|
||||||
@@ -170,6 +186,8 @@ void publishSec()
|
|||||||
client.publish("/hometest/smallroom/RSSI", strFVal);
|
client.publish("/hometest/smallroom/RSSI", strFVal);
|
||||||
itoa(cRun, strFVal, 10);
|
itoa(cRun, strFVal, 10);
|
||||||
client.publish("/hometest/smallroom/millis", strFVal);
|
client.publish("/hometest/smallroom/millis", strFVal);
|
||||||
|
itoa(adc, strFVal, 10);
|
||||||
|
client.publish("/home/smallroom/light", strFVal);
|
||||||
//digitalWrite(LED_GREEN, LOW);
|
//digitalWrite(LED_GREEN, LOW);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user