/*
Connect:
NodeMCU -> Matrix
MOSI-D7-GPIO13 -> DIN
CLK-D5-GPIO14 -> CK
GPIO0-D8 -> CS
D6 --> DHTPIN nhietdo
*/
#include <Adafruit_GFX.h>
#include "Max72xxPanel.h"
// #include <Fonts/FreeSerif9pt7b.h>
// #include <Fonts/FreeSerif9pt7b.h>
//vn_lunar solar;
// =======================================================================
// Connection data:
// =======================================================================
// const char* ssid = "HatDeFAM"; // SSID
// const char* password = "honganh123"; // PASSWORD
// String weatherKey = "openweathermap API"; // openweathermap API http://openweathermap.org/api
// String weatherLang = "&lang=en";
// String cityID = "1597591"; //Chaweng (Ban Thung)
// =======================================================================
long period;
int offset = 1, refresh = 0;
int pinCS = 0; // Штыревое соединение CS
int numberOfHorizontalDisplays = 6; // Количество горизонтальных матриц
int numberOfVerticalDisplays = 1; // Количество вертикальных матриц
String decodedMsg;
Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);
//matrix.cp437(true);
int wait = 60; // ความเร็วของการวิ่ง
int spacer = 4;
int width = 5 + spacer; // ระยะห่างตัวอักษร สามารถปรับได้
void setup(void) {
Serial.begin(115200);
delay(100);
matrix.setIntensity(8); // ความสว่าง 0-15
// Serial.println("step2");
// change position defalt 8 * 8
matrix.setRotation(0, 1); // 1
matrix.setRotation(1, 1); // 2
matrix.setRotation(2, 1); // 3
matrix.setRotation(3, 1); // 4
}
// =======================================================================
#define MAX_DIGITS 16
byte dig[MAX_DIGITS] = { 0 };
byte digold[MAX_DIGITS] = { 0 };
byte digtrans[MAX_DIGITS] = { 0 };
int updCnt = 0;
int dots = 0;
long dotTime = 0;
long clkTime = 0;
int dx = 0;
int dy = 0;
byte del = 0;
int h, m, s;
int mo, da, ye;
int am_mo, am_da, am_ye;
String view = "";
float utcOffset = +7; //การแก้ไขเขตเวลา
long localEpoc = 0;
long localMillisAtUpdate = 0;
// =======================================================================r
void setLight(int number) {
matrix.setIntensity(number); // 0-15
}
void DisplayText(String text, int delaytime, int spaceDis) {
int widthSpace = 5 + spaceDis;
matrix.fillScreen(LOW);
for (int i = 0; i < text.length(); i++) {
int letter = (matrix.width()) - i * (widthSpace - 1);
int x = (matrix.width() + 1) - letter;
int y = (matrix.height() - 8) / 2;
matrix.drawChar(x, y, text[i], HIGH, LOW, 1);
matrix.write();
delay(wait);
}
delay(delaytime);
}
void ScrollText (String text) {
for ( int i = 0 ; i < width * text.length() + matrix.width() - 1 - spacer; i++ ) {
if (refresh == 1) i = 0;
refresh = 0;
matrix.fillScreen(LOW);
int letter = i / width;
int x = (matrix.width() - 1) - i % width;
int y = (matrix.height() - 8) / 2;
while ( x + width - spacer >= 0 && letter >= 0 ) {
if ( letter < text.length() ) {
matrix.drawChar(x, y, text[letter], HIGH, LOW, 1);
}
letter--;
x -= width;
}
matrix.write();
delay(wait);
}
}
// =======================================================================
void loop() {
// Serial.println("steploop");
//showElementArray();
ScrollText("How are you ok");
DisplayText("2024", 5000, 2);
}