Pūnaehana Loaʻa ʻIke ʻIke Kūloko (hoʻomau ʻia)

E hoʻomaka ma kēia pūnaewele loulou.
ʻO ka koho kūpono loa no ka hoʻihoʻi ʻana i ka ʻike e pili ana i ka hoʻohuli ʻana i ka mea hoʻomaka i lilo i koho me ka PC817 optocoupler. Kiʻikuhi kiʻiPūnaehana Loaʻa ʻIke ʻIke Kūloko (hoʻomau ʻia)Aia nā papa i ʻekolu mau kaapuni like, waiho ʻia nā mea āpau i nā pahu plastik ABS, ka nui 100x100 mm. Kiʻi o nā optocouplersPūnaehana Loaʻa ʻIke ʻIke Kūloko (hoʻomau ʻia) Ke hoʻohui ʻia i ka hoʻomaka ʻana i nā mea me nā kīwaha semiconductor, ua lawa kā lākou leakage e wehe i ka PC817 a e hoʻomaka wahaheʻe ka counter. No ke kāpae ʻana i kēlā ʻano kūlana Hoʻohui ʻia kekahi i ke kaʻapuni o ka optocoupler LED a me ka LED kuhikuhi hana. No ka hana ʻana i kēia, wehe ʻia ka jumper J1 a kūʻai ʻia kahi LED LED1 hou.
Hana ʻia ka ʻāpana loaʻa ma aoao 1Pūnaehana Loaʻa ʻIke ʻIke Kūloko (hoʻomau ʻia)aoao 2Pūnaehana Loaʻa ʻIke ʻIke Kūloko (hoʻomau ʻia)ʻO ka papa hoʻomohala e pili ana iā ARDUINO MEGA 2560. No kēia, hoʻohana ʻia kahi mea hoʻohui ʻelua lālani ma ka hopena. Hoʻohana ʻia kahi pale me ka hoʻonā ʻana o 240x400, me kahi pale paʻi kūʻē a me ka ʻike wela, ma ke ʻano he mea hōʻike ʻike. HX8352B.Pūnaehana Loaʻa ʻIke ʻIke Kūloko (hoʻomau ʻia) Eia kekahi, ua wehe ʻia ka mea hoʻohui i ka ICSP ma ka papa pale a ʻaʻole hoʻohana ʻia ka micro SD slot. ʻO ka ʻoiaʻiʻo, ʻaʻole hiki ke hoʻohana ʻia ke kumu SD "native" ma muli o kahi paio ma ka pahi SPI. No ke kāleka flash, ua hoʻohana ʻia kahi mea heluhelu kāleka ʻokoʻa, kahi i loaʻa kahi stabilizer 3,3V a me kahi puʻupuʻu buffer me ʻekolu mau huaʻōlelo 74LVS125A. ʻO kēia kahi i kali ai ka rake iaʻu. ʻEkolu mokuʻāina paʻa, akā ua hana ka E01-ML01DP5 a i ʻole ka mea heluhelu kāleka. Ma nā ʻōlelo a ka waihona, ʻike ʻo SdFat i kahi ʻōlelo aʻo e pili ana i ka launa ʻole me nā mea hana ʻē aʻe. Ua wehe ʻia ka mea hoʻololi pae ma ka TXS0108E a hoʻololi ʻia me nā mea lele, no ka mea Hoʻomanawanui ʻo E01-ML01DP5 i nā hōʻailona 5V - ʻaʻole i kōkua. Ke hoʻohana nei i kahi oscilloscope, ua ʻike ʻia kahi nalowale hōʻailona ma ka laina MISO ke hoʻopili ʻia kahi mea heluhelu kāleka. Ma ka nānā pono ʻana, ua ʻike ʻia ua kūʻai wale ʻia nā mea hoʻokomo o nā hōʻailona hiki o nā kaha OE 4 o ka 74LVS125A i kahi uea maʻamau a ʻaʻole hiki ke kamaʻilio ʻia no kekahi mokuʻāina ʻekolu. Ua hoʻohana ʻia ka puʻupuʻu puʻupuʻu ma ke ʻano he mea hoʻololi pae mua mai 5V a i 3.3V me ka hoʻohana ʻana i nā resistors 3,3 KΩ i hui pū ʻia me nā laina hōʻailona. Koe wale no ka laina MISO. Ua hoʻokomo paha ka mea hoʻololi i lalo i nā hōʻailona i ka pae honua. Ma hope o ka hoʻoholo ʻana he pine 13 ka hōʻailona hiki o ka laina MISO, ua ʻoki ʻia mai ke ala akūʻai ʻiaPūnaehana Loaʻa ʻIke ʻIke Kūloko (hoʻomau ʻia)ma waena o ka mea 9LVS74A CS koho i ka pine hoʻokomo (125) a me ka pale pale. I kēia manawa, inā ʻaʻohe komo i ka kāleka hoʻomanaʻo, ua pio ka MISO buffer a ʻaʻole e hoʻopilikia i ka hana ʻana o kahi mea ʻē aʻe.Kiʻi papa hoʻomohalaPūnaehana Loaʻa ʻIke ʻIke Kūloko (hoʻomau ʻia)Loaʻa i ka hanaPūnaehana Loaʻa ʻIke ʻIke Kūloko (hoʻomau ʻia)Hoʻohana ka DS3231 i kahi polokalamu I2C bus (TWI) e hoʻopili i ka uaki.
Papahana IDE Arduino// NĀ MEA: Pono ka Hale Waihona Puke ʻo Adafruit_TFTLCD
// HOʻOPIʻI ʻia no ka pale TFT a i ʻole ka papa BREAKOUT.
// E ʻike i nā manaʻo pili i ka Adafruit_TFTLCD.h NO KA HOʻOMU.
//na Open-Smart Team a me Catalex Team
//[pale ʻia ka leka uila]
//Kuai: dx.com
// open-smart.aliexpress.com/store/1199788
//Ka hana Demo: Hōʻike i nā kiʻi, nā huapalapala
//Arduino IDE: 1.6.5
// Papa: Arduino UNO R3, Arduino Mega2560, Arduino Leonardo

// Papa:OPEN-SMART UNO R3 5V / 3.3V, Arduino UNO R3, Arduino Mega2560
//3.2 INCH 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

#hoʻokomo // Hale waihona kiʻi kumu
//#hoʻokomo // Hale waihona puke lako lako
#hoʻokomo
MCUFRIEND_kbv tft;
#include "SdFat.h" // E hoʻohana i ka waihona SdFat
SdFat SD;
SdFile waihona;
Waiho i kaʻuFile;
#define SD_CS_PIN SS

#hoʻokomo // Hoʻohui i ka hale waihona puke e hana me ka pahi SPI
#hoʻokomo // Hoʻohui i ka faila hoʻonohonoho mai ka waihona RF24
#hoʻokomo // Hoʻohui i ka waihona e hana me nRF24L24+
Lekiō RF24(47, 49);

#hoʻokomo

DS3231 rtc(27, 25);
Manawa t;

uint16_t r = 6000;
uint32_t k = 0;

ʻikepili lōʻihi i hoʻopaʻa ʻole ʻia;
lana leb_1;
lana leb_2;
lana leb_3;
lana leb_4;

uint8_t paipu;
int rc = 0;

uint8_t time_sec_prev;
uint8_t time_day_prev;

//************************************************ ****************/ /
// Inā hoʻohana ʻoe i ka OPEN-SMART TFT breakout papa //
// Manaʻo iā ʻoe e hoʻohui i ka 5V-3.3V pae hoʻololi kaapuni.
// ʻOiaʻiʻo hiki iā ʻoe ke hoʻohana i ka mana OPEN-SMART UNO ʻEleʻele me ka hoʻololi mana 5V/3.3V,
// pono ʻoe e hoʻololi i 3.3V.
// Hiki ke hāʻawi ʻia nā pine mana no ka LCD i kekahi kikohoʻe a i ʻole
// nā pine analog...akā e hoʻohana mākou i nā pine analog e like me kēia e hiki ai iā mākou
//——————————————-|
// TFT Breakout - Arduino UNO / Mega2560 / OPEN-SMART UNO ʻEleʻele
// GND - GND
// 3V3 - 3.3V
//CS - A3
// RS - A2
// WR - A1
// RD - A0
// RST - HOOLAHA HOU
// LED - GND
// DB0 - 8
// DB1 - 9
// DB2 - 10
// DB3 - 11
// DB4 - 4
// DB5 - 13
// DB6 - 6
// DB7 - 7

// E hāʻawi i nā inoa hiki ke heluhelu ʻia e ke kanaka i kekahi mau waiwai kala 16-bit maʻamau:
#define BLACK 0x0000
#define BLUE 0x001F
#define ULAULA 0xF800
#define Ōmaʻomaʻo 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define GRAY 0x8C51
#define GRAYD 0x39E7

//Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
// Inā hoʻohana i ka pale, hoʻopaʻa ʻia nā mana āpau a me nā laina ʻikepili, a
// hiki ke hoʻohana ʻia kahi ʻōlelo maʻalahi:
// Adafruit_TFTLCD tft;
uint16_t g_identifier;

String dataString;
//String numfileMonth = "1.txt";
char perv [] = {"2.txt"};
//String *numfileMonth="1.txt" (sizeof (numfileMonth));
///////////////////////////////////////////// ////////////////

hakahaka hoʻonohonoho (hakahaka) {

rtc.begin();

// No ka hoʻonohonoho ʻana i ka manawa, wehe i nā laina pono
// rtc.setDOW(6); // La o ka pule
// rtc.setTime(22, 04, 0); // Manawa, ma ke ano he 24 hora.
// rtc.setDate(4, 5, 2019); // Ka lā, ʻOkakopa 29, 2018

Serial.begin (2000000);
/////// Ka hoʻomaka ʻana o ka pale
tft.begin(0x65);
tft.reset();
tft.setRotation(0);
tft.cp437(ʻoiaʻiʻo);
/////////////////Hana i nā inoa, nā lako lako, ka inoa hui.
tft.fillScreen(BLACK);
tft.setTextColor(WHITE);
tft.setTextSize(2);
tft.setCursor(8, 0);
tft.println("NĀ MEA KĀLUA & KUKULU");
tft.setCursor(30, 20);
tft.print (utf8rus("Constructor V.V." ));
tft.setCursor(40, 40);
tft.print (utf8rus("Turner I.I." ));
lohi(2000);

radio.begin(); // Hoʻomaka i ka hana nRF24L01+
radio.setChannel(120); // E wehewehe i ke ala hoʻokipa ʻikepili (mai 0 a 127)
radio.setDataRate(RF24_250KBPS); // E wehewehe i ka helu hoʻoili ʻikepili (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS), RF24_1MBPS - 1Mbit/s
radio.setPALevel(RF24_PA_MAX); // E wehewehe i ka mana transmitter (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm)
radio.openReadingPipe(1, 0xAABBCCDD11LL); // Wehe i 1 paipu me ka ʻike o 1 transmitter 0xAABBCCDD11, e loaʻa i ka ʻikepili
// E wehe i ka paipu 2 me ka ID transmitter 2xAABBCCDD0 e loaʻa ai ka ʻikepili
radio.startListening(); // E ho'āla i ka mea hoʻokipa, e hoʻomaka i ka hoʻolohe i nā paipu hāmama
// radio.stopListening();
///////Puana o ka ʻike lawelawe
tft.fillScreen(BLACK);
tft.setCursor(8, 0);
tft.setTextSize(1);
//////// Hoʻomaka e hoʻomaka i ke kāleka SD
Serial.println("Kāki SD mua");
tft.println("Kāki SD mua");
tft.setCursor(8, 10);
////////Hoʻomaka i ke kāleka
inā (!SD.begin(SD_CS_PIN)) {
Serial.println("ʻaʻole i hāʻule ka mua!");
tft.fillRect(8, 10, 85, 7, RED);
tft.setTextColor(BLACK);
tft.println("Holo ka mua!");
hoʻihoʻi;
}
tft.setTextColor(WHITE);
Serial.println("Hoʻomaka ka hana");
tft.println("Hoʻomaka ka hana");
lohi(2000);
//////// Heluhelu i ka manawa a me ka lā a me ka hāʻawi ʻana iā lākou i nā mea hoʻololi
t = rtc.getTime();
time_sec_prev = t.sec;
time_day_prev = t.date;
////////E hoʻopuka ikaika i ka lā i ʻole e kali no ka loli ʻana o ka lā no ka hōʻike
tft.setCursor(180, 0); // hoʻonohonoho i ke kūlana cursor
tft.fillRect(178, 0, 65, 7, GRAY); // hoʻomaʻemaʻe i ka wahi puka manawa
tft.setTextSize(1);
tft.print(rtc.getDateStr());
///////E hoʻopuka i ka inoa o nā mea mana
tft.setTextSize(2);
tft.setCursor(60, 25);
tft.println (utf8rus("Winches I"));
////////Ka hana ʻana i kahi faila log a hoʻopuka i ka hopena o ka hoʻāʻo ʻana
tft.setTextSize(1);
tft.setCursor(130, 10); // inā hana ʻia ka waihona log 2.txt, a laila e hoʻomau ʻia ke kākau ʻana i ka faila
inā (SD.exists(perv)) {
//tft.setCursor(0, 90);
tft.println(perv);
Serial.println(perv);
} ka mea'ē aʻe {
myFile = SD.open(perv, FILE_WRITE); // inā ʻaʻohe waihona 2.txt, e hana ʻia
myFile.close();
tft.println(perv);
Serial.println(perv);
}
}

loop loop (void) {
/////// Ke nānā nei i ke ola ʻana o kahi noi e hoʻopuka i kahi log i ka monitor port COM
inā (Serial.available() > 0) {
inā (1 == Serial.read());
///////A inā ʻae ʻia ka "1", a laila ka puka
Waiho i kaʻuFile = SD.open(perv);
// inā loaʻa ka faila, e kākau iā ia:
inā (myFile) {
ʻoiai (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
}
ʻē aʻe {
Serial.println("hewa ka wehe ʻana i ka .txt");
}
}
///////Ka manawa heluhelu
t = rtc.getTime();
tft.setTextColor(WHITE);
////////Inā ua loli ka manawa, a laila e hōʻike i nā heluhelu uaki hou
inā ( time_sec_prev != t.sec) {
tft.setCursor(120, 0); // hoʻonohonoho i ke kūlana cursor
tft.fillRect(118, 0, 50, 7, GRAY); // hoʻomaʻemaʻe i ka wahi puka manawa
tft.setTextSize(1);
tft.print(rtc.getTimeStr()); // nā heluhelu uaki puka
time_sec_prev = t.sec;
}
///////Inā ua loli ka lā, e hōʻike i ka lā hou
inā ( time_day_prev != t.date) {
tft.setCursor(180, 0); // hoʻonohonoho i ke kūlana cursor
tft.fillRect(178, 0, 65, 7, GRAY); // wahi hōʻike lā maopopo
tft.setTextSize(1);
tft.print(rtc.getDateStr()); // hōʻike i nā heluhelu lā
time_day_prev = t.date;
}
///////Inā loaʻa ka hoʻokipa lekiō, a laila
inā (radio.available(&pipe)) {
///////e nānā inā piha ka pahu hoʻokipa,
radio.read(&ʻikepili, nui o(ʻikepili));
////////inā loaʻa ka leka uila i makemake ʻia, a laila
ina (pipe == 1) {
////////e kali ana i ka hoʻonohonoho ʻana o nā zeros e hoʻoholo ai
//hoomaka o ka poloka ikepili
inā (ʻikepili == 0000) {
rc = 0;
} ka mea'ē aʻe {
rc++;
}
////////Ke hoʻopaʻa ʻana i nā helu helu a me ka helu ʻana iā lākou i ka 10th a me 100ths o ka hola
inā (rc == 1) {
leb_1 = ʻikepili / 3600.0;
}

inā (rc == 2) {
leb_2 = ʻikepili / 3600.0;
}

inā (rc == 3) {
leb_3 = ʻikepili / 3600.0;
}

inā (rc == 4) {
leb_4 = ʻikepili / 3600.0;
}
}
}
r++;
k++; // he counter wale nō
//////// Hoʻohou ʻikepili me kekahi manawa
inā ( 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;
}
////////Kākau i ka ʻikepili i ka log ma SD i kēlā me kēia 10 minuke.
inā ((t.min % 10 == 0) && (t.sec == 0)) {
tft.setTextSize(1);
tft.setCursor(200, 10);
tft.setTextColor(BLACK);
////////Ka hana ʻana i kahi kaula ma ke ʻano .csv
String dataString = String (rtc.getDateStr()) + ","+(rtc.getTimeStr()) + "," + (leb_1) + ", " + (leb_2)
+ "," + (leb_3) + "," + (leb_4) + ",";
////////Kākau i kahi faila a hoʻopuka i nā hopena o ke kaʻina hana kākau
myFile = SD.open(perv, FILE_WRITE); // inā ʻaʻohe faila i kapa ʻia ʻo "2.txt", e hana ʻia.
inā (myFile) {
myFile.println(dataString);
myFile.close();
tft.fillRect(198, 8, 42, 10, OMAOMAO);
tft.println("SD OK");
Serial.println("SD OK");
lohi (900); // lohi, a i ʻole e hoʻopaʻa i 13 mau heluhelu like a hala ka lua
} ka mea'ē aʻe {
tft.fillRect(198, 8, 42, 10, RED);
tft.println("SD ERR");
Serial.println("SD ERR");
}
}
}Polokalamu hoʻololi ʻano/* Hoʻololi hou i nā kikokikona Lūkini mai UTF-8 a i Windows-1251 */

Kaha utf8rus(kumu kumu)
{
int i,k;
Pahu kaula;
char n;
char m[2] = { '0', ' ' };

k = kumu. lōʻihi (); i = 0;

ʻoiai (i < k) {
n = kumu[i]; i++;

inā (n >= 0xC0) {
hoʻololi (n) {
hihia 0xD0: {
n = kumu[i]; i++;
inā (n == 0x81) { n = 0xA8; wawahi; }
inā (n >= 0x90 && n <= 0xBF) n = n + 0x30;//0x2F
haki;
}
hihia 0xD1: {
n = kumu[i]; i++;
inā (n == 0x91) { n = 0xB8; wawahi; }
inā (n >= 0x80 && n <= 0x8F) n = n + 0x70;//0x6F
haki;
}
}
}
m[0] = n; pahuhopu = pahu hopu + String(m);
}
hoʻihoʻi i ka pahuhopu;
} Hoʻokomo ʻia ka papahana transcoding character no Cyrillic output me ka hoʻohana ʻana i ka waihona Adafruit_GFX i loko o ka waihona like me ka papahana nui. Pono ʻoe e hoʻololi i ka faile glcdfont.c ma Adafruit_GFX me kahi font ʻokoʻa. he mea hale waihona puke me ka mea e pono ai ke pani. Hiki ke loaʻa maʻalahi ka ʻike hou aku e pili ana iā Russification ma ka Pūnaewele.
No ka hōʻuluʻuluʻana, e'ōlelo wau ua ola ka pūnaewele i nā mea i manaʻoʻia, ua maʻalahi ka nānāʻana i ka manawa hana o nā mea hana. ʻOiai ua ʻākoakoa nā mea a pau ma nā papa palaoa, ʻaʻohe hoʻopiʻi koke e pili ana i ka hana. Ua hana nā mea mua i ʻoi aku ma mua o ʻeono mahina a ua ola i ka hoʻoilo. Hoʻolālā hou Ke holo nei ia no 9 mau ʻāpana hoʻomalu mai ka lā Malaki 5th a ke hoʻopaʻa inoa ʻia nei ka manawa hana me ka hoʻohana ʻana.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka