Added move sensor to smallroom
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user