nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต

เด‡เดจเตเดจเดคเตเดคเต† เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดžเดพเตป เดจเดฟเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดชเด™เตเด•เดฟเดŸเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดธเดฎเดฏเด‚ เด’เดฐเต เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เด’เดฐเต เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต เด†เดฃเต. เด‰เดชเด•เดฐเดฃเด‚ เด’เดคเตเด•เตเด•เดฎเตเดณเตเดณเดคเดพเดฃเต, 42x42mm เด…เดณเด•เตเด•เตเดจเตเดจเต (เดธเดพเดงเดพเดฐเดฃ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเด•เตพเด•เตเด•เต 80x80mm เด…เดณเดตเตเด•เตพ เด‰เดฃเตเดŸเต). เดˆ เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดšเดฐเดฟเดคเตเดฐเด‚ เดตเดณเดฐเต†เด•เตเด•เดพเดฒเด‚ เดฎเตเดฎเตเดชเต เด†เดฐเด‚เดญเดฟเดšเตเดšเต, เดเด•เดฆเต‡เดถเด‚ เด’เดฐเต เดตเตผเดทเด‚ เดฎเตเดฎเตเดชเต.

nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต

เด†เดฆเตเดฏ เด“เดชเตเดทเดจเตเด•เตพ atmega328 เดฎเตˆเด•เตเดฐเต‹เด•เตบเดŸเตเดฐเต‹เดณเดฑเดฟเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด…เดตเดธเดพเดจเด‚ เดŽเดฒเตเดฒเดพเด‚ nRF52832 เดฎเตˆเด•เตเดฐเต‹เด•เตบเดŸเตเดฐเต‹เดณเดฑเดฟเตฝ เด…เดตเดธเดพเดจเดฟเดšเตเดšเต.

nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต

เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดŸเดšเตเดšเต เดญเดพเด—เด‚ TTP223 เดšเดฟเดชเตเดชเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดฐเดฃเตเดŸเต เดธเต†เตปเดธเดฑเตเด•เดณเตเด‚ เด’เดฐเต เด‡เตปเดฑเดฑเดชเตเดฑเตเดฑเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต เดจเตฝเด•เตเดจเตเดจเดคเต. TPS2477 เดšเดฟเดชเตเดชเดฟเดฒเต† เด’เดฐเต เดฌเต‚เดธเตเดฑเตเดฑเต เด•เตบเดตเต†เตผเดŸเตเดŸเตผ เดตเดดเดฟ, CR610981 เดฌเดพเดฑเตเดฑเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต | เดกเดพเดฑเตเดฑ เดทเต€เดฑเตเดฑเต.

nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต
nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต

เดซเต€เตฝเดกเต-เด‡เดซเด•เตเดฑเตเดฑเต เดŸเตเดฐเดพเตปเดธเดฟเดธเตเดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‰เดชเด•เดฐเดฃเด‚ เด’เดฐเต เดชเดตเตผ-เด“เดซเต เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต. เดฌเดŸเตเดŸเตบ เด…เดฎเตผเดคเตเดคเดฟเดฏเดพเตฝ, เดฎเตˆเด•เตเดฐเต‹เด•เตบเดŸเตเดฐเต‹เดณเตผ เดคเดจเตเดจเต† เดชเดตเตผ เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด‚ เดคเดŸเดธเตเดธเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เดธเต‡เดตเดจ เดฎเต‹เดกเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดฌเดŸเตเดŸเตบ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ (เดŽเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด‡เดคเต เดฎเดฑเตเดฑเต เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดœเต‹เดŸเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเต, เดชเดตเตผ เด“เดซเดพเด•เตเด•เดฟ เดซเดพเด•เตเดŸเดฑเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดชเตเดจเดƒเดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเต).

เดธเด‚เดธเตเดฅเดพเดจเด™เตเด™เดณเตเด‚ เดธเต‡เดตเดจ เดฎเต‹เดกเตเด•เดณเตเด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป 2 rgb LED-เด•เตพ เด‰เดฃเตเดŸเต. เดŸเดšเตเดšเต เดฌเดŸเตเดŸเดฃเตเด•เดณเตเด‚ เดธเต‡เดตเดจ เดฎเต‹เดกเตเด•เดณเตเดŸเต† เดถเดฌเตโ€Œเดฆ เดธเต‚เดšเดจเดฏเตเด‚ เดธเตโ€Œเดชเตผเดถเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด’เดฐเต เด•เตเดฒเดฟเด•เตเด•เดฟเดจเต† เด…เดจเตเด•เดฐเดฟเด•เตเด•เดพเตป เด’เดฐเต เดชเต€เดธเต‹ เดŽเดฎเดฟเดฑเตเดฑเดฑเตเด‚ เดšเต‡เตผเดคเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต. เดŽเตฝเด‡เดกเดฟเด•เดณเตเด‚ เดชเต€เดธเต‹ เดŽเดฎเดฟเดฑเตเดฑเดฑเตเด‚ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเดฑเต† เดตเดฟเดตเต‡เดšเดจเดพเดงเดฟเด•เดพเดฐเดคเตเดคเดฟเตฝ เด“เดฃเดพเด•เตเด•เดพเดจเตเด‚ เด“เดซเดพเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดธเต†เตปเดธเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด•เดฎเดพเตปเดกเตเด•เตพ เด…เดฏเดšเตเดšเต เดธเตเดฎเดพเตผเดŸเตเดŸเต เดนเต‹เด‚ เด•เตบเดŸเตเดฐเต‹เดณเตผ เดตเดดเดฟเดฏเดพเดฃเต เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต; เดธเตเดฎเดพเตผเดŸเตเดŸเต เดนเต‹เด‚ เด•เตบเดŸเตเดฐเต‹เดณเตผ เดตเดดเดฟ เดฌเดพเดฑเตเดฑเดฑเดฟ เดšเดพเตผเดœเตเด‚ เดธเดฟเด—เตเดจเตฝ เดฒเต†เดตเดฒเตเด‚ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‡เดŸเดตเต‡เดณเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เดฎเดพเดฑเตเดฑเดพเดจเดพเด•เตเด‚. เดŽเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เด…เดคเต เดฎเดœเต‹เตผเดกเต‹เดฎเต‹.

เดŸเตเดฐเดพเตปเดธเตเดฎเดฟเดฑเตเดฑเต เดฎเต‹เดกเดฟเดฒเต† เด‰เดชเดญเต‹เด—เด‚ 7mA เด†เดฃเต (250kbit, 10ms), เด‰เดฑเด•เตเด•เดคเตเดคเดฟเดฒเต† เด‰เดชเดญเต‹เด—เด‚ 40ยตA เด†เดฃเต, เด“เดซเต เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเดฟเดฒเต† เด‰เดชเดญเต‹เด—เด‚ 1ยตA-เตฝ เดคเดพเดดเต†เดฏเดพเดฃเต (="เดจเดฟเดทเตเด•เตเดฐเดฟเดฏ" เดฎเต‹เดกเดฟเตฝ เดฌเต‚เดธเตเดฑเตเดฑเต เด•เตบเดตเต†เตผเดŸเตเดŸเดฑเดฟเดจเตเดฑเต† เด‰เดชเดญเต‹เด—เด‚). เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ Rx, tx, swd เด•เดฃเด•เตเดฑเตเดฑเตผ เดจเตฝเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต. 2 เดชเดฟเดšเตเดšเต เด‰เดณเตเดณ เด’เดฐเต เดฎเดฟเดจเดฟเดฏเต‡เดšเตเดšเตผ 3x1.27p เด•เดฃเด•เตเดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด…เดกเดพเดชเตเดฑเตเดฑเตผ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต

เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดŽเดจเตเดจเดชเต‹เดฒเต†, เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณเดคเดพเดฃเต เดฎเตˆเดธเต†เตปเดธเดฑเตเด•เตพ. เดˆ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต เดฑเต‹เดณเตผ เดฌเตเดฒเตˆเตปเดกเต เด•เตบเดŸเตเดฐเต‹เตพ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เดชเตŠเดคเตเดตเต‡, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดจเดฟเด™เตเด™เดณเตเดŸเต† เดญเดพเดตเดจเดฏเดพเตฝ เดฎเดพเดคเตเดฐเด‚ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดŽเดจเตเดฑเต† เดฎเด•เตป (7 เดตเดฏเดธเตเดธเต) เดธเตเดตเดฟเดšเตเดšเต เดชเดคเดฟเดชเตเดชเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด‡เดคเดฟเดจเด•เด‚ 3 เด“เตผเดกเดฑเตเด•เตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต: เด’เดฐเต เดฌเดพเดคเตเดคเต เดŸเดฌเต เด‰เดณเตเดณ เด’เดฐเต เดŸเต‹เดฏเตโ€Œเดฒเดฑเตเดฑเดฟเตฝ เดฒเตˆเดฑเตเดฑเต เด“เดฃเดพเด•เตเด•เดพเดจเตเด‚ เด“เดซเดพเด•เตเด•เดพเดจเตเด‚ (เด…เดคเต เดคเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดพเดดเตเดจเตเดจเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚), เดฒเตˆเดฑเตเดฑเต เด“เดฃเดพเด•เตเด•เดพเตป เด’เดฐเต เดฌเดพเดคเตเดคเต เดŸเดฌเตเดฌเตเดณเตเดณ เดŸเต‹เดฏเตโ€Œเดฒเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดฏเดพเดคเตเดฐ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดจเต€เดณเดฎเตเดณเตเดณ เด‡เดฐเตเดฃเตเดŸ เด‡เดŸเดจเดพเดดเดฟ, เดฎเดฑเตเดฑเตŠเดจเตเดจเต เด•เดฟเดŸเด•เตเด•เดฏเตเด•เตเด•เต เดธเดฎเต€เดชเด‚, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฎเตเดฑเดฟเดฏเดฟเดฒเต† เดฒเตˆเดฑเตเดฑเต เดตเต‡เด—เดคเตเดคเดฟเตฝ เด“เดฃเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดฐเดพเด•เตเดทเดธเดจเตเดฎเดพเตผ เด“เดŸเดฟเดชเตเดชเต‹เด•เตเด‚.

nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต
nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต
nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต

เด•เต‡เดธเต เดชเดฐเดฎเตเดชเดฐเดพเด—เดคเดฎเดพเดฏเดฟ เด’เดฐเต SLA เดชเตเดฐเดฟเดจเตเดฑเดฑเดฟเตฝ เด…เดšเตเดšเดŸเดฟเดšเตเดšเดคเดพเดฃเต, เด‰เดชเด•เดฐเดฃเด‚ เดฎเดฟเดจเดฟเดฏเต‡เดšเตเดšเตผ เด†เดฃเต, เด•เต‡เดธเต เดšเต†เดฑเตเดคเดพเดฏเดฟ เดฎเดพเดฑเดฟ, เดˆ เดชเตเดฐเดฟเดจเตเดฑเดฟเด‚เด—เต เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏเดฏเตเดŸเต† เด‰เดชเดฏเต‹เด—เด‚ เดจเตเดฏเดพเดฏเดฎเดพเดฃเต.

เด…เดšเตเดšเดŸเดฟเดšเตเดš เดฎเต‹เดกเตฝ เด•เดพเดฃเตเด•nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต
nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต
nRF52832-เตฝ เด—เตเดฒเดพเดธเต เดชเดพเดจเดฒเตเดณเตเดณ เดฎเดฟเดจเดฟ เดŸเดšเตเดšเต เดธเตเดตเดฟเดšเตเดšเต

เด•เต‡เดธเดฟเดฒเตเด‚ เดฌเดพเดฑเตเดฑเดฑเดฟ เด•เดฎเตเดชเดพเตผเดŸเตเดŸเตเดฎเต†เดจเตเดฑเต เด•เดตเดฑเดฟเดฒเตเด‚ เด•เดพเดจเตเดคเด™เตเด™เตพ เด’เดŸเตเดŸเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดˆ เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเตเดณเตเดณ เดตเต€เดกเดฟเดฏเต‹เด•เตพ:



เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดตเตผเด•เตเด•เต:

Arduino IDE-เดฏเตโ€Œเด•เตเด•เตเดณเตเดณ เดฑเต‹เดณเตผ เดฌเตเดฒเตˆเตปเดกเต เด•เตบเดŸเตเดฐเต‹เตพ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เด’เดฐเต เดธเตเดตเดฟเดšเตเดšเดฟเดจเดพเดฏเตเดณเตเดณ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด•เต‹เดกเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•

เด†เตผเดกเตเดตเดฟเดจเต‹ เดตเดฏเดฑเดฟเด‚เด—เต

int8_t timer_status = 0;
boolean sens_flag1 = 0;
boolean sens_flag2 = 0;
boolean switch_a = 0;
boolean switch_b = 0;
uint16_t temp;
float vcc;
int battery;
int old_battery;
uint32_t oldmillis;
uint32_t newmillis;
uint32_t interrupt_time;
uint32_t SLEEP_TIME = 7000;
uint32_t SLEEP_TIME_W;
uint32_t SLEEP_TIME_W2;
int NrfRSSI;
uint16_t NrfRSSI2;
boolean wait_off;
//#define MY_DEBUG
#define MY_DISABLED_SERIAL
#define MY_RADIO_NRF5_ESB
#define MY_PASSIVE_NODE
#define MY_NODE_ID 120
#define MY_PARENT_NODE_ID 0
#define MY_PARENT_NODE_IS_STATIC
#define MY_TRANSPORT_UPLINK_CHECK_DISABLED
#define POWER_CHILD_ID 110
#define UP_POWER_SWITCH_ID 1
#define DOWN_POWER_SWITCH_ID 2
#define CHILD_ID_nRF52_RSSI_RX 3
#define BAT_COOF 0.0092957746478873
#define BAT_MIN 200
#define BAT_MAX 290
#include <MySensors.h>
MyMessage upMsg(UP_POWER_SWITCH_ID, V_STATUS);
MyMessage downMsg(DOWN_POWER_SWITCH_ID, V_STATUS);
MyMessage powerMsg(POWER_CHILD_ID, V_VAR1);
MyMessage msgRF52RssiReceiv(CHILD_ID_nRF52_RSSI_RX, V_VAR1);
void preHwInit() {
pinMode(31, OUTPUT); //power management pin
digitalWrite(31, HIGH);
delay(3000);
pinMode(3, INPUT); // on off mode button
pinMode(25, OUTPUT); // sens1 led
pinMode(26, OUTPUT); // sens1 led
pinMode(27, OUTPUT); // sens1 led
pinMode(6, OUTPUT); // sens21 led
pinMode(7, OUTPUT); // sens2 led
pinMode(8, OUTPUT); // sens2 led
pinMode(28, OUTPUT); // bizzer
pinMode(2, INPUT); // common interrupt for touch sensors
pinMode(9, INPUT); // touch sensors1
pinMode(10, INPUT); //touch sensors2
pinMode(29, INPUT); // battery
digitalWrite(28, LOW);
digitalWrite(27, HIGH);
digitalWrite(26, HIGH);
digitalWrite(25, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
}
void before()
{
NRF_POWER->DCDCEN = 1;
analogReadResolution(12);
disableNfc();
turnOffAdc();
digitalWrite(25, LOW);
digitalWrite(6, LOW);
wait(200);
digitalWrite(25, HIGH);
digitalWrite(6, HIGH);
wait(100);
playSound0();
wait(100);
digitalWrite(25, LOW);
digitalWrite(6, LOW);
wait(200);
digitalWrite(25, HIGH);
digitalWrite(6, HIGH);
wait(3000);
digitalWrite(27, LOW);
digitalWrite(8, LOW);
wait(200);
digitalWrite(27, HIGH);
digitalWrite(8, HIGH);
wait(400);
digitalWrite(6, LOW);
digitalWrite(25, LOW);
wait(200);
digitalWrite(6, HIGH);
digitalWrite(25, HIGH);
wait(400);
digitalWrite(26, LOW);
digitalWrite(7, LOW);
wait(200);
digitalWrite(26, HIGH);
digitalWrite(7, HIGH);
wait(1000);
digitalWrite(26, LOW);
digitalWrite(7, LOW);
}
void setup()
{
digitalWrite(26, HIGH);
digitalWrite(7, HIGH);
wait(50);
playSound();
wait(2000);
readBatLev();
wait(200);
SLEEP_TIME_W = SLEEP_TIME;
}
void presentation()
{
sendSketchInfo("EFEKTA ON|OFF NODE 2CH", "1.0");
wait(100);
present(POWER_CHILD_ID, S_CUSTOM, "BATTERY DATA");
wait(100);
present(UP_POWER_SWITCH_ID, S_BINARY, "UP SWITCH");
wait(100);
present(DOWN_POWER_SWITCH_ID, S_BINARY, "DOWN SWITCH");
}
void loop()
{
if (sens_flag1 == 0 && sens_flag2 == 0) {
if (switch_a == 0 && switch_b == 0) {
timer_status = sleep(digitalPinToInterrupt(2), RISING, digitalPinToInterrupt(3), RISING, 3600000, false);
wait_off = 1;
} else {
//oldmillis = millis();
timer_status = sleep(digitalPinToInterrupt(2), RISING, digitalPinToInterrupt(3), RISING, SLEEP_TIME_W, false);
wait_off = 0;
}
}
if (timer_status == 3) {
wait(100);
digitalWrite(27, LOW);
digitalWrite(8, LOW);
wait(2000);
digitalWrite(27, HIGH);
digitalWrite(8, HIGH);
wait(100);
digitalWrite(31, LOW);
}
if (timer_status == 2) {
if (digitalRead(9) == HIGH && sens_flag1 == 0 && switch_b == 0) {
sens_flag1 = 1;
if (switch_a == 0) {
oldmillis = millis();
SLEEP_TIME_W = SLEEP_TIME;
switch_a = 1;
digitalWrite(6, LOW);
wait(10);
playSound1();
wait(20);
playSound2();
wait(50);
send(upMsg.set(switch_a));
wait(200);
} else {
switch_a = 0;
digitalWrite(6, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(upMsg.set(switch_a));
wait(200);
}
}
if (digitalRead(10) == HIGH && sens_flag2 == 0 && switch_a == 0) {
sens_flag2 = 1;
if (switch_b == 0) {
oldmillis = millis();
SLEEP_TIME_W = SLEEP_TIME;
switch_b = 1;
digitalWrite(25, LOW);
wait(10);
playSound1();
wait(20);
playSound2();
wait(50);
send(downMsg.set(switch_b));
wait(200);
} else {
switch_b = 0;
digitalWrite(25, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(downMsg.set(switch_b));
wait(200);
}
}
if (digitalRead(9) == LOW && sens_flag1 == 1) {
sens_flag1 = 0;
}
if (digitalRead(10) == LOW && sens_flag2 == 1) {
sens_flag2 = 0;
}
if (switch_a == 1 || switch_b == 1) {
if (wait_off == 0) {
newmillis = millis();
wait(10);
SLEEP_TIME_W2 = SLEEP_TIME_W;
wait(10);
interrupt_time = newmillis - oldmillis;
wait(10);
SLEEP_TIME_W = SLEEP_TIME_W2 - interrupt_time;
wait(10);
Serial.print("WAS IN A SLEEP: ");
Serial.print(newmillis - oldmillis);
Serial.println(" MILLISECONDS");
if (SLEEP_TIME_W < 1000) {
if (switch_a == 1) {
switch_a = 0;
digitalWrite(6, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(upMsg.set(switch_a));
wait(200);
}
if (switch_b == 1) {
switch_b = 0;
digitalWrite(25, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(downMsg.set(switch_b));
wait(200);
}
SLEEP_TIME_W = SLEEP_TIME;
wait(50);
}
Serial.println(SLEEP_TIME);
Serial.println(SLEEP_TIME_W);
Serial.println(SLEEP_TIME_W2);
Serial.print("GO TO SLEEP FOR: ");
Serial.print(SLEEP_TIME_W);
Serial.println(" MILLISECONDS");
}
oldmillis = millis();
}
}
if (timer_status == -1) {
if (switch_a == 1 || switch_b == 1) {
if (switch_a == 1) {
switch_a = 0;
digitalWrite(6, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(upMsg.set(switch_a));
wait(200);
}
if (switch_b == 1) {
switch_b = 0;
digitalWrite(25, HIGH);
wait(10);
playSound2();
wait(20);
playSound1();
wait(50);
send(downMsg.set(switch_b));
wait(200);
}
} else {
readBatLev();
}
}
}
void disableNfc() {
NRF_NFCT->TASKS_DISABLE = 1;
NRF_NVMC->CONFIG = 1;
NRF_UICR->NFCPINS = 0;
NRF_NVMC->CONFIG = 0;
}
void turnOffAdc() {
if (NRF_SAADC->ENABLE) {
NRF_SAADC->TASKS_STOP = 1;
while (NRF_SAADC->EVENTS_STOPPED) {}
NRF_SAADC->ENABLE = 0;
while (NRF_SAADC->ENABLE) {}
}
}
void myTone(uint32_t j, uint32_t k) {
j = 500000 / j;
k += millis();
while (k > millis()) {
digitalWrite(28, HIGH); delayMicroseconds(j);
digitalWrite(28, LOW ); delayMicroseconds(j);
}
}
void playSound0() {
myTone(1300, 50);
wait(20);
myTone(1300, 50);
wait(50);
}
void playSound() {
myTone(700, 30); 
wait(10);
myTone(700, 30);
wait(10);
myTone(700, 30);
wait(50);
}
void playSound1() {
myTone(200, 10);
wait(10);
myTone(400, 5);
wait(30);
}
void playSound2() {
myTone(400, 10);
wait(10);
myTone(200, 5);
wait(30);
}
void readBatLev() {
temp = analogRead(29);
vcc = temp * 0.0033 * 100;
battery = map((int)vcc, BAT_MIN, BAT_MAX, 0, 100);
if (battery < 0) {
battery = 0;
}
if (battery > 100) {
battery = 100;
}
sendBatteryLevel(battery, 1);
wait(2000, C_INTERNAL, I_BATTERY_LEVEL);
send(powerMsg.set(temp));
wait(200);
NrfRSSI = transportGetReceivingRSSI();
NrfRSSI2 = map(NrfRSSI, -85, -40, 0, 100);
if (NrfRSSI2 < 0) {
NrfRSSI2 = 0;
}
if (NrfRSSI2 > 100) {
NrfRSSI2 = 100;
}
send(msgRF52RssiReceiv.set(NrfRSSI2));
wait(200);
}

stl-เดฒเต† เด•เต‡เดธเต เดซเดฏเดฒเตเด•เตพ - เด—เต‚เด—เดฟเตพ เดกเตเดฐเตˆเดตเต

Gerber PCB เดซเดฏเดฒเตเด•เตพ - เด—เต‚เด—เดฟเตพ เดกเตเดฐเตˆเดตเต

เดˆ เดตเดฟเด•เดธเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเต‹เดฆเตเดฏเด™เตเด™เตพเด•เตเด•เต, Arduinos, Mysensors เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต† เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเด‚เดญเดตเดตเดฟเด•เดพเดธเด™เตเด™เดณเดฟเดฒเต† เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเต‹เดฆเตเดฏเด™เตเด™เตพเด•เตเด•เต เดžเด™เตเด™เดณเตเดŸเต† เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เดšเดพเดฑเตเดฑเดฟเตฝ เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ เดฐเด•เตเดทเดพเดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เด‰เดฃเตเดŸเดพเด•เตเด‚ - https://t.me/mysensors_rus.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•