NRF52832 рдкрд░ рдЧреНрд▓рд╛рд╕ рдкреИрдирд▓ рдХреЗ рд╕рд╛рде рдорд┐рдиреА рд╕реНрд╡рд┐рдЪ рдЯрдЪ рдХрд░реЗрдВ

рдЖрдЬ рдХреЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдПрдХ рдЧреНрд▓рд╛рд╕ рдкреИрдирд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдЯрдЪ рд╕реНрд╡рд┐рдЪ рд╣реИред рдбрд┐рд╡рд╛рдЗрд╕ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИ, рдЖрдпрд╛рдо 42x42 рдорд┐рдореА (рдорд╛рдирдХ рдЧреНрд▓рд╛рд╕ рдкреИрдирд▓ рдореЗрдВ рдЖрдпрд╛рдо 80x80 рдорд┐рдореА рд╣реИрдВ)ред рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реБрдЖ рдерд╛ред



рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк atmega328 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдереЗ, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдпрд╣ рд╕рднреА nRF52832 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред



рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЯрдЪ рдкрд╛рд░реНрдЯ TTP223 рдЪрд┐рдкреНрд╕ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рд╕реЗрдВрд╕рд░ рдПрдХ рдмрд╛рдзрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реЗрд╡рд┐рдд рд╣реИрдВред T24610981 рдЪрд┐рдк рдкрд░ рдПрдХ рдмрдврд╝рд╛рд╡рд╛ рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ CR2477 рдмреИрдЯрд░реА рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рджрд╛рддрд╛рд╢реАрдЯ ред




рдбрд┐рд╡рд╛рдЗрд╕ рдХреНрд╖реЗрддреНрд░-рдкреНрд░рднрд╛рд╡ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╡рд░ рдСрдл рд╕рд░реНрдХрд┐рдЯ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдмрдЯрди рджрдмрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реНрд╡рдпрдВ рдкрд╛рд╡рд░ рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЗрд╡рд╛ рдореЛрдб рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдпреБрдЧреНрдорд┐рдд рд╣реИ, рдмрд┐рдЬрд▓реА рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдлрд╝реИрдХреНрдЯрд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (рдлрд╝реИрдХреНрдЯрд░реА рд░реАрд╕реЗрдЯ) рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред


рд╕реНрдЯреЗрдЯрд╕ рдФрд░ рд╕рд░реНрд╡рд┐рд╕ рдореЛрдб рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2 рдЖрд░рдЬреАрдмреА рдПрд▓рдИрдбреА рд╣реИрдВред рдЬрдм рдЖрдк рдЯрдЪ рдмрдЯрди рдФрд░ рд╕рд░реНрд╡рд┐рд╕ рдореЛрдб рдХреЗ рдзреНрд╡рдирд┐ рд╕рдВрдХреЗрдд рдХреЛ рд╕реНрдкрд░реНрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдХреНрд▓рд┐рдХ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЬреЛ рдПрдорд┐рдЯрд░ рднреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдПрд▓ рдИ рдбреА рдФрд░ рдкреАрдЬреЛ рдПрдорд┐рдЯрд░ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдХрдиреАрдХреА рд╕реЗрдВрд╕рд░ рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬрдХрд░, рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреИрдЯрд░реА рдЪрд╛рд░реНрдЬ рдФрд░ рд╕рд┐рдЧреНрдирд▓ рд╕реНрддрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдмрджрд▓рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ MAJORDOMO рд╣реИ ред


рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдореЛрдб рдореЗрдВ рдЦрдкрдд 7 рдПрдордП (250 рдХреЗрдмреАрдкреАрдПрд╕, 10 рдПрдордПрд╕) рд╣реИ, рдиреАрдВрдж рдХреА рдЦрдкрдд 40 ╬╝A рд╣реИ, рдСрдл-рд▓рд╛рдЗрди рдЦрдкрдд 1 ╬╝A (= рдирд┐рд╖реНрдХреНрд░рд┐рдп рдореЛрдб рдореЗрдВ рдмреВрд╕реНрдЯрд░ рдХрдирд╡рд░реНрдЯрд░ рдХреА рдЦрдкрдд) рд╕реЗ рдХрдо рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ rx, tx, swd рдкреНрд▓рдЧред рдПрдХ рд▓рдШреБ 2x3p рдХрдиреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ 1.27 рдХреА рд╡реГрджреНрдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдбрд╛рдкреНрдЯрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред



рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдбрд┐рд╡рд╛рдЗрд╕ MySensors рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЗрд╕ рд╕реНрдкрд░реНрд╢ рд╕реНрд╡рд┐рдЪ рдХреЛ рд░реЛрд▓рд░ рдЕрдВрдзрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрд╡реЗрджрди рдХреЗрд╡рд▓ рдЖрдкрдХреА рдХрд▓реНрдкрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдм рдПрдХ рдмреЗрдЯреЗ (7 рд╡рд░реНрд╖ рдХреА рдЙрдореНрд░) рдиреЗ рд╕реНрд╡рд┐рдЪ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП 3 рдСрд░реНрдбрд░ рдХрд┐рдП: рдЯреЙрдпрд▓реЗрдЯ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдФрд░ рдмрд╛рдердЯрдм рдХреЗ рд╕рд╛рде рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрд╣ рдордВрдЬрд┐рд▓ рд╕реЗ рдКрдВрдЪрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛), рдПрдХ рдмрд╛рдердЯрдм рдХреЗ рд╕рд╛рде рд╢реМрдЪрд╛рд▓рдп рдХреА рдпрд╛рддреНрд░рд╛ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд▓рдВрдмреЗ рдФрд░ рдЕрдВрдзреЗрд░реЗ рдЧрд▓рд┐рдпрд╛рд░реЗ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдмреЗрдбрд╕рд╛рдЗрдб, рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдиреЗ рдХрдорд░реЗ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд░рд╛рдХреНрд╖рд╕ рддрд┐рддрд░ рдмрд┐рддрд░ рд╣реЛ рдЬрд╛рдПрдВред





рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ 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_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() { //delay(1000); pinMode(31, OUTPUT); digitalWrite(31, HIGH); delay(3000); pinMode(3, INPUT); pinMode(25, OUTPUT); pinMode(26, OUTPUT); pinMode(27, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); pinMode(28, OUTPUT); // bizzer pinMode(2, INPUT); pinMode(9, INPUT); pinMode(10, INPUT); pinMode(29, INPUT); digitalWrite(28, LOW); // off bizzer digitalWrite(27, HIGH); digitalWrite(26, HIGH); digitalWrite(25, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, HIGH); } void before() { //digitalWrite(31, HIGH); NRF_POWER->DCDCEN = 1; //NRF_UART0->ENABLE = 0; analogReadResolution(12); disableNfc(); turnOffAdc(); //wait(2000); 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("Power on|off Node", "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; send(upMsg.set(switch_a)); //wait(200); digitalWrite(6, LOW); wait(10); playSound1(); wait(20); playSound2(); wait(50); } else { switch_a = 0; send(upMsg.set(switch_a)); //wait(200); digitalWrite(6, HIGH); wait(10); playSound2(); wait(20); playSound1(); wait(50); } //sleep_not_pasible = 1; //digitalWrite(25, HIGH); //wait(100); } 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; send(downMsg.set(switch_b)); //wait(200); digitalWrite(25, LOW); wait(10); playSound1(); wait(20); playSound2(); wait(50); } else { switch_b = 0; send(downMsg.set(switch_b)); //wait(200); digitalWrite(25, HIGH); wait(10); playSound2(); wait(20); playSound1(); wait(50); } //sleep_not_pasible = 1; //digitalWrite(6, HIGH); //wait(100); } if (digitalRead(9) == LOW && sens_flag1 == 1) { sens_flag1 = 0; //digitalWrite(6, HIGH); //playSound2(); //wait(50); } if (digitalRead(10) == LOW && sens_flag2 == 1) { sens_flag2 = 0; //digitalWrite(25, HIGH); //playSound2(); //wait(50); } 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) { //   myTone j = 500000 / j; //    j       k += millis(); //          while (k > millis()) { //  ,      digitalWrite(28, HIGH); delayMicroseconds(j); //    i   ┬л1┬╗   j digitalWrite(28, LOW ); delayMicroseconds(j); //    i   ┬л0┬╗   j } } void playSound0() { //wait(500); myTone(1300, 50); //     0,1    2048  wait(20); //  0,1  myTone(1300, 50); wait(50); } void playSound() { //wait(500); myTone(700, 30); //     0,1    2048  wait(10); //  0,1  myTone(700, 30); wait(10); myTone(700, 30); wait(50); //  0,1  //myTone(500, 30); //wait(500); } void playSound1() { //wait(500); myTone(200, 10); //     0,1    2048  wait(10); //  0,1  myTone(400, 5); wait(30); //  0,1  //myTone(500, 30); //wait(500); } void playSound2() { //wait(500); myTone(400, 10); //     0,1    2048  wait(10); //  0,1  myTone(200, 5); wait(30); //  0,1  //myTone(500, 30); //wait(500); } void readBatLev() { //NRF5_ESB_startListening(); wait(200); 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); wait(200); 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 рдореЗрдВ рдХреЗрд╕ рдлрд╛рдЗрд▓


тЖТ рдЧреЗрд░рдмрд░ рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдлрд╛рдЗрд▓реЗрдВ


рдЗрд╕ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, Arduino рдФрд░ Mysensors рд╣рдореЗрд╢рд╛ рд╣рдорд╛рд░реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдЯ рдореЗрдВ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрдПрдВрдЧреЗред

Source: https://habr.com/ru/post/hi453868/


All Articles