แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒ›แƒ˜แƒ•แƒ”แƒกแƒแƒšแƒ›แƒ”แƒ‘แƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒšแƒก "แƒฌแƒ•แƒ แƒ˜แƒšแƒ›แƒแƒœแƒ˜ แƒแƒœ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ” แƒจแƒ”แƒœ แƒ—แƒ•แƒ˜แƒ—แƒแƒœ" แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ Habr-แƒ–แƒ”! แƒ“แƒฆแƒ”แƒ•แƒแƒœแƒ“แƒ”แƒšแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ TTP223 แƒฉแƒ˜แƒžแƒ–แƒ” แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ | แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒคแƒฃแƒ แƒชแƒ”แƒšแƒ˜. แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก nRF52832 แƒ›แƒ˜แƒ™แƒ แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ–แƒ” | แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒคแƒฃแƒ แƒชแƒ”แƒšแƒ˜, แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ YJ-17103 แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒ“แƒแƒ‘แƒ”แƒญแƒ“แƒ˜แƒšแƒ˜ แƒแƒœแƒขแƒ”แƒœแƒ˜แƒ— แƒ“แƒ แƒ’แƒแƒ แƒ” MHF4 แƒแƒœแƒขแƒ”แƒœแƒ˜แƒก แƒ™แƒแƒœแƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ—. แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก CR2430 แƒแƒœ CR2450 แƒ‘แƒแƒขแƒแƒ แƒ”แƒ”แƒ‘แƒ–แƒ”. แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒ›แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก แƒแƒ แƒแƒฃแƒ›แƒ”แƒขแƒ”แƒก 8 mA, แƒซแƒ˜แƒšแƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒแƒ แƒแƒฃแƒ›แƒ”แƒขแƒ”แƒก 6 ฮผA.
แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒ แƒแƒ’แƒแƒ แƒช แƒงแƒ•แƒ”แƒšแƒ แƒฌแƒ˜แƒœแƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜, แƒ”แƒกแƒ”แƒช Arduino แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒ, แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ Arduino IDE-แƒจแƒ˜. แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ แƒ”แƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒ Mysensors แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒก | GitHub แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜, nRF5 แƒ“แƒแƒคแƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ GitHub Mysensors-แƒจแƒ˜. แƒ˜แƒœแƒ’แƒšแƒ˜แƒกแƒฃแƒ แƒ”แƒœแƒแƒ•แƒแƒœแƒ˜ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ แƒฃแƒ›แƒ˜ - http://forum.mysensors.org, แƒ แƒฃแƒกแƒฃแƒšแƒ”แƒœแƒแƒ•แƒแƒœแƒ˜ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ แƒฃแƒ›แƒ˜ - http://mysensors.ru/forum/
(แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก, แƒ•แƒ˜แƒกแƒแƒช แƒกแƒฌแƒแƒ•แƒšแƒ แƒกแƒฃแƒ แƒก - แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ, แƒกแƒ”แƒ แƒ˜แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜, API, แƒแƒฅแƒ›แƒ˜, แƒžแƒแƒ แƒกแƒ”แƒ แƒ˜ | แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ—แƒแƒ—แƒ•แƒ˜แƒก (แƒจแƒ”แƒ›แƒแƒฌแƒ˜แƒ แƒฃแƒšแƒแƒ‘แƒ”แƒ‘แƒ˜) แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒจแƒ˜ - แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ)

แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒคแƒ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒ Deeptrace แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒจแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ— แƒšแƒแƒ–แƒ”แƒ แƒฃแƒšแƒ˜ แƒ“แƒแƒฃแƒ—แƒแƒ”แƒ‘แƒ˜แƒก แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก (LUT) แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ“แƒแƒคแƒ แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ 60x60 แƒ›แƒ› แƒ–แƒแƒ›แƒ”แƒ‘แƒจแƒ˜ (แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒ›แƒ˜แƒœแƒ˜แƒก แƒžแƒแƒœแƒ”แƒšแƒก แƒแƒฅแƒ•แƒก แƒ–แƒแƒ›แƒ”แƒ‘แƒ˜ 80x80 แƒ›แƒ›). แƒฌแƒ แƒ” แƒ“แƒแƒ˜แƒ‘แƒ”แƒญแƒ“แƒ แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒก Antenna-แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒ”แƒก Bosch-แƒ˜แƒก แƒฃแƒ—แƒแƒ—แƒ˜ "Len" แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ— (แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒ˜แƒ›แƒซแƒšแƒแƒ•แƒ แƒ”) แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ• แƒคแƒแƒšแƒ’แƒ˜แƒก แƒ›แƒ˜แƒœแƒแƒ‘แƒแƒญแƒ™แƒแƒ•แƒแƒœแƒ˜ แƒ“แƒแƒคแƒแƒ–แƒ” 1.5 แƒ›แƒ›, 35 ฮผm (แƒ›แƒ”แƒแƒ แƒ˜แƒก แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜).
แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒ’แƒ แƒแƒ•แƒ˜แƒ แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒ แƒ™แƒ˜แƒœแƒ˜แƒก แƒฅแƒšแƒแƒ แƒ˜แƒ“แƒ˜แƒก แƒฎแƒกแƒœแƒแƒ แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ“แƒ แƒ” แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ 1.5 แƒฉแƒแƒ˜แƒก แƒ™แƒแƒ•แƒ–แƒ˜ 250 แƒ›แƒš แƒ—แƒ‘แƒ˜แƒš แƒฌแƒงแƒแƒšแƒ–แƒ”. แƒžแƒ แƒแƒชแƒ”แƒกแƒก 15 แƒฌแƒฃแƒ—แƒ˜ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ.
แƒกแƒแƒ‘แƒฃแƒ แƒฆแƒ˜ แƒฎแƒ•แƒ แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ‘แƒฃแƒ แƒฆแƒ•แƒ แƒ“แƒ แƒ‘แƒแƒขแƒแƒ แƒ”แƒ˜แƒก แƒ“แƒแƒ›แƒญแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ“แƒ DREMEL 3000 แƒ›แƒ˜แƒœแƒ˜ แƒ‘แƒฃแƒ แƒฆแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ DREMEL 220 แƒกแƒแƒ‘แƒฃแƒ แƒฆแƒ˜ แƒกแƒแƒ“แƒ’แƒแƒ›แƒ–แƒ”. แƒจแƒฃแƒแƒšแƒ”แƒ“แƒฃแƒ แƒ˜ แƒ•แƒ˜แƒ–แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฎแƒ•แƒ แƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ‘แƒฃแƒ แƒฆแƒฃแƒšแƒ˜ แƒ˜แƒงแƒ 0,4แƒ›แƒ› แƒ‘แƒฃแƒ แƒฆแƒ˜แƒ—, แƒ‘แƒแƒขแƒแƒ แƒ”แƒ˜แƒก แƒ“แƒแƒ›แƒญแƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฎแƒ•แƒ แƒ”แƒšแƒ”แƒ‘แƒ˜ 1,1แƒ›แƒ› แƒ‘แƒฃแƒ แƒฆแƒ˜แƒ—. . แƒ“แƒแƒคแƒ˜แƒก แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒฌแƒ•แƒ แƒ˜แƒ• แƒ›แƒแƒ แƒ—แƒ•แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ›แƒ˜แƒœแƒ˜ แƒ‘แƒฃแƒ แƒฆแƒ˜แƒ— DREMEL 540 แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒ— (แƒกแƒแƒญแƒ แƒ”แƒšแƒ˜ แƒฌแƒ แƒ” d=32.0mm). แƒ’แƒแƒกแƒฎแƒ•แƒšแƒ แƒ แƒ”แƒกแƒžแƒ˜แƒ แƒแƒขแƒแƒ แƒจแƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒแƒ“แƒ.
แƒ“แƒแƒคแƒฅแƒฃแƒšแƒ˜ แƒ“แƒแƒคแƒ˜แƒก แƒ“แƒแƒ™แƒแƒœแƒกแƒ”แƒ แƒ•แƒ”แƒ‘แƒ แƒฎแƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ•แƒแƒ แƒ“แƒ˜แƒก แƒจแƒ”แƒœแƒแƒ“แƒœแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒฌแƒงแƒแƒšแƒฎแƒกแƒœแƒแƒ แƒจแƒ˜ (1 แƒฉแƒแƒ˜แƒก แƒ™แƒแƒ•แƒ–แƒ˜ แƒ™แƒ แƒ˜แƒกแƒขแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒšแƒ˜แƒ›แƒแƒœแƒ›แƒŸแƒแƒ•แƒ 300 แƒ›แƒš แƒฌแƒงแƒแƒšแƒ–แƒ”).

แƒจแƒ”แƒ“แƒฃแƒฆแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒแƒ—แƒ˜ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ, แƒ“แƒ แƒแƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ“แƒแƒฎแƒแƒ แƒฏแƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ›แƒแƒ•แƒ—แƒฃแƒšแƒ˜แƒก (แƒ“แƒแƒ™แƒแƒœแƒกแƒ”แƒ แƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜, 0.4 แƒ›แƒ› แƒ“แƒ˜แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก) แƒจแƒ”แƒ“แƒฃแƒฆแƒ”แƒ‘แƒแƒ–แƒ”, แƒคแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒกแƒ•แƒšแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒฎแƒ•แƒ แƒ”แƒšแƒ”แƒ‘แƒจแƒ˜.

แƒ“แƒแƒคแƒ แƒ’แƒแƒ แƒ”แƒชแƒฎแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ FLUX OFF แƒแƒ”แƒ แƒแƒ–แƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒฌแƒ›แƒ”แƒœแƒ“แƒ˜แƒ—.
แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ™แƒแƒ แƒžแƒฃแƒกแƒ˜แƒก แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒกแƒแƒ›แƒ’แƒแƒœแƒ–แƒแƒ›แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒแƒœแƒ˜ แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒแƒ แƒจแƒ˜. แƒ™แƒแƒ แƒžแƒฃแƒกแƒ˜แƒก แƒ–แƒแƒ›แƒ”แƒ‘แƒ˜ 78,5 แƒ›แƒ› X 78,5 แƒ›แƒ› X 12 แƒ›แƒ›.
แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒ™แƒแƒ แƒžแƒฃแƒกแƒ˜แƒก แƒ“แƒ แƒ‘แƒแƒขแƒแƒ แƒ”แƒ˜แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒแƒ แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒ”แƒšแƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜ แƒ˜แƒงแƒ STL แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ’แƒแƒฎแƒ“แƒ แƒแƒ› แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ SLA แƒžแƒ แƒ˜แƒœแƒขแƒ”แƒ แƒ–แƒ” แƒ“แƒแƒกแƒแƒ‘แƒ”แƒญแƒ“แƒแƒ“ (แƒกแƒแƒงแƒ แƒ“แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ, แƒแƒ แƒ˜แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ). แƒแƒ› แƒ”แƒขแƒแƒžแƒ–แƒ” แƒฌแƒแƒ แƒ›แƒแƒ˜แƒจแƒ•แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒกแƒแƒงแƒแƒคแƒแƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ SLA แƒžแƒ แƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ”แƒญแƒ“แƒ•แƒ˜แƒก แƒแƒ แƒ”แƒแƒšแƒ˜ แƒ›แƒชแƒ˜แƒ แƒ”แƒ. แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ™แƒแƒ แƒžแƒฃแƒกแƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒšแƒ˜ แƒ‘แƒ”แƒญแƒ“แƒ•แƒ˜แƒก แƒ“แƒ แƒแƒกแƒ—แƒแƒœ แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ  แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒจแƒ˜ แƒแƒ  แƒฏแƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ‘แƒ”แƒญแƒ“แƒ•แƒ˜แƒก แƒ–แƒแƒœแƒ˜แƒก แƒ–แƒแƒ›แƒ”แƒ‘แƒจแƒ˜. แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก 45 แƒ’แƒ แƒแƒ“แƒฃแƒกแƒ–แƒ” แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒแƒกแƒ”แƒ•แƒ” แƒ˜แƒ›แƒ”แƒ“แƒ’แƒแƒชแƒ แƒฃแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒฆแƒ, แƒกแƒแƒงแƒ แƒ“แƒ”แƒœแƒ˜แƒก แƒฌแƒแƒœแƒ แƒกแƒฎแƒ”แƒฃแƒšแƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒฌแƒแƒœแƒแƒก แƒฃแƒ“แƒ แƒ˜แƒ“แƒ. แƒ’แƒแƒ“แƒแƒฌแƒงแƒ“แƒ แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒ•แƒ”แƒ แƒขแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒแƒ“ แƒ“แƒแƒ‘แƒ”แƒญแƒ“แƒ•แƒ, แƒกแƒแƒงแƒ แƒ“แƒ”แƒœแƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒ”แƒ แƒ—-แƒ”แƒ แƒ— แƒฌแƒ˜แƒœแƒ แƒ›แƒฎแƒแƒ แƒ”แƒก, แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒจแƒ”แƒ—แƒแƒœแƒฎแƒ›แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒฅแƒขแƒ–แƒ”. แƒกแƒฎแƒ”แƒฃแƒšแƒ˜แƒก แƒ“แƒแƒ‘แƒ”แƒญแƒ“แƒ•แƒแƒก 5 แƒกแƒแƒแƒ—แƒ˜ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ 50 แƒ›แƒ˜แƒ™แƒ แƒแƒœแƒ˜ แƒคแƒ”แƒœแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒฌแƒ•แƒ แƒ˜แƒšแƒ›แƒแƒ แƒชแƒ•แƒšแƒแƒ•แƒแƒœแƒ˜ แƒฅแƒ•แƒ˜แƒจแƒ˜แƒก แƒฅแƒแƒฆแƒแƒšแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (แƒœแƒแƒ›แƒ”แƒ แƒก แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ , แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ  แƒ•แƒ˜แƒชแƒ˜ :)). แƒ‘แƒแƒขแƒแƒ แƒ”แƒ˜แƒก แƒกแƒแƒคแƒแƒ แƒ˜แƒก แƒ“แƒแƒ‘แƒ”แƒญแƒ“แƒ•แƒแƒก 40 แƒฌแƒฃแƒ—แƒ˜ แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ.
แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒจแƒฃแƒจแƒ˜แƒก แƒžแƒแƒœแƒ”แƒšแƒ”แƒ‘แƒ˜ Aliexpress-แƒ˜แƒกแƒ’แƒแƒœ แƒ˜แƒงแƒ˜แƒ“แƒ”แƒ‘แƒ แƒฃแƒ™แƒ•แƒ” แƒฌแƒ”แƒ‘แƒแƒ•แƒแƒœแƒ˜ แƒžแƒšแƒแƒกแƒขแƒ›แƒแƒกแƒ˜แƒก แƒฉแƒแƒ แƒฉแƒแƒ—แƒ˜, แƒฉแƒแƒ แƒฉแƒแƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒแƒ  แƒงแƒแƒคแƒ˜แƒšแƒ. แƒ›แƒ” แƒแƒ›แƒแƒ•แƒ˜แƒฆแƒ” แƒจแƒฃแƒจแƒ˜แƒก แƒžแƒแƒœแƒ”แƒšแƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒคแƒ”แƒœแƒ˜แƒ— แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ’แƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’.
แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

LED แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒคแƒฃแƒ–แƒแƒ แƒ˜ แƒ“แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒšแƒ”แƒœแƒขแƒ˜แƒ— แƒแƒ™แƒ แƒ˜แƒšแƒ˜แƒก แƒฌแƒ”แƒ‘แƒแƒ•แƒแƒœแƒ˜ 3M 9088-200. แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒกแƒแƒšแƒ แƒ˜แƒงแƒ แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ, แƒฉแƒ˜แƒœแƒฃแƒ แƒ˜ แƒฌแƒ”แƒ‘แƒแƒ•แƒแƒœแƒ˜ แƒšแƒ”แƒœแƒขแƒ˜ แƒ“แƒ แƒฌแƒ”แƒ‘แƒแƒ•แƒแƒœแƒ˜ แƒฅแƒแƒฆแƒแƒšแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒญแƒ แƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ แƒคแƒ˜แƒ แƒ–แƒ” แƒจแƒ˜แƒ“แƒ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ Luminofor-แƒ˜แƒกแƒ’แƒแƒœ. แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ แƒจแƒ˜แƒ“แƒ แƒ›แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒ“; แƒฉแƒ”แƒ›แƒ˜ แƒ’แƒ แƒซแƒœแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ˜แƒก แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ™แƒแƒจแƒ™แƒแƒจแƒ แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ’แƒ แƒซแƒ”แƒšแƒ˜. 3M 9088-200 แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒšแƒ”แƒœแƒขแƒ˜แƒ— แƒ–แƒ”แƒ›แƒแƒ“แƒแƒœ แƒ˜แƒงแƒ แƒ“แƒแƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒžแƒ˜แƒ’แƒ›แƒ”แƒœแƒขแƒ˜แƒ— แƒฅแƒแƒฆแƒแƒšแƒ“แƒ˜แƒก แƒ™แƒ•แƒแƒ“แƒ แƒแƒขแƒ˜.

แƒ›แƒ˜แƒœแƒ แƒ“แƒแƒ›แƒแƒ’แƒ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜แƒก แƒกแƒฎแƒ”แƒฃแƒšแƒ–แƒ” แƒแƒ แƒ›แƒฎแƒ แƒ˜แƒ•แƒ˜ แƒšแƒ”แƒœแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— 3M VHB 4910 แƒแƒ™แƒ แƒ˜แƒšแƒ˜แƒก แƒฌแƒ”แƒ‘แƒแƒ—แƒ˜.
แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒกแƒแƒคแƒแƒ แƒ˜ แƒ“แƒแƒ›แƒแƒ’แƒ แƒ“แƒ แƒฎแƒ แƒแƒฎแƒœแƒ˜แƒ— M 1,4 X 5 แƒ›แƒ›.

แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒ 890 แƒ แƒฃแƒ‘แƒšแƒ˜.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒ•แƒ˜แƒ“แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜. แƒ˜แƒงแƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜. แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก, แƒ แƒแƒ› TTP223 แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒฉแƒ˜แƒžแƒ”แƒ‘แƒ˜ แƒ›แƒจแƒ•แƒ”แƒœแƒ˜แƒ•แƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ 3.3V แƒ“แƒ”แƒœแƒ˜แƒก แƒฌแƒงแƒแƒ แƒแƒกแƒ—แƒแƒœ แƒ“แƒ แƒแƒ แƒช แƒ˜แƒกแƒ” แƒ™แƒแƒ แƒ’แƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒ™แƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ“แƒแƒชแƒšแƒ˜แƒšแƒ˜ แƒ‘แƒแƒขแƒแƒ แƒ”แƒ˜แƒ“แƒแƒœ. แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒฉแƒแƒ แƒ—แƒ•แƒ˜แƒกแƒแƒก แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒ›แƒแƒ›แƒแƒ แƒแƒ’แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 2.5 แƒ•, แƒžแƒšแƒฃแƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— โ€žแƒ’แƒแƒ—แƒ˜แƒจแƒ•แƒ˜แƒกโ€œ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ Mysensors-แƒ˜แƒก แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก, TTP223 แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒฅแƒ”แƒ›แƒ›แƒ (แƒ“แƒแƒ™แƒแƒšแƒ˜แƒ‘แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒแƒœแƒแƒ•แƒ”) แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ MK-แƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ˜ แƒขแƒ แƒ˜แƒ’แƒ”แƒ แƒ˜แƒ— แƒ˜แƒงแƒ.

แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒ›แƒแƒ›แƒแƒ แƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ แƒ” (แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒ”แƒœแƒ”แƒ แƒ’แƒ˜แƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ›แƒ”แƒœแƒขแƒ˜ TTP223 gpio MK-แƒ˜แƒ—), แƒ›แƒ˜แƒ”แƒฌแƒแƒ“แƒ”แƒ‘แƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ“แƒแƒ›แƒ˜แƒฌแƒ”แƒ‘แƒ แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’แƒแƒ‘แƒ˜แƒก แƒ›แƒฅแƒแƒœแƒ” แƒ แƒ”แƒ–แƒ˜แƒกแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ rgb led แƒฎแƒแƒ–แƒ”แƒ‘แƒ–แƒ” (แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ“แƒ˜แƒก แƒขแƒ”แƒ•แƒแƒ“แƒ˜ แƒกแƒ”แƒœแƒกแƒแƒ แƒ˜แƒก แƒ“แƒแƒคแƒ˜แƒก แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒฎแƒแƒ แƒ”แƒก). แƒ˜แƒ’แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ”แƒ›แƒแƒขแƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒš แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒแƒก: แƒกแƒ˜แƒ›แƒซแƒšแƒแƒ•แƒ แƒ˜แƒก แƒ’แƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ”แƒ‘แƒ แƒขแƒ”แƒ•แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒฅแƒ”แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก Mysensors-แƒ˜แƒก แƒฉแƒแƒ แƒฉแƒแƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒ’แƒแƒแƒ แƒ›แƒแƒ’แƒ“แƒ TTP223 แƒฉแƒ˜แƒžแƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ™แƒแƒšแƒ˜แƒ‘แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒ”แƒœแƒ”แƒ แƒ’แƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก. แƒงแƒ•แƒ”แƒšแƒ แƒแƒ› แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒแƒ› แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒแƒ“ แƒแƒฆแƒ›แƒแƒคแƒฎแƒ•แƒ แƒ แƒ”แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ.

แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒœแƒแƒฎแƒ•แƒแƒ›แƒ“แƒ” แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒ’แƒแƒ”แƒชแƒœแƒแƒ— แƒ”แƒกแƒ™แƒ˜แƒ–แƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒก 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

แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒก แƒแƒฅแƒ•แƒก แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ แƒ“แƒ แƒขแƒแƒฅแƒขแƒ˜แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒฃแƒ™แƒแƒœแƒ แƒ›แƒฎแƒแƒ แƒ”แƒก. แƒ”แƒก แƒขแƒแƒฅแƒขแƒ˜แƒแƒœแƒ˜ แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒแƒฐแƒแƒ”แƒ แƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒฆแƒ˜แƒšแƒแƒ™แƒก แƒแƒฅแƒ•แƒก แƒ แƒ™แƒ˜แƒœแƒ˜แƒก แƒกแƒแƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ. แƒขแƒ”แƒ•แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒกแƒ”แƒœแƒกแƒแƒ แƒ˜แƒก แƒฎแƒแƒ–แƒ˜ แƒ“แƒ แƒกแƒแƒแƒ—แƒ˜แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ˜แƒก แƒฎแƒแƒ–แƒ˜ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Schottky แƒ“แƒ˜แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒœแƒแƒšแƒแƒ’แƒฃแƒ  แƒžแƒ˜แƒœแƒก p0.05, แƒแƒกแƒ”แƒ•แƒ” แƒขแƒ”แƒ•แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒกแƒ”แƒœแƒกแƒแƒ แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒกแƒแƒแƒ—แƒ˜แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ˜แƒ“แƒแƒœ แƒแƒ แƒ˜แƒก แƒฎแƒแƒ–แƒ”แƒ‘แƒ˜ MK แƒฅแƒ˜แƒœแƒซแƒ˜แƒกแƒ—แƒแƒ•แƒ”แƒ‘แƒ˜ p0.25 แƒ“แƒ p0.27. .0.05 แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒแƒ“ p0.05 pXNUMX-แƒ–แƒ” แƒจแƒ”แƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. 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');
} 
}

แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ•แƒ˜แƒ“แƒ”แƒแƒจแƒ˜

แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ แƒ’แƒแƒ›แƒแƒซแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒงแƒ•แƒแƒœแƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ TTP223 แƒขแƒ”แƒ•แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒฅแƒ”แƒ›แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒกแƒ—แƒแƒœ; แƒ›แƒ”แƒขแƒ˜ แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒ แƒ™แƒแƒ แƒ’แƒ˜ แƒ“แƒ แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ แƒแƒ•แƒแƒœแƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒกแƒ™แƒ”แƒœ แƒฆแƒ˜แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒกแƒแƒก แƒ‘แƒแƒขแƒแƒ แƒ”แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜.

แƒแƒ’แƒ แƒ”แƒ—แƒ•แƒ”แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ Github - github.com/smartboxchannel/EFEKTA_WIRELESS_TOUCH_SWITCH

แƒ แƒฃแƒกแƒฃแƒšแƒ”แƒœแƒแƒ•แƒแƒœแƒ˜ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ˜แƒขแƒ˜ Mysensors

แƒขแƒ”แƒšแƒ”แƒ’แƒ แƒแƒ›แƒ˜แƒก แƒฉแƒแƒขแƒ˜ Mysensors โ€” Mysensors-แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ, แƒ แƒฉแƒ”แƒ•แƒ”แƒ‘แƒ˜, แƒฎแƒ แƒ˜แƒ™แƒ”แƒ‘แƒ˜, แƒ“แƒแƒคแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, atmega 328, stm32, nRF5 แƒ›แƒ˜แƒ™แƒ แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ Arduino IDE-แƒจแƒ˜ โ€” @mysensors_rus

แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒคแƒแƒขแƒแƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒฃแƒกแƒแƒ“แƒ”แƒœแƒ แƒกแƒ”แƒœแƒกแƒแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒšแƒฃแƒแƒ แƒ”แƒกแƒชแƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ˜แƒ—

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ