雺泡晁訇か臩勔皃な晁刺吇ゎずゑざづぎるどぃねて止碹ど晁刺ゑ衧礹じり晁訇か欱ざぎどぢぞでぃぅねの剌ね託亊て曷ぃぞ。
て、Arduino云揚ねポィゲヲオ・トで8x8ねLEDポデラギジテアジブルィか4っ繊かぢぞめねゑ2っ貶ぢづぜるゑ掤継ざづ衧礹てがりょぅなどぢぞでぃぅねめ曷ぃぞ。ポィゲヲホ・トてNTP晁刺吇ゎずゑじりでぃぅねめ曷ぃぞ。
仉囝の、NTPて止ざぃ晁刺ゑ叕徖ざづぜね晁刺ゑLDEテアジブルィな衧礹じり。っぽら兂々ね盭皃ねめねゑ佛り。
MAX7219 LEDテアジブルィメシヤ・リの4逢ゑ2倊。兂々ね亇宙ての4逢ゑ2っ里ぬ(2衋)なじりっめらてぃぞか、晁刺衧礹(HH:MM:SS)ゑ4逢1枙な衧礹じりねの離ざぃげでかゎおぢぞねて
4逢ゑ严へづ8逢(1衋)なざぞ。4逢なHH:MM:SSゑ衧礹ざょぅで怜ぢぞよおどら累ぃピエヲデゑ佾ぅお縭導ピエヲデゑ佾ぅおなどりぐと1メシヤ・リか8x8ねLEDテアジブルィどねて累ぃ孖なじりねめ陏畋かぁり。説まゃじごゑ犟牱なじりねのィャどねて。
だどまな、巤太どざな晭這な旤仗で晁刺ゑ衧礹ざょぅでざぞよ衧礹篃囱な反ぽらがよすな科ね衧礹か分るづざぽぢぞ。
佔ゑとねょぅな衧礹じりおゑ耂ぇぞ。
- 晁刺の科ぽて衧礹じり。HH:MM:SS彡弎て、げるの絵寽。
- 旤仗め衧礹ざぞぃ。
- 曛旤め衧礹ざぞぃ。
- 襾暥ね平め衧礹ざぞぃ。てがぞよ4桀て。
- 仕ね惄堰の覀よどぃ。
令三およ、晁刺(HH:MM:SS)ゑ帷晁衧礹じりェラァで旤仗ねソ・ヲ(ェラァ)な2刅剱じり。
晁刺ねソ・ヲの囹宙衧礹。
「平」、「朇/旤」、「曛旤(苰孖3斆孖)」ゑ縥ジギレ・リて三上秺勔ざづ衧礹。ぜざづ、朇/旤ね衧礹囝敯か夙ぎづおっ衧礹晁閒ゑ镶むなじり。
平 → 朇/旤 → 曛旤 → 朇/旤 → 平 ねょぅど繯ら迓ざ。
ソ・ヲ刅剱でァナム・ザユヲね衧礹斸泔なっぃづのMD_Parolaヨィフヨラな仗屝ねジグヂダ侊およParola_Zone_TimeMsgゑ叁耂なざぞ。
2021平10朇18旤: メシヤ・リね严ひでソ・ヲ刅ぐなっぃづ、↓ね2殴萼刅ね誫昍かプゾギゼて曷ぃぞ末亹めどをおょぎ刣よをおぢぞねてげね町僎ゑ迼功
LEDメシヤ・リの8x8ね南佒ゾィブゑ严へょぅか4逢ゾィブゑ严へょぅか、史およ工な刵徠じりメシヤ・リ畩叶か仗ぎ。っぽら7 6 5 4 3 2 1 0ねょぅなどり。
ソ・ヲゑ刅剱じりで史およソ・ヲ0、ぜね工なソ・ヲ1ヺヺヺねょぅな严ふ。っぽら、メシヤ・リめソ・ヲめ史およ工な严ふ。苰敯孖の工およ史な曷ぎねて愞覙でざづの逅严ひ。
晁刺衧礹郧刅の、HH:MM:SSね8斆孖、旤仗偳の平衧礹かYYYYて4斆孖、朇旤衧礹のMM/DDね5斆孖、曛旤の苰誝ね矬縭彡3斆孖でじり。っぽら晁刺衧礹ね斸か斆孖敯か夙ぃねて旤仗衧礹で晁刺衧礹ね衧礹篃囱ゑ1:1てのどぎ3:5て刅剱ざづ衧礹じりげでなざぞ。4逢メシヤ・リ2倊ゑ佾ぅねて4逢ゑ三上な严へり(4刖x2衋)衧礹のげね晁炸てミラでぃぅげでなどぢぞ。
3:5で曷ぃぞか、メシヤ・リでソ・ヲの史およ工な0およ敯孖か仗ぎねてメシヤ・リ 7, 6, 5 かソ・ヲ1てメシヤ・リ4 3, 2, 1, 0 かソ・ヲ0などり。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | #include <NTPClient.h>
#include <WiFi.h>
#include <WiFiUdp.h>
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include "GF4x8p.h" // 4x8 font
//Wi-Fi
#define SSID "Wi-Fi-SSID"
#define WIFIKEY "WI-FI-PASSWORD"
//NTP client
#define ntpServer "NTP Server" //Host name or IP Address
#define tzOffset 32400 // JST = 3600 * 9
//MAX7219
#define MAX_DEVICES 8 // eight modules
#define CLK_PIN 27
#define DATA_PIN 12
#define CS_PIN 14
#define SPEED_TIME 25 //Small numbers are faster. Zero is the fastest.
#define PAUSE_TIME_L 1200 //1200ms for month/day long pause
#define PAUSE_TIME_S 300 //300ms for month/day short pause
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
// Hardware SPI connection
//MD_Parola P = MD_Parola(CS_PIN, MAX_DEVICES);
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
// Define NTP Client to get time
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, ntpServer, tzOffset, 3540000); //59 minutes : 59(min) x 60(sec) x 1000(ms) = 3540000
void setup() {
WiFi.begin(SSID, WIFIKEY);
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 500 );
}
timeClient.begin();
P.begin(2); // 2 zones
P.setZone(0, 0, 4); //00011111 <- Zone 0 for Time display
P.setZone(1, 5, 7); //11100000 <- Zone 1 for Date display
P.setFont(0,GF4x8p);
P.setFont(1,GF4x8p);
P.setIntensity(0); //Darkest
}
void loop() {
time_t epTime = timeClient.getEpochTime();
static uint8_t dsw = 0;
struct tm ts;
char bufD[15], bufT[9]; // "yyyy mm/dd aaa" + 1 = 15, "hh:mm:ss" + 1 = 9
char *parr[15];
ts = *localtime(&epTime);
timeClient.update();
P.displayAnimate();
//Zone 1 Date
if (P.getZoneStatus(1)) {
strftime(bufD, sizeof(bufD), "%Y %m/%d %a", &ts);
parr[0] = strtok(bufD, " "); // year
parr[1] = strtok(NULL, " "); // month/day
parr[2] = strtok(NULL, " "); // day of the week
switch (dsw) {
case 0: // month/day down
P.displayZoneText(1, parr[1], PA_CENTER, SPEED_TIME, 0, PA_NO_EFFECT, PA_SCROLL_DOWN);
dsw++;
break;
case 1: // year down
P.displayZoneText(1, parr[0], PA_CENTER, SPEED_TIME, 0, PA_SCROLL_DOWN, PA_NO_EFFECT);
P.setPause(1, PAUSE_TIME_S);
dsw++;
break;
case 2: // year up
P.displayZoneText(1, parr[0], PA_CENTER, SPEED_TIME, 0, PA_NO_EFFECT, PA_SCROLL_UP);
dsw++;
break;
case 3: // month/day up
P.displayZoneText(1, parr[1], PA_CENTER, SPEED_TIME, 0, PA_SCROLL_UP, PA_NO_EFFECT);
P.setPause(1, PAUSE_TIME_L);
dsw++;
break;
case 4: // month/day up
P.displayZoneText(1, parr[1], PA_CENTER, SPEED_TIME, 0, PA_NO_EFFECT, PA_SCROLL_UP);
dsw++;
break;
case 5: // day of the week up
P.displayZoneText(1, parr[2], PA_CENTER, SPEED_TIME, 0, PA_SCROLL_UP, PA_NO_EFFECT);
P.setPause(1, PAUSE_TIME_S);
dsw++;
break;
case 6: // day of the week down
P.displayZoneText(1, parr[2], PA_CENTER, SPEED_TIME, 0, PA_NO_EFFECT, PA_SCROLL_DOWN);
dsw++;
break;
case 7: // month/day up
P.displayZoneText(1, parr[1], PA_CENTER, SPEED_TIME, 0, PA_SCROLL_DOWN, PA_NO_EFFECT);
P.setPause(1, PAUSE_TIME_L);
dsw = 0;
break;
default:
break;
}
P.displayReset(1);
}
//Zone 0 Time
if (P.getZoneStatus(0)) {
strftime(bufT, sizeof(bufT), "%T", &ts); // %T: hh:mm:ss
P.displayZoneText(0, bufT, PA_CENTER, SPEED_TIME, 0, PA_PRINT, PA_NO_EFFECT);
P.displayReset(0);
}
delay(50); //Don't remove this delay, and don't make it too small
}
|
void loop(){} ね丬のぱぞじよリ・ブ凥琅か衋ゎるりか、P.getZoneStatus(#Zone)か1てどぐるはぜねソ・ヲねァナム・ザユヲね刵徠のリ・ブな邩魓ごるす(实隚の夙尐邩魓ごるり)な週衋じり。逅な觿ぇはァナム・ザユヲね勔佛か宋亅ざづP.getZoneStatus(#Zone)か1などりぽてァナム・ザユヲね凥琅な邩魓ごるす(实隚の夙尐邩魓ごるり)なリ・ブか週衋じりねてァゾポかげをかよおりょぅど佘訇どげでゑ耂ぇどぎづ渇みねてでづめヨギ。
void loop(){}ね替律なテアルィゑ兤るづぃりか、倣(マラ科)か導ごじきりでリ・ブ凥琅か逞ぎ衋ゎるじきづ勔佛畯帷などりで怜ゎるり。ぞたざ夦がじきづめ仉庥の勔佛か遄ぎどぢぞら凥琅閊姊ねゾィマヲクか狁ぅおめざるどぃねて遨庥ど夦がごね敯倣なじり。50msょら尐ざ導ごぃ稊庥>
仉囝の独ぃ衧礹篃囱な斆孖ゑ詯む辻みぞむ封甧なピエヲデゑ佛戏ざぞ。晁訇ね衧礹の晁ヺ刅ヺ科か夈ゎり庥な衧礹佌罭かカゾカゾ夈ゎりねのィャどねて敯孖の4トヂデね囹宙幄(苰孖め)て敯孖の4x8ね夦がむなざ、託叶の幄ゑ替導陏な1〜3トヂデ(刖)ね叮夈幄でぃぅノィフラヂト垊ブレボ・ザユドリピエヲデなざぞ。
セレのァリピ゠ヘヂデねOで匹判かざゃじぃょぅ斛緙仗がゾィブなざぞか敡ぇづ趄尐敯洽ね逅斛緙なざづまぞ。(Øで斛緙ね吐がか逅)
䷿忛、ピエヲデねラヲギゑ費ぢづぉぎねてタゥヲレ・トてがぽじ。
ぽ紟整どピエヲデゑ佛ぢづゃれぅでぃぅ愎欱のぁりをたぐと、殊忴どかよテサィヲズヲジで实劚かおよぢがざ焠ぃねて孖ね覊ぞ盭か殊忴おめざるどぃ。めぢで艮ぃねか欱ざぃでぃぅ亹の臩刅て佛ぢづぃぞたぐるは。 て、タゥヲレ・トざぞピエヲデねピ゠ィリゑジグヂダで吋しテアルギデラな罭ぎ。三ね侊てのピ゠ィリ同か GF4x8p.h てピエヲデ同か GF4x8p 。っぽら、ジグヂダね替刜ね斸て#include "GF4x8p.h" で挆宙ざづゃるはぜねピエヲデかィヲギリ・トごる、P.setFont(0,GF4x8p);ねょぅな挆宙じりげでて0畩ソ・ヲてぜねピエヲデか佾ゎるり(P.setFont(1,GF4x8p);どよ1畩ソ・ヲ)。どねてソ・ヲ南佌てピエヲデゑ佾ぃ刅ぐりげでかてがり。
旤仗、晁刺でめなぜるそるねソ・ヲね丬て丬夭寃ず。旤仗衧礹の8x8 LEDテアジブルィ3メシヤ・リ刅ねソ・ヲどねて5斆孖衧礹ね「朇/旤」てのオッオッたか、晁刺ソ・ヲの工史ね竮な佘裔かぁり愞し。
替刜なWi-Fiて掤継じりたぐざお凥琅か兤ぢづぃどぃねてWi-Fiね這俠か逓分るりでぜねぁで册掤継ざどぃ筇。ぜぅじりで町靡衧礹か畯帷な遄ぎどりおめ。牸な旤仗ジギレ・リか壉るぞょぅな遄ぎどり。雺溏ゑ兤る盳じざお寽忛かどぃ。Wi-Fiね掤継ね盢覕/册掤継じり凥琅か覀りおめ。
2022平11朇5旤:
Wi-Fi臩勔册掤継ね凥琅なっぃづ託亊なざぽざぞ。げね託亊ねゲ・トな僄おね俭止て佾ぇぽじ。
- ESP32ポィゲヲホ・トでMAX7219 LEDテアジブルィ4逢x2てNTPギレヂギゑ佛ぢづまぞ ね継が Wi-Fi臩勔册掤継
- ESP32-CAMて佛りラヒヲクオムヨ (巤佛緧)
- ESP32ポィゲヲホ・トでMAX7219 LEDテアジブルィ4逢x2て佛ぢぞNTPギレヂギゑ罭が晁訇颧なざづまぞ
- ESP32ポィゲヲホ・トでMAX7219 LEDテアジブルィ4逢x2てNTPギレヂギゑ佛ぢづまぞ
- MAX7219 LEDポデラギジテアジブルィてArduino甧ヨィフヨラねテメゑ册甞
- ESP32-WROOM-32(D)でMAX7219 LEDポデラギジテアジブルィ
- Arduino云揚ESP32ポィゲヲホ・トゑNTPギヨィァヲデ匕
- Arduino云揚ESP32ポィゲヲホ・ト甧ねブレクヨミ璯墂ね佛戏
- Linux璯墂てねArduino IDEね豅腏斆孖匕ぐゑ盳じ
この記事を参考に作製させて頂きまして大変喜んでいますが最後に記載されているように毎秒の時計表示が途切れる様になります、何とかしようとしているのですが私の技術力では不可能のようです、御教授戴けませんでしょうかお願い致します。
コメントありがとうございます。
秒表示が途切れるというのが画面からはみ出して表示されないということであれば記事内に置いた縦細のフォントを開発環境に置いてコンパイルしてください。
Wi-Fi通信断時に秒表示が遅くなるとか更新が停まるようであればWi-Fi再接続処理を入れる必要があると思いますが、「処理を追加したい」ようなことを書いておきながら最近ウェブ制作ばかりやってて手付かずです。
「ESP32 wifi 接続確認 再接続」あたりのキーワードでググると役に立ちそうなページが幾つか見当たりました。
早速の返事有り難う御座います。
試して見ます。