์ง€์—ญ ์ž์œจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ(๊ณ„์†)

์ด ์‚ฌ์ดํŠธ์—์„œ ์‹œ์ž‘ํ•˜์„ธ์š” ๋งํฌ.
์Šคํƒ€ํ„ฐ ์ผœ๊ธฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฐ€์žฅ ํŽธ๋ฆฌํ•œ ์˜ต์…˜์€ PC817 ์˜ตํ† ์ปคํ”Œ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•œ ์˜ต์…˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํšŒ๋กœ๋„์ง€์—ญ ์ž์œจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ(๊ณ„์†)๋ณด๋“œ์—๋Š” ์„ธ ๊ฐœ์˜ ๋™์ผํ•œ ํšŒ๋กœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด 100x100mm ํฌ๊ธฐ์˜ ABS ํ”Œ๋ผ์Šคํ‹ฑ ์ƒ์ž์— ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด‘์ปคํ”Œ๋Ÿฌ ์‚ฌ์ง„์ง€์—ญ ์ž์œจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ(๊ณ„์†) ๋ฐ˜๋„์ฒด ๋ฐธ๋ธŒ๊ฐ€ ์žˆ๋Š” ์‹œ๋™ ์žฅ์น˜์— ์—ฐ๊ฒฐํ•˜๋ฉด ๋ˆ„์ถœ ์ „๋ฅ˜๊ฐ€ PC817์„ ์—ด ์ •๋„๋กœ ์ถฉ๋ถ„ํ•˜๋ฉฐ ์นด์šดํ„ฐ๊ฐ€ ์ž˜๋ชป ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ์ƒํ™ฉ์„ ๋ฐฐ์ œํ•˜๊ธฐ ์œ„ํ•ด ์˜ตํ† ์ปคํ”Œ๋Ÿฌ LED์™€ ์ž‘๋™ ํ‘œ์‹œ LED ํšŒ๋กœ์— ์ง๋ ฌ๋กœ ํ•˜๋‚˜๊ฐ€ ๋” ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ ํผ J1์ด ์—ด๋ฆฌ๊ณ  ์ถ”๊ฐ€ LED LED1์ด ๋‚ฉ๋•œ๋ฉ๋‹ˆ๋‹ค.
์ˆ˜์‹  ๋ถ€๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ธก๋ฉด 1์ง€์—ญ ์ž์œจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ(๊ณ„์†)์ธก๋ฉด 2์ง€์—ญ ์ž์œจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ(๊ณ„์†)ARDUINO MEGA 2560์— ์—ฐ๊ฒฐ๋œ ๊ฐœ๋ฐœ ๋ณด๋“œ. ์ด๋ฅผ ์œ„ํ•ด ๋์— ์ด์ค‘ ํ–‰ ์ปค๋„ฅํ„ฐ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ €ํ•ญ๋ง‰ ๋ฐฉ์‹ ํ„ฐ์น˜์Šคํฌ๋ฆฐ๊ณผ ์˜จ๋„ ์„ผ์„œ๋ฅผ ๊ฐ–์ถ˜ 240x400 ํ•ด์ƒ๋„์˜ ํ™”๋ฉด์ด ์ •๋ณด ํ‘œ์‹œ ์žฅ์น˜๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. HX8352B.์ง€์—ญ ์ž์œจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ(๊ณ„์†) ๋˜ํ•œ ์Šคํฌ๋ฆฐ ๋ณด๋“œ์˜ ICSP์— ๋Œ€ํ•œ ์ปค๋„ฅํ„ฐ๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ  ๋งˆ์ดํฌ๋กœ SD ์Šฌ๋กฏ์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค์€ SPI ๋ฒ„์Šค์˜ ์ถฉ๋Œ๋กœ ์ธํ•ด "๋„ค์ดํ‹ฐ๋ธŒ" SD ์†Œ์ผ“์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”Œ๋ž˜์‹œ ์นด๋“œ์˜ ๊ฒฝ์šฐ 3,3V ์•ˆ์ •๊ธฐ์™€ ์„ธ ๊ฐ€์ง€ ์ถœ๋ ฅ ์ƒํƒœ 74LVS125A๋ฅผ ๊ฐ–์ถ˜ ๋ฒ„ํผ ์นฉ์ด ํฌํ•จ๋œ ๋ณ„๋„์˜ ์นด๋“œ ๋ฆฌ๋”๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐˆํ€ด๊ฐ€ ๋‚˜๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋˜ ๊ณณ์ด ๋ฐ”๋กœ ์—ฌ๊ธฐ์˜€๋‹ค. 01์ƒํƒœ ๋ฒ„ํผ์ด์ง€๋งŒ E01-ML5DP0108 ๋˜๋Š” ์นด๋“œ ๋ฆฌ๋”๊ฐ€ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ“๊ธ€์—์„œ SdFat๋Š” ๋‹ค๋ฅธ ์žฅ์น˜์™€์˜ ๋น„ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. TXS01E์˜ ๋ ˆ๋ฒจ ๋ณ€ํ™˜๊ธฐ๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ  ์ ํผ๋กœ ๊ต์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. E01-ML5DP5๋Š” 4V ์‹ ํ˜ธ์— ๋‚ด์„ฑ์ด ์žˆ์ง€๋งŒ ๋„์›€์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์˜ค์‹ค๋กœ์Šค์ฝ”ํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด๋“œ ๋ฆฌ๋”๊ธฐ๊ฐ€ ์—ฐ๊ฒฐ๋˜์—ˆ์„ ๋•Œ MISO ๋ผ์ธ์—์„œ ์‹ ํ˜ธ ์†์‹ค์ด ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฉด๋ฐ€ํžˆ ์กฐ์‚ฌํ•œ ๊ฒฐ๊ณผ 74LVS125A์˜ OE 5 ์ฑ„๋„ ํ™œ์„ฑํ™” ์‹ ํ˜ธ ์ž…๋ ฅ์€ ๋‹จ์ˆœํžˆ ๊ณตํ†ต ์™€์ด์–ด์— ๋‚ฉ๋•œ๋˜์—ˆ์œผ๋ฉฐ ์„ธ ๋ฒˆ์งธ ์ƒํƒœ์— ๋Œ€ํ•ด์„œ๋Š” ๋งํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ๋ฒ„ํผ ์นฉ์€ ์‹ ํ˜ธ์„ ๊ณผ ์ง๋ ฌ๋กœ ์—ฐ๊ฒฐ๋œ 3.3Kฮฉ ์ €ํ•ญ์„ ์‚ฌ์šฉํ•˜์—ฌ 3,3V์—์„œ 13V๊นŒ์ง€์˜ ๊ธฐ๋ณธ ๋ ˆ๋ฒจ ๋ณ€ํ™˜๊ธฐ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. MISO ๋ผ์ธ์„ ์ œ์™ธํ•˜๊ณ . ์ถœ๋ ฅ ํ•˜๋‹จ ์Šค์œ„์น˜๋Š” ์•„๋งˆ๋„ ์‹ ํ˜ธ๋ฅผ ์ ‘์ง€ ๋ ˆ๋ฒจ๋กœ ์œ ๋„ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. MISO ๋ผ์ธ์˜ ํ™œ์„ฑํ™” ์‹ ํ˜ธ๊ฐ€ ํ•€ XNUMX์ด๋ผ๊ณ  ํŒ๋‹จํ•œ ํ›„ ํŠธ๋ž™์—์„œ ๋ถ„๋ฆฌ๋˜์–ด๋‚ฉ๋•œ์ง€์—ญ ์ž์œจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ(๊ณ„์†)9LVS74A CS ์žฅ์น˜ ์„ ํƒ ์ž…๋ ฅ ํ•€(125)๊ณผ ์ข…๋‹จ ์ €ํ•ญ ์‚ฌ์ด์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ฉ”๋ชจ๋ฆฌ ์นด๋“œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๊ฐ€ ์—†์œผ๋ฉด MISO ๋ฒ„ํผ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ๋‹ค๋ฅธ ์žฅ์น˜์˜ ์ž‘๋™์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.๊ฐœ๋ฐœ ๋ณด๋“œ ๋‹ค์ด์–ด๊ทธ๋žจ์ง€์—ญ ์ž์œจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ(๊ณ„์†)์ˆ˜์‹ ๊ธฐ ์ž‘๋™ ์ค‘์ง€์—ญ ์ž์œจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ(๊ณ„์†)DS3231์€ ์†Œํ”„ํŠธ์›จ์–ด I2C ๋ฒ„์Šค(TWI)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ก์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
์•„๋‘์ด๋…ธ IDE ํ”„๋กœ๊ทธ๋žจ// ์ค‘์š”: Adafruit_TFTLCD ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ตฌ์ฒด์ ์œผ๋กœ ์ง€์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
// TFT ์‰ด๋“œ ๋˜๋Š” ๋ธŒ๋ ˆ์ดํฌ์•„์›ƒ ๋ณด๋“œ์šฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
// ์„ค์ •์„ ์œ„ํ•ด Adafruit_TFTLCD.h์˜ ๊ด€๋ จ ์„ค๋ช…์„ ์ฐธ์กฐํ•˜์„ธ์š”.
//Open-Smart ํŒ€ ๋ฐ Catalex ํŒ€ ์ž‘์„ฑ
//[์ด๋ฉ”์ผ ๋ณดํ˜ธ]
//๊ฐ€๊ฒŒ: dx.com
// open-smart.aliexpress.com/store/1199788
//๋ฐ๋ชจ ๊ธฐ๋Šฅ: ๊ทธ๋ž˜ํ”ฝ, ๋ฌธ์ž ํ‘œ์‹œ
//์•„๋‘์ด๋…ธ 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
//์˜คํ”ˆ ์Šค๋งˆํŠธ 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 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ
Sd์ง€๋ฐฉ SD;
SdํŒŒ์ผ ํŒŒ์ผ;
ํŒŒ์ผ myFile;
#SD_CS_PIN SS ์ •์˜

#ํฌํ•จํ•˜๋‹ค // SPI ๋ฒ„์Šค์™€ ์ž‘๋™ํ•˜๋„๋ก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
#ํฌํ•จํ•˜๋‹ค // RF24 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์„ค์ • ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
#ํฌํ•จํ•˜๋‹ค // nRF24L24+์™€ ์ž‘๋™ํ•˜๋„๋ก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
RF24 ๋ฌด์„ (47, 49);

#ํฌํ•จํ•˜๋‹ค

DS3231 rtc(27, 25);
์‹œ๊ฐ„ t;

uint16_t r = 6000;
uint32_t k = 0;

ํœ˜๋ฐœ์„ฑ์˜ ๋ถ€ํ˜ธ ์—†๋Š” ๊ธด ๋ฐ์ดํ„ฐ;
float leb_1;
float leb_2;
float leb_3;
float leb_4;

uint8_t ํŒŒ์ดํ”„;
int rc = 0;

uint8_t time_sec_prev;
uint8_t time_day_prev;

//************************************************ ****************/ /
// OPEN-SMART TFT ๋ธŒ๋ ˆ์ดํฌ์•„์›ƒ ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ //
// 5V-3.3V ๋ ˆ๋ฒจ ๋ณ€ํ™˜ ํšŒ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
// ๋ฌผ๋ก  5V/3.3V ์ „์› ์Šค์œ„์น˜๊ฐ€ ์žˆ๋Š” OPEN-SMART UNO Black ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
// 3.3V๋กœ ์ „ํ™˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
// LCD์˜ ์ œ์–ด ํ•€์€ ๋ชจ๋“  ๋””์ง€ํ„ธ ๋˜๋Š” ํ•€์— ํ• ๋‹น๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
// ์•„๋‚ ๋กœ๊ทธ ํ•€...๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ์•„๋‚ ๋กœ๊ทธ ํ•€์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
//โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”-|
// TFT ๋ธŒ๋ ˆ์ดํฌ์•„์›ƒ - 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๋น„ํŠธ ์ƒ‰์ƒ ๊ฐ’์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
#BLACK 0x0000 ์ •์˜
#BLUE 0x001F ์ •์˜
#RED 0xF800 ์ •์˜
#๋…น์ƒ‰ 0x07E0 ์ •์˜
#์‚ฌ์ด์–ธ 0x07FF ์ •์˜
#๋งˆ์  ํƒ€ 0xF81F ์ •์˜
#๋…ธ๋ž€์ƒ‰ 0xFFE0 ์ •์˜
#ํฐ์ƒ‰ 0xFFFF ์ •์˜
#GRAY 0x8C51 ์ •์˜
#GRAYD 0x39E7 ์ •์˜

//Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
// ์‹ค๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ์ œ์–ด ๋ฐ ๋ฐ์ดํ„ฐ ๋ผ์ธ์ด ๊ณ ์ •๋˜๊ณ 
// ์„ ํƒ์ ์œผ๋กœ ๋” ๊ฐ„๋‹จํ•œ ์„ ์–ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
// Adafruit_TFTLCD tft;
uint16_t g_identifier;

๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฌธ์ž์—ด;
//๋ฌธ์ž์—ด numfileMonth = "1.txt";
char perv [] = {"2.txt"};
//String *numfileMonth="1.txt" (sizeof (numfileMonth));
////////////////////////////////////////////////// /////////////////

void setup (void) {

rtc.begin();

// ์‹œ๊ฐ„์„ ์„ค์ •ํ•˜๋ ค๋ฉด ํ•„์š”ํ•œ ์ค„์˜ ์ฃผ์„์„ ํ•ด์ œํ•˜์„ธ์š”.
// rtc.setDOW(6); // ์š”์ผ
// rtc.setTime(22, 04, 0); // 24์‹œ๊ฐ„ ํ˜•์‹์˜ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.
// rtc.setDate(4๋…„ 5์›” 2019์ผ); // ๋‚ ์งœ, 29๋…„ 2018์›” XNUMX์ผ

Serial.begin (2000000);
//////// ํ™”๋ฉด ์ดˆ๊ธฐํ™”
tft.begin(0x65);
tft.reset();
tft.setRotation(0);
tft.cp437(์ฐธ);
//////////////////์ด๋ฆ„, ์žฅ๋น„๋ถ€์†ํ’ˆ, ๊ธฐ๊ด€๋ช… ์ถœ๋ ฅ
tft.fillScreen(BLACK);
tft.setTextColor(WHITE);
tft.setTextSize(2);
tft.setCursor(8, 0);
tft.println("๊ฐœ๋ฐœ์ž ๋ฐ ๋นŒ๋“œ");
tft.setCursor(30, 20);
tft.print(utf8rus("์ƒ์„ฑ์ž V.V." ));
tft.setCursor(40, 40);
tft.print(utf8rus("ํ„ฐ๋„ˆ I.I." ));
์ง€์—ฐ (2000);

๋ผ๋””์˜ค.์‹œ์ž‘(); // ์ž‘์—… ์‹œ์ž‘ 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); // ๋ฐ์ดํ„ฐ ์ˆ˜์‹ ์„ ์œ„ํ•ด 1๊ฐœ์˜ ์†ก์‹ ๊ธฐ ์‹๋ณ„์ž 1xAABBCCDD0์„ ๊ฐ€์ง„ 11๊ฐœ์˜ ํŒŒ์ดํ”„๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
// ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋ ค๋ฉด ์†ก์‹ ๊ธฐ ID๊ฐ€ 2xAABBCCDD2์ธ ํŒŒ์ดํ”„ 0๋ฅผ ์—ฝ๋‹ˆ๋‹ค.
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.์ดˆ;
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);
}
}

void loop (void) {
////////COM ํฌํŠธ ๋ชจ๋‹ˆํ„ฐ์— ๋กœ๊ทธ ์ถœ๋ ฅ ์š”์ฒญ ์œ ๋ฌด ํ™•์ธ
if (Serial.available() > 0) {
if (1 == Serial.read());
////////"1"์ด ์Šน์ธ๋˜๋ฉด ์ถœ๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค.
ํŒŒ์ผ myFile = SD.open(perv);
// ํŒŒ์ผ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉด ํŒŒ์ผ์— ์”๋‹ˆ๋‹ค.
if (myFile) {
๋™์•ˆ(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.์ดˆ;
}
////////๋‚ ์งœ๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ ์ƒˆ ๋‚ ์งœ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
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(๋ฐ์ดํ„ฐ));
////////ํ•„์š”ํ•œ ์†ก์‹ ๊ธฐ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ
if (ํŒŒ์ดํ”„ == 1) {
////////XNUMX์˜ ๋™๊ธฐํ™” ์‹œํ€€์Šค๊ฐ€ โ€‹โ€‹๊ฒฐ์ •๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
//๋ฐ์ดํ„ฐ ๋ธ”๋ก์˜ ์‹œ์ž‘
if (๋ฐ์ดํ„ฐ == 0000) {
RC = 0;
} ๋‹ค๋ฅธ {
rc++;
}
////////์นด์šดํ„ฐ ๊ฐ’์„ ๊ธฐ๋กํ•˜๊ณ  10๋ถ„์˜ 100, XNUMX๋ถ„์˜ XNUMX์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ๊ณ„์‚ฐ
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("๋ ˆ๋ฒ ๋“œํ‚ค XNUMX์„ธ");
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;
}
////////10๋ถ„๋งˆ๋‹ค SD์˜ ๋กœ๊ทธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์”๋‹ˆ๋‹ค.
if ((t.min % 10 == 0) && ( t.sec == 0)) {
tft.setTextSize(1);
tft.setCursor(200, 10);
tft.setTextColor(BLACK);
////////.csv ํ˜•์‹์œผ๋กœ ๋ฌธ์ž์—ด ์ƒ์„ฑ
๋ฌธ์ž์—ด dataString = ๋ฌธ์ž์—ด (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, ๋…น์ƒ‰);
tft.println("SD OK");
Serial.println("SD ์ •์ƒ");
์ง€์—ฐ(900); // ์ง€์—ฐ, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 13์ดˆ๊ฐ€ ์ง€๋‚  ๋•Œ๊นŒ์ง€ XNUMX๊ฐœ์˜ ๋™์ผํ•œ ํŒ๋…๊ฐ’์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
} ๋‹ค๋ฅธ {
tft.fillRect(198, 8, 42, 10, RED);
tft.println("SD ERR");
Serial.println("SD ์˜ค๋ฅ˜");
}
}
}๋ฌธ์ž ๋ณ€ํ™˜ ํ”„๋กœ๊ทธ๋žจ/* ๋Ÿฌ์‹œ์•„์–ด ๊ธ€๊ผด์„ UTF-8์—์„œ Windows-1251๋กœ ๋‹ค์‹œ ์ฝ”๋”ฉ */

๋ฌธ์ž์—ด utf8rus(๋ฌธ์ž์—ด ์†Œ์Šค)
{
int i,k;
๋ฌธ์ž์—ด ๋Œ€์ƒ;
๋ถ€ํ˜ธ ์—†๋Š” ๋ฌธ์ž n;
char m[2] = { '0', ' ' };

k = ์†Œ์Šค.๊ธธ์ด(); ๋‚˜๋Š” = 0;

๋™์•ˆ (i < k) {
n = ์†Œ์Šค[i]; ๋‚˜++;

if (n >= 0xC0) {
์Šค์œ„์น˜ (n) {
์ผ€์ด์Šค 0xD0: {
n = ์†Œ์Šค[i]; ๋‚˜++;
if (n == 0x81) { n = 0xA8; ๋ถ€์„œ์ง€๋‹ค; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x30;//0x2F
ํ•˜๋‹ค;
}
์ผ€์ด์Šค 0xD1: {
n = ์†Œ์Šค[i]; ๋‚˜++;
if (n == 0x91) { n = 0xB8; ๋ถ€์„œ์ง€๋‹ค; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x70;//0x6F
ํ•˜๋‹ค;
}
}
}
m[0] = n; ํƒ€๊ฒŸ = ํƒ€๊ฒŸ + ๋ฌธ์ž์—ด(m);
}
๋ฐ˜ํ™˜ ๋Œ€์ƒ;
}Adafruit_GFX ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค๋ฆด์–ด ์ถœ๋ ฅ์šฉ ๋ฌธ์ž ํŠธ๋žœ์Šค์ฝ”๋”ฉ ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋™์ผํ•œ ํด๋”์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Adafruit_GFX์˜ glcdfont.c ํŒŒ์ผ์„ ๋‹ค๋ฅธ ๊ธ€๊ผด๋กœ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ํ•„์š”ํ•œ ๊ต์ฒด๊ฐ€ ํฌํ•จ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. Russification์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ธํ„ฐ๋„ท์—์„œ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์š”์•ฝํ•˜๋ฉด ์‹œ์Šคํ…œ์ด ๊ธฐ๋Œ€์— ๋ถ€์‘ํ•˜๊ณ  ์žฅ๋น„ ์ž‘๋™ ์‹œ๊ฐ„์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์›Œ์กŒ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ์— ์กฐ๋ฆฝ๋˜์–ด ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ž‘์—…์— ๋Œ€ํ•œ ์ฆ‰๊ฐ์ ์ธ ๋ถˆ๋งŒ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋Š” XNUMX๊ฐœ์›” ์ด์ƒ ์ž‘๋™ํ–ˆ์œผ๋ฉฐ ๊ฒจ์šธ์—๋„ ์‚ด์•„ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋””์ž์ธ ์ง€๋‚œ 9์›” 5์ผ๋ถ€ํ„ฐ XNUMX๊ฐœ ๊ด€์ œ๋Œ€๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์šด์˜๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ์ด์šฉํ•œ ์šด์˜์‹œ๊ฐ„์ด ๊ณต์‹์ ์œผ๋กœ ๋“ฑ๋ก๋˜๊ณ  ์žˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€