Search This Blog

Showing posts with label Logger. Show all posts
Showing posts with label Logger. Show all posts

Thursday, February 6, 2014

SD card Log With Netduino

Untuk Netduino slot SD card sudah tersedia dan memiliki fitur autodetect. So, kita tidak perlu membeli shield khusus untuk merekam data. karena factory set nya sudah termasuk SDcard maka dalam programming nya pun menjadi mudah karena library nya ada termasuk kedalam .NetFramework (saya menggunakan versi .NetMF4.2)

Kali ini saya akan berbagi sedikit mengenai bagaimana menggunakan library tersebut. Disini saya menggunakan bahasa pemrograman C#. Class yang digunakan untuk mengendalikan SDcard pada Netduino terdapat pada Namespace System.IO, jadi sebelum memulai project nya sebaiknya tambahkan class tersebut kedalam project reference nya. Untuk mempermudah proses input data saya lebih memilih untuk membuat class baru yang ready to use. Class diagram untuk class SDcard sebagai berikut.

SD card Class For Netduino compatible with .NetMF 4.0 above
untuk code Lengkap nya download di sini. 

Saya akan ulas sedikit bagaimana untuk menggunakannya.
Pertama, yang perlu di ingat adalah bahwa code tersebut adalah sebuah Class, jadi tentu perlu dibuat satu objek untuk dapat menggunakannya pada main program. dibawah ini contoh create objek dari class tersebut.
private static DataStorage _store = new DataStorage();

setelah membuat objek nya kita bisa menggunakan method dari class dengan memanggil objek yang telah kita buat tadi. Dapat diliah dari diagram class di atas terdapat field, properties dan method. Sebaiknya kita fokus pada bagian Public Method dan Properties saja.

sebelum menulis kedalam SDcard hal pertama yang kita lakukan adalah mengisi property NameFile dan PathFile. Misal:

_store.PathFile = "Folder";
_store.NameFile = "Test"; //extensi pada NameFile akan berupa Csv. silahkan di edit sesuai kebutuhan.

kemudian, kita bisa mengisi file tesebut dengan memasukkan nilai kedalam property ContentFile

contoh:
_store.ContentFile = _hour + "," + (analogIn.miliVolts / 10).ToString("F1"));

ok. dengan begitu kita sudah menuliskan kedalam SD card dengan alamat @SD\Folder\Test.csv

catatan:
1. Class ini secara otomatis membuat Direktori "Folder" dan nama file "test" apabila tidak ditemukan.
2. Anda bisa menambahkan subdirectory pada pathfile dengan cara menambahkan class berikut :

        
public bool CheckPath(string rootDir, string YDir, string MDir)
 {                 
     try
     {
         Again:
         if (!Directory.Exists(@"\SD\" + rootDir))
         {
             Directory.CreateDirectory(@"\SD\" + rootDir);
             Thread.Sleep(150);
            
             goto Again;
         }
          else if (!Directory.Exists(@"\SD\" + rootDir + Path.DirectorySeparatorChar + YDir)) 
         {
             Directory.CreateDirectory(@"\SD\" + rootDir + Path.DirectorySeparatorChar + YDir);
             Thread.Sleep(150);
             goto Again;
         }
          else if (!Directory.Exists(@"\SD\" + rootDir + Path.DirectorySeparatorChar 
    + YDir + Path.DirectorySeparatorChar + MDir))
         {
             Directory.CreateDirectory(@"\SD\" + rootDir + Path.DirectorySeparatorChar 
    + YDir + Path.DirectorySeparatorChar + MDir);
             Thread.Sleep(150);
             goto Again;
         }
          else
         {
             _mypath = rootDir + Path.DirectorySeparatorChar + YDir + Path.DirectorySeparatorChar + MDir;
             return true;
         }                
     }
     catch (Exception ex)
     {
         myLcd.SetCursorPosition(0, 1);
         myLcd.Write(ex.Message);
         Debug.Print(ex.Message);
         return (false);
     }
}
lalu gunakan variable string _mypath pada class tersebut sebagai PathFile
 _store.PathFile = _namePath 

Sunday, September 1, 2013

Membuat Data Logger Untuk Pengembangan Stasiun Cuaca Otomatis Menggunakan Netduino+

Latar Belakang
Stasiun Cuaca Otomatis atau lebih dikenal dengan sebutan AWS (Automatic Weather Station) sudah banyak dikembangkan oleh negara - negara maju. Produsen AWS sangatlah banyak dan tersebar diseluruh dunia, salah satu produsen AWS yang terkenal saat ini adalah AWS dari GlobalWater.

Pada dasarnya hampir seluruh jenis AWS yang dibuat oleh para produsen ini memiliki prinsip kerja dan teknologi yang serupa. Prinsip kerjanya pun sangat mudah untuk dipahami. Mengingat pentingnya peran AWS dalam mengumpulkan data cuaca atau iklim dalam berbagai kegunaan dan fungsinya, pasar AWS di Indonesia cukup menjanjikan untuk digandrungi. Sangat disayangkan, AWS yang digunakan di Indonesia didominasi oleh produsen asal luar Indonesia. Hal inilah yang mendorong kami untuk mempelajari dan mengembangkan AWS.

Bagian utama dari sebuah AWS adalah data logger nya, dimana sebuah data logger berperan sebagai pengumpul, pengolah dan penyimpanan data. Tidak sedikit data logger yang memiliki fitur jaringan GSM/GPRS sehingga memungkinkan untuk mengirim dan menyimpan data secara online (tellemetry system).

Data Centre BMKG
BMKG baru - baru ini menyiapkan data centre untuk memusatkan pengumpulan data cuaca yang tersebar di seluruh Indonesia pada satu lokasi. tentunya keputusan ini membuat BMKG selangkah lebih baik dalam pengelolaan dan analisis data yang mereka miliki.

NetDuino+

Netduino adalah salah satu mikrokontroler yang cukup tangguh untuk digunakan sebagai processing unit bagi sebuah AWS. untuk memanfaatkan Netduino+ sebagai DataLogger AWS, hal - hal yang perlu dilakukan adalah mempelajari dasar2 pemograman dan elektronika. kerangka pemograman yang perlu dibangun adalah sebagai berikut:
1. Mendefinisikan Sinyal pada Analog dan Digital input
2. Medefinisikan sinyal RTC (real time clock) untuk dimanfaatkan sebagai pengolah variable waktu.
3. Merekam data kedalam MicroSD
4. Mengolah data menjadi Output kedalam Modul GSM agar dapat ditransmisikan dalam bentuk SMS ke DataCentre. (ini bagian yang paling menantang ^^).

Untuk Elektronika nya, yang perlu disiapkan adalah:
1. Sensor Analog (Suhu, Kelembaban, Tekanan udara dan Radiasi Matahari)
2. Sensor Digital (Curah Hujan, Kecepatan Angin dan Arah Angin)
3. Karena Input Analog pada Netduino sangat terbatas maka perlu dibuat rangkain yang berfungsi sebagai switching input (disini kita gunakan IC 4017)
4. ... akan terus berkembang seiring masalah yang akan kita temui selama riset...


Kenapa Netduino?

1. Netduino Merupakan mikrokontroler yang memiliki fitur paling lengkap (LAN, MicroSDcard, UART port, GPIO)
2. Support 2 bahasa pemrogrman (C# dan Vb.Net), ini yang paling penting karena editor programnya menggunakan VisualStudio .Net sehingga dalam pengembangan nya sangat terbantu dengan fitur2 yang diunggulkan dalam VS.Net.
3. Support hampir semua modul yang biasa dirilis untuk board Arduino, hal ini memudahkan kita untuk mengembangkan apapun dengan sluruh modul yang ada di Arduino.
4. ekonomis