Time Check

This example for the Arduino Yún gets the time from the Linux processor via Bridge, then parses out hours, minutes and seconds for the Arduino's 32U4. The Yún must be connected to a network to get the correct time. If you used the web-based WiFi interface to configure the Yún for the network, make sure you've selected the proper time zone.

Hardware Required

  • Arduino Yún
  • computer network connected to the internet


There is no circuit for this example.

image developed using Fritzing. For more circuit examples, see the Fritzing project page


You need to include the Process class :
#include <Process.h>

Create an instance of Process that will be used to get the date, and create variables to hold the current hour, minute, and second. You'll also want to create a variable to store the previous time. To start, put in a value that cannot be a valid time (like a negative number).

Process date;        
int hours, minutes, seconds;  
int lastSecond = -1;

In @@setup()@ initialize Bridge and Serial. Wait until there is a serial connection before continuing with the sketch and printing a status to the serial monitor.

void setup() {

  Serial.println("Time Check");

Run an initial process to get the time by adding the parameter "T" to date.

if (!date.running())  {

In loop() check to see if a second has passed since the previous time. If so, print out the current time to the serial monitor and restart the date process if it has stopped.

void loop() {
  if(lastSecond != seconds) {  // if a second has passed
    if (hours <= 9) Serial.print("0");    // adjust for 0-9
    if (minutes <= 9) Serial.print("0");  // adjust for 0-9
    if (seconds <= 9) Serial.print("0");  // adjust for 0-9

    if (!date.running())  {

If there is a result from the date process, parse the data. First, store the result (hh:mm:ss) in a string, then find the location of the colons with indexOf() and lastIndexOf().

while (date.available()>0) {
    String timeString = date.readString();    

    int firstColon = timeString.indexOf(":");
    int secondColon= timeString.lastIndexOf(":");

Knowing the index numbers of the colons, you can separate the hours minutes and seconds as substrings :

String hourString = timeString.substring(0, firstColon);
    String minString = timeString.substring(firstColon+1, secondColon);
    String secString = timeString.substring(secondColon+1);

Finally, convert the strings to ints, and save the previous second to do a time comparison in the next loop().

hours = hourString.toInt();
    minutes = minString.toInt();
    lastSecond = seconds;  
    seconds = secString.toInt();

The complete code follows :

SORRY, There is an error at our code repository, please inform to web@arduino.cc

See Also

  • Bridge Library - Your reference to the Bridge Library
  • Bridge – Simple REST style calls to access analog and digital pins
  • Consolle Ascii Table – A complete ASCII table printed to the Console
  • Console Pixel – Turn an LED on and off through the Console
  • Console Read - Read data coming from bridge using the Console.read() function
  • Data Logger - Log data from three analog sensors to an SD card.
  • File Write - How to write file into the Yún filesystem.
  • Http Client - A basic HTTP client that connects to the internet and downloads content.
  • Mailbox Read Message - How to read the messages queue, called Mailbox, using the Bridge library.
  • Process - How to run linux processes using an Arduino Yún.
  • Shell Commands - How to run linux shell commands using an Arduino Yún.
  • Temperature Web Panel - How to serve data from an analog input via the Arduino Yún's built-in webserver.
  • WiFi Status - Prints information about the status of your wifi connection.
  • Serial Terminal - Use the Yún's 32U4 processor as a serial terminal for the Linux side on the Yún.

Last revision 2015/08/12 by SM