
- рдХреЗрдЯрд▓реНрд╕, рддрд░рд╛рдЬреВ, рдЦрд┐рд▓реМрдиреЗ, рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм, рдХреЙрдлреА рдорд╢реАрди ... рдмреНрд▓реВрдЯреВрде рдореЙрдбреНрдпреВрд▓ рдЗрди рдФрд░ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
- рдХреНрдпреЛрдВ?
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдорд░реЗ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВред
- рдУрд╣, рдХреНрдпрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреБрдЫ рд╕рд░рд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?
- рд╣рд╛рдБ! рдФрд░ рдпрд╣ рд▓реЗрдЦ рдмрд╕ рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ
рдпрд╣рд╛рдБ рдореИрдВ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рд╢рдмреНрдж рджреВрдВрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рдЬреАрд╡рди рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ)ред
рдмреНрд▓реВрдЯреВрде
рдПрдХ рд╡рд╛рдпрд░рд▓реЗрд╕ рд░реЗрдбрд┐рдпреЛ рдорд╛рдирдХ рдЬреЛ рдХрдо рджреВрд░реА рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╡реЗрдм рдмреНрд▓реВрдЯреВрде рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреНрд░рдВрдерд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдмреНрд▓реВрдЯреВрде v4.0 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЧреИрдЯ
рдЬреЗрдиреЗрд░рд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдПрдХ рдмреНрд▓реВрдЯреВрде рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдкреЗрдбрд╝ рд╣реИред
рд╕реЗрд╡рд╛рдПрдВ
рдмреНрд▓реВрдЯреВрде рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдЕрдВрджрд░ рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВред рдПрдХ рд╕реЗрд╡рд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рд╕рдВрдмрдВрдзреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХрд╛ рдЕрдкрдирд╛ рдпреВрдЖрдИрдбреА рдФрд░ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИред рдЕрдХреНрд╕рд░, "рдЕрдЬреНрдЮрд╛рдд рд╕реЗрд╡рд╛рдПрдБ" рд╕рд╛рдордиреЗ рдЖрдПрдВрдЧреАред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдмрдбрд╝реЗ рд╣реИрдВред
рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ
рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛ рдХреЗ рдЕрдВрджрд░ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рд╕рджрд╕реНрдпрддрд╛ рднреА рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдлреАрдЪрд░ рдХрд╛ рдЕрдкрдирд╛ рдпреВрдЖрдИрдбреА рднреА рд╣реИред
рдХрд╛рд░реНрдп
рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдЗрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЪреБрдирд╛ рдЬреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рд╡рд┐рднрд┐рдиреНрди рд░рдВрдЧреЛрдВ рдореЗрдВ рдПрд▓ рдИ рдбреА рдХреЛ рд╣рд▓реНрдХрд╛ рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрдВрдж рдХрд░реЗрдВред
- рдПрд▓рдИрдбреА рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧреЛрдВ рдореЗрдВ рдЪрдордХрд╛рдПрдВред
рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрдпрд╛рди рд╕реЗ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдПрдХ рдмреНрд▓реВрдЯреВрде рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдФрд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдШрдЯрдХреЛрдВ
рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХ рд╕реВрдЪреА рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛:
- Arduinoред
- рдмреНрд▓реВрдЯреВрде рдореЙрдбреНрдпреВрд▓ v4.0 (рдПрдЪрдПрдо -10 рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ)ред
- рджреЛ рддреАрди рд░рдВрдЧ рдХреА рдПрд▓.рдИ.рдбреА.
- рдмреЛрд░реНрдб рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкред
- рддрд╛рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ред
- рдкреНрд░рддрд┐рд░реЛрдзреЛрдВред
рдпрд╣ рд╕реВрдЪреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рдЦреНрдд рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк Arduino рдХреЛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдмреНрд▓реВрдЯреВрде рдореЙрдбреНрдпреВрд▓ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд▓реЗрдЦ рдЗрди рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдЧрд╛ред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╕рд╛рд░ рдпрд╣ рд╣реИ: рд╣рдо рдмреНрд▓реВрдЯреВрде рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЛрдб (1 рд╕реЗ 4 рд╕рдорд╛рд╡реЗрд╢реА) рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдб рдорд╛рдиреНрдп рд╣реИ, рддреЛ рддреАрди рд░рдВрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд░рдВрдЧреЛрдВ (рд▓рд╛рд▓, рд╣рд░реЗ, рдиреАрд▓реЗ) рдХреЗ рд╕рд╛рде рдкрд▓рдХреЗрдВ рдЭрдкрдХрддреА рд╣реИрдВред
рдЦрд╛рдирд╛ рдкрдХрд╛рдиреЗ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдПрдХ рдХрд╛рдо рдЖрд░реЗрдЦ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдПрдХ Arduino рд╕реНрдХреЗрдЪ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдиреАрдЪреЗ рдореИрдВ рд╕рд░реНрдХрд┐рдЯ (рдЫрд╡рд┐ 1) рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдорд┐рд▓рд╛ рд╕реНрдХреЗрдЪ рдХреЛрдбред
рдЕрдВрдЬреАрд░ред 1 (рдЕрд╕реЗрдВрдмрд▓реА рдЖрд░реЗрдЦ)
#include <SoftwareSerial.h> int green_pin = 2; int red_pin = 3; int blue_pin = 4; int BLINK_STEPS = 3; int BLINK_DELAY = 100; SoftwareSerial mySerial(7, 8); // RX, TX void setup() { Serial.begin(9600); mySerial.begin(9600); pinMode(green_pin, OUTPUT); pinMode(red_pin, OUTPUT); pinMode(blue_pin, OUTPUT); } int code; void loop() { if (mySerial.available()) { code = mySerial.read(); shutDownAll(); if (code > 0 && code < 5) { analogWrite(code, 200); } if (code == 1) { blinked(); } } } void shutDownAll() { analogWrite(green_pin, 0); analogWrite(red_pin, 0); analogWrite(blue_pin, 0); } void blinked() { int steps = 0; while(steps <= BLINK_STEPS) { analogWrite(green_pin, 200); delay(BLINK_DELAY); analogWrite(green_pin, 0); delay(BLINK_DELAY); analogWrite(red_pin, 200); delay(BLINK_DELAY); analogWrite(red_pin, 0); delay(BLINK_DELAY); analogWrite(blue_pin, 200); delay(BLINK_DELAY); analogWrite(blue_pin, 0); delay(BLINK_DELAY); steps += 1; } }
рдЕрдВрддрд┐рдо рдЦрд╛рдирд╛ рдкрдХрд╛рдиреЗ
рддреЛ, рд╣рдордиреЗ рд╕реНрдХреЗрдЪ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛, рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдмрд┐рдЬрд▓реА рд╕реЗ рдЬреЛрдбрд╝рд╛ред рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ? рд╡реЗрдм рдмреНрд▓реВрдЯреВрде рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдирд╛рдо рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╣рдо рдХрд┐рд╕ рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП "nRF рдХрдиреЗрдХреНрдЯ" рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреНрд▓реВрдЯреВрде рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЦрддреЗ рд╣реИрдВ (рдЫрд╡рд┐ 2)ред
рдЕрдВрдЬреАрд░ред 2 (рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдорд┐рд▓реА)
"CC41-A" рдирд╛рдо рд╡рд╛рд▓рд╛ рдЙрдкрдХрд░рдг рдореЗрд░реА рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реИ рдФрд░ рд╡реНрдпрд░реНрде рдирд╣реАрдВред
рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдЪрд┐рддреНрд░ 3)ред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдореЗрдВ "рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЬрд╛рдирдХрд╛рд░реА" рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдорд┐рд▓реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рд╛рд╣рд╕рдкреВрд░реНрд╡рдХ "рдЕрдЬреНрдЮрд╛рдд рд╕реЗрд╡рд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдВрдЬреАрд░ред 3 (рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реВрдЪреА)
рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ (рдЫрд╡рд┐ 4) рдореЗрдВ, рдЖрдк рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд▓рд┐рдЦрдирд╛ рдФрд░ рдЗрд╕реЗ рдкрдврд╝рдирд╛ред
рдЬрдм рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ "2" рдорд╛рди рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореЗрд░реА рдЬреЛрдбрд╝реА рдХреА рдПрд▓рдИрдбреА рд╣рд░реА рд╣реЛрдиреЗ рд▓рдЧреАред рд▓рдЧрднрдЧ рдПрдХ рд╕рдлрд▓рддрд╛ред рдЕрдм рд╣рдореЗрдВ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
рдЕрдВрдЬреАрд░ред 4 (рдЕрдЬреНрдЮрд╛рдд рд╡рд┐рд╢реЗрд╖рддрд╛)
рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреА рд╕реВрдЪреА рдпрд╣рд╛рдВ рджреА рдЧрдИ рд╣реИ:
- рдЙрдкрдХрд░рдг рдХрд╛ рдирд╛рдоред
- рд╕реЗрд╡рд╛ рдХрд╛ рдпреВ.рдЖрдИ.рдбреА.
- рдпреВрдЖрдИрдбреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВред
рд╡реЗрдм рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдиреЛрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмрд┐рдВрджреБ рд╣реИрдВ:
- рдПрдкреАрдЖрдИ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╣реИред
- рдХреНрд░реЛрдо рдФрд░ рд╕реИрдорд╕рдВрдЧ рдЗрдВрдЯрд░рдиреЗрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
- HTTPS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдореИрдВ HTML рдФрд░ CSS рдХреЛрдб рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдФрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╛ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рд╡реЗрдм рдмреНрд▓реВрдЯреВрде рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдкреНрд░реЙрдорд┐рд╕ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдиреАрдЪреЗ рдореИрдВ рдЪрд░рдгрдмрджреНрдз рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдореЗрдВ рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдирд╛рдо рдФрд░ рд╕реЗрд╡рд╛ рдпреВрдЖрдИрдбреА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рд╕реЗрд╡рд╛ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
navigator.bluetooth.requestDevice({ filters: [ { name: MY_BLUETOOTH_NAME }, { services: [SEND_SERVICE] }, ] })
"рдХрдиреЗрдХреНрдЯ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╡рд┐рдВрдбреЛ рдЦреБрд▓реЗрдЧреА (рдЪрд┐рддреНрд░ 5), рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдХрдиреЗрдХреНрдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдВрдЬреАрд░ред 5 (рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕реБрд▓рдн рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛ)
рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░, "рдбрд┐рд╡рд╛рдЗрд╕" рд╡рд╛рд▓рд╛ рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдЗрд╕реЗ рдПрдХ рдЪрд░ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВред
.then(device => { myDevice = device; return device.gatt.connect(); })
рдЙрд╕рдХреЗ рдмрд╛рдж, "рд╕рд░реНрд╡рд░" рд╡рд╛рд▓рд╛ рдПрдХ рдкреНрд░реЙрдорд┐рд╕ рд╣рдореЗрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо "рд╕рд░реНрд╡рд░" рд╕реЗ "рд╕реЗрд╡рд╛" рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдВ рд╕реЗрд╡рд╛ рдпреВрдЖрдИрдбреА (рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЖрд╡реЗрджрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд╕реВрд╕реА рдХреА рд╣реИ) рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рддрдм рд╣рдореЗрдВ рдПрдХ рд╡рд╛рджрд╛ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ "рд╕реЗрд╡рд╛" рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╣рдо "рд╡рд┐рд╢реЗрд╖рддрд╛" рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдпреВрдЖрдИрдбреА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ (рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЖрд╡реЗрджрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрд╛ рднреА рд╣реИ)ред
.then(server => server.getPrimaryService(SEND_SERVICE)) .then(service => service.getCharacteristic(SEND_SERVICE_CHARACTERISTIC))
рдФрд░ рдХреЗрд╡рд▓ рдЕрдм рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЪрд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдмрдЯрди рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рд▓рдЯрдХрд╛рддрд╛ рд╣реВрдВред рдЙрдирдХреА рдбреЗрдЯрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рдмрдЯрди рдХреНрд▓рд┐рдХ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВ:
const code = Number(event.target.dataset.code); if (code === 1) { toggleLigthCharacteristic.writeValue(Uint8Array.of(code)); return; } toggleLigthCharacteristic.readValue() .then(currentCode => { const convertedCode = currentCode.getUint8(0); toggleLigthCharacteristic.writeValue( Uint8Array.of(convertedCode === code ? 0 : code) ); });
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ uint8 рд╕рд░рдгреА рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЬреЛ рдХреЛрдб рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЙрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Uint8Array рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдХреЛрдб 1 рдПрд▓рдИрдбреА рдХреЛ рддреАрди рд░рдВрдЧреЛрдВ рдореЗрдВ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрд▓рдИрдбреА рдХреЛ рдХреИрд╕реЗ рдмрдВрдж рдХрд░реЗрдВ рдпрджрд┐ рдХреЛрдб 3 рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрд▓рдИрдбреА рдЕрднреА рднреА рдЪрд╛рд▓реВ рд╣реИ? рдпрд╛ рдПрдХ рдЕрд▓рдЧ рд░рдВрдЧ рдЪрд╛рд▓реВ рдХрд░реЗрдВ?
рдореИрдВ рдЙрд╕ рдореВрд▓реНрдп рдХреЛ рдкрдврд╝рддрд╛ рд╣реВрдВ рдЬреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдЗрд╕реЗ getUint8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ рдФрд░, рдпрджрд┐ рдХреЛрдб рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рдЕрдорд╛рдиреНрдп рдорд╛рди рднреЗрдЬреЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 0)ред рдпрджрд┐ рдорд╛рди рдорд╛рдиреНрдп рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рд╕рд░рдгреА рдпреВрдирд┐рдЯ 8 рдореЗрдВ рдмрджрд▓ рджреВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд▓рд┐рдЦреВрдВрдЧрд╛ред
рдХрд╛рд░реНрдп рдХреЗ рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХреИрд╕реЗ рдХрд░реЗрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ" рдмрдЯрди рдкрд░ рдПрдХ рдЗрд╡реЗрдВрдЯрд▓рд┐рд╕реНрдЯ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдмреНрд▓реВрдЯреВрде рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╡реЗрдВрдЯрд▓рд┐рд╕реНрдЯ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдирд┐рдпрдВрддреНрд░рдг рдмрдЯрди рдЫрд┐рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛ рдЪрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
myDevice.gatt.disconnect(); toggleItemsEventListeners('removeEventListener'); toggleButtonsVisible(); toggleLigthCharacteristic = undefined; myDevice = undefined;
рдкрд░рд┐рдгрд╛рдо
рд╣рдордиреЗ рдПрдХ рд╕рд░рд▓ рд╡реЗрдм рдкреЗрдЬ рдмрдирд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдмреНрд▓реВрдЯреВрде рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдФрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдФрд░ рдРрд╕реЗ рдЙрдкрдХрд░рдг рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЗрдХрдЯреНрдард╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡реЗ рдХреЗрд╡рд▓ рдЖрдкрдХреА рдХрд▓реНрдкрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИрдВ!
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ