Added move sensor to smallroom

This commit is contained in:
2020-11-08 18:23:07 +03:00
parent 23ccecb0b7
commit 65d54b609e

View File

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