ืžืขืจื›ืช ืจื›ื™ืฉืช ื ืชื•ื ื™ื ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช (ื”ืžืฉืš)

ื”ืชื—ืœ ื‘ืืชืจ ื–ื” ะฟะพ ััั‹ะปะบะต.
ื”ืืคืฉืจื•ืช ื”ื ื•ื—ื” ื‘ื™ื•ืชืจ ืœืื—ื–ื•ืจ ืžื™ื“ืข ืขืœ ื”ืคืขืœืช ื”ืžืชื ืข ื”ืชื‘ืจืจื” ื›ืื•ืคืฆื™ื” ืขื ืžืฆืžื“ ื”ืื•ืคื˜ื• PC817. ืชืจืฉื™ื ืžืขื’ืœื™ืืžืขืจื›ืช ืจื›ื™ืฉืช ื ืชื•ื ื™ื ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช (ื”ืžืฉืš)ื”ืœื•ื—ื•ืช ืžื›ื™ืœื™ื ืฉืœื•ืฉื” ืžืขื’ืœื™ื ื–ื”ื™ื, ื”ื›ืœ ืžื•ื ื— ื‘ืงื•ืคืกืื•ืช ืคืœืกื˜ื™ืง ABS ื‘ื’ื•ื“ืœ 100X100 ืž"ืž. ืชืžื•ื ื” ืฉืœ ืžืฆืžื“ื™ื ืื•ืคื˜ื•ืžืขืจื›ืช ืจื›ื™ืฉืช ื ืชื•ื ื™ื ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช (ื”ืžืฉืš) ื›ืืฉืจ ื”ื ืžื—ื•ื‘ืจื™ื ืœืžื›ืฉื™ืจื™ ื”ืชื ืขื” ืขื ืฉืกืชื•ืžื™ื ืžื•ืœื™ื›ื™ื ืœืžื—ืฆื”, ื–ืจื ื”ื“ืœื™ืคื” ืฉืœื”ื ืžืกืคื™ืง ื›ื“ื™ ืœืคืชื•ื— ืืช ื”-PC817 ื•ื”ืžื•ื ื” ื™ื•ืคืขืœ ื‘ืฆื•ืจื” ืฉื’ื•ื™ื”. ืœื”ื•ืฆื™ื ืžืฆื‘ ื›ื–ื” ืื—ื“ ื ื•ืกืฃ ืžืชื•ื•ืกืฃ ื‘ืกื“ืจื” ืœืžืขื’ืœ ืฉืœ ื ื•ืจื™ืช ื”ืžืฆืžื“ ื”ืื•ืคื˜ื• ื•ื ื•ืจื™ืช ื—ื™ื•ื•ื™ ื”ืคืขื•ืœื”. ืœืฉื ื›ืš, ืžื’ืฉืจ J1 ื ืคืชื— ื•ืžื•ืœื—ืžืช LED LED1 ื ื•ืกืคืช.
ื”ื—ืœืง ื”ืžืงื‘ืœ ืขืฉื•ื™ ืขืœ ืฆื“ 1ืžืขืจื›ืช ืจื›ื™ืฉืช ื ืชื•ื ื™ื ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช (ื”ืžืฉืš)ืฆื“ 2ืžืขืจื›ืช ืจื›ื™ืฉืช ื ืชื•ื ื™ื ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช (ื”ืžืฉืš)ืœื•ื— ืคื™ืชื•ื— ืžื—ื•ื‘ืจ ืœ-ARDUINO MEGA 2560. ืœืฉื ื›ืš, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžื—ื‘ืจ ื“ื•-ืฉื•ืจื” ื‘ืงืฆื”. ืžืกืš ื‘ืจื–ื•ืœื•ืฆื™ื” ืฉืœ 240x400, ื‘ืขืœ ืžืกืš ืžื’ืข ื”ืชื ื’ื“ื•ืช ื•ื—ื™ื™ืฉืŸ ื˜ืžืคืจื˜ื•ืจื”, ืžืฉืžืฉ ื›ืžื›ืฉื™ืจ ืœื”ืฆื’ืช ืžื™ื“ืข. HX8352B.ืžืขืจื›ืช ืจื›ื™ืฉืช ื ืชื•ื ื™ื ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช (ื”ืžืฉืš) ื™ืชืจ ืขืœ ื›ืŸ, ื”ืžื—ื‘ืจ ืœ-ICSP ื‘ืœื•ื— ื”ืžืกืš ืžื•ืกืจ ื•ืœื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื—ืจื™ืฅ ื”-micro SD. ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉืœื ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืฉืงืข ื”-SD "ื”ืžืงื•ืจื™" ืขืงื‘ ื”ืชื ื’ืฉื•ืช ื‘ืืคื™ืง SPI. ืœื›ืจื˜ื™ืก ื”ื‘ื–ืง ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืงื•ืจื ื›ืจื˜ื™ืกื™ื ื ืคืจื“ ืฉื›ืœืœ ืžื™ื™ืฆื‘ 3,3V ื•ืฉื‘ื‘ ื—ื™ืฅ ืขื ืฉืœื•ืฉื” ืžืฆื‘ื™ ืคืœื˜ 74LVS125A. ื›ืืŸ ื—ื™ื›ืชื” ืœื™ ื”ืžื’ืจืคื”. ืžืื’ืจ ืฉืœ ืฉืœื•ืฉื” ืžืฆื‘ื™ื, ืื‘ืœ ื’ื ื”-E01-ML01DP5 ืื• ืงื•ืจื ื”ื›ืจื˜ื™ืกื™ื ืขื‘ื“ื•. ื‘ื”ืขืจื•ืช ื”ืกืคืจื™ื™ื”, SdFat ืจืื” ืื–ื”ืจื” ืœื’ื‘ื™ ืื™ ืชืื™ืžื•ืช ืœืžื›ืฉื™ืจื™ื ืื—ืจื™ื. ืžืžื™ืจ ื”ืจืžื•ืช ื‘-TXS0108E ื”ื•ืกืจ ื•ื”ื•ื—ืœืฃ ื‘ืžื’ืฉืจื™ื, ื‘ื’ืœืœ E01-ML01DP5 ืกื•ื‘ืœื ื™ ืœืื•ืชื•ืช 5V - ื–ื” ืœื ืขื–ืจ. ื‘ืืžืฆืขื•ืช ืื•ืกื™ืœื•ืกืงื•ืค ื–ื•ื”ื” ืื•ื‘ื“ืŸ ืื•ืช ื‘ืงื• MISO ื›ืืฉืจ ื—ื•ื‘ืจ ืงื•ืจื ื›ืจื˜ื™ืกื™ื. ืœืื—ืจ ื‘ื“ื™ืงื” ืžื“ื•ืงื“ืงืช, ื ืžืฆื ืฉื”ื›ื ื™ืกื•ืช ืฉืœ ื”ืื•ืชื•ืช ื”ืžืืคืฉืจื™ื ืฉืœ ืขืจื•ืฆื™ OE 4 ืฉืœ ื”-74LVS125A ืคืฉื•ื˜ ื”ื•ืœื—ืžื• ืœื—ื•ื˜ ืžืฉื•ืชืฃ ื•ืœื ื™ื›ื•ืœ ืœื”ื™ื•ืช ืœื“ื‘ืจ ืขืœ ืžืฆื‘ ืฉืœื™ืฉื™ ื›ืœืฉื”ื•. ืฉื‘ื‘ ื”ืžืื’ืจ ืฉื™ืžืฉ ื›ืžืžื™ืจ ืจืžื” ืคืจื™ืžื™ื˜ื™ื‘ื™ ืž-5V ืœ-3.3V ื‘ืืžืฆืขื•ืช ื ื’ื“ื™ื ืฉืœ 3,3 Kฮฉ ื”ืžื—ื•ื‘ืจื™ื ื‘ืกื“ืจื” ืขื ืงื•ื•ื™ ื”ืื•ืช. ื—ื•ืฅ ืžื”ืงื• MISO. ื”ืžืชื’ ื”ืชื—ืชื•ืŸ ืฉืœื• ื›ื ืจืื” ืžืฉืš ืื•ืชื•ืช ืœืžืคืœืก ื”ืงืจืงืข. ืœืื—ืจ ืฉืงื‘ืขืชื™ ืฉืื•ืช ื”ื”ืคืขืœื” ืฉืœ ืงื• MISO ื”ื™ื” ืคื™ืŸ 13, ื”ื•ื ื ืชืœืฉ ืžื”ืžืกื™ืœื”ืžื•ึผืœื—ึธืืžืขืจื›ืช ืจื›ื™ืฉืช ื ืชื•ื ื™ื ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช (ื”ืžืฉืš)ื‘ื™ืŸ ื”ืชืงืŸ 9LVS74A CS ื‘ื—ืจ ืคื™ืŸ ืงืœื˜ (125) ืœื‘ื™ืŸ ื ื’ื“ ื”ืกื™ื•ื. ื›ืขืช, ืื ืื™ืŸ ื’ื™ืฉื” ืœื›ืจื˜ื™ืก ื”ื–ื™ื›ืจื•ืŸ, ืžืื’ืจ MISO ืžื•ืฉื‘ืช ื•ืื™ื ื• ืžืคืจื™ืข ืœืคืขื•ืœื” ืฉืœ ืžื›ืฉื™ืจ ืื—ืจ.ื“ื™ืื’ืจืžืช ืœื•ื— ื”ืคื™ืชื•ื—ืžืขืจื›ืช ืจื›ื™ืฉืช ื ืชื•ื ื™ื ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช (ื”ืžืฉืš)ืžืงืœื˜ ื‘ืคืขื•ืœื”ืžืขืจื›ืช ืจื›ื™ืฉืช ื ืชื•ื ื™ื ืื•ื˜ื•ื ื•ืžื™ืช ืžืงื•ืžื™ืช (ื”ืžืฉืš)ื”-DS3231 ืžืฉืชืžืฉ ื‘ืืคื™ืง I2C ืชื•ื›ื ื” (TWI) ื›ื“ื™ ืœื—ื‘ืจ ืืช ื”ืฉืขื•ืŸ.
ืชื•ื›ื ื™ืช Arduino IDE// ื—ืฉื•ื‘: ืกืคืจื™ื™ืช Adafruit_TFTLCD ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืกืคืฆื™ืคื™ืช
// ืžื•ื’ื“ืจ ืขื‘ื•ืจ ืžื’ืŸ ื”-TFT ืื• ืœื•ื— ื”ืคืจื™ืฆื”.
// ืจืื” ื”ืขืจื•ืช ืจืœื•ื•ื ื˜ื™ื•ืช ื‘-Adafruit_TFTLCD.h ืœื”ื’ื“ืจื”.
//ืขืœ ื™ื“ื™ Open-Smart Team ื•-Catalex Team
//[ืžื•ื’ืŸ ื‘ื“ื•ื"ืœ]
//ื—ื ื•ืช: dx.com
// open-smart.aliexpress.com/store/1199788
//ืคื•ื ืงืฆื™ื™ืช ื”ื“ื’ืžื”: ื”ืฆื’ืช ื’ืจืคื™ืงื”, ืชื•ื•ื™ื
//Arduino IDE: 1.6.5
// ืœื•ื—: Arduino UNO R3, Arduino Mega2560, Arduino Leonardo

// ืœื•ื—:OPEN-SMART UNO R3 5V / 3.3V, Arduino UNO R3, Arduino Mega2560
//3.2 ืื™ื ืฅ' TFT:
// www.aliexpress.com/store/product/3-2-TFT-LCD-Display-module-Touch-Screen-Shield-board-onboard-temperature-sensor-w-Touch-Pen/1199788_32755473754.html?spm=2114.12010615.0.0.bXDdc3
//OPEN-SMART UNO R3 5V / 3.3V:
// www.aliexpress.com/store/product/OPEN-SMART-5V-3-3V-Compatible-UNO-R3-CH340G-ATMEGA328P-Development-Board-with-USB-Cable-for/1199788_32758607490.html?spm=2114.12010615.0.0.ckMTaN

#ืœึดื›ืœื•ึนืœ // ืกืคืจื™ื™ืช ื’ืจืคื™ืงื” ืœื™ื‘ื”
//#ืœึดื›ืœื•ึนืœ // ืกืคืจื™ื” ืกืคืฆื™ืคื™ืช ืœื—ื•ืžืจื”
#ืœึดื›ืœื•ึนืœ
MCUFRIEND_kbv tft;
#include "SdFat.h" // ื”ืฉืชืžืฉ ื‘ืกืคืจื™ื™ืช SdFat
SdFat SD;
ืงื•ื‘ืฅ SdFile;
ืงื•ื‘ืฅ myFile;
#define SD_CS_PIN SS

#ืœึดื›ืœื•ึนืœ // ื—ื‘ืจ ืืช ื”ืกืคืจื™ื™ื” ืœืขื‘ื•ื“ื” ืขื ืืคื™ืง SPI
#ืœึดื›ืœื•ึนืœ // ื—ื‘ืจ ืืช ืงื•ื‘ืฅ ื”ื”ื’ื“ืจื•ืช ืžืกืคืจื™ื™ืช RF24
#ืœึดื›ืœื•ึนืœ // ื—ื‘ืจ ืืช ื”ืกืคืจื™ื™ื” ืœืขื‘ื•ื“ื” ืขื nRF24L24+
ืจื“ื™ื• RF24(47, 49);

#ืœึดื›ืœื•ึนืœ

DS3231 rtc(27, 25);
ื–ืžืŸ t;

uint16_t r = 6000;
uint32_t k = 0;

ื ืชื•ื ื™ื ืืจื•ื›ื™ื ื ื“ื™ืคื™ื ืœืœื ื—ืชื™ืžื”;
ืœืฆื•ืฃ leb_1;
ืœืฆื•ืฃ leb_2;
ืœืฆื•ืฃ leb_3;
ืœืฆื•ืฃ leb_4;

uint8_t pipe;
int rc = 0;

uint8_t time_sec_prev;
uint8_t time_day_prev;

//************************************************** ****************/ /
// ืื ืืชื” ืžืฉืชืžืฉ ื‘ืœื•ื— ืคืจื™ืฆืช TFT OPEN-SMART //
// ืžืžืœื™ืฅ ืœืš ืœื”ื•ืกื™ืฃ ืžืขื’ืœ ื”ืžืจื” ื‘ืจืžื” ืฉืœ 5V-3.3V.
// ื›ืžื•ื‘ืŸ ืฉืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื’ืจืกืช OPEN-SMART UNO ืฉื—ื•ืจื” ืขื ืžืชื’ ื”ืคืขืœื” 5V/3.3V,
// ืืชื” ืจืง ืฆืจื™ืš ืœืขื‘ื•ืจ ืœ-3.3V.
// ื ื™ืชืŸ ืœื”ืงืฆื•ืช ืืช ืคื™ื ื™ ื”ื‘ืงืจื” ืขื‘ื•ืจ ื”-LCD ืœื›ืœ ื“ื™ื’ื™ื˜ืœื™ ืื•
// ืคื™ื ื™ื ืื ืœื•ื’ื™ื™ื...ืื‘ืœ ื ืฉืชืžืฉ ื‘ืคื™ื ื™ื ื”ืื ืœื•ื’ื™ื™ื ื›ืคื™ ืฉื–ื” ืžืืคืฉืจ ืœื ื•
//โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”-|
// TFT Breakout - Arduino UNO / Mega2560 / OPEN-SMART UNO ืฉื—ื•ืจ
// GND - GND
// 3V3 - 3.3V
//CS - A3
// RS - A2
// WR - A1
// RD - A0
// RST - ืื™ืคื•ืก
// LED - GND
// DB0 - 8
// DB1 - 9
// DB2 - 10
// DB3 - 11
// DB4 - 4
// DB5 - 13
// DB6 - 6
// DB7 - 7

// ื”ืงืฆื” ืฉืžื•ืช ื”ื ื™ืชื ื™ื ืœืงืจื™ืื” ืขืœ ื™ื“ื™ ืื“ื ืœื›ืžื” ืขืจื›ื™ ืฆื‘ืข ื ืคื•ืฆื™ื ืฉืœ 16 ืกื™ื‘ื™ื•ืช:
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define GREY 0x8C51
#define GRAYD 0x39E7

//Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
// ืื ืžืฉืชืžืฉื™ื ื‘ืžื’ืŸ, ื›ืœ ืงื•ื•ื™ ื”ื‘ืงืจื” ื•ื”ื ืชื•ื ื™ื ืงื‘ื•ืขื™ื, ื•
// ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ืฆื”ืจื” ืคืฉื•ื˜ื” ื™ื•ืชืจ:
// Adafruit_TFTLCD tft;
uint16_t g_identifier;

ืžื—ืจื•ื–ืช dataString;
//String numfileMonth = "1.txt";
char perv [] = {"2.txt"};
//String *numfileMonth="1.txt" (sizeof (numfileMonth));
//</em></ul></ul><ul> <li> //</em></em> ///

ื”ื’ื“ืจืช ื—ืœืœ (ื‘ื˜ืœ) {

rtc.begin();

// ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืืช ื”ืฉืขื”, ื‘ื˜ืœ ืืช ื”ื”ืขืจื” ื‘ืฉื•ืจื•ืช ื”ื“ืจื•ืฉื•ืช
// rtc.setDOW(6); // ื™ื•ื ื‘ืฉื‘ื•ืข
// rtc.setTime(22, 04, 0); // ื–ืžืŸ, ื‘ืคื•ืจืžื˜ ืฉืœ 24 ืฉืขื•ืช.
// rtc.setDate(4, 5, 2019); // ืชืืจื™ืš, 29 ื‘ืื•ืงื˜ื•ื‘ืจ 2018

Serial.begin (2000000);
//////// ืืชื—ื•ืœ ืžืกืš
tft.begin(0x65);
tft.reset();
tft.setRotation(0);
tft.cp437(true);
////////////////////ืคืœื˜ ืฉืžื•ืช, ืื‘ื™ื–ืจื™ ืฆื™ื•ื“, ืฉื ื”ืืจื’ื•ืŸ
tft.fillScreen(BLACK);
tft.setTextColor(WHITE);
tft.setTextSize(2);
tft.setCursor(8, 0);
tft.println("DEVELOPERS & BUILD");
tft.setCursor(30, 20);
tft.print (utf8rus("Constructor V.V." ));
tft.setCursor(40, 40);
tft.print (utf8rus("Turner I.I." ));
ืขื™ื›ื•ื‘ (2000);

radio.begin(); // ืœื™ื–ื•ื ืขื‘ื•ื“ื” nRF24L01+
radio.setChannel(120); // ืฆื™ื™ืŸ ืืช ืขืจื•ืฅ ืงืœื™ื˜ืช ื”ื ืชื•ื ื™ื (ืž-0 ืขื“ 127)
radio.setDataRate(RF24_250KBPS); // ืฆื™ื™ืŸ ืืช ืงืฆื‘ ื”ืขื‘ืจืช ื”ื ืชื•ื ื™ื (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS), RF24_1MBPS - 1Mbit/s
radio.setPALevel(RF24_PA_MAX); // ืฆื™ื™ืŸ ืืช ื”ืกืคืง ื”ืžืฉื“ืจ (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm)
radio.openReadingPipe(1, 0xAABBCCDD11LL); // ืคืชื— ืฆื™ื ื•ืจ ืื—ื“ ืขื ื”ืžื–ื”ื” ืฉืœ ืžืฉื“ืจ ืื—ื“ 1xAABBCCDD1, ื›ื“ื™ ืœืงื‘ืœ ื ืชื•ื ื™ื
// ืคืชื— ืฆื™ื ื•ืจ 2 ืขื ืžืฉื“ืจ ืžื–ื”ื” 2xAABBCCDD0 ื›ื“ื™ ืœืงื‘ืœ ื ืชื•ื ื™ื
radio.startListening(); // ื”ืคืขืœ ืืช ื”ืžืงืœื˜, ืชืชื—ื™ืœ ืœื”ืื–ื™ืŸ ืœืฆื™ื ื•ืจื•ืช ืคืชื•ื—ื™ื
// radio.stopListening();
////////ืคืœื˜ ืžื™ื“ืข ืฉื™ืจื•ืช
tft.fillScreen(BLACK);
tft.setCursor(8, 0);
tft.setTextSize(1);
////////ื”ืชื—ืœ ืœืืชื—ืœ ืืช ื›ืจื˜ื™ืก ื”-SD
Serial.println("ื›ืจื˜ื™ืก SD ืจืืฉื•ื ื™");
tft.println("ื›ืจื˜ื™ืก SD ืจืืฉื•ื ื™");
tft.setCursor(8, 10);
////////ืืชื—ื•ืœ ื”ื›ืจื˜ื™ืก
if (!SD.begin(SD_CS_PIN)) {
Serial.println("ื”ื”ืชื—ืœื” ื ื›ืฉืœื”!");
tft.fillRect(8, 10, 85, 7, RED);
tft.setTextColor(BLACK);
tft.println("ื”ืจืืฉื•ืŸ ื ื›ืฉืœ!");
ืœื—ื–ื•ืจ;
}
tft.setTextColor(WHITE);
Serial.println("ืืชื—ื•ืœ ื ืขืฉื”");
tft.println("ืืชื—ื•ืœ ื ืขืฉื”");
ืขื™ื›ื•ื‘ (2000);
////////ืงืจื™ืืช ืฉืขื” ื•ืชืืจื™ืš ื•ื”ืงืฆืืชื ืœืžืฉืชื ื™ื
t = rtc.getTime();
time_sec_prev = t.sec;
time_day_prev = t.date;
////////ืคืœื˜ ืืช ื”ืชืืจื™ืš ื‘ื›ื•ื— ื›ื“ื™ ืœื ืœื”ืžืชื™ืŸ ืขื“ ืฉื”ืชืืจื™ืš ื™ืฉืชื ื” ืœืชืฆื•ื’ื”
tft.setCursor(180, 0); // ื”ื’ื“ืจืช ืžื™ืงื•ื ื”ืกืžืŸ
tft.fillRect(178, 0, 65, 7, GRAY); // ื ื™ืงื•ื™ ืื–ื•ืจ ืคืœื˜ ื”ื–ืžืŸ
tft.setTextSize(1);
tft.print(rtc.getDateStr());
////////ืคืœื˜ ืืช ื”ืฉื ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ ื‘ืงืจื”
tft.setTextSize(2);
tft.setCursor(60, 25);
tft.println (utf8rus("ื›ื ื ื•ืช I"));
////////ื™ืฆื™ืจืช ืงื•ื‘ืฅ ื™ื•ืžืŸ ื•ื”ื•ืฆืืช ื”ืชื•ืฆืื” ืฉืœ ื ื™ืกื™ื•ืŸ ื”ื™ืฆื™ืจื”
tft.setTextSize(1);
tft.setCursor(130, 10); // ืื ื ื•ืฆืจ ืงื•ื‘ืฅ ื™ื•ืžืŸ 2.txt, ื”ื›ืชื™ื‘ื” ืœืงื•ื‘ืฅ ืชื™ืžืฉืš
if (SD.exists(perv)) {
//tft.setCursor(0, 90);
tft.println(perv);
Serial.println(perv);
ืื—ืจ} {
myFile = SD.open(perv, FILE_WRITE); // ืื ืงื•ื‘ืฅ 2.txt ืœื ืงื™ื™ื, ื”ื•ื ื™ื™ื•ื•ืฆืจ
myFile.close();
tft.println(perv);
Serial.println(perv);
}
}

ืœื•ืœืื” ื‘ื˜ืœื” (ื‘ื˜ืœื”) {
////////ื‘ื“ื™ืงืช ืงื™ื•ืžื” ืฉืœ ื‘ืงืฉื” ืœืคืœื˜ ื™ื•ืžืŸ ืœืฆื’ ื™ืฆื™ืืช ื”-COM
if (Serial.available() > 0) {
if (1 == Serial.read());
////////ื•ืื "1" ืžืชืงื‘ืœ, ืื– ื”ืคืœื˜
ืงื•ื‘ืฅ myFile = SD.open(perv);
// ืื ื”ืงื•ื‘ืฅ ื–ืžื™ืŸ, ื›ืชื•ื‘ ืœื•:
if (myFile) {
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
}
ืื—ืจ {
Serial.println("ืฉื’ื™ืื” ื‘ืคืชื™ื—ืช .txt");
}
}
////////ื–ืžืŸ ืงืจื™ืื”
t = rtc.getTime();
tft.setTextColor(WHITE);
////////ืื ื”ืฉืขื” ื”ืฉืชื ืชื”, ื”ืฆื’ ืืช ืงืจื™ืื•ืช ื”ืฉืขื•ืŸ ื”ื—ื“ืฉื•ืช
if ( time_sec_prev != t.sec) {
tft.setCursor(120, 0); // ื”ื’ื“ืจืช ืžื™ืงื•ื ื”ืกืžืŸ
tft.fillRect(118, 0, 50, 7, GRAY); // ื ื™ืงื•ื™ ืื–ื•ืจ ืคืœื˜ ื”ื–ืžืŸ
tft.setTextSize(1);
tft.print(rtc.getTimeStr()); // ืคืœื˜ ืงืจื™ืื•ืช ืฉืขื•ืŸ
time_sec_prev = t.sec;
}
////////ืื ื”ืชืืจื™ืš ื”ืฉืชื ื”, ื”ืฆื’ ืืช ื”ืชืืจื™ืš ื”ื—ื“ืฉ
if ( time_day_prev != t.date) {
tft.setCursor(180, 0); // ื”ื’ื“ืจืช ืžื™ืงื•ื ื”ืกืžืŸ
tft.fillRect(178, 0, 65, 7, GRAY); // ื ืงื” ืื–ื•ืจ ืชืฆื•ื’ืช ืชืืจื™ืš
tft.setTextSize(1);
tft.print(rtc.getDateStr()); // ื”ืฆื’ ืงืจื™ืื•ืช ืชืืจื™ืš
time_day_prev = t.date;
}
////////ืื ืงืœื™ื˜ืช ืจื“ื™ื• ื–ืžื™ื ื”, ืื–
if (radio.available(&pipe)) {
////////ื‘ื•ื“ืง ืื ืžืื’ืจ ื”ืงื‘ืœื” ืžืœื,
radio.read(&data, sizeof(data));
////////ืื ื›ืชื•ื‘ืช ื”ืžืฉื“ืจ ื”ื ื“ืจืฉืช ื–ืžื™ื ื”, ืื–
if (pipe == 1) {
////////ืžื—ื›ื” ืœืจืฆืฃ ืกื ื›ืจื•ืŸ ืฉืœ ืืคืกื™ื ื›ื“ื™ ืœืงื‘ื•ืข
//ืชื—ื™ืœืช ื‘ืœื•ืง ื”ื ืชื•ื ื™ื
if (ื ืชื•ื ื™ื == 0000) {
rc = 0;
ืื—ืจ} {
rc++;
}
////////ื”ืงืœื˜ืช ืขืจื›ื™ ืžื•ื ื” ื•ื—ื™ืฉื•ื‘ื ื‘-10 ื•-100 ืฉืœ ื”ืฉืขื”
if (rc == 1) {
leb_1 = ื ืชื•ื ื™ื / 3600.0;
}

if (rc == 2) {
leb_2 = ื ืชื•ื ื™ื / 3600.0;
}

if (rc == 3) {
leb_3 = ื ืชื•ื ื™ื / 3600.0;
}

if (rc == 4) {
leb_4 = ื ืชื•ื ื™ื / 3600.0;
}
}
}
r++;
k++; // ืจืง ืžื•ื ื”
//////// ืขื“ื›ื•ืŸ ื ืชื•ื ื™ื ืขื ืžื—ื–ื•ืจื™ื•ืช ืžืกื•ื™ืžืช
if (r >= 6500) {
tft.setTextSize(2);
tft.fillRect(0, 41, 180, 64, GRAYD);
Serial.println("Lebedki I");
tft.setCursor(0, 41);
tft.println(leb_1);
Serial.println(leb_1);
tft.println(leb_2);
Serial.println(leb_2);
tft.println(leb_3);
Serial.println(leb_3);
tft.println(leb_4);
Serial.println(leb_4);
Serial.println(k);
r = 0;
}
////////ื›ืชื•ื‘ ื ืชื•ื ื™ื ืœื™ื•ืžืŸ ื‘-SD ื›ืœ 10 ื“ืงื•ืช.
if ((t.min % 10 == 0) && (t.sec == 0)) {
tft.setTextSize(1);
tft.setCursor(200, 10);
tft.setTextColor(BLACK);
////////ื™ืฆื™ืจืช ืžื—ืจื•ื–ืช ื‘ืคื•ืจืžื˜ .csv
String dataString = String (rtc.getDateStr()) + ", "+(rtc.getTimeStr()) + ", " + (leb_1) + ", " + (leb_2)
+ ", " + (leb_3) + ", " + (leb_4) + ", ";
////////ื›ืชื•ื‘ ืœืงื•ื‘ืฅ ื•ืคืœื˜ ืืช ืชื•ืฆืื•ืช ืชื”ืœื™ืš ื”ื›ืชื™ื‘ื”
myFile = SD.open(perv, FILE_WRITE); // ืื ืื™ืŸ ืงื•ื‘ืฅ ื‘ืฉื "2.txt", ื”ื•ื ื™ื™ื•ื•ืฆืจ.
if (myFile) {
myFile.println(dataString);
myFile.close();
tft.fillRect(198, 8, 42, 10, GREEN);
tft.println("SD OK");
Serial.println("SD OK");
delay(900); // ืขื™ื›ื•ื‘, ืื—ืจืช ืจื•ืฉื 13 ืงืจื™ืื•ืช ื–ื”ื•ืช ืขื“ ืฉื—ืœืคื” ืฉื ื™ื”
ืื—ืจ} {
tft.fillRect(198, 8, 42, 10, RED);
tft.println("SD ERR");
Serial.println("SD ERR");
}
}
}ืชื•ื›ื ื™ืช ืœื”ืžืจืช ืชื•ื•ื™ื/* ืงื™ื“ื•ื“ ืžื—ื“ืฉ ืฉืœ ื’ื•ืคื ื™ื ืจื•ืกื™ื™ื ืž-UTF-8 ืœ-Windows-1251 */

ืžื—ืจื•ื–ืช utf8rus(ืžืงื•ืจ ืžื—ืจื•ื–ืช)
{
int i,k;
ืžื˜ืจืช ืžื™ืชืจ;
char unsigned n;
char m[2] = { '0', ' ' };

k = source.length(); i = 0;

while (i < k) {
n = ืžืงื•ืจ[i]; i++;

if (n >= 0xC0) {
switch (n) {
ืžืงืจื” 0xD0: {
n = ืžืงื•ืจ[i]; i++;
if (n == 0x81) { n = 0xA8; ืœืฉื‘ื•ืจ; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x30;//0x2F
ืœืฉื‘ื•ืจ;
}
ืžืงืจื” 0xD1: {
n = ืžืงื•ืจ[i]; i++;
if (n == 0x91) { n = 0xB8; ืœืฉื‘ื•ืจ; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x70;//0x6F
ืœืฉื‘ื•ืจ;
}
}
}
m[0] = n; target = target + String(m);
}
ื™ืขื“ ื”ื—ื–ืจื”;
}ืชื•ื›ื ื™ืช ื”ื”ืžืจื” ืฉืœ ื”ืชื•ื•ื™ื ืขื‘ื•ืจ ืคืœื˜ ืงื™ืจื™ืœื™ ื‘ืืžืฆืขื•ืช ืกืคืจื™ื™ืช Adafruit_GFX ืžืžื•ืงืžืช ื‘ืื•ืชื” ืชื™ืงื™ื” ืขื ื”ืชื•ื›ื ื™ืช ื”ืจืืฉื™ืช. ืืชื” ื’ื ืฆืจื™ืš ืœื”ื—ืœื™ืฃ ืืช ื”ืงื•ื‘ืฅ glcdfont.c ื‘-Adafruit_GFX ื‘ื’ื•ืคืŸ ืื—ืจ. ื›ืืŸ ืกืคืจื™ื™ื” ืขื ื”ื”ื—ืœืคื” ื”ื ื“ืจืฉืช. ืžื™ื“ืข ื ื•ืกืฃ ืขืœ Russification ื ื™ืชืŸ ืœืžืฆื•ื ื‘ืงืœื•ืช ื‘ืื™ื ื˜ืจื ื˜.
ืœืกื™ื›ื•ื, ืื’ื™ื“ ืฉื”ืžืขืจื›ืช ืขืžื“ื” ื‘ืฆื™ืคื™ื•ืช, ื”ืคืš ืงืœ ื™ื•ืชืจ ืœื ื˜ืจ ืืช ื–ืžืŸ ื”ื”ืคืขืœื” ืฉืœ ื”ืฆื™ื•ื“. ืœืžืจื•ืช ืฉื”ื›ืœ ืžื•ืจื›ื‘ ืขืœ ืœื•ื—ื•ืช ืœื—ื, ืื™ืŸ ืชืœื•ื ื•ืช ืžื™ื™ื“ื™ื•ืช ืขืœ ื”ืขื‘ื•ื“ื”. ื”ืืœืžื ื˜ื™ื ื”ืจืืฉื•ื ื™ื ืคื•ืขืœื™ื ื›ื‘ืจ ื™ื•ืชืจ ืžืฉื™ืฉื” ื—ื•ื“ืฉื™ื ื•ืฉืจื“ื• ืืช ื”ื—ื•ืจืฃ. ืขื™ืฆื•ื‘ ืื—ืจื•ืŸ ื”ื•ื ืคื•ืขืœ ืขื‘ื•ืจ 9 ื™ื—ื™ื“ื•ืช ืžื‘ื•ืงืจื•ืช ืžืื– ื”-5 ื‘ืžืจืฅ ื•ื–ืžืŸ ื”ื”ืคืขืœื” ื ืจืฉื ืจืฉืžื™ืช ื‘ืืžืฆืขื•ืชื•.

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

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