ืžืขืจื›ืช ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช ืœืื™ืกื•ืฃ ื ืชื•ื ื™ื

ื”ื—ื‘ืจื” ืจื›ืฉื” ืขืžื“ื•ืช ื ื™ื˜ื•ืจ NEKST-M, ืฉื™ื•ืฆืจื• ื‘ืืจืฅ ืขืœ ื™ื“ื™ Next Technologies. ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื”ื“ืžื™ื” ืฉืœ ืคืขื•ืœืช ื™ื—ื™ื“ื•ืช ื”ืฉืื™ื‘ื”,
ืื–ืขืงื•ืช ืืฉ ื•ืื‘ื˜ื—ื”, ื ื•ื›ื—ื•ืช ืžืชื— ื‘ืžืชื—ื™ืœื™ื, ื˜ืžืคืจื˜ื•ืจืช ื”ื—ื“ืจ, ืžืคืœืก ืžื™ื ืœืฉืขืช ื—ื™ืจื•ื. ื”ืœื‘ ืฉืœ NEKST-M ื”ื•ื ATMEGA 1280 ื•ืขื•ื‘ื“ื” ื–ื• ืžืขื•ื“ื“ืช ืžื‘ื—ื™ื ืช ื”ืืคืฉืจื•ืช ืœื™ืฆื•ืจ ืขืจื›ื” ืžืฉืœืš ืœืฆืจื›ื™ื ืกืคืฆื™ืคื™ื™ื.

ื”ืžืฉื™ืžื” ื ืงื‘ืขื” ืœื™ืฆื•ืจ ืžืขืจื›ืช ืฉื™ื’ื•ืจ ืžืงื•ืžื™ืช ืื•ื˜ื•ื ื•ืžื™ืช ืžืœืื” ืœืฆืจื›ื™ื ืกืคืฆื™ืคื™ื™ื ื‘ื–ืžืŸ ื”ืงืฆืจ ื‘ื™ื•ืชืจ ื•ื‘ืขืœื•ืช ืžื™ื ื™ืžืœื™ืช. ื”ื‘ืกื™ืก ื”ื•ื ืžื™ืงืจื•-ื‘ืงืจ. ืคื™ืชื•ื—, ื™ื™ืฆื•ืจ, ืฉื ื•ืฆืจ ืขืœ ื™ื“ื™ ื”ืฆื•ื•ืช ืขืฆืžื•.

ืขืœ ื”ืžืขืจื›ืช ืœืคืขื•ืœ ืœืœื ืชืœื•ืช ื‘ืจืฉืชื•ืช ืกืœื•ืœืจื™ื•ืช, ืฉืจืชื™ื, ืื™ื ื˜ืจื ื˜ ื•ืžืขืจื›ืช ื”ืจื™ืฉื•ื™ ืœืฉื™ืžื•ืฉ ื‘ืžืฉืื‘ื™ ืชื“ืจื™ ืจื“ื™ื•, ืœื ืœื”ืฉืชืžืฉ ื‘ืžื—ืฉื‘ื™ื ื‘ืชืคืขื•ืœ ืžืขืจืš ื”ื ื™ื˜ื•ืจ ื•ื”ื‘ืงืจื” ืื• ืœื›ืœ ื”ื™ื•ืชืจ ืœื”ืฉืชืžืฉ ืžืขืช ืœืขืช ื‘ืžื—ืฉื‘ื™ื ื ื™ื™ื“ื™ื, ืœืœื ื’ื™ืฉื” ืœ- ื—ืคืฆื™ื ื‘ืžืฉืš ื–ืžืŸ ืจื‘ (6-9 ื—ื•ื“ืฉื™ื). ืœืชืฆื•ืจืช ื”ืจืฉืช ื™ืฉ ืžื‘ื ื” ืจื“ื™ืืœื™. ื”ื ืชื•ื ื™ื ื ืืกืคื™ื ื‘ืฉืœื‘ ืžืกื•ื™ื ื•ืœืื—ืจ ืžื›ืŸ ื ืฉืœื—ื™ื ืœืขื™ื‘ื•ื“ ื‘ืืžืฆืขื•ืช ืขืจื•ืฆื™ ืชืงืฉื•ืจืช ืจื’ื™ืœื™ื ืื• ื›ืขื•ืชืง ืžื•ื“ืคืก.

ื”ืžืขืจื›ืช ื—ื™ื™ื‘ืช ืœืกืคืง:

  • ื ื™ื˜ื•ืจ ืคืขื•ืœืช ื™ื—ื™ื“ื•ืช ื”ืฉืื™ื‘ื”
  • ืื•ื˜ื•ืžืฆื™ื” ื˜ื›ื ื•ืœื•ื’ื™ืช
  • ื”ื’ื ื” ืžืคื ื™ ื”ื”ืฉืœื›ื•ืช ืฉืœ ืชื ืื™ ื—ื™ืจื•ื
  • ืื™ืชื•ืช ื—ื™ืจื•ื
  • ื—ื™ืฉื•ื‘ ื–ืžืŸ ืคืขื•ืœื”
  • ื—ื™ืฉื•ื‘ ื›ืžื•ืช ื”ื—ืฉืžืœ ื”ื ืฆืจื›ืช
  • ื‘ืงืจืช ื˜ืžืคืจื˜ื•ืจื” ืฉืœ ืฆื™ื•ื“
  • ืื‘ื˜ื—ื” ื•ืื–ืขืงืช ืืฉ
  • ื”ืงืœื˜ื” ืชืงื•ืคืชื™ืช ืžืจื—ื•ืง ืฉืœ ืžื™ื“ืข
  • ื“ืจื™ืฉื•ืช ืขืชื™ื“ื™ื•ืช ืœื ื™ื“ื•ืขื•ืช

ืชื ืื™ ืขื‘ื•ื“ื”:

  • ืฉื˜ื— ื›ื™ืกื•ื™ 1 ืงืž"ืจ.
  • ื ืจืื•ืช ื™ืฉื™ืจื” ื‘ื™ืŸ ืื•ื‘ื™ื™ืงื˜ื™ื
  • ื˜ืžืคืจื˜ื•ืจื” ื‘ื™ืŸ +50 ืœ-50 ืžืขืœื•ืช ืฆืœื–ื™ื•ืก
  • ืœื—ื•ืช ืขื“ 100%
  • ืžืฉืงืขื™ื ืคืขื™ืœื™ื ื‘ื™ื•ืœื•ื’ื™ืช (ืขื•ื‘ืฉ, ื—ื™ื™ื“ืงื™ื ืžืคื—ื™ืชื™ ืกื•ืœืคื˜)
  • ืจื˜ื˜, ืœื ื™ื•ืชืจ, ืฉืœ ืžื›ื•ื ื•ืช ืžื“ืจื’ื•ืช 1-2 ืœืคื™ GOST ISO 10816-1-97
  • ืกื‘ื™ื‘ื” ืืœืงื˜ืจื•ืžื’ื ื˜ื™ืช - ืžื™ืชื•ื’ ืžื ื•ืขื™ื ื—ืฉืžืœื™ื™ื ืขื ืžื’ืข KT 6053, ืฆื™ื•ื“ ื”ืชื—ืœื” ืจื›ื” RVS-DN, ืฆื™ื•ื“ ื‘ืงืจืช SIEMENS MICROMASTER PID, ืงืจื™ื ื” ื‘ื˜ื•ื•ื— ISM ื•-GSM ื‘ื”ืชืื ืœื“ืจื™ืฉื•ืช ืœืžื›ืฉื™ืจื™ื ืืœื•, ืจื™ืชื•ืš ืงืฉืช ื™ื“ื ื™ ื‘ืืชืจ
  • ืžืชื— ืจืฉืช ืžื•ื’ื–ื, ื”ืคืกืงื•ืช ืงืฆืจื•ืช ื˜ื•ื•ื— ื‘ืืกืคืงืช ื”ื—ืฉืžืœ, ืžืชื—ื™ ื™ืชืจ ื‘ืจืง, ื—ื•ืกืจ ืื™ื–ื•ืŸ ืคืื–ื” ื›ืืฉืจ ื—ื•ื˜ ืงื• ืขื™ืœื™ ื ืฉื‘ืจ ื‘ืจืฉืชื•ืช ื”ืคืฆื” ืฉืœ 6-10 ืงื™ืœื• ื•ื•ืœื˜.

ืœืžืจื•ืช ื“ืจื™ืฉื•ืช ื›ื” ืžื—ืžื™ืจื•ืช, ื”ื™ื™ืฉื•ื ื”ื•ื ื“ื™ ืคืฉื•ื˜ ื›ืืฉืจ ืคื•ืชืจื™ื ืืช ื”ื‘ืขื™ื” ืฆืขื“ ืื—ืจ ืฆืขื“.

ืื ืœื•ืงื—ื™ื ื”ื›ืœ ื‘ื—ืฉื‘ื•ืŸ, ืœื•ื— "Arduino Nano 3.0" ื”ืคืš ืœ"ืžื•ื—" ืฉืœ ื”ืชื•ื›ื ื™ืช. ืœืœื•ื— robotdyn ื™ืฉ ื‘ืงืจ ATMEGA 328, ืžื™ื™ืฆื‘ ื”ืžืชื— ื”ื”ื›ืจื—ื™ ืฉืœ 3,3V ืขื‘ื•ืจ
ื–ืจื 800 mA ื•ืžืžื™ืจ ืœ-CH340G UART-USB.

ืงื•ื“ื ื›ืœ, ื ื•ืฆืจื• ืžื•ื ื™ ืฉืขื•ืช ืคืขื™ืœื•ืช ื‘ืชื•ืจ ื”ืžืขื•ื“ื›ื ื™ื ื‘ื™ื•ืชืจ. ืžื•ื ื™ื ืชืขืฉื™ื™ืชื™ื™ื ืฉืฉื™ืžืฉื• ื‘ืขื‘ืจ ืฉื”ื•ืจื›ื‘ื• ืขืœ PICs ืขื ืžืขื’ืœ ืืกืคืงืช ื—ืฉืžืœ ืœืœื ืฉื ืื™, ื ื›ืฉืœื• ืขืงื‘ ืขืœื™ื•ืช ืžืชื— ื‘ืชื•ืš ืฉื ื” ืžื”ืคืขื™ืœื•ืช. ืจืง ืืœื” ื”ืžื—ื•ื‘ืจื™ื ื‘ืืžืฆืขื•ืช ืกืคืงื™ ื›ื•ื— 5V ืชื•ืฆืจืช ื‘ื™ืช ื ื•ืชืจื• ืœืœื ืคื’ืข. ื›ื“ื™ ืœื”ืื™ืฅ ืืช ื”ื”ืชืงื ื” ื•ืืช ื”ืจื‘ื’ื•ื ื™ื•ืช ืฉืœ ื”ื—ื™ื‘ื•ืจ, ืื•ืช ืขืœ ืžืฆื‘ ื”ื™ื—ื™ื“ื•ืช ื ืœืงื— ืžื”ืžืกื•ืคื™ื ืฉืœ ื”ืชืงื ื™ ื”ืžื™ืชื•ื’, ื›ืœื•ืžืจ. ืจื™ืฉื•ื ืฉืœ ื ื•ื›ื—ื•ืช ืžืชื— ืฉืœื‘ 1 ืขื ืกืคืง ื›ื•ื— ืชืœืช ืคืื–ื™ ืฉืœ 380V. ื›ื“ื™ ืœืชืื ืขื ื”ื‘ืงืจ, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžืžืกืจ ื‘ื™ื ื™ื™ื ืขื ืคื™ืชื•ืœ 220V ืื• ืžืฆืžื“ ืื•ืคื˜ื• ื”ืžื•ืจื›ื‘ ืž-LED ื•ื ื’ื“ ืคื•ื˜ื• GL5516 ืื• ืžืฆืžื“ ืื•ืคื˜ื• PC817. ื›ืœ ื”ืืคืฉืจื•ื™ื•ืช ื ื‘ื“ืงื•. ื”-LED ืžื•ืคืขืœ ืขืœ ื™ื“ื™ ืžืชื— ืžืชื•ืงืŸ ืขื ื”ื’ื‘ืœืช ื–ืจื ื‘ืืžืฆืขื•ืช ืฉื ื™ ืงื‘ืœื™ื SVV22 ื”ืžื™ื•ืขื“ื™ื ืœืžืชื— ืฉืœ 630V ื”ืžื—ื•ื‘ืจื™ื ื‘ืกื“ืจื” ืœื‘ื˜ื™ื—ื•ืช ื‘ืžื”ืœืš ื‘ื“ื™ืงื” ืžืงืจื™ืช ืฉืœ ื”ืžืขื’ืœื™ื ืขื ืžื’ื•ื”ืžื˜ืจ.
ืงืจื™ืืช ืงืจื™ืืช ื–ืžืŸ ืคืขื•ืœื” ื‘ืืžืฆืขื•ืช ืžืกืš ื”-LCD ST7735S, ื”ืขื‘ืจืช ื ืชื•ื ื™ื ื‘ื–ืžืŸ ืืžืช ื‘ืืžืฆืขื•ืช ืจื“ื™ื• ื‘ืืžืฆืขื•ืช ืžื•ื“ื•ืœ E01-ML01DP05 ื‘ืชื“ืจ ืฉืœ 2,4 ืžื’ื”-ื”ืจืฅ. ืžื›ืฉื™ืจ ื–ื” ืžื›ื™ืœ ืืช ืฉื‘ื‘ nRF24L01+ ื•ืืช ืžื’ื‘ืจ ื”ืฉื™ื“ื•ืจ/ืงืœื™ื˜ื” RFX2401C,
ื”ืกืคืง ืคืœื˜ ืขื“ 100 mW. ืื ื˜ื ื•ืช ืกืœื™ืœื™ื•ืช ื”ืžื™ื•ืขื“ื•ืช ืœื˜ื•ื•ื— ื”ืจืฆื•ื™ ื‘ืžื—ืฉื‘ื•ืŸ ื”ืžืงื•ื•ืŸ ัะฐะนั‚ะฐ. ื”ื‘ื—ื™ืจื” ื‘ืกื•ื’ ื”ืื ื˜ื ื” ื ืงื‘ืขืช ืขืœ ื™ื“ื™ ืื™ ื”ื›ืœืœื” ืฉืœ ืงืœื™ื˜ื” ืฉืœ โ€‹โ€‹ื’ืœื™ื ืžื•ื—ื–ืจื™ื ื‘ื•ื“ื“ื™ื ืžืžื‘ื ื™ ืžืชื›ืช ืฉืžืกื‘ื™ื‘. ื—ืœืงื™ ื”ืื ื˜ื ื” ืžื•ื“ืคืกื™ื ื‘ืžื“ืคืกืช ืชืœืช ืžื™ืžื“. ื”ืžืฆื‘ ื”ื ื•ื›ื—ื™ ืฉืœ ื”ืžื•ื ื™ื ื ืฉืžืจ ื‘-EEPROM ืฉืœ ื”ื‘ืงืจ ืขืฆืžื• ื•ืžืฉื•ื—ื–ืจ ื‘ืžืงืจื” ืฉืœ ื”ืคืกืงืช ื—ืฉืžืœ ื‘ืœืชื™ ืฆืคื•ื™ื”. ืžืจื•ื•ื—ื™ ื–ืžืŸ ืœืกืคื™ืจื” ืžืกื•ืคืงื™ื ืขืœ ื™ื“ื™ ืฉื‘ื‘ RTC DS3 ื‘ืฆื•ืจื” ืฉืœ ืžื•ื“ื•ืœ ืขื ืกื•ืœืœืช ื’ื™ื‘ื•ื™. ืกืคืง ื”ื›ื•ื— ืžืฉืชืžืฉ ื‘-3231 ืžื•ื“ื•ืœื™ื, ืžืงื•ืจ ื”ื“ื•ืคืง ื‘ืคื•ืขืœ 3/220V HLK-PM5 01mA, ืžืžื™ืจ ืž-600-1V ืœ-5V HW-553 ะธ 03962A - ื‘ืงืจ ืกื•ืœืœื” ืขื ืชึธื›ึฐื ึดื™ืช ื”ื’ื ื” ืžืคื ื™ ืงืฆืจ ื—ืฉืžืœื™, ืคืจื™ืงืช ื™ืชืจ ื•ื˜ืขื™ื ืช ื™ืชืจ. ื›ืœ ื”ืจื›ื™ื‘ื™ื ื ืจื›ืฉื• ื‘ืืชืจ Aliexpress.

ืœื•ื— ืœื—ืืžืขืจื›ืช ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช ืœืื™ืกื•ืฃ ื ืชื•ื ื™ื
ืžื•ื ื” 4 ืขืจื•ืฆื™ื. ื™ืฉื ื ืžืกื ื ื™ LC ื‘ื›ื ื™ืกื•ืช ืœื”ื’ื ื” ืžืคื ื™ ื”ืคืจืขื•ืช ืขืœ ืงื• ืชืงืฉื•ืจืช ื–ื•ื’ ืžืขื•ื•ืช. ื ืชื•ื ื™ื ืขืœ ืžืฆื‘ ืื•ื‘ื™ื™ืงื˜ื™ ื‘ืงืจื” ื ืงืจืื™ื ื›ืœ ื”ื–ืžืŸ ืคืขื ื‘ืฉื ื™ื™ื” ื•ืžื•ืฆื’ื™ื ื‘ืฆื‘ืข ืขืœ ื”-LCD. ื”ืงืจื™ืื•ืช ืžืชืขื“ื›ื ื•ืช ื•ื ืจืฉืžื•ืช ื‘ื–ื™ื›ืจื•ืŸ ืœื ื ื“ื™ืฃ ื›ืœ 1 ืฉื ื™ื•ืช. 36 ืฉื ื™ื•ืช ื–ื” 36/1 ืฉืขื”, ื–ื” ื”ืคื•ืจืžื˜ ืฉื‘ื• ื”ื ืชื•ื ื™ื ื ื“ืจืฉื™ื. ื›ืœ 100 ืฉื ื™ื•ืช. ืžื•ืขื‘ืจ ืžื™ื“ืข ืขืœ ืžืกืคืจ ืฉื ื™ื•ืช ื”ืคืขื•ืœื” ืขื‘ื•ืจ ื›ืœ ื™ื—ื™ื“ืช ื‘ืงืจื”. ืœื–ื™ื›ืจื•ืŸ EEPROM ื™ืฉ ืžืกืคืจ ืžื•ื’ื‘ืœ ืฉืœ ืžื—ื–ื•ืจื™ ืžื—ื™ืงื” ืฉืœ ื›ืชื™ื‘ื”, ืขืœ ืคื™ ื”ื™ืฆืจืŸ, 12 ืคืขืžื™ื. ื”ืืคืฉืจื•ืช ื”ื’ืจื•ืขื” ื‘ื™ื•ืชืจ ื”ื™ื ื›ืืฉืจ ืœืคื—ื•ืช ืชื ืื—ื“ ืžืชืขื“ื›ืŸ ื›ืœ ื”ื–ืžืŸ. ื ืคื— ื”ืžื•ื ื” ื”ืจืืฉื•ืŸ ื”ื•ื 100000 ื‘ืชื™ื, ื–ื”ื• ืžืกืคืจ ืคื•ืจืžื˜ ืืจื•ืš, 1 ืžื•ื ื™ื, ืกื”"ื› 4 ื‘ืชื™ื ืชืคื•ืกื™ื ืขืœ ื™ื“ื™ ืจืฉื•ืžื” ืื—ืช. ืื•ืจืš ื”ื–ื™ื›ืจื•ืŸ ืฉืœ ื”ืฉื‘ื‘ ื”ื•ื 4 ื‘ืชื™ื; ืœืื—ืจ 16 ื›ื ื™ืกื•ืช ืฉืœ 1024 ืžื•ื ื™ื, ื”ื”ืงืœื˜ื” ืชืชื—ื™ืœ ืžื—ื“ืฉ. ื‘ืกืคืจื™ื™ืช EEPROM, ืฉื™ื˜ืช EEPROM.put ืœื ื›ื•ืชื‘ืช; ืื ื”ืขืจืš ืฉืœ ื”ืชื ื•ื”ืžื™ื“ืข ื”ื ื›ืชื‘ ืชื•ืืžื™ื, ืœื ืชื”ื™ื” ื”ืฉืคืœื” ืฉืœ ื”ืชืื™ื. ื›ืชื•ืฆืื” ืžื›ืš, ื–ืžืŸ ื”ืคืขื•ืœื” ื”ืžื•ื‘ื˜ื— ืฉืœ ื”ื–ื™ื›ืจื•ืŸ ื™ื”ื™ื” ื™ื•ืชืจ ืž-64 ืฉื ื™ื. ื”ื–ืžืŸ ืฉืœ ืขื‘ื•ื“ื” ืืคืฉืจื™ืช ืืš ืœื ืžื•ื‘ื˜ื—ืช ื™ื›ื•ืœ ืœื”ื™ื•ืช ืืจื•ืš ื‘ื”ืจื‘ื”.

ื“ื™ืื’ืจืžืช ืžืขื’ืœืžืขืจื›ืช ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช ืœืื™ืกื•ืฃ ื ืชื•ื ื™ื
ืชื•ื›ื ื™ืช ื‘- Arduino IDE//12 ื‘ื™ื™ื˜ื™ื (328%)

#ืœึดื›ืœื•ึนืœ // ืกืคืจื™ื™ืช ื’ืจืคื™ืงื” ืœื™ื‘ื”
#ืœึดื›ืœื•ึนืœ // ืกืคืจื™ื” ืกืคืฆื™ืคื™ืช ืœื—ื•ืžืจื”
#ืœึดื›ืœื•ึนืœ
#ืœึดื›ืœื•ึนืœ
#ืœึดื›ืœื•ึนืœ
#ืœึดื›ืœื•ึนืœ
#ืœึดื›ืœื•ึนืœ
ืจื“ื™ื• RF24(9, 10); // ืื•ื‘ื™ื™ืงื˜ ืจื“ื™ื• ืœืขื‘ื•ื“ื” ืขื ืกืคืจื™ื™ืช RF24,
// ื•ืžืกืคืจื™ PIN nRF24L01+ (CE, CSN)
#ืœึดื›ืœื•ึนืœ
DS3231 rtc(SDA, SCL);
ื–ืžืŸ t;

//#define TFT_CS 10
#define TFT_CS 8
#define TFT_RST -1 // ืืชื” ื™ื›ื•ืœ ื’ื ืœื—ื‘ืจ ืืช ื–ื” ืœืื™ืคื•ืก Arduino
// ื‘ืžืงืจื” ื–ื”, ื”ื’ื“ืจ ืืช ื”-#define pin ืœ-1!
//#define TFT_DC 9 // DC=RS=A0 - ืืคืฉืจื•ื™ื•ืช ื™ื™ืขื•ื“ ืœื‘ื—ื™ืจืช ืคืงื•ื“ื” ืื• ืื•ื’ืจ ื ืชื•ื ื™ื.
#define TFT_DC 3

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

// ืืคืฉืจื•ืช 2: ื”ืฉืชืžืฉ ื‘ื›ืœ ืกื™ื›ื•ืช ืื‘ืœ ืงืฆืช ื™ื•ืชืจ ืœืื˜!
#define TFT_SCLK 13 // ื”ื’ื“ืจ ืืช ืืœื” ืœืื™ื–ื” ืกื™ื›ื•ืช ืฉืชืจืฆื”!
#define TFT_MOSI 11 // ื”ื’ื“ืจ ืืช ืืœื” ืœืื™ื–ื” ืกื™ื›ื•ืช ืฉืชืจืฆื”!
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
#ืœึดื›ืœื•ึนืœ

ื”ืขื‘ืจืช ื‘ืชื™ื = 52;
byte pinState;
ืžืฉืื‘ื” ืืจื•ื›ื” ืœืœื ืกื™ืžืŸ[4];// ืžืขืจืš ืขื ืขืจื›ื™ ืžื•ื ื” ืฉืœ 4 ืฉื ื™ื•ืช
float m = 3600.0;
ื›ืชื•ื‘ืช int unsigned = 0;
int rc;// ืžืฉืชื ื” ืขื‘ื•ืจ ืžื•ื ื™ื
sumprim ืืจื•ืš ืœืœื ืกื™ืžืŸ = 0;
sumsec ืืจื•ืš ืœืœื ืกื™ืžืŸ = 0;
byte i = 0;
byte k = 34;
unsigned int z = 0;
byte b = B00000001;
byte pumrcounter[4]; // ืžืขืจืš ืœืื—ืกื•ืŸ ืžืฆื‘ื™ ืื•ื‘ื™ื™ืงื˜, 1 - ื›ื‘ื•ื™, 0 - ืžื•ืคืขืœ.
int start = 0; //

void setup () {

rtc.begin();
radio.begin(); // ืœื™ื–ื•ื ืขื‘ื•ื“ื” nRF24L01+
radio.setChannel(120); // ืขืจื•ืฅ ื ืชื•ื ื™ื (ืž-0 ืขื“ 127).
radio.setDataRate(RF24_250KBPS); // ืงืฆื‘ ื”ืขื‘ืจืช ื ืชื•ื ื™ื (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS).
radio.setPALevel(RF24_PA_MAX); // ื”ืกืคืง ืžืฉื“ืจ (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm,
// RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm)
radio.openWritingPipe(0xAABBCCDD11LL); // ืคืชื— ืฆื™ื ื•ืจ ืขื ืžื–ื”ื” ืœื”ืขื‘ืจืช ื ืชื•ื ื™ื

// ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืืช ื”ืฉืขื”, ื‘ื˜ืœ ืืช ื”ื”ืขืจื” ื‘ืฉื•ืจื•ืช ื”ื“ืจื•ืฉื•ืช
//rtc.setDOW(1); // ื™ื•ื ื‘ืฉื‘ื•ืข
//rtc.setTime(21, 20, 0); // ื–ืžืŸ, ื‘ืคื•ืจืžื˜ ืฉืœ 24 ืฉืขื•ืช.
//rtc.setDate(29, 10, 2018); // ืชืืจื™ืš, 29 ื‘ืื•ืงื˜ื•ื‘ืจ 2018

tft.initR(INITR_BLACKTAB); // ืืชื—ื•ืœ ืฉื‘ื‘ ST7735S, ืœืฉื•ื ื™ืช ืฉื—ื•ืจื”
// ื”ืฉืชืžืฉ ื‘ืืชื—ื•ืœ ื–ื” (ื‘ื˜ืœ ื”ืขืจื”) ืื ืืชื” ืžืฉืชืžืฉ ื‘-TFT ื‘ื’ื•ื“ืœ 1.44 ืื™ื ืฅ'
//tft.initR(INITR_144GREENTAB); // ืืชื—ื•ืœ ืฉื‘ื‘ ST7735S, ืœืฉื•ื ื™ืช rcB ืื“ื•ืžื”
tft.setTextWrap(false); // ืืคืฉืจ ืœื˜ืงืกื˜ ืœืจื•ืฅ ืžื”ืงืฆื” ื”ื™ืžื ื™
tft.setRotation( 2 ); // ืขื‘ื•ืจ BLACK PCB ื•-RED tft.setRotation(0) ืื• ืœื.
tft.fillScreen(ST7735_BLACK); // ืžืกืš ื ืงื™

DDRD = DDRD | B00000000;
PORTD = PORTD | B11110000; // ื”ื™ื“ื•ืง ื”ืชื•ื›ื ื” ืขื•ื‘ื“, ืจืžื” ื’ื‘ื•ื”ื” -
// ืื•ื‘ื™ื™ืงื˜ื™ื ืžื‘ื•ืงืจื™ื "ืœื ืขื•ื‘ื“ื™ื", "4" ื ื›ืชื‘ ืœื›ืœ 1 ื”ืคื•ืจื˜ื™ื ื”ื‘ื›ื™ืจื™ื D, ืœื ืžืชืจื—ืฉืช ืกืคื™ืจื”.

ืขื‘ื•ืจ ( rc = 0; rc < 4; rc++)
{
tft.setCursor (3, rc * 10 + shift); // ื”ืฆื’ืช ืžืกืคืจื™ ืžื™ืงื•ื ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ ื‘ืงืจื”
tft.print(rc + 1);
}

tft.setCursor(12, 0); // ืคืœื˜ 3 ืฉื•ืจื•ืช ื˜ืงืกื˜
tft.println("DEVELOPERS & BUILD"); // ืœืฉื‘ื— ืืช ืขืฆืžืš ืื”ื•ื‘ื™ื
tft.setCursor(24, 10); // ืื• ื–ื›ื•ื™ื•ืช ื™ื•ืฆืจื™ื ืžืจื•ืฉืขื•ืช
tft.print("DEVELOPER MM");
tft.setCursor(28, 20);
tft.print("BUILD-ER DD");

//ืฉื—ื–ื•ืจ ืžื™ื“ืข////////////////////////////////////////////// ///////////

for ( z = 0; z < 1023; z += 16 ) { // ื—ื•ื–ืจ ื“ืจืš ื›ืœ ืชืื™ ื”ืชืขืฉื™ื™ื”
//ื•ื›ื•ืชื‘ ืœืžืขืจืš ืฉืœ 4 ืžืฉืชื ื™ ืžืฉืื‘ื”, 4 ื‘ืชื™ื ืœื›ืœ ืžื•ื ื”, ื›ื™
// ืžืฉืชื ื” ืืจื•ืš ืœืœื ืกื™ืžืŸ. ื™ืฉ 4 ืžื•ื ื™ื, ืจืฉื•ืžื” ืื—ืช ืžื›ืœ ื”ืืจื‘ืขื” ืœื•ืงื—ืช 4 ื‘ืชื™ื.
EEPROM.get(z, pump[0]); // ืื–, ืœืœื ืœื•ืœืืช for, ืคื—ื•ืช ื ืคื—
EEPROM.get(z+4, pump[1]);
EEPROM.get(z+8, pump[2]);
EEPROM.get(z+12, pump[3]);

// ื”ืงืฆืืช ืขืจืš ื”ื‘ื ื—ื“ืฉ ืœืกื›ื•ื ืฉืœ 4 ืžื•ื ื™ื
sumprim = (ืžืฉืื‘ื” [0] + ืžืฉืื‘ื” [1] + ืžืฉืื‘ื” [2] + ืžืฉืื‘ื” [3]);

// ืžืฉื•ื•ื” ืืช ื”ืขืจืš ื”ื—ื“ืฉ ืฉืœ ืกื›ื•ื 4 ืžื•ื ื™ื ื‘ืžืฉืชื ื” sumprim ืขื ื”ืขืจืš ื”ืงื•ื“ื ื‘ืžืฉืชื ื”
// sumsec ื•ืื ื”ืกื›ื•ื ื”ืงื•ื“ื ืงื˜ืŸ ืื• ืฉื•ื•ื” ืœืกื›ื•ื ื”ื—ื“ืฉ, ื”ืกื›ื•ื ื”ื—ื“ืฉ ื”ื’ื“ื•ืœ ืื• ื”ืฉื•ื•ื” ืžื•ืงืฆื”
// ืขืจืš sumsec.

if ( sumsec <= sumprim ) {
sumsec = sumprim; //

//ื•ื”ืขืจืš ื”ื ื•ื›ื—ื™ z ืžื•ืงืฆื” ืœืžืฉืชื ื” ื”ื›ืชื•ื‘ืช, z ื”ื™ื ื”ื›ืชื•ื‘ืช ืฉืœ ื”ื”ืชื—ืœื” ืฉืœ ื‘ืœื•ืง ืฉืœ 16 ื‘ืชื™ื ืฉืœ 4 ืขืจื›ื™ื
// ืžื•ื ื™ื ืžื•ืงืœื˜ื™ื ื‘ื•-ื–ืžื ื™ืช (ืžื›ื™ื•ื•ืŸ ืฉื›ืืฉืจ ืฉื•ืœืคื™ื ื™ืฆื™ืื”, ื›ืœ 8 ื”ืกื™ื‘ื™ื•ืช ืฉืœื• ื ื›ืชื‘ื•ืช ื‘ื•-ื–ืžื ื™ืช,
// ื›ื•ืœืœ 4 ื‘ื™ื˜ื™ื ื”ื’ื‘ื•ื”ื™ื ื”ื“ืจื•ืฉื™ื ืฉืœื ื• ืฉืœ ื™ืฆื™ืื” D).
ื›ืชื•ื‘ืช = z;
}
}

// ืฉื•ื‘ ื ื™ื’ืฉ ืœื–ื™ื›ืจื•ืŸ ื”-eeprom ื‘ื›ืชื•ื‘ืช ื”ื”ืชื—ืœื” ืฉืœ ื‘ืœื•ืง ืฉืœ 16 ื‘ืชื™ื ืฉืœ 4 ืขืจื›ื™ ืžื•ื ื” ืžื•ืงืœื˜ื™ื
// ืื—ืจื•ืŸ, ื›ืœื•ืžืจ ืขืจื›ื™ื ืœืคื ื™ ื›ื™ื‘ื•ื™ ืื• ืืชื—ื•ืœ ืžื—ื“ืฉ ืขืงื‘ ื”ืงืคืื”. ื”ืงืœื˜ืช ื”ืื—ืจื•ื ื”
// ืขืจื›ื™ ืžื•ื ื” ืœืชื•ืš ืžืขืจืš ืฉืœ 4 ืžืฉืชื ื™ื ืžืฉืื‘ื™ื.

EEPROM.get(address, pump[0]);
EEPROM.get(ื›ืชื•ื‘ืช + 4, ืžืฉืื‘ื”[1]);
EEPROM.get(ื›ืชื•ื‘ืช + 8, ืžืฉืื‘ื”[2]);
EEPROM.get(ื›ืชื•ื‘ืช + 12, ืžืฉืื‘ื”[3]);

ื›ืชื•ื‘ืช += 16; //ื”ื’ื“ืœืช ื”ื›ืชื•ื‘ืช ืœื›ืชื™ื‘ืช ื”ื‘ืœื•ืง ื”ื‘ื ืžื‘ืœื™ ืœื”ื—ืœื™ืฃ ืืช ื”ื ืชื•ื ื™ื ืฉืœ ื”ืจืฉื•ืžื” ื”ืื—ืจื•ื ื”

//ืกื•ืฃ ืฉื—ื–ื•ืจ ื ืชื•ื ื™ื////////////////////////////////////////// //////////////////

attachInterrupt(0, count, RISING); // ืกื™ื›ื” D2, ืืคืฉืจ ืคืกื™ืงื•ืช, ืžื’ื™ืขื•ืช ื›ืœ ืฉื ื™ื™ื”
// ืคื•ืœืกื™ื ืž-RTC DS3231 ืžืžื•ืฆื SQW

wdt_enable(WDTO_8S); // ื”ืคืขืœ ืืช ื˜ื™ื™ืžืจ ื›ืœื‘ ื”ืฉืžื™ืจื”, ื”ืคืขืœ ืžื—ื“ืฉ ืืช ื”ื‘ืงืจ ื‘ืžืงืจื” ืฉืœ ื”ืงืคืื”, ื–ืžืŸ,
// ืฉืขื‘ื•ืจื• ืขืœื™ืš ืœื”ื ืคื™ืง ืืช ืคืงื•ื“ืช ืื™ืคื•ืก ื”ื˜ื™ื™ืžืจ wdt_reset( ื•ืœื”ื™ืžื ืข ืžืืชื—ื•ืœ ืžื—ื“ืฉ ื‘ืžื”ืœืš ืคืขื•ืœื” ืจื’ื™ืœื” - 8 ืฉื ื™ื•ืช.
// ืขื‘ื•ืจ ื‘ื“ื™ืงื•ืช ืœื ืžื•ืžืœืฅ ืœื”ื’ื“ื™ืจ ืืช ื”ืขืจืš ืœืคื—ื•ืช ืž-8 ืฉื ื™ื•ืช. ื‘ืžืงืจื” ื–ื”, ื”ื˜ื™ื™ืžืจ ืžืื•ืคืก ืจืฆื•ื™
// ืžื˜ืœื˜ืœ, ื•ื–ื” ืงื•ืจื” ื›ืœ ืฉื ื™ื™ื”.

}

loid loop () {
// ืžื—ื–ื•ืจ ืจื™ืง, ื›ืืŸ ืชื”ื™ื” ืฉืœื™ื˜ื” ืขืœ ืคืขื•ืœืช ื”ืคืื–ื” ื”ืคืชื•ื—ื” ืฉืœ ื”ืžื ื•ืข ื”ื—ืฉืžืœื™
}

void count() {

tft.setTextColor(ST7735_WHITE); // ื”ื’ื“ืจ ืืช ืฆื‘ืข ื”ื’ื•ืคืŸ
t = rtc.getTime(); // ื–ืžืŸ ืงืจื™ืื”
tft.setCursor(5, 120); // ื”ื’ื“ืจืช ืžื™ืงื•ื ื”ืกืžืŸ
tft.fillRect(5, 120, 50, 7, ST7735_BLACK); // ื ื™ืงื•ื™ ืื–ื•ืจ ืคืœื˜ ื”ื–ืžืŸ
tft.print(rtc.getTimeStr()); // ืคืœื˜ ืงืจื™ืื•ืช ืฉืขื•ืŸ

wdt_reset(); // ืืคืก ืืช ื›ืœื‘ ื”ืฉืžื™ืจื” ื‘ื›ืœ ืžื—ื–ื•ืจ, ื›ืœื•ืžืจ ืฉื ื™ื”

ืขื‘ื•ืจ (rc = 0; rc < 4; rc ++) // ืชื—ื™ืœืช ื”ืžื—ื–ื•ืจ ืœื‘ื“ื™ืงืช ื”ืชืื™ืžื•ืช ืฉืœ ืžืฆื‘ ื”ืงืœื˜
// ื™ืฆื™ืื•ืช ืกื™ื‘ื™ื•ืช ืœืžืฆื‘ ื”ืงืจื™ืื” ื”ืงื•ื“ื ืฉืœ ืกื™ื‘ื™ื•ืช ื™ืฆื™ืื” D
{
pinState = (PIND >> 4) & ( b << rc );

if (pumrcounter [rc] != pinState) { // ื•ืื ืื™ื ื• ืชื•ืื, ืื–
pumrcounter[rc] = pinState; // ื”ืงืฆืืช ืœืžืฉืชื ื” ืžืฆื‘ ืกื™ื‘ื™ื•ืช ื”ื™ืฆื™ืื” ืขืจืš ื—ื“ืฉ 1/0
}
// ืฆื™ื•ืŸ ื”ืžืฆื‘ ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ ื‘ืงืจืช ืฆื‘ืข
// BLUE ื”ื•ื ืชืงืœื” ืงื˜ื ื” ื‘ืžืกืš ื”ืงื™ื™ื (ืื• ื”ืกืคืจื™ื™ื”?), RGB ื•-BGR ืžืขื•ืจื‘ื‘ื™ื.
if (pinState == ( b << rc )) {
tft.fillRect(15, ((rc * 10 + shift)), 7, 7, ST7735_BLUE); // ืœืกืคื™ืจืช ืจืžื” ื ืžื•ื›ื” ืฉื ื” ืืช GREEN ืœื›ื—ื•ืœ
ืื—ืจ} {
tft.fillRect(15, ((rc * 10 + shift)), 7, 7, ST7735_GREEN); // ืขื‘ื•ืจ ืกืคื™ืจื” ื‘ืจืžื” ื ืžื•ื›ื” ืฉื ื” ืืช ื”ื›ื—ื•ืœ ืœื™ืจื•ืง
ืžืฉืื‘ื” [rc] += 1; // ื”ื•ืกืฃ ืฉื ื™ื™ื” ืื—ืช ืœืžื•ื ื” ื–ืžื ื™ ื”ืคืขื•ืœื”
}
}

k++;
if (k == 36) {
k = 0;

tft.fillRect(30, shift, 97, 40, ST7735_BLACK); // ื ื™ืงื•ื™ ืื–ื•ืจ ืชืฆื•ื’ืช ื–ืžืŸ ื”ืคืขื•ืœื”
tft.fillRect(60, 120, 73, 7, ST7735_BLACK); // ื•ืชืืจื™ื›ื™ื

tft.setCursor(60, 120); // ื”ื’ื“ืจืช ืžื™ืงื•ื ื”ืกืžืŸ
tft.print(rtc.getDateStr()); // ื”ืฆื’ ืืช ื”ืชืืจื™ืš ืขืœ ืžืกืš ื”-LCD

ืขื‘ื•ืจ (rc = 0; rc < 4; rc ++) //ืคืœื˜ ืฉืขื•ืช ืคืขื™ืœื•ืช ื‘ืฉืœืžื•ืช, ืขืฉื™ืจื™ื•ืช ื•
{
tft.setCursor ( 30, rc * 10 + shift ); // ืžืื™ื•ืช ื”ืฉืขื” ืขื ื”ืกื˜ืช ืžืกืš ืœืžื˜ื” ื‘-10 ืคื™ืงืกืœื™ื
tft.println(ืžืฉืื‘ื” [rc] / m);
}

// ื›ืชื™ื‘ืช ืขืจื›ื™ ืฉืขื•ืช ืคืขื™ืœื•ืช "ื’ื•ืœืžื™ื™ื" (ื‘ืฉื ื™ื•ืช) ืœ-EEPROM /////////////////////////////

ืขื‘ื•ืจ (rc = 0; rc < 4; rc++)
{
EEPROM.put(ื›ืชื•ื‘ืช, ืžืฉืื‘ื” [rc]);
ื›ืชื•ื‘ืช += sizeof(float); // ื”ื’ื“ืœ ืืช ืžืฉืชื ื” ื”ื›ืชื•ื‘ืช ืœื›ืชื•ื‘
}
}

// ืฉืœื— ื ืชื•ื ื™ื ื“ืจืš ืขืจื•ืฅ ื”ืจื“ื™ื• ืžื ืชื•ื ื™ื ื”ืžืฆื™ื™ื ื™ื ื›ืžื” ื‘ืชื™ื ื™ืฉ ืœืฉืœื•ื—.
if ((k == 6 ) || (k == 18 ) || (k == 30 )) {

ื ืชื•ื ื™ื ืืจื•ื›ื™ื ืœื ื—ืชื•ืžื™ื;

radio.write(&start, sizeof(start));

ืขื‘ื•ืจ (i = 0; i < 4; i++) {
data = ืžืฉืื‘ื” [i ];
radio.write(&data, sizeof(data));
}
}
}

ื›ืžื” ื”ืขืจื•ืช ื‘ืกื•ืฃ. ื”ืกืคื™ืจื” ืžืชืจื—ืฉืช ื‘ืจืžื” ืœื•ื’ื™ืช ื ืžื•ื›ื” ื‘ื›ื ื™ืกื•ืช.

ื”ืชื ื’ื“ื•ื™ื•ืช ื”ืžืฉื™ื›ื” R2-R5 ื”ืŸ 36 ืงื™ืœื• ืื•ื”ื ืœืื•ืคืฆื™ื” ืขื ื ื’ื“ื™ ืคื•ื˜ื• GL5516. ื‘ืžืงืจื” ืฉืœ ืžืฆืžื“ ืื•ืคื˜ื•-ื˜ืจื ื–ื™ืกื˜ื•ืจ ื•ืžืžืกืจ, ื”ื’ื“ืจ ืœ-4,7-5,1 ืงื™ืœื• ืื•ื”ื. ื˜ื•ืขืŸ ื”ืืชื—ื•ืœ Arduino Nano v3.0 ื”ื•ื—ืœืฃ ื‘-Arduino Uno ื‘ืืžืฆืขื•ืช ืžืชื›ื ืช TL866A ืœืชืคืขื•ืœ ื ื›ื•ืŸ ืฉืœ ื˜ื™ื™ืžืจ ื›ืœื‘ ื”ืฉืžื™ืจื”. ื”ื ืชื™ื›ื™ื ืžืชื•ืงื ื™ื ืœืคืขื•ืœ ื‘ืžืชื—ื™ื ืžืขืœ 4,3 V. ืœื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžืขื’ืœ ื”ืื™ืคื•ืก ื”ื—ื™ืฆื•ื ื™ R6 C3. ื‘ืชื•ื›ื ื™ืช ืœื“ื•ื’ืžื”, ืชื“ืจ ื”ืžืฉื“ืจ ืื™ื ื• ืชื•ืื ืœื˜ื•ื•ื— ื”ื‘ืœืชื™ ืžื•ืจืฉื”; ื˜ื•ื•ื— ื”-2,4 ืžื’ื”-ื”ืจืฅ ืžื•ื’ื‘ืœ ืœืชื“ืจื™ื 2400.0-2483.5 ืžื’ื”-ื”ืจืฅ.

ื”ื˜ื•ื•ื— ืฉืœ ืžืฉื“ืจ E01-ML01DP05 ื”ื•ื 2400-2525 ืžื’ื”-ื”ืจืฅ. ืจื•ื—ื‘ ื”ืคืก ืฉืœ ืขืจื•ืฅ ืื—ื“ ื”ื•ื 1 ืžื’ื”-ื”ืจืฅ, ื›ืืฉืจ ืžื’ื“ื™ืจื™ื ืืช ื”ืžื”ื™ืจื•ืช ื›-"RF24_2MBPS" ืขืจื•ืฅ radio.setChannel(120) ืฉืฆื•ื™ืŸ ื•ื”ื‘ื ื”ื‘ื ื™ื”ื™ื• ืชืคื•ืกื™ื, ื›ืœื•ืžืจ. ื”ืจืฆื•ืขื” ืชื”ื™ื” 2 ืžื’ื”-ื”ืจืฅ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”