เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบŠเบปเบกเป€เบŠเบตเบเบœเบนเป‰เบญเปˆเบฒเบ™เบ—เบธเบเบ„เบปเบ™เบ‚เบญเบ‡เบžเบฒเบ "DIY เบซเบผเบทเป€เบฎเบฑเบ”เบ”เป‰เบงเบเบ•เบปเบงเป€เบญเบ‡" เปƒเบ™ Habr! เบšเบปเบ”เบ„เบงเบฒเบกเปƒเบ™เบกเบทเป‰เบ™เบตเป‰เบˆเบฐเบเปˆเบฝเบงเบเบฑเบšเบ›เบธเปˆเบกเบชเปเบฒเบœเบฑเบ”เปƒเบ™เบŠเบดเบš TTP223 | เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹. เบชเบฐเบงเบดเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ microcontroller nRF52832 | เป€เบญโ€‹เบเบฐโ€‹เบชเบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹, เป‚เบกเบ”เบนเบ™ YJ-17103 เบ—เบตเปˆเบกเบตเป€เบชเบปเบฒเบญเบฒเบเบฒเบ”เบ—เบตเปˆเบžเบดเบกเบญเบญเบเปเบฅเบฐเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเปเบฒเบฅเบฑเบšเป€เบชเบปเบฒเบญเบฒเบเบฒเบ” MHF4 เบžเบฒเบเบ™เบญเบเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบชเบฐเบงเบดเบ”เบชเปเบฒเบœเบฑเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบซเบกเปเป‰เป„เบŸ CR2430 เบซเบผเบท CR2450. เบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบšเปเปˆเป€เบเบตเบ™ 8 mA, เปƒเบ™เป‚เปเบ”เบ™เบญเบ™เบšเปเปˆเป€เบเบตเบ™ 6 ยตA.
เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”, เบ™เบตเป‰เบเบฑเบ‡เป€เบ›เบฑเบ™เป‚เบ„เบ‡เบเบฒเบ™ Arduino, เป‚เบ„เบ‡เบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ Arduino IDE. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบŠเบญเบšเปเบงเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ Mysensors protocol | เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” GitHub, เบเบฐเบ”เบฒเบ™ nRF5 เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ GitHub เปƒเบ™ Mysensors. เบเบญเบ‡โ€‹เบ›เบฐโ€‹เบŠเบธเบกโ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบญเบฑเบ‡โ€‹เบเบดเบ” - http://forum.mysensors.org, เป€เบงเบ—เบตเบ›เบฒเป„เบชเบŠเบธเบกเบŠเบปเบ™เบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบ - http://mysensors.ru/forum/
(เบชเบณเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบฝเบ™- ะ”ะพะบัƒะผะตะฝั‚ะฐั†ะธั, เบญเบฐเบ™เบธเบชเบฑเบ™เบเบฒ Serial, API, Protocol, parser | เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบœเบนเป‰โ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบŠเปˆเบงเบโ€‹เป€เบซเบผเบทเบญ (.เบเบฒเบ™เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™) เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™ - ะ”ะพะบัƒะผะตะฝั‚ะฐั†ะธั)

เบเบฐเบ”เบฒเบ™เบชเบฐเบซเบผเบฑเบšเบเบฒเบ™เบชเปเบฒเบžเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเบนเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ Deeptrace, เป‚เบ”เบเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ•เปเปˆเบกเบฒเป‚เบ”เบเบ™เปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ Laser Ironing Technology (LUT). เบเบฐเบ”เบฒเบ™เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ” 60x60 เบกเบก (เบเบฐเบ”เบฒเบ™เปเบเป‰เบงเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบกเบตเบ‚เบฐเบซเบ™เบฒเบ” 80x80 เบกเบก). เบงเบปเบ‡เบˆเบญเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ–เบทเบเบžเบดเบกเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบงเบฒเบฅเบฐเบชเบฒเบ™ Antenna เปเบฅเบฐเป‚เบญเบ™เบ”เป‰เบงเบเบ—เบฒเบ”เป€เบซเบผเบฑเบ Bosch เบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ "Len" (เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบชเบนเบ‡เบชเบธเบ”) เปƒเบชเปˆเบเบฐเบ”เบฒเบ™เป„เบŸเป€เบšเบตเปเบเป‰เบงเบชเบญเบ‡เบ”เป‰เบฒเบ™ 1.5 เบกเบก, 35ยตm (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบšเปเปˆเบกเบตเบšเปˆเบญเบ™เบญเบทเปˆเบ™).
เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบเบฒเบ™เบเบฑเบ‡เบ”เบดเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบงเบเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡ ferric chloride, เบเบฒเบ™เบเบฐเบเบฝเบกเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เปƒเบ™เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบ‚เบญเบ‡ 1.5 เบšเปˆเบงเบ‡เบเบฒเป€เบŸเบ•เปเปˆ 250 เบกเบฅเบ‚เบญเบ‡เบ™เป‰เปเบฒเบญเบธเปˆเบ™. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบŠเป‰เป€เบงเบฅเบฒ 15 เบ™เบฒเบ—เบต.
เบเบฒเบ™เป€เบˆเบฒเบฐเบฎเบนเบชเปเบฒเบฅเบฑเบš interlayer vias เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ fastening เบ•เบปเบงเบเบถเบ”เบซเบกเปเป‰เป„เบŸเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบงเบ DREMEL 3000 mini-drill mounted เบชเบธเบ” DREMEL 220 drill stand. เบฎเบนเบชเปเบฒเบฅเบฑเบš interlayer vias เป„เบ”เป‰เบ–เบทเบเป€เบˆเบฒเบฐเบ”เป‰เบงเบเป€เบˆเบฒเบฐ 0,4mm, เบฎเบนเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ–เบทเบซเบกเปเป‰เป„เบŸเบ—เบตเปˆเบกเบต 1,1mm เป€เบˆเบฒเบฐ. . เบเบฒเบ™โ€‹เบ•เบฑเบ”โ€‹เบ•เบฒเบกโ€‹เบ‚เบญเบšโ€‹เบ‚เบญเบ‡โ€‹เบเบฐโ€‹เบ”เบฒเบ™โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เป€เบฎเบฑเบ”โ€‹เบ”เป‰เบงเบโ€‹เบเบฒเบ™โ€‹เป€เบˆเบฒเบฐโ€‹เบกเบดโ€‹เบ•เบดโ€‹เปเบšเบšโ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ” DREMEL 540 (เบงเบปเบ‡โ€‹เบกเบปเบ™โ€‹เบ•เบฑเบ” d = 32.0mmโ€‹)โ€‹. เบเบฒเบ™เบ•เบฑเบ”เบญเบญเบเปเบกเปˆเบ™เป€เบฎเบฑเบ”เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบŠเปˆเบงเบเบซเบฒเบเปƒเบˆ.
เบเบฒเบ™เบ–เบปเบกเบ‚เบญเบ‡เบเบฐเบ”เบฒเบ™ etched เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เป‚เบฅเบซเบฐเบ›เบฐเบชเบปเบก Rose เปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบกเบตเบ™เป‰เปเบฒ (1 เบšเปˆเบงเบ‡เบเบฒเป€เบŸเบ‚เบญเบ‡เบญเบฒเบŠเบดเบ” citric crystallized เบ•เปเปˆ 300 ml เบ‚เบญเบ‡เบ™เป‰เปเบฒ).

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ soldering เปƒเบŠเป‰เป€เบงเบฅเบฒเบ›เบฐเบกเบฒเบ™เบซเบ™เบถเปˆเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡, เบชเปˆเบงเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒ soldering เบชเบฒเบ (tinned, เป€เบชเบฑเป‰เบ™เบœเปˆเบฒเบเบฒเบ‡ 0.4 เบกเบก) เปƒเบ™เบฎเบนเบชเปเบฒเบฅเบฑเบš interlayer เบœเปˆเบฒเบ™.

เบเบฐเบ”เบฒเบ™เบ–เบทเบเบฅเป‰เบฒเบ‡เบ”เป‰เบงเบ FLUX OFF aerosol cleaner.
เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบเบฒเบ™เบญเบญเบเปเบšเบšเบ‚เบญเบ‡เบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบเป‰เป„เบ‚เบเบฒเบ™เบญเบญเบเปเบšเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบชเบฒเบกเบกเบดเบ•เบดเบฅเบฐเบ”เบฑเบš. เบ‚เบฐเปœเบฒเบ”เบเปˆเบญเบ‡ 78,5mm X 78,5mm X 12mm.
เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเปเบฅเบฐเบเบฒเบ™เบ›เบปเบเบซเบธเป‰เบกเบ‚เบญเบ‡เบซเบกเปเป‰เป„เบŸเป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบฎเบนเบšเปเบšเบš STL, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเบฐเบเบฝเบกเบฎเบนเบšเปเบšเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบดเบกเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบžเบดเบก SLA (เบเบฒเบ™เป€เบžเบตเปˆเบกเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เบเบฒเบ™เบ›เบฐเบ–เบปเบกเบ™เบดเป€เบ—เบ”). เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰, เบšเบฑเบ™เบซเบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป€เบเบตเบ”เบ‚เบทเป‰เบ™, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบžเบทเป‰เบ™เบ—เบตเปˆเบžเบดเบกเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบžเบดเบก SLA เบ‚เบญเบ‡เบ„เบปเบงเป€เบฎเบทเบญเบ™เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบญเบธเบ›เบฐเบเบญเบ™เปƒเบ™เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเป€เบงเบฅเบฒเบžเบดเบกเบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบžเบดเบก. เป€เบกเบทเปˆเบญเบงเบฒเบ‡เบ•เบปเบงเปเบšเบšเบขเบนเปˆเบ—เบตเปˆ 45 เบญเบปเบ‡เบชเบฒ, เบกเบฑเบ™เบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบซเบ™เป‰เบฒเบœเบดเบ”เบซเบงเบฑเบ‡; เบ™เป‰เปเบฒเบซเบ™เบฑเบเบ‚เบญเบ‡เบ•เบปเบงเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบšเบ™เป‰เปเบฒเบซเบ™เบฑเบเบ‚เบญเบ‡เบ•เบปเบงเปเบšเบš. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบžเบดเบกเบ•เบปเบงเปเบšเบšเปƒเบ™เปเบ™เบงเบ•เบฑเป‰เบ‡, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ”เป‰เบฒเบ™เบซเบ™เป‰เบฒเบซเบ™เบถเปˆเบ‡, เป‚เบ”เบเป„เบ”เป‰เบ•เบปเบเบฅเบปเบ‡เบเบฑเบ™เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเบเบฑเบšเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบซเบฅเบฑเบ‡. เบเบฒเบ™เบžเบดเบกเบฎเปˆเบฒเบ‡เบเบฒเบเปƒเบŠเป‰เป€เบงเบฅเบฒ 5 เบŠเบปเปˆเบงเป‚เบกเบ‡เบ”เป‰เบงเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบŠเบฑเป‰เบ™เบ‚เบญเบ‡ 50 microns. เบ•เปเปˆเป„เบ›, เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปเบกเปˆเบ™เป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ”เบเปƒเบŠเป‰เบเบฐเบ”เบฒเบ”เบŠเบฒเบเบฅเบฐเบญเบฝเบ”เบซเบผเบฒเบ (เบ‚เป‰เบญเบเบˆเบฐเบšเปเปˆเบ‚เบฝเบ™เบ•เบปเบงเป€เบฅเบเป€เบžเบฒเบฐเบงเปˆเบฒเบ‚เป‰เบญเบเบšเปเปˆเบฎเบนเป‰ :)). เบเบฒเบ›เบดเบ”เบซเบกเปเป‰เป„เบŸเปƒเบŠเป‰เป€เบงเบฅเบฒ 40 เบ™เบฒเบ—เบตเป€เบžเบทเปˆเบญเบžเบดเบก.
เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เปเบœเบ‡เปเบเป‰เบงเบˆเบฒเบ Aliexpress เปเบกเปˆเบ™เบ‚เบฒเบเบ”เป‰เบงเบเบเบญเบšเบžเบฒเบ”เบชเบฐเบ•เบดเบเบ—เบตเปˆเบ•เบดเบ”เปเบฅเป‰เบง; เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบšเบเบฒเบ™เบ–เบญเบ”เบเบญเบš. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป€เบญเบปเบฒโ€‹เบเบฐโ€‹เบ”เบฒเบ™โ€‹เปเบเป‰เบงโ€‹เบญเบญเบโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ—เบตเปˆ preheating เบกเบฑเบ™โ€‹เบกเบต hairdryer เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹.
เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เปเบœเปˆเบ™เบเบฐเบˆเบฒเบเบชเปเบฒเบฅเบฑเบšเป„เบŸ LED backlight เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบ”เป‰เบงเบ tape เบชเบญเบ‡เบ”เป‰เบฒเบ™เบ—เบตเปˆเบกเบตเบเบฒเบง acrylic 3M 9088-200. เบชเปเบฒเบฅเบฑเบšเปเบชเบ‡เบชเบฐเบซเบงเปˆเบฒเบ‡ fluorescent เบกเบตเบซเบผเบฒเบเบงเบฑเบ”เบชเบฐเบ”เบธเบ—เบตเปˆเบˆเบฐเป€เบฅเบทเบญเบเป€เบญเบปเบฒเบˆเบฒเบ, tape adhesive เบ‚เบญเบ‡เบˆเบตเบ™เปเบฅเบฐเป€เบˆเป‰เบเบเบฒเบงเบ•เบฑเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ tapes เบˆเบฒเบเบšเปเบฅเบดเบชเบฑเบ”เบžเบฒเบเปƒเบ™เบ›เบฐเป€เบ—เบ” Luminofor. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ›เบฑเบ™เบ—เบตเปˆเบžเปเปƒเบˆเบ‚เบญเบ‡เบœเบนเป‰เบœเบฐเบฅเบดเบ”เบžเบฒเบเปƒเบ™เบ›เบฐเป€เบ—เบ”; เบญเบตเบ‡เบ•เบฒเบกเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบกเบฑเบ™เบชเบฐเบซเบงเปˆเบฒเบ‡เบเบงเปˆเบฒเปเบฅเบฐเบเบฒเบงเบเบงเปˆเบฒ. เบชเบตเปˆเบซเบผเปˆเบฝเบกเบ‚เบญเบ‡เป€เบˆเป‰เบเบ—เบตเปˆเบกเบตเป€เบกเบฑเบ”เบชเบต fluorescent เบ–เบทเบเบเบฒเบงเบขเบนเปˆเป€เบ—เบดเบ‡เบ”เป‰เบงเบ tape เบชเบญเบ‡เบ”เป‰เบฒเบ™ 3M 9088-200.

เปเบเป‰เบงเป„เบ”เป‰เบ–เบทเบเบเบฒเบงเบเบฑเบšเบ•เบปเบงเบชเบฐเบซเบผเบฑเบšเป‚เบ”เบเปƒเบŠเป‰เป€เบ—เบšเบชเบญเบ‡เบ”เป‰เบฒเบ™เบ”เป‰เบงเบเบเบฒเบง acrylic 3M VHB 4910.
เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบเบฒเบ™เบ›เบปเบเบซเบธเป‰เบกเบ‚เบญเบ‡เป„เบ”เป‰เบ–เบทเบเบชเป‰เบญเบกเปเบŠเบกเบ”เป‰เบงเบเบชเบฐเบเบน M 1,4 X 5 เบกเบก.

เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เปเบกเปˆเบ™ 890 rubles.

เบ•เปเปˆโ€‹เป„เบ›โ€‹เปเบกเปˆเบ™โ€‹เบžเบฒเบโ€‹เบชเปˆเบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹. เบกเบตเบšเบฑเบ™เบซเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡. เบกเบฑเบ™เบ›เบฐเบเบปเบ”เบงเปˆเบฒเบŠเบดเบšเป€เบŠเบฑเบ™เป€เบŠเบต TTP223 เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ”เบตเบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ 3.3V เบ—เบตเปˆเบกเบตเบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเปเบฅเบฐเบšเปเปˆเบ”เบตเบซเบผเบฒเบเป€เบกเบทเปˆเบญเปƒเบŠเป‰เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เป‚เบ”เบเบเบปเบ‡เบˆเบฒเบเปเบšเบ”เป€เบ•เบตเบฃเบตเบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒเบ”เบต. เป€เบกเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบ›เบฐเบกเบฒเบ™ 2.5v, เบšเบงเบเบเบฑเบš "drawdown" เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบญเบญเบเบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต Mysensors, microcircuit TTP223 (เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฑเบšเบ—เบฝเบš) เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ‚เบญเบ‡ MK เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบกเบฑเบ™เปเบกเปˆเบ™เบเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง.

เบงเบปเบ‡เบˆเบญเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบญเบ‡เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เปƒเบซเป‰เบเบฑเบš microcircuit เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เปเบ›เบ‡ (เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ TTP223 เบเบฑเบš gpio MK), เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป„เบ”เป‰เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡, เปเบฅเบฐเบ•เบปเบงเบ•เป‰เบฒเบ™เบ—เบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ•เป‰เบฒเบ™เบ—เบฒเบ™เบชเบนเบ‡เบเบงเปˆเบฒเป„เบ”เป‰เบ–เบทเบเบ›เปˆเบฝเบ™เปเบ—เบ™เปƒเบ™เบชเบฒเบ rgb led (เป€เบŠเบดเปˆเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฐเบ”เบฒเบ™เป€เบŠเบฑเบ™เป€เบŠเบต capacitive). เบกเบฑเบ™เบเบฑเบ‡เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบŠเบญเบšเปเบง: เบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบš microcircuit capacitive เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบญเบš Mysensors เปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบญเบญเบเบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต. เบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบชเบณเบฅเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ•เบฑเป‰เบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบŠเบดเบš TTP223 เป€เบกเบทเปˆเบญเปƒเบŠเป‰เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ›เบฑเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒ. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบฅเบปเบšเบฅเป‰เบฒเบ‡เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™.

เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบšเบดเปˆเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ sketch เปƒเบ™ Mysensors.void before()
{
// ะ”ะพะฟะพะปะฝะธั‚ะตะปัŒะฝะฐั ั„ัƒะฝะบั†ะธั, ะตัะปะธ ัั€ะฐะฒะฝะธะฒะฐั‚ัŒ ัะพ ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะน ัั‚ั€ัƒะบั‚ัƒั€ะพะน ะั€ะดัƒะธะฝะพ ัะบะตั‚ั‡ะตะน, ั‚ะพ before() ัั‚ะพ ะฟะพะดะพะฑะธะต setup(), ะพั‚ั€ะฐะฑะพั‚ะบะฐ ะฟั€ะพะธัั…ะพะดะธั‚ ะดะพ ะธะฝะธั†ะธะฐะปะธะทะฐั†ะธะธ ั‚ั€ะฐะฝัะฟะพั€ั‚ะฝะพะณะพ ัƒั€ะพะฒะฝั Mysensors, ั€ะตะบะพะผะตะฝะดัƒะตั‚ัั ะฝะฐะฟั€ะธะผะตั€ ะดะปั ะธะฝะธั†ะธะฐะปะธะทะฐั†ะธะธ ัƒัั‚ั€ะพะนัั‚ะฒ SPI
}

void setup()
{

}

void presentation()
{
//ะขัƒั‚ ะฟั€ะพะธัั…ะพะดะธั‚ ะฟั€ะตะทะตะฝั‚ะฐั†ะธั ะฝะพะดั‹ ะธ ะตะต ัะตะฝัะพั€ะพะฒ ะฝะฐ ะบะพะฝั‚ั€ะพะปะตั€ะต ั‡ะตั€ะตะท ะผะฐั€ัˆั€ัƒั‚ะธะทะฐั‚ะพั€
sendSketchInfo("Name of my sensor node", "1.0"); // ะฟั€ะตะทะตะฝั‚ะฐั†ะธั ะฝะฐะทะฒะฐะฝะธั ะฝะพะดั‹, ะฒะตั€ัะธะธ ะŸะž
present(CHILD_ID, S_WHATEVER, "Description"); // ะฟั€ะตะทะตะฝั‚ะฐั†ะธั ัะตะฝัะพั€ะพะฒ ะฝะพะดั‹, ะพะฟะธัะฐะฝะธั ัะตะฝัะพั€ะพะฒ
}

void loop()
{

}

เปเบ•เบฐเบฅเบฐเบซเบฑเบ”เบ—เบปเบ”เบชเบญเบšเป‚เบ„เบ‡เบเบฒเบ™:test_sens.ino
/**
ะขะ•ะกะขะžะ’ะซะ™ ะกะšะ•ะขะง ะกะ•ะะกะžะ ะะžะ“ะž ะ’ะซะšะ›ะฎะงะะขะ•ะ›ะฏ ะก ะŸะ ะ•ะ ะซะ’ะะะ˜ะฏะœะ˜ ะะ NRF_LPCOMP
*/
bool button_flag;
bool sens_flag;
bool send_flag;
bool detection;
bool nosleep;
byte timer;
unsigned long SLEEP_TIME = 21600000; //6 hours
unsigned long oldmillis;
unsigned long newmillis;
unsigned long interrupt_time;
unsigned long SLEEP_TIME_W;
uint16_t currentBatteryPercent;
uint16_t batteryVoltage = 0;
uint16_t battery_vcc_min = 2400;
uint16_t battery_vcc_max = 3000;

#define MY_RADIO_NRF5_ESB
//#define MY_PASSIVE_NODE
#define MY_NODE_ID 30
#define MY_PARENT_NODE_ID 0
#define MY_PARENT_NODE_IS_STATIC
#define MY_TRANSPORT_UPLINK_CHECK_DISABLED
#define IRT_PIN 3 //(PORT0, gpio 5)
#include <MySensors.h>
// see https://www.mysensors.org/download/serial_api_20
#define SENS_CHILD_ID 0
#define CHILD_ID_VOLT 254
MyMessage sensMsg(SENS_CHILD_ID, V_VAR1);
//MyMessage voltMsg(CHILD_ID_VOLT, V_VOLTAGE);

void preHwInit() {
sleep(2000);
pinMode(RED_LED, OUTPUT);
digitalWrite(RED_LED, HIGH);
pinMode(GREEN_LED, OUTPUT);
digitalWrite(GREEN_LED, HIGH);
pinMode(BLUE_LED, OUTPUT);
digitalWrite(BLUE_LED, HIGH);
pinMode(MODE_PIN, INPUT);
pinMode(SENS_PIN, INPUT);
}

void before()
{
NRF_POWER->DCDCEN = 1;
NRF_UART0->ENABLE = 0;
sleep(1000);
digitalWrite(BLUE_LED, LOW);
sleep(150);
digitalWrite(BLUE_LED, HIGH);
}

void presentation() {
sendSketchInfo("EFEKTA Sens 1CH Sensor", "1.1");
present(SENS_CHILD_ID, S_CUSTOM, "SWITCH STATUS");
//present(CHILD_ID_VOLT, S_MULTIMETER, "Battery");
}

void setup() {
digitalWrite(BLUE_LED, LOW);
sleep(100);
digitalWrite(BLUE_LED, HIGH);
sleep(200);
digitalWrite(BLUE_LED, LOW);
sleep(100);
digitalWrite(BLUE_LED, HIGH);
lpComp();
detection = false;
SLEEP_TIME_W = SLEEP_TIME;
pinMode(31, OUTPUT);
digitalWrite(31, HIGH);
/*
while (timer < 10) {
timer++;
digitalWrite(GREEN_LED, LOW);
wait(5);
digitalWrite(GREEN_LED, HIGH);
wait(500);
}
timer = 0;
*/
sleep(7000);
while (timer < 3) {
timer++;
digitalWrite(GREEN_LED, LOW);
sleep(15);
digitalWrite(GREEN_LED, HIGH);
sleep(85);
}
timer = 0;
sleep(1000);
}

void loop() {

if (detection) {
if (digitalRead(MODE_PIN) == 1 && button_flag == 0 && digitalRead(SENS_PIN) == 0) {
//back side button detection
button_flag = 1;
nosleep = 1;
}
if (digitalRead(MODE_PIN) == 1 && button_flag == 1 && digitalRead(SENS_PIN) == 0) {
digitalWrite(RED_LED, LOW);
wait(10);
digitalWrite(RED_LED, HIGH);
wait(50);
}
if (digitalRead(MODE_PIN) == 0 && button_flag == 1 && digitalRead(SENS_PIN) == 0) {
nosleep = 0;
button_flag = 0;
digitalWrite(RED_LED, HIGH);
lpComp_reset();
}

if (digitalRead(SENS_PIN) == 1 && sens_flag == 0 && digitalRead(MODE_PIN) == 0) {
//sens detection
sens_flag = 1;
nosleep = 1;
newmillis = millis();
interrupt_time = newmillis - oldmillis;
SLEEP_TIME_W = SLEEP_TIME_W - interrupt_time;
if (send(sensMsg.set(detection))) {
send_flag = 1;
}
}
if (digitalRead(SENS_PIN) == 1 && sens_flag == 1 && digitalRead(MODE_PIN) == 0) {
if (send_flag == 1) {
while (timer < 10) {
timer++;
digitalWrite(GREEN_LED, LOW);
wait(20);
digitalWrite(GREEN_LED, HIGH);
wait(30);
}
timer = 0;
} else {
while (timer < 10) {
timer++;
digitalWrite(RED_LED, LOW);
wait(20);
digitalWrite(RED_LED, HIGH);
wait(30);
}
timer = 0;
}
}
if (digitalRead(SENS_PIN) == 0 && sens_flag == 1 && digitalRead(MODE_PIN) == 0) {
sens_flag = 0;
nosleep = 0;
send_flag = 0;
digitalWrite(GREEN_LED, HIGH);
sleep(500);
lpComp_reset();
}
if (SLEEP_TIME_W < 60000) {
SLEEP_TIME_W = SLEEP_TIME;
sendBatteryStatus();
}
}
else {
//if (detection == -1) {
SLEEP_TIME_W = SLEEP_TIME;
sendBatteryStatus();
}
if (nosleep == 0) {
oldmillis = millis();
sleep(SLEEP_TIME_W);
}
}

void sendBatteryStatus() {
wait(20);
batteryVoltage = hwCPUVoltage();
wait(2);

if (batteryVoltage > battery_vcc_max) {
currentBatteryPercent = 100;
}
else if (batteryVoltage < battery_vcc_min) {
currentBatteryPercent = 0;
} else {
currentBatteryPercent = (100 * (batteryVoltage - battery_vcc_min)) / (battery_vcc_max - battery_vcc_min);
}

sendBatteryLevel(currentBatteryPercent, 1);
wait(2000, C_INTERNAL, I_BATTERY_LEVEL);
//send(powerMsg.set(batteryVoltage), 1);
//wait(2000, 1, V_VAR1);
}

void lpComp() {
NRF_LPCOMP->PSEL = IRT_PIN;
NRF_LPCOMP->ANADETECT = 1;
NRF_LPCOMP->INTENSET = B0100;
NRF_LPCOMP->ENABLE = 1;
NRF_LPCOMP->TASKS_START = 1;
NVIC_SetPriority(LPCOMP_IRQn, 15);
NVIC_ClearPendingIRQ(LPCOMP_IRQn);
NVIC_EnableIRQ(LPCOMP_IRQn);
}

void s_lpComp() {
if ((NRF_LPCOMP->ENABLE) && (NRF_LPCOMP->EVENTS_READY)) {
NRF_LPCOMP->INTENCLR = B0100;
}
}

void r_lpComp() {
NRF_LPCOMP->INTENSET = B0100;
}

#if __CORTEX_M == 0x04
#define NRF5_RESET_EVENT(event)
event = 0;
(void)event
#else
#define NRF5_RESET_EVENT(event) event = 0
#endif

extern "C" {
void LPCOMP_IRQHandler(void) {
detection = true;
NRF5_RESET_EVENT(NRF_LPCOMP->EVENTS_UP);
NRF_LPCOMP->EVENTS_UP = 0;
MY_HW_RTC->CC[0] = (MY_HW_RTC->COUNTER + 2);
}
}

void lpComp_reset () {
s_lpComp();
detection = false;
NRF_LPCOMP->EVENTS_UP = 0;
r_lpComp();
}

MyBoardNRF5.cpp
#ifdef MYBOARDNRF5
#include <variant.h>

/*
* Pins descriptions. Attributes are ignored by arduino-nrf5 variant.
* Definition taken from Arduino Primo Core with ordered ports
*/
const PinDescription g_APinDescription[]=
{
{ NOT_A_PORT, 0, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // LFCLK
{ NOT_A_PORT, 1, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // LFCLK
{ PORT0, 2, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A0, PWM4, NOT_ON_TIMER},
{ PORT0, 3, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A1, PWM5, NOT_ON_TIMER},
{ PORT0, 4, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A2, PWM6, NOT_ON_TIMER},
{ PORT0, 5, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A3, PWM7, NOT_ON_TIMER},
{ PORT0, 6, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT3
{ PORT0, 7, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT4
{ PORT0, 8, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM10, NOT_ON_TIMER}, //USER_LED
{ PORT0, 9, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // NFC1
{ PORT0, 10, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // NFC2
{ PORT0, 11, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TX
{ PORT0, 12, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // RX
{ PORT0, 13, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SDA
{ PORT0, 14, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SCL
{ PORT0, 15, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SDA1
{ PORT0, 16, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // SCL1
{ PORT0, 17, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TP4
{ PORT0, 18, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // TP5
{ PORT0, 19, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT2
{ PORT0, 20, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT1
{ PORT0, 21, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT1
{ PORT0, 22, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM9, NOT_ON_TIMER},
{ PORT0, 23, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM8, NOT_ON_TIMER},
{ PORT0, 24, PIO_DIGITAL, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER}, // INT
{ PORT0, 25, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM11, NOT_ON_TIMER}, //RED_LED
{ PORT0, 26, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM11, NOT_ON_TIMER}, //GREEN_LED
{ PORT0, 27, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), No_ADC_Channel, PWM11, NOT_ON_TIMER}, //BLUE_LED
{ PORT0, 28, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A4, PWM3, NOT_ON_TIMER},
{ PORT0, 29, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A5, PWM2, NOT_ON_TIMER},
{ PORT0, 30, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A6, PWM1, NOT_ON_TIMER},
{ PORT0, 31, PIO_DIGITAL, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM), ADC_A7, PWM0, NOT_ON_TIMER}
};

// Don't remove this line
#include <compat_pin_mapping.h>

#endif

MyBoardNRF5.h
#ifndef _MYBOARDNRF5_H_
#define _MYBOARDNRF5_H_

#ifdef __cplusplus
extern "C"
{
#endif // __cplusplus

// Number of pins defined in PinDescription array
#define PINS_COUNT (32u)
#define NUM_DIGITAL_PINS (32u)
#define NUM_ANALOG_INPUTS (8u)
#define NUM_ANALOG_OUTPUTS (8u)

/*
* LEDs
*
* This is optional
*
* With My Sensors, you can use
* hwPinMode() instead of pinMode()
* hwPinMode() allows to use advanced modes like OUTPUT_H0H1 to drive LEDs.
* https://github.com/mysensors/MySensors/blob/development/drivers/NRF5/nrf5_wiring_constants.h
*
*/
#define PIN_LED1 (16)
#define PIN_LED2 (15)
#define PIN_LED3 (17)
#define RED_LED (PIN_LED1)
#define GREEN_LED (PIN_LED2)
#define BLUE_LED (PIN_LED3)
#define INTERRUPT_PIN (5)
#define MODE_PIN (25)
#define SENS_PIN (27)

/*
* Analog ports
*
* If you change g_APinDescription, replace PIN_AIN0 with
* port numbers mapped by the g_APinDescription Array.
* You can add PIN_AIN0 to the g_APinDescription Array if
* you want provide analog ports MCU independed, you can add
* PIN_AIN0..PIN_AIN7 to your custom g_APinDescription Array
* defined in MyBoardNRF5.cpp
*/
static const uint8_t A0 = ADC_A0;
static const uint8_t A1 = ADC_A1;
static const uint8_t A2 = ADC_A2;
static const uint8_t A3 = ADC_A3;
static const uint8_t A4 = ADC_A4;
static const uint8_t A5 = ADC_A5;
static const uint8_t A6 = ADC_A6;
static const uint8_t A7 = ADC_A7;

/*
* Serial interfaces
*
* RX and TX are required.
* If you have no serial port, use unused pins
* CTS and RTS are optional.
*/
#define PIN_SERIAL_RX (11)
#define PIN_SERIAL_TX (12)

#ifdef __cplusplus
}
#endif

#endif

เบชเบฐเบซเบผเบฑเบšเบกเบตเบ›เบธเปˆเบกเบชเปเบฒเบœเบฑเบ”เปเบฅเบฐเบ›เบธเปˆเบก tact เบขเบนเปˆเบ”เป‰เบฒเบ™เบซเบฅเบฑเบ‡เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™. เบ›เบธเปˆเบก tact เบ™เบตเป‰ เบˆเบฐ เบ–เบทเบ เบ™เปเบฒ เปƒเบŠเป‰ เบชเปเบฒ เบฅเบฑเบš เบฎเบนเบš เปเบšเบš เบเบฒเบ™ เบšเป เบฅเบด เบเบฒเบ™, เบฎเบนเบš เปเบšเบš เบเบฒเบ™ เบœเบนเบ เบกเบฑเบ” เบ—เบฒเบ‡ เบญเบฒ เบเบฒเบ”, เปเบฅเบฐ เบเบฒเบ™ เบ›เบฑเบš เบญเบธ เบ›เบฐ เบเบญเบ™. เบ›เบธเปˆเบกเบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ•เป‰เบฒเบ™เบเบฒเบ™ bounce เบ—เบฒเบ”เป€เบซเบผเบฑเบ. เบชเบฒเบเบ‚เบญเบ‡เป€เบŠเบฑเบ™เป€เบŠเบต capacitive เปเบฅเบฐเบชเบฒเบเบ‚เบญเบ‡เบ›เบธเปˆเบก tact เปเบกเปˆเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบœเปˆเบฒเบ™ diodes Schottky เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš pins เบญเบฐเบ™เบฒเบฅเบฑเบญเบ p0.05, เปเบฅเบฐเบเบฑเบ‡เบˆเบฒเบเป€เบŠเบฑเบ™เป€เบŠเบต capacitive เปเบฅเบฐเบ›เบธเปˆเบก tact เบกเบตเบชเบฒเบเบเบฑเบš MK pins p0.25 เปเบฅเบฐ p0.27. .0.05 เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบซเบผเบฑเบ‡เบˆเบฒเบเป€เบ›เบตเบ”เปƒเบŠเป‰ interrupt เปƒเบ™ pin p0.05. XNUMX. เปƒเบ™ pin pXNUMX, เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบœเปˆเบฒเบ™เบ•เบปเบงเบ›เบฝเบšเบ—เบฝเบš (NRF_LPCOMP) เบœเปˆเบฒเบ™ EVENTS_UP เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰. เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ”เบปเบ™เปƒเบˆเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ เบ—เบตเปˆเบ™เบตเป‰ ะธ เบ—เบตเปˆเบ™เบตเป‰.

เบชเบฐเบงเบดเบ”เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ Mysensors, เบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบเบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเป€เบฎเบทเบญเบ™เบญเบฑเบ”เบชเบฐเบฅเบดเบเบฐ Majordomo (เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™)

เบฅเบฐเบซเบฑเบ” PHP เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบชเบฐเบซเบผเบฑเบšเป„เบ›เบซเบฒเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบš

if (getGlobal("MysensorsButton01.status")==1) {
if (getGlobal('MysensorsRelay04.status') == 0) {
setGlobal('MysensorsRelay04.status', '1');
} else if (getGlobal('MysensorsRelay04.status') == 1) {
setGlobal('MysensorsRelay04.status', '0');
} 
}

เป€เบšเบดเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบงเบดเบ”เบตเป‚เบญ

เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบ•เปเปˆเบกเบฒ, เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบ”เป‰เบงเบเบ•เบปเบงเปเบ›เบ‡เป€เบžเบตเปˆเบก, เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ microcircuit TTP223 capacitive; เบกเบตเบ„เบงเบฒเบกเบ›เบฒเบ”เบ–เบฐเบซเบ™เบฒเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบซเบงเปˆเบฒเบ‡เบ—เบตเปˆเบ”เบตเปเบฅเบฐเป€เบ›เบฑเบ™เป€เบญเบเบฐเบžเบฒเบšเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบปเบ”เบ›เบธเปˆเบกเบ•เบฐเบซเบผเบญเบ”เบŠเบตเบงเบดเบ”เบซเบกเปเป‰เป„เบŸเบ—เบฑเบ‡เบซเบกเบปเบ”.

เป€เบšเบดเปˆเบ‡เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เป‚เบ„เบ‡เบเบฒเบ™ Github - github.com/smartboxchannel/EFEKTA_WIRELESS_TOUCH_SWITCH

เบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบ เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบŠเบธเบกเบŠเบปเบ™ เป€เบŠเบฑเบ™เป€เบŠเบต

Telegram เบชเบปเบ™เบ—เบฐเบ™เบฒ Mysensors โ€” เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เป„เบงโ€‹เป€เบžเบทเปˆเบญโ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบเบฑเบš Mysensorsโ€‹, เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹, tricksโ€‹, เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบšเบญเบ”โ€‹, เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบš atmega 328โ€‹, stm32โ€‹, nRF5 microcontrollers เปƒเบ™ Arduino IDE โ€” @mysensors_rus

เบšเบฒเบ‡เบฎเบนเบšเบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เบชเบฐเบซเบผเบฑเบšเบชเปเบฒเบœเบฑเบ”เป„เบฎเป‰เบชเบฒเบเบ—เบตเปˆเบกเบตเป„เบŸ backlight fluorescent เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™