New BigRoom MyS

This commit is contained in:
2021-02-07 13:21:57 +03:00
parent ff707e144f
commit c95cbce094
8 changed files with 229 additions and 0 deletions

98
BigRoomMyS/src/main.cpp Normal file
View File

@@ -0,0 +1,98 @@
#include <Arduino.h>
#include <Wire.h>
#include <AHT10.h>
#define MY_DEBUG
#define MY_RADIO_RF24
#define MY_RF24_CHANNEL (105)
#define MY_RF24_PA_LEVEL RF24_PA_MAX
#define MY_DEFAULT_ERR_LED_PIN (4) // Error led pin
#define MY_DEFAULT_RX_LED_PIN (5) // Receive led pin
#define MY_DEFAULT_TX_LED_PIN (6) // the PCB, on board LED
#include <MySensors.h>
#define MOTION (8)
void presentation();
void sendDataI(MyMessage msg, uint32_t status);
void sendDataF(MyMessage msg, float status);
MyMessage msgTemp(0, V_TEMP);
MyMessage msgHum(1, V_HUM);
MyMessage msgMove(2, V_TRIPPED);
MyMessage msgCO2(3, V_VAR1);
MyMessage msgLight(3, V_VAR2);
MyMessage msgTimeWork(3, V_VAR3);
MyMessage msgTimeMotion(3, V_VAR4);
void setup() {
pinMode(MOTION, INPUT_PULLUP);
}
void loop() {
static uint32_t cRun = millis();
uint16_t LightLev = analogRead(A0);
if((cRun + 999) < millis()){
cRun = millis();
sendDataI(msgTimeWork, cRun);
}
}
void presentation()
{
sendSketchInfo("MidRoom", "1.0");
present(0, S_TEMP, "Temp");
present(1, S_HUM, "Humid");
present(2, S_MOTION, "Motion");
present(3, S_CUSTOM, "CO2_Light_Time");
}
void sendDataI(MyMessage msg, uint32_t val)
{
bool send_data = false;
uint8_t count = 0;
while(send_data == false){
count++;
send_data = send(msg.set(val), true);
if(!send_data)
wait(500, C_SET, msg.type);
if ((count == 3) && (send_data == 0)){ // Если сделано 3 попытки и нет подтверждения отправки
count = 0; // Обнуляем счётчик
send_data = 1; // Выходим из цикла
}
}
}
void sendDataF(MyMessage msg, float val)
{
bool send_data = false;
uint8_t count = 0;
while(send_data == false){
count++;
send_data = send(msg.set(val, 2), true);
if(!send_data)
wait(500, C_SET, msg.type);
if ((count == 3) && (send_data == 0)){ // Если сделано 3 попытки и нет подтверждения отправки
count = 0; // Обнуляем счётчик
send_data = 1; // Выходим из цикла
}
}
}
void sendDataI(MyMessage msg, bool val)
{
bool send_data = false;
uint8_t count = 0;
while(send_data == false){
count++;
send_data = send(msg.set(val), true);
if(!send_data)
wait(500, C_SET, msg.type);
if ((count == 3) && (send_data == 0)){ // Если сделано 3 попытки и нет подтверждения отправки
count = 0; // Обнуляем счётчик
send_data = 1; // Выходим из цикла
}
}
}