File tree Expand file tree Collapse file tree 2 files changed +86
-0
lines changed Expand file tree Collapse file tree 2 files changed +86
-0
lines changed Original file line number Diff line number Diff line change 1+ #include < WiFi.h>
2+ #include " time.h"
3+
4+ const char * ssid = " YOUR_SSID" ;
5+ const char * password = " YOUR_PASS" ;
6+
7+ const char * ntpServer = " pool.ntp.org" ;
8+ const long gmtOffset_sec = 3600 ;
9+ const int daylightOffset_sec = 3600 ;
10+
11+ void printLocalTime ()
12+ {
13+ struct tm timeinfo;
14+ if (!getLocalTime (&timeinfo)){
15+ Serial.println (" Failed to obtain time" );
16+ return ;
17+ }
18+ Serial.println (&timeinfo, " %A, %B %d %Y %H:%M:%S" );
19+ }
20+
21+ void setup ()
22+ {
23+ Serial.begin (115200 );
24+
25+ // connect to WiFi
26+ Serial.printf (" Connecting to %s " , ssid);
27+ WiFi.begin (ssid, password);
28+ while (WiFi.status () != WL_CONNECTED) {
29+ delay (500 );
30+ Serial.print (" ." );
31+ }
32+ Serial.println (" CONNECTED" );
33+
34+ // init and get the time
35+ configTime (gmtOffset_sec, daylightOffset_sec, ntpServer);
36+ printLocalTime ();
37+
38+ // disconnect WiFi as it's no longer needed
39+ WiFi.disconnect (true );
40+ WiFi.mode (WIFI_OFF);
41+ }
42+
43+ void loop ()
44+ {
45+ delay (1000 );
46+ printLocalTime ();
47+ }
Original file line number Diff line number Diff line change 1+ #include " esp_system.h"
2+
3+ const int button = 0 ; // gpio to use to trigger delay
4+ const int wdtTimeout = 3000 ; // time in ms to trigger the watchdog
5+ hw_timer_t *timer = NULL ;
6+
7+ void IRAM_ATTR resetModule () {
8+ ets_printf (" reboot\n " );
9+ esp_restart_noos ();
10+ }
11+
12+ void setup () {
13+ Serial.begin (115200 );
14+ Serial.println ();
15+ Serial.println (" running setup" );
16+
17+ pinMode (button, INPUT_PULLUP); // init control pin
18+ timer = timerBegin (0 , 80 , true ); // timer 0, div 80
19+ timerAttachInterrupt (timer, &resetModule, true ); // attach callback
20+ timerAlarmWrite (timer, wdtTimeout * 1000 , false ); // set time in us
21+ timerAlarmEnable (timer); // enable interrupt
22+ }
23+
24+ void loop () {
25+ Serial.println (" running main loop" );
26+
27+ timerWrite (timer, 0 ); // reset timer (feed watchdog)
28+ long loopTime = millis ();
29+ // while button is pressed, delay up to 3 seconds to trigger the timer
30+ while (!digitalRead (button)) {
31+ Serial.println (" button pressed" );
32+ delay (500 );
33+ }
34+ delay (1000 ); // simulate work
35+ loopTime = millis () - loopTime;
36+
37+ Serial.print (" loop time is = " );
38+ Serial.println (loopTime); // should be under 3000
39+ }
You can’t perform that action at this time.
0 commit comments