I am looking for internet time M5Stack for Arduino ide
-
I tried example codes. After establishing the Internet connection, the M5Stack crashes and restarts. He doesn't seem to tolerate waitForSync();
#include <M5Stack.h>
#include "WiFi.h"
#include "ezTime.h"const char *ssid = "xxxxxxxxxxx";
const char *password = "xxxxxxxxxxx";void setup(){
//Serial.begin(115200);
M5.begin();
M5.Power.begin();
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
WiFi.begin(ssid, password);
M5.Lcd.print("Call to " + String(ssid));
while (WiFi.status() != WL_CONNECTED) {
M5.Lcd.print('.');
delay(1000);
}
M5.Lcd.println(" ");
M5.Lcd.println(WiFi.localIP());
M5.Lcd.print("Signalstearke: ");
M5.Lcd.println(WiFi.RSSI());
//server.begin();
delay(2000);
M5.Lcd.clear();waitForSync();
M5.Lcd.println();
M5.Lcd.println("Time in various internet standard formats ...");
M5.Lcd.println();
M5.Lcd.println("ATOM: " + dateTime(ATOM));
M5.Lcd.println("COOKIE: " + dateTime(COOKIE));
M5.Lcd.println("IS8601: " + dateTime(ISO8601));
M5.Lcd.println("RFC822: " + dateTime(RFC822));
M5.Lcd.println("RFC850: " + dateTime(RFC850));
M5.Lcd.println("RFC1036: " + dateTime(RFC1036));
M5.Lcd.println("RFC1123: " + dateTime(RFC1123));
M5.Lcd.println("RFC2822: " + dateTime(RFC2822));
M5.Lcd.println("RFC3339: " + dateTime(RFC3339));
M5.Lcd.println("RFC3339_EXT: " + dateTime(RFC3339_EXT));
M5.Lcd.println("RSS: " + dateTime(RSS));
M5.Lcd.println("W3C: " + dateTime(W3C));
M5.Lcd.println();
M5.Lcd.println(" ... and any other format, like "" + dateTime("l ~t~h~e jS ~o~f F Y, g:i A") + """);
delay(6000);
}void loop() {
events();
} -
Hello @Stoni99
your code runs fine on my M5Stack.
- what happens if you comment out waitForSync()?
- what is the log output of the crash?
Thanks
Felix -
Hell@Stoni99
I'm using the World Time API.
It is good to use it according to the area.World Time API : http://worldtimeapi.org/
Example
//===========================================================
// Web WorldTime M5Stack : 2022.07.01 : macsbug
// 開発環境 : Arduino IDE 1.8.19
// : Board : ”M5Stack-Core-ESP32”
// : Board Manager : arduino-esp32 2.0.3-RC1
// Device : M5Stack
// Library : M5Stack.h , WiFi.h , HTTPClient.h
//===========================================================
// WorldTimeAPI : http://worldtimeapi.org/
// TomeZpone : https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
// Tokyo : http://worldtimeapi.org/api/timezone/Asia/Bangkok
// Chicago : http://worldtimeapi.org/api/timezone/America/Chicago
//===========================================================#include <M5Stack.h>
#include <WiFi.h>
#include <HTTPClient.h>const char *ssid = "xxxx";// Wi-Fi access point
const char *pass = "xxxx";// Wi-Fi password
const char *WTA = "http://worldtimeapi.org/api/timezone/Asia/Bangkok"; // WTA,BANGKOK
int _year, _mon, _day, _hour, _min, _sec;//============================================================
// WorldTime : web dada = {
// "abbreviation":"JST","client_ip":"127.0.0.0",
// "datetime":"2022-06-25T08:18:17.061071+09:00",
// "_day_of_week":6,"_day_of_year":176,"dst":false,
// "dst_from":null,"dst_offset":0,"dst_until":null,
// "raw_offset":25200"timezone":"Asia/Bangkok",
// "unixtime":1656112697,
// "utc_datetime":"2022-06-24T23:18:17.061071+00:00",
// "utc_offset":"+09:00","week_number":25}
//============================================================
void WorldTimeAPI(){
if ((WiFi.status() == WL_CONNECTED)){
HTTPClient http;
http.begin(WTA); // Specify URL
int httpCode = http.GET(); // Send GET request
if (httpCode > 0) { // If there is a reply
String web = http.getString(); // WEB Data acquisition
// Serial.print("web dada = ");Serial.println(web);// "datetime":"2022-06-25T08:06:30.948882+09:00", // 00000000001111111111222222222233333333334444 // 01234567890123456789012345678901234567890123 int pos = web.indexOf("datetime") + 11; _year = web.substring(pos , pos+ 4 ).toInt(); _mon = web.substring(pos +5, pos+ 5+2).toInt(); _day = web.substring(pos +8, pos+ 8+2).toInt(); _hour = web.substring(pos+11, pos+11+2).toInt(); _min = web.substring(pos+14, pos+14+2).toInt(); _sec = web.substring(pos+17, pos+17+2).toInt(); char ymm[12];sprintf(ymm,"%4d/%02d/%02d" ,_year,_mon,_day); char hms[10];sprintf(hms,"%02d:%02d:%02d\n",_hour,_min,_sec); M5.Lcd.print(ymm);M5.Lcd.print(" ");M5.Lcd.println(hms); }else{ Serial.println("Error on HTTP request");} http.end(); // Free the resources}
}//===========================================================
void setup(){
M5.begin();
M5.Lcd.setSwapBytes(true);
M5.Lcd.setRotation(1);
M5.Lcd.fillScreen(TFT_BLUE);
M5.Lcd.setTextColor(TFT_WHITE);
M5.Lcd.setTextSize(2);
M5.Lcd.printf(" Wi-Fi Connecting to %s\n", ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED){delay(500);M5.Lcd.print(".");}
M5.Lcd.println();
}//===========================================================
void loop(){
WorldTimeAPI();
delay(1000);
}
//=========================================================== -
@felmue said in I am looking for internet time M5Stack for Arduino ide:
Hello @Stoni99
your code runs fine on my M5Stack.
- what happens if you comment out waitForSync()?
- what is the log output of the crash?
Thanks
FelixWhat do you mean by comment out?
I don't have log output , it just restarts. -
@macsbug said in I am looking for internet time M5Stack for Arduino ide:
Hell@Stoni99
I'm using the World Time API.
It is good to use it according to the area.World Time API : http://worldtimeapi.org/
Example
......Code works - thanks!
-
-
ezTime.h seems easier to condition?!🤔
-
ezTime.h works now. I have updated to new Version. Thx!
-
Hello@stoni99
ezTime.h
I modified the following and got the result.
Fix;
#include <WiFi.h>
#include <ezTime.h>
//waitForSync();result;
Time in various internet standard formats ...ATOM: 1970-01-01T00:00:09-00:00
COOKIE: Thursday, 01-Jan-1970 00:00:09 UTC
IS8601: 1970-01-01T00:00:09-0000
RFC822: Thu, 01 Jan 70 00:00:09 -0000
RFC850: Thursday, 01-Jan-1970 00:00:09 UTC
RFC1036: Thu, 01 Jan 70 00:00:09 -0000
RFC1123: Thu, 01 Jan 70 00:00:09 -0000
RFC2822: Thu, 01 Jan 70 00:00:09 -0000
RFC3339: 1970-01-01T00:00:09-00:00
RFC3339_EXT: 1970-01-01T00:00:09.771-00:00
RSS: Thu, 01 Jan 70 00:00:09 -0000
W3C: 1970-01-01T00:00:09-00:00... and any other format, like Thursday the 1st of January 1970, 12:00 AM
-
Ahhh - ok: "//waitForSync();" 👍
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login