TimeCheck

Bir Yún cihazı için bu örnek Bridge üzerinden Linux işlemcisinden zamanı alır, ardından Arduino için saatleri, dakikaları ve saniyeleri ayrıştırır. Doğru zamanı almak için Yún cihazının bir ağa bağlı olması gerekir. Yún cihazını ağ için yapılandırmak üzere web tabanlı WiFi arayüzünü kullandıysanız, uygun saat dilimini seçtiğinizden emin olun.

Gerekli Donanım

  • Yún kartı veya kalkan
  • İnternete bağlı WiFi ağı

Devre

Bu örnek için devre yok.

Kod

Process sınıfını eklemeniz gerekir:
#include <Process.h>

Tarihi almak için kullanılacak bir İşlem örneği oluşturun ve geçerli saati, dakikayı ve saniyeyi tutmak için değişkenler oluşturun. Ayrıca önceki zamanı saklamak için bir değişken oluşturmak isteyeceksiniz. Başlamak için geçerli bir süre (negatif sayı gibi) olamaz.

Process date;        
int hours, minutes, seconds;  
int lastSecond = -1;
[Kodu Al]

@@ setup () @ içinde Bridge ve Seri'yi başlatın. Çizim ile devam etmeden ve seri monitöre bir durum yazdırmadan önce bir seri bağlantı olana kadar bekleyin.

void setup ( ) {
Köprü. begin ( ) ;
Seri . başlar ( 9600 ) ;

süre ( ! Seri ) ;
Seri . println ( "Zaman Kontrolü" ) ;

date "T" parametresini ekleyerek saati almak için bir başlangıç işlemi çalıştırın.

if ( ! tarih. çalışıyor ( ) ) {
tarihi. başlar ( "tarih" ) ;
tarihi. addParameter ( "+% T" ) ;
tarihi. run ( ) ;
}
}

loop() bir önceki zamandan bu yana bir saniye geçip geçmediğini kontrol edin. Öyleyse, seri monitöre geçerli saati yazdırın ve durduysa date işlemini yeniden başlatın.

void loop ( ) {
if ( lastSecond ! = saniye ) { // bir saniye geçtiyse
eğer ( saat <= 9 ) Seri . baskı ( "0" ) ; // 0-9 için ayarlayın
Seri . baskı ( saat ) ;
Seri . print ( ":" ) ;
eğer ( dakika <= 9 ) Seri . baskı ( "0" ) ; // 0-9 için ayarlayın
Seri . baskı ( dakika ) ;
Seri . print ( ":" ) ;
if ( saniye <= 9 ) Seri . baskı ( "0" ) ; // 0-9 için ayarlayın
Seri . println ( saniye ) ;

if ( ! tarih. çalışıyor ( ) ) {
tarihi. başlar ( "tarih" ) ;
tarihi. addParameter ( "+% T" ) ;
tarihi. run ( ) ;
}
}

date işleminin bir sonucu varsa, verileri ayrıştırın. İlk olarak, sonucu (ss: dd: ss) bir dizede saklayın, ardından indexOf() ve lastIndexOf() içeren iki nokta üst üste işaretlerinin konumunu bulun.

while ( tarih. kullanılabilir ( ) > 0 ) {
String timeString = tarih. readString ( ) ;

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

İki nokta üst üste işaretlerinin dizin sayılarını bilmek, saat dakika ve saniye alt dizeleri olarak ayırabilirsiniz:

String hourString = timeString. alt dize ( 0 , birinci Kolon ) ;
Dize minString = timeString. alt dize ( firstColon + 1 , secondColon ) ;
Dize secString = timeString. alt dize ( secondColon + 1 ) ;

Son olarak, dizeleri ints'e dönüştürün ve sonraki loop() bir zaman karşılaştırması yapmak için önceki saniyeyi kaydedin loop() .

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

Kodun tamamı aşağıdaki gibidir:

/ *
Zaman Kontrolü

Bridge üzerinden Linux'tan zamanı alır, sonra saatleri ayrıştırır,
dakika ve saniye kullanarak bir YunShield / Yún.

oluşturuldu 27 May 2013
değiştirildi 21 Haziran 2013
Tom Igoe adlı geliştiriciden

Bu örnek kod kamu malıdır.

http: egitim.aspx e = TimeCheck

* /



#include <Process.h>

İşlem tarihi ; // tarihi almak için kullanılan işlem
int saat , dakika , saniye ; // sonuçlar için
int lastSecond = - 1 ; // karşılaştırma için imkansız bir değere ihtiyaç var

void setup ( ) {
Köprü. begin ( ) ; // Bridge'i başlat
SerialUSB. başlar ( 9600 ) ; // seriyi başlat

süre ( ! Seri ) ; // Seri Monitörün açılmasını bekleyin
SerialUSB. println ( "Zaman Kontrolü" ) ; // Eskiz başlığı

// bir başlangıç tarihi işlemi çalıştırın. Dönmelidir:
// ss: dd: ss:
if ( ! tarih. çalışıyor ( ) ) {
tarihi. başlar ( "tarih" ) ;
tarihi. addParameter ( "+% T" ) ;
tarihi. run ( ) ;
}
}

void loop ( ) {

if ( lastSecond ! = saniye ) { // bir saniye geçtiyse
// zamanı yazdır:
eğer ( saat <= 9 ) {
SerialUSB. baskı ( "0" ) ; // 0-9 için ayarlayın
}
SerialUSB. baskı ( saat ) ;
SerialUSB. print ( ":" ) ;
eğer ( dakika <= 9 ) {
SerialUSB. baskı ( "0" ) ; // 0-9 için ayarlayın
}
SerialUSB. baskı ( dakika ) ;
SerialUSB. print ( ":" ) ;
if ( saniye <= 9 ) {
SerialUSB. baskı ( "0" ) ; // 0-9 için ayarlayın
}
SerialUSB. println ( saniye ) ;

// tarih işlemini yeniden başlat:
if ( ! tarih. çalışıyor ( ) ) {
tarihi. başlar ( "tarih" ) ;
tarihi. addParameter ( "+% T" ) ;
tarihi. run ( ) ;
}
}

// tarih işleminin bir sonucu varsa, ayrıştırın:
while ( tarih. kullanılabilir ( ) > 0 ) {
// tarih sürecinin sonucunu al (ss: dd: ss olmalıdır):
String timeString = tarih. readString ( ) ;

// iki nokta üst üste işaretlerini bulun:
int firstColon = timeString. indexOf ( ":" ) ;
int secondColon = timeString. lastIndexOf ( ":" ) ;

// alt dizeleri saat, dakika saniye için al:
String hourString = timeString. alt dize ( 0 , birinci Kolon ) ;
Dize minString = timeString. alt dize ( firstColon + 1 , secondColon ) ;
Dize secString = timeString. alt dize ( secondColon + 1 ) ;

// önceki saniyeyi kaydederek ints'a dönüştür:
hours = hourString. toInt ( ) ;
minutes = minString. toInt ( ) ;
lastSecond = saniye ; // zaman karşılaştırması yapmak için kaydet
saniye = secString. toInt ( ) ;
}

}

See Also

  • Bridge Library- Köprü Kütüphanesine referansınız
  • Bridge- Analog ve dijital pinlere erişmek için basit REST tarzı çağrılar
  • Console Ascii Table- Konsola yazdırılan eksiksiz bir ASCII tablosu
  • Console Pixel- Konsoldan bir LED'i açma ve kapatma
  • Console Read- Console.read () işlevini kullanarak köprüden gelen verileri okuma
  • Data Logger- Üç analog sensörden bir SD karta veri kaydedin.
  • File Write- Dosya Yún dosya sistemine nasıl yazılır.
  • Http Client- İnternete bağlanan ve içeriği indiren temel bir HTTP istemcisi.
  • Http Client Console- Bağlanan, içeriği indiren ve WiFi ve Konsol kullanarak içeriği gösteren HTTP istemcisi.
  • Mailbox Read Message- Köprü kitaplığını kullanarak Posta Kutusu adlı ileti sırasını okuma.
  • Process- Bir Yún kullanarak linux süreçleri nasıl çalıştırılır.
  • Remote Due Blink- DUE panolarına uzaktan taslak yükleme.
  • Shell Commands- Bir Yún kullanarak linux kabuk komutları nasıl çalıştırılır.
  • Temperature Web Panel- Yún'ın yerleşik web sunucusu üzerinden bir analog girişten veri sunma.
  • WiFi Status- Wifi bağlantınızın durumu hakkında bilgi yazdırır.
  • Yún First Configuration- Seri Monitör ve USB bağlantı noktasını kullanarak Yún cihazınızı kolayca yapılandırın.
  • Serial Terminal- Yún'ın 32U4 işlemcisini, Yún'daki Linux tarafı için seri terminal olarak kullanın.