YunDatalogger

Bu örnek, Bridge kütüphanesini kullanarak üç analog sensörden bir SD karta veya bir USB Flash bellek çubuğuna nasıl veri kaydedileceğini gösterir. Bellek mikro denetleyiciye bağlı değil, ancak AR9331 , bu yüzden Bridge kullanılmalıdır.

Kök dizinde "arduino" adlı boş bir klasör oluşturarak belleğinizi hazırlayın. OpenWrt -Yun bu klasörü bağlı bir depolama aygıtında bulduğunda, "/ mnt / sd" yolunun belleğine bir bağlantı oluşturur.

Linux ve çizim çalışırken Flash belleği çıkarabilirsiniz, ancak veri karta yazarken bu belleği çıkarmamaya dikkat edin.

Gerekli Donanım

  • Yún kartı veya kalkan
  • micro-SD kart veya USB Flash bellek çubuğu
  • 0, 1 ve 2 analog giriş pimlerine bağlı analog sensörler

Devre

Bu örnek için devre yok.

Kod

SD kart ile iletişim kurmak için FileIO başlığını ekleyin.
#include < FileIO .h>

setup() , Bridge, Seri iletişim ve FileSystem'ı başlatın ( OpenWrt -Yun dosya sistemiyle iletişim için). Çizimin geri kalanına başlamadan önce aktif bir seri bağlantı bekleyin.

void setup() {
  Bridge.begin();
  Serial.begin(9600);
  FileSystem.begin();

  while(!Serial);  
  Serial.println("Filesystem datalogger\n");
}
[Kodu Al]

loop() , günlüğe kaydedilecek verileri düzenlemek için zaman damgası ile başlayan bir dize oluşturun. Aşağıda getTimeStamp() işlevini oluşturacaksınız.

void loop ( ) {
String dataString ;
dataString + = getTimeStamp ( ) ;
dataString + = "=" ;

Verileri sensörlerden okuyun ve değerleri virgülle ayırarak dizeye ekleyin:

for ( int analogPin = 0 ; analogPin < 3 ; analogPin ++ ) {
int sensörü = analogOkuma ( analogPin ) ;
dataString + = Dize ( sensör ) ;
if ( analogPin < 2 ) {
dataString + = "," ;
}
}

Verileri bir File nesnesi ve FileSystem .open() kullanarak yazacağınız dosyayı açın. Değiştirici FILE_APPEND ile dosyanın sonuna bilgi yazabilirsiniz. Dosya zaten mevcut değilse oluşturulacaktır. Bu durumda, SD kartın kök dizininde "datalog.txt" adlı bir dosya oluşturacak ve yazacaksınız.

File dataFile = Dosya Sistemi. open ( "/mnt/sd/datalog.txt" , FILE_APPEND ) ;

Dosya başarıyla açılırsa, dizeyi ona yazın, dosyayı kapatın ve bilgileri Seri monitöre yazdırın.

if ( dataFile ) {
veri dosyası. println ( dataString ) ;
veri dosyası. close ( ) ;
Seri . println ( dataString ) ;
}

Dosya açılırken bir sorun varsa, Seri monitöre bir hata gönderin:

başka {
Seri . println ( "datalog.txt açılırken hata oluştu" ) ;
}
gecikme ( 15000 ) ;
}

Son olarak, bilgilerin okunduğu zamanı almak için getTimeStamp() işlevini getTimeStamp() . Bir dize döndürecek. İlk olarak, geçerli saati tutmak için bir dize oluşturun. Ayrıca "time" adlı bir Process örneği de oluşturacaksınız. işlemi başlatın ve "tarih" uygulamasını çağırın. "date", geçerli tarihi ve saati döndüren bir komut satırı yardımcı programıdır. time.addParameter() kullanarak, tarihi (aa / gg / yy) ve geçerli saati (ss: dd: ss) döndürecek olan D ve T parametrelerini belirtirsiniz. İşlemi çalıştırın ve sonucu dizeye okuyun.

Dize getTimeStamp ( ) {
Dize sonucu ;
İşlem süresi ;
saati. başlar ( "tarih" ) ;
saati. addParameter ( "+% D-% T" ) ;
saati. run ( ) ;

while ( süre. kullanılabilir ( ) > 0 ) {
char c = zaman. read ( ) ;
eğer ( c ! = ' \ n ' )
sonuç + = c ;
}

sonuç döndürür;
}

Çizimin tamamı aşağıdadır:

/ *
SD kart veri kaydedici

Bu örnek, üç analog sensörden verilerin nasıl günlüğe kaydedileceğini gösterir
Bridge kütüphanesini kullanarak YunShield / Yún üzerine monte edilmiş bir SD karta.

Devre:
* 0, 1 ve 2 analog pimlerindeki analog sensörler
* YunShield / Yún'ın SD kart yuvasına takılı SD kart

SD kartınızı SD kökünde boş bir klasör oluşturarak hazırlayın
"arduino" adında. Bu, Yún'ın bir bağlantı oluşturmasını sağlayacaktır.
SD'ye "/ mnt / sd" yoluna gidin.

SD kartı Linux ve
taslak çalışıyor ama çıkarırken dikkatli olmayın
sistem ona yazıyor.

oluşturuldu 24 Kas 2010
değiştirildi 9 Nis 2012
tarafından Tom Igoe
Yún Bridge kütüphanesine uyarlandı 20 Haz 2013
ile Federico Vanzati
değiştirildi 21 Haz 2013
tarafından Tom Igoe

Bu örnek kod kamu malıdır.

http: egitim.aspx e = YunDatalogger

* /


#include <FileIO.h>

void setup ( ) {
// Köprüyü ve Diziyi Başlat
Köprü. begin ( ) ;
Seri . başlar ( 9600 ) ;
Dosya sistemi. begin ( ) ;

süre ( ! SerialUSB ) ; // Seri bağlantı noktasının bağlanmasını bekleyin.
SerialUSB. println ( "Dosya sistemi veri kaydedicisi \ n " ) ;
}


void loop ( ) {
// verilerin günlüğe kaydedilmesi için zaman damgası ile başlayan bir dize oluşturun:
String dataString ;
dataString + = getTimeStamp ( ) ;
dataString + = "=" ;

// üç sensörü okuyun ve dizeye ekleyin:
for ( int analogPin = 0 ; analogPin < 3 ; analogPin ++ ) {
int sensörü = analogOkuma ( analogPin ) ;
dataString + = Dize ( sensör ) ;
if ( analogPin < 2 ) {
dataString + = "," ; // değerleri virgülle ayırın
}
}

// dosyayı aç. bir kerede yalnızca bir dosya açılabileceğini unutmayın,
// yani bir başkasını açmadan önce bunu kapatmalısınız.
// FileSystem kartı aşağıdaki "/ mnt / FileSystema1" dizinine takılı
File dataFile = Dosya Sistemi. open ( "/mnt/sd/datalog.txt" , FILE_APPEND ) ;

// dosya mevcutsa, dosyaya yazın:
if ( dataFile ) {
veri dosyası. println ( dataString ) ;
veri dosyası. close ( ) ;
// seri bağlantı noktasına da yazdırın:
SerialUSB. println ( dataString ) ;
}
// dosya açık değilse, bir hata açın:
başka {
SerialUSB. println ( "datalog.txt açılırken hata oluştu" ) ;
}

gecikme ( 15000 ) ;

}

// Bu işlev zaman damgalı bir dize döndürür
Dize getTimeStamp ( ) {
Dize sonucu ;
İşlem süresi ;
// tarih, tarihi ve saati almak için kullanılan bir komut satırı yardımcı programıdır
// ek parametreye bağlı olarak farklı formatlarda
saati. başlar ( "tarih" ) ;
saati. addParameter ( "+% D-% T" ) ; // parametreler: Tüm tarih için D aa / gg / yy
// ss: dd: ss süresi için T
saati. run ( ) ; // komutu çalıştır

// komutun çıktısını oku
while ( süre. kullanılabilir ( ) > 0 ) {
char c = zaman. read ( ) ;
if ( c ! = ' \ n ' ) {
sonuç + = c ;
}
}

sonuç döndürür;
}

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
  • 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.
  • Time check- Bridge üzerinden Linux'tan zamanı alır, sonra saatleri, dakikaları ve saniyeleri ayrıştırır.
  • 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.