Since Uno and Mega has no Serial, replace Serial with Console at Bridge Sample IDE code

/*
  Time Check
 Gets the time from Linux via Bridge then parses out hours,
 minutes and seconds for the Arduino using an Arduino Yún.
 created  27 May 2024
 modified 21 June 2024
 By Tom Igoe
 This example code is in the public domain.
 http://www.arduino.cc/en/Tutorial/TimeCheck
 To see the Console, pick your Yún's name and IP address in the Port menu
 then open the Port Monitor. You can also see it by opening a terminal window
 and typing
 ssh root@ yourYunsName.local 'telnet localhost 6571'
 then pressing enter. When prompted for the password, enter it.
 */
#include <Console.h>
#include <Process.h>
Process date;                 // process used to get the date
int hours, minutes, seconds;  // for the results
int lastSecond = -1;          // need an impossible value for comparison
void setup() {
  Bridge.begin();        // initialize Bridge
  //Serial.begin(9600);    // initialize serial
  //while (!Serial);              // wait for Serial Monitor to open
  //Serial.println("Time Check");  // Title of sketch
  Console.begin();
  while (!Console) {
    ; // wait for Console port to connect.
  }
  Console.println("Time Check");
  // run an initial date process. Should return:
  // hh:mm:ss :
  if (!date.running()) {
    date.begin("date");
    date.addParameter("+%T");
    date.run();
  }
}
void loop() {
  if (lastSecond != seconds) { // if a second has passed
    // print the time:
    /* if (hours <= 9) Serial.print("0");    // adjust for 0-9
     Serial.print(hours);
     Serial.print(":");
     if (minutes <= 9) Serial.print("0");  // adjust for 0-9
     Serial.print(minutes);
     Serial.print(":");
     if (seconds <= 9) Serial.print("0");  // adjust for 0-9
     Serial.println(seconds); */
    if (hours <= 9) Console.print("0");    // adjust for 0-9
    Console.print(hours);
    Console.print(":");
    if (minutes <= 9) Console.print("0");  // adjust for 0-9
    Console.print(minutes);
    Console.print(":");
    if (seconds <= 9) Console.print("0");  // adjust for 0-9
    Console.println(seconds);
    // restart the date process:
    if (!date.running()) {
      date.begin("date");
      date.addParameter("+%T");
      date.run();
    }
  }
  //if there's a result from the date process, parse it:
  while (date.available() > 0) {
    // get the result of the date process (should be hh:mm:ss):
    String timeString = date.readString();
    // find the colons:
    int firstColon = timeString.indexOf(":");
    int secondColon = timeString.lastIndexOf(":");
    // get the substrings for hour, minute second:
    String hourString = timeString.substring(0, firstColon);
    String minString = timeString.substring(firstColon + 1, secondColon);
    String secString = timeString.substring(secondColon + 1);
    // convert to ints,saving the previous second:
    hours = hourString.toInt();
    minutes = minString.toInt();
    lastSecond = seconds;          // save to do a time comparison
    seconds = secString.toInt();
  }
}

Comments powered by CComment