āĻāĻāĻā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĨ¤ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻā§āĻ° āĻĒā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ¸ā§āĻāĻāĨ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻāĻŽāĻĒā§āĻ¯āĻžāĻā§āĻ, 42x42 āĻŽāĻŋāĻŽāĻŋ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ (āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻā§āĻ˛āĻžāĻ¸ āĻĒā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻŽāĻžāĻ¤ā§āĻ°āĻž 80x80 āĻŽāĻŋāĻŽāĻŋ)āĨ¤ āĻāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻ¤āĻŋāĻšāĻžāĻ¸ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ āĻ¨ā§āĻ āĻāĻā§, āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻāĻ āĻŦāĻāĻ° āĻāĻā§āĨ¤
āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ atmega328 āĻŽāĻžāĻāĻā§āĻ°ā§āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°ā§ āĻāĻŋāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ nRF52832 āĻŽāĻžāĻāĻā§āĻ°ā§āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋāĻ° āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ
āĻāĻļāĻāĻŋ TTP223 āĻāĻŋāĻĒāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ˛ā§āĨ¤ āĻāĻāĻ¯āĻŧ āĻ¸ā§āĻ¨ā§āĻ¸āĻ° āĻāĻ āĻŦāĻžāĻ§āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻ°āĻŋāĻŦā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ. āĻāĻāĻāĻŋ CR2477 āĻŦā§āĻ¯āĻžāĻāĻžāĻ°āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻžāĻ˛āĻŋāĻ¤, TPS610981 āĻāĻŋāĻĒā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¸ā§āĻ āĻāĻ¨āĻāĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ |
āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻĢāĻŋāĻ˛ā§āĻĄ-āĻāĻĢā§āĻā§āĻ āĻā§āĻ°āĻžāĻ¨āĻāĻŋāĻ¸ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ°-āĻ āĻĢ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĨ¤ āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒāĻžāĻ¨ā§āĻ° āĻĒāĻ°ā§, āĻŽāĻžāĻāĻā§āĻ°ā§āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ° āĻ¨āĻŋāĻā§āĻ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻā§ āĻŦāĻžāĻ§āĻž āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŽā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¤āĻžāĻŽāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻāĻŽāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻŋ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž, āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻāĻŦāĻ āĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋ āĻ¸ā§āĻāĻŋāĻāĻ¸ā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻž)āĨ¤
āĻ°āĻžāĻā§āĻ¯ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŽā§āĻĄ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ 2 rgb LED āĻāĻā§āĨ¤ āĻāĻžāĻ āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŽā§āĻĄā§āĻ° āĻļāĻŦā§āĻĻ āĻāĻā§āĻāĻŋāĻ¤ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻŋāĻ āĻ
āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻā§ āĻāĻŽāĻŋāĻāĻžāĻ°āĻ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ LEDs āĻāĻŦāĻ piezo emitter āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻŦāĻŋāĻŦā§āĻāĻ¨āĻžāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻāĻžāĻ˛ā§ āĻāĻŦāĻ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻ¸ā§āĻ¨ā§āĻ¸āĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻšā§āĻŽ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ; āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻšā§āĻŽ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛āĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŦā§āĻ¯āĻžāĻāĻžāĻ°āĻŋ āĻāĻžāĻ°ā§āĻ āĻāĻŦāĻ āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ āĻ¸ā§āĻ¤āĻ° āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻŽāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻž
āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻŽāĻŋāĻ āĻŽā§āĻĄā§ āĻāĻ°āĻ āĻšāĻ˛ 7mA (250kbit, 10ms), āĻā§āĻŽā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ°āĻ āĻšāĻ˛ 40ÂĩA, āĻ āĻĢ āĻ¸ā§āĻā§āĻā§ āĻāĻ°āĻ āĻšāĻ˛ 1ÂĩA āĻāĻ° āĻāĻŽ (= âāĻ āĻ˛āĻ¸â āĻŽā§āĻĄā§ āĻŦā§āĻ¸ā§āĻ āĻāĻ¨āĻāĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ°āĻ)āĨ¤ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ Rx, tx, swd āĻāĻžāĻ¨ā§āĻā§āĻāĻ° āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻā§āĨ¤ 2 āĻĒāĻŋāĻ āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻˇā§āĻĻā§āĻ° 3x1.27p āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§
āĻā§āĻ¸āĻāĻŋ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤āĻāĻžāĻŦā§ āĻāĻāĻāĻŋ SLA āĻĒā§āĻ°āĻŋāĻ¨ā§āĻāĻžāĻ°ā§ āĻŽā§āĻĻā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻā§āĻˇā§āĻĻā§āĻ°āĻžāĻā§āĻ¤āĻŋāĻ°, āĻā§āĻ¸āĻāĻŋ āĻā§āĻ āĻšāĻ¤ā§ āĻĻā§āĻāĻž āĻā§āĻā§, āĻāĻ āĻŽā§āĻĻā§āĻ°āĻŖ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧāĻ¸āĻā§āĻāĻ¤āĨ¤
āĻŽā§āĻĻā§āĻ°āĻŋāĻ¤ āĻŽāĻĄā§āĻ˛ āĻĻā§āĻā§āĻ¨
āĻā§āĻŽā§āĻŦāĻ āĻā§āĻ¸ āĻāĻŦāĻ āĻŦā§āĻ¯āĻžāĻāĻžāĻ°āĻŋ āĻāĻŽā§āĻĒāĻžāĻ°ā§āĻāĻŽā§āĻ¨ā§āĻ āĻāĻāĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ āĻžāĻ˛ā§ āĻšāĻ¯āĻŧ.
āĻāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻš āĻāĻŋāĻĄāĻŋāĻ:
āĻ¯āĻžāĻ°āĻž āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯:
Arduino IDE-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ°ā§āĻ˛āĻžāĻ° āĻŦā§āĻ˛āĻžāĻāĻ¨ā§āĻĄ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ¸ā§āĻāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻā§āĻĄ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨
āĻāĻ°āĻĄā§āĻāĻ¨ā§ āĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻŋāĻ
int8_t timer_status = 0;
boolean sens_flag1 = 0;
boolean sens_flag2 = 0;
boolean switch_a = 0;
boolean switch_b = 0;
uint16_t temp;
float vcc;
int battery;
int old_battery;
uint32_t oldmillis;
uint32_t newmillis;
uint32_t interrupt_time;
uint32_t SLEEP_TIME = 7000;
uint32_t SLEEP_TIME_W;
uint32_t SLEEP_TIME_W2;
int NrfRSSI;
uint16_t NrfRSSI2;
boolean wait_off;
//#define MY_DEBUG
#define MY_DISABLED_SERIAL
#define MY_RADIO_NRF5_ESB
#define MY_PASSIVE_NODE
#define MY_NODE_ID 120
#define MY_PARENT_NODE_ID 0
#define MY_PARENT_NODE_IS_STATIC
#define MY_TRANSPORT_UPLINK_CHECK_DISABLED
#define POWER_CHILD_ID 110
#define UP_POWER_SWITCH_ID 1
#define DOWN_POWER_SWITCH_ID 2
#define CHILD_ID_nRF52_RSSI_RX 3
#define BAT_COOF 0.0092957746478873
#define BAT_MIN 200
#define BAT_MAX 290
#include <MySensors.h>
MyMessage upMsg(UP_POWER_SWITCH_ID, V_STATUS);
MyMessage downMsg(DOWN_POWER_SWITCH_ID, V_STATUS);
MyMessage powerMsg(POWER_CHILD_ID, V_VAR1);
MyMessage msgRF52RssiReceiv(CHILD_ID_nRF52_RSSI_RX, V_VAR1);
void preHwInit() {
pinMode(31, OUTPUT); //power management pin
digitalWrite(31, HIGH);
delay(3000);
pinMode(3, INPUT); // on off mode button
pinMode(25, OUTPUT); // sens1 led
pinMode(26, OUTPUT); // sens1 led
pinMode(27, OUTPUT); // sens1 led
pinMode(6, OUTPUT); // sens21 led
pinMode(7, OUTPUT); // sens2 led
pinMode(8, OUTPUT); // sens2 led
pinMode(28, OUTPUT); // bizzer
pinMode(2, INPUT); // common interrupt for touch sensors
pinMode(9, INPUT); // touch sensors1
pinMode(10, INPUT); //touch sensors2
pinMode(29, INPUT); // battery
digitalWrite(28, LOW);
digitalWrite(27, HIGH);
digitalWrite(26, HIGH);
digitalWrite(25, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
}
void before()
{
NRF_POWER->DCDCEN = 1;
analogReadResolution(12);
disableNfc();
turnOffAdc();
digitalWrite(25, LOW);
digitalWrite(6, LOW);
wait(200);
digitalWrite(25, HIGH);
digitalWrite(6, HIGH);
wait(100);
playSound0();
wait(100);
digitalWrite(25, LOW);
digitalWrite(6, LOW);
wait(200);
digitalWrite(25, HIGH);
digitalWrite(6, HIGH);
wait(3000);
digitalWrite(27, LOW);
digitalWrite(8, LOW);
wait(200);
digitalWrite(27, HIGH);
digitalWrite(8, HIGH);
wait(400);
digitalWrite(6, LOW);
digitalWrite(25, LOW);
wait(200);
digitalWrite(6, HIGH);
digitalWrite(25, HIGH);
wait(400);
digitalWrite(26, LOW);
digitalWrite(7, LOW);
wait(200);
digitalWrite(26, HIGH);
digitalWrite(7, HIGH);
wait(1000);
digitalWrite(26, LOW);
digitalWrite(7, LOW);
}
void setup()
{
digitalWrite(26, HIGH);
digitalWrite(7, HIGH);
wait(50);
playSound();
wait(2000);
readBatLev();
wait(200);
SLEEP_TIME_W = SLEEP_TIME;
}
void presentation()
{
sendSketchInfo("EFEKTA ON|OFF NODE 2CH", "1.0");
wait(100);
present(POWER_CHILD_ID, S_CUSTOM, "BATTERY DATA");
wait(100);
present(UP_POWER_SWITCH_ID, S_BINARY, "UP SWITCH");
wait(100);
present(DOWN_POWER_SWITCH_ID, S_BINARY, "DOWN SWITCH");
}
void loop()
{
if (sens_flag1 == 0 && sens_flag2 == 0) {
if (switch_a == 0 && switch_b == 0) {
timer_status = sleep(digitalPinToInterrupt(2), RISING, digitalPinToInterrupt(3), RISING, 3600000, false);
wait_off = 1;
} else {
//oldmillis = millis();
timer_status = sleep(digitalPinToInterrupt(2), RISING, digitalPinToInterrupt(3), RISING, SLEEP_TIME_W, false);
wait_off = 0;
}
}
if (timer_status == 3) {
wait(100);
digitalWrite(27, LOW);
digitalWrite(8, LOW);
wait(2000);
digitalWrite(27, HIGH);
digitalWrite(8, HIGH);
wait(100);
digitalWrite(31, LOW);
}
if (timer_status == 2) {
if (digitalRead(9) == HIGH && sens_flag1 == 0 && switch_b == 0) {
sens_flag1 = 1;
if (switch_a == 0) {
oldmillis = millis();
SLEEP_TIME_W = SLEEP_TIME;
switch_a = 1;
digitalWrite(6, LOW);
wait(10);
playSound1();
wait(20);
playSound2();
wait(50);
send(upMsg.set(switch_a));
wait(200);
} else {
switch_a = 0;
digitalWrite(6, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(upMsg.set(switch_a));
wait(200);
}
}
if (digitalRead(10) == HIGH && sens_flag2 == 0 && switch_a == 0) {
sens_flag2 = 1;
if (switch_b == 0) {
oldmillis = millis();
SLEEP_TIME_W = SLEEP_TIME;
switch_b = 1;
digitalWrite(25, LOW);
wait(10);
playSound1();
wait(20);
playSound2();
wait(50);
send(downMsg.set(switch_b));
wait(200);
} else {
switch_b = 0;
digitalWrite(25, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(downMsg.set(switch_b));
wait(200);
}
}
if (digitalRead(9) == LOW && sens_flag1 == 1) {
sens_flag1 = 0;
}
if (digitalRead(10) == LOW && sens_flag2 == 1) {
sens_flag2 = 0;
}
if (switch_a == 1 || switch_b == 1) {
if (wait_off == 0) {
newmillis = millis();
wait(10);
SLEEP_TIME_W2 = SLEEP_TIME_W;
wait(10);
interrupt_time = newmillis - oldmillis;
wait(10);
SLEEP_TIME_W = SLEEP_TIME_W2 - interrupt_time;
wait(10);
Serial.print("WAS IN A SLEEP: ");
Serial.print(newmillis - oldmillis);
Serial.println(" MILLISECONDS");
if (SLEEP_TIME_W < 1000) {
if (switch_a == 1) {
switch_a = 0;
digitalWrite(6, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(upMsg.set(switch_a));
wait(200);
}
if (switch_b == 1) {
switch_b = 0;
digitalWrite(25, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(downMsg.set(switch_b));
wait(200);
}
SLEEP_TIME_W = SLEEP_TIME;
wait(50);
}
Serial.println(SLEEP_TIME);
Serial.println(SLEEP_TIME_W);
Serial.println(SLEEP_TIME_W2);
Serial.print("GO TO SLEEP FOR: ");
Serial.print(SLEEP_TIME_W);
Serial.println(" MILLISECONDS");
}
oldmillis = millis();
}
}
if (timer_status == -1) {
if (switch_a == 1 || switch_b == 1) {
if (switch_a == 1) {
switch_a = 0;
digitalWrite(6, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(upMsg.set(switch_a));
wait(200);
}
if (switch_b == 1) {
switch_b = 0;
digitalWrite(25, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(downMsg.set(switch_b));
wait(200);
}
} else {
readBatLev();
}
}
}
void disableNfc() {
NRF_NFCT->TASKS_DISABLE = 1;
NRF_NVMC->CONFIG = 1;
NRF_UICR->NFCPINS = 0;
NRF_NVMC->CONFIG = 0;
}
void turnOffAdc() {
if (NRF_SAADC->ENABLE) {
NRF_SAADC->TASKS_STOP = 1;
while (NRF_SAADC->EVENTS_STOPPED) {}
NRF_SAADC->ENABLE = 0;
while (NRF_SAADC->ENABLE) {}
}
}
void myTone(uint32_t j, uint32_t k) {
j = 500000 / j;
k += millis();
while (k > millis()) {
digitalWrite(28, HIGH); delayMicroseconds(j);
digitalWrite(28, LOW ); delayMicroseconds(j);
}
}
void playSound0() {
myTone(1300, 50);
wait(20);
myTone(1300, 50);
wait(50);
}
void playSound() {
myTone(700, 30);
wait(10);
myTone(700, 30);
wait(10);
myTone(700, 30);
wait(50);
}
void playSound1() {
myTone(200, 10);
wait(10);
myTone(400, 5);
wait(30);
}
void playSound2() {
myTone(400, 10);
wait(10);
myTone(200, 5);
wait(30);
}
void readBatLev() {
temp = analogRead(29);
vcc = temp * 0.0033 * 100;
battery = map((int)vcc, BAT_MIN, BAT_MAX, 0, 100);
if (battery < 0) {
battery = 0;
}
if (battery > 100) {
battery = 100;
}
sendBatteryLevel(battery, 1);
wait(2000, C_INTERNAL, I_BATTERY_LEVEL);
send(powerMsg.set(temp));
wait(200);
NrfRSSI = transportGetReceivingRSSI();
NrfRSSI2 = map(NrfRSSI, -85, -40, 0, 100);
if (NrfRSSI2 < 0) {
NrfRSSI2 = 0;
}
if (NrfRSSI2 > 100) {
NrfRSSI2 = 100;
}
send(msgRF52RssiReceiv.set(NrfRSSI2));
wait(200);
}
stl-āĻ āĻā§āĻ¸ āĻĢāĻžāĻāĻ˛-
Gerber PCB āĻĢāĻžāĻāĻ˛ -
āĻāĻ āĻŦāĻŋāĻāĻžāĻļ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻĒā§āĻ°āĻļā§āĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯, Arduinos āĻāĻŦāĻ Mysensors-āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻ
āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻā§āĻ¯āĻžāĻā§ āĻ°ā§āĻ¸āĻāĻŋāĻ āĻāĻ¸āĻŦā§ -
āĻāĻ¤ā§āĻ¸: www.habr.com