Oleh Muhammad Ilyasaa dalam Tutorial Arduino
Tahap Kesukaran : Pertengahan, Mempunyai Asas Arduino

Belum mempunyai asas arduino? Jika Ya, lakukan tutorial yang lebih mudah dahulu

>> Arduino Bagaimana Untuk Menggunakan Sensor Jarak Ultrasonik HC-SR04

Sistem di bawah ini tidaklah direka untuk kegunaan Sistem Merekodkan Paras Air yang sebenar. Ianya direka untuk tujuan pembelajaran reka cipta elektronik. Walau bagaimanapun, konsep ini boleh diguna pakai dalam membina Sistem Merekodkan Paras Air yang sebenar.

>> pengenalan <<

Untuk tutorial kali ini, kita akan membuat satu sistem untuk mengukur paras air. Kita akan menggunakan kaedah di mana sensor yang digunakan tidak perlu menyentuh air yang ingin diukur parasnya secara fizikal. Antara kelebihan kaedah ini adalah kualiti air yang ingin diukur parasnya tidak akan terjejas kerana sensor langsung tidak akan menyentuh air. Kaedah tanpa perlu menyentuh air secara fizikal dengan menggunakan sensor jarak jenis ultrasonik ini berfungsi dengan prinsip menghantar gelombang ultrasonik ke permukaan air dan kemudiannya mengukur masa isyarat yang dihantar untuk kembali ke sensor. Sistem yang akan kita reka sebentar nanti akan menggunakan papan Arduino Nano yang berfungsi sebagai pemproses data sensor jarak ultrasonik dan penulis kad SD.

>> gambar konsep  di sebalik sistem ini <<

Secara amnya sangat mudah untuk mendapatkan ketinggian air di dalam sesuatu bekas. Ketinggian t ditolak daripada tinggi keseluruhan T, dengan itu kita akan memperoleh ketinggian air di dalam sesuatu bekas. Mari kita perincikan konsep ini. Kaedah ini adalah untuk mengukur jarak diantara sensor jarak ultasonik dan air. Seperti yang dikatakan sebelum ini, sensor akan menghantar gelombang ultrasonik dan akan mengukur masa perjalanan gelombang tersebut kembali ke sensor semula setelah dipantulkan kembali oleh air. Mudah, kan?

>> Komponen Apa yang anda perlukan <<

Untuk tutorial ini, anda perlukan :

>> sambungan LITAR <<

Litar skematik : Projek Ultrasonic Water Level.fzz

Siapakan litar di atas. Litar di atas terdiri daripada papan Arduino Nano, sensor jarak ultrasonik, modul masa RTC dan modul kad SD. Papan Arduino Nano berfungsi sebagai pemproses kepada modul modul dan sensor. Sensor ultrasonik digunakan untuk mendapatkan jarak. Modul masa RTC digunakan untuk mendapatkan masa. Data jarak dan masa ini akan diporoses oleh Arduino sebelum ditulis ke kad SD melalui modul kad SD. Selepas itu, pengguna boleh menggunakan data yang ditulis ke dalam kad SD untuk membuat analisa yang sepatutnya.

>> Kod Arduino <<

/* Programmer : NADI Eleczone Solutions
 * Board : Arduino Nano Atmega 328P
 *  
 *  Sambungan Litar
 *  
 * Dari Adruino ke Ultrasonic Sensor
 *  Gnd -> Gnd 
 *  D7  -> Echo
 *  D8  -> Trig
 *  5V  -> Vcc
 *  
 * Dari Arduino ke SD Card Modul
 *  D10 -> CS
 *  D13 -> SCK
 *  D11 -> MOSI
 *  D12 -> MISO
 *  5V  -> VCC
 *  GND -> GND
 *  
 * Dari Arduino ke DS3231 Modul 
 *  A5  -> SCL
 *  A4  -> SDA
 *  5V  -> VCC
 *  GND -> GND
 */

///////////////////////////////////////
// Tukar parameter T di sini

#define tinggi_air_maksimum 350

///////////////////////////////////////

///////////////////////////////////////
// Bahagian library
#include <NewPing.h>
#include <Wire.h>
#include "RTClib.h"
#include <SPI.h>
#include <SD.h>

///////////////////////////////////////
// Bahagian sensor jarak ultrasonic
#define TRIGGER_PIN  8  
#define ECHO_PIN     7  
#define MAX_DISTANCE 400 
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 

///////////////////////////////////////
// Bahagian modul SD Card
Sd2Card card;
SdVolume volume;
SdFile root;

///////////////////////////////////////
// Bahagian modul Real Time Clock
RTC_DS3231 rtc;
char dayOfTheWeek[7][12] = {"Ahad", "Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"};
const int chipSelect = 10;

///////////////////////////////////////
// Pemboleh ubah
int tinggi_air;

void setup() 
{
  ///////////////////////////////////////
  // Menetapkan komunikasi siri
  Serial.begin(9600);
  delay(3000);

  ///////////////////////////////////////
  // Menetapkan modul real time clock 
  if (! rtc.begin()) 
  {
    Serial.println("Tiada modul RTC");
    while (1);
  }

  if (rtc.lostPower()) 
  {
    Serial.println("Set semula masa untuk RTC");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  ///////////////////////////////////////
  // Menetapkan modul SD Card
  Serial.print("Menyediakan SD Card");

  if (!SD.begin(chipSelect)) 
  {
    Serial.println("SD Card gagal");
    return;
  }
  Serial.println("SD Card telah disediakan");
}

void loop() 
{

  ///////////////////////////////////////
  // Membaca waktu semasa RTC
  DateTime now = rtc.now();
    
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(" (");
  Serial.print(dayOfTheWeek[now.dayOfTheWeek()]);
  Serial.print(") ");
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.print('\t');

  ///////////////////////////////////////
  // Membaca nilai jarak T-t      
  delay(1000);                  
  Serial.print("Ping: ");
  tinggi_air = tinggi_air_maksimum - sonar.ping_cm();
  Serial.print(tinggi_air); 
  Serial.println("cm");

  ///////////////////////////////////////
  // Merekodkan data ke dalam SD Card   
  File dataFile = SD.open("Rekod_data.txt", FILE_WRITE);

  if (dataFile) 
  {
    dataFile.print(now.year());
    dataFile.print('/');
    dataFile.print(now.month());
    dataFile.print('/');
    dataFile.print(now.day());
    dataFile.print(' ');
    dataFile.print(now.hour());
    dataFile.print(':');
    dataFile.print(now.minute());
    dataFile.print(':');    
    dataFile.print(now.second());
    dataFile.print('\t');   

    dataFile.print("Ping: "); 
    dataFile.print(tinggi_air); 
    dataFile.println("cm");         
    
    dataFile.close();
  }
  else 
  {
    Serial.println("Rekod_data.txt tidak boleh dibuka");
  }
}

Library Arduino : NewPing.zip, Cara cara pemasangan library NewPing

Library Arduino : RTClib.zip, Cara cara pemasangan library RTClib

>> Jom siapkan sistem kita <<

Selepas siapkan litar, jangan lupa untuk memasukkan kad SD ke dalam modul kad SD. Muat naik kod Sistem Merekodkan Paras Air Menggunakan Sensor Jarak Ultrasonik Dan Kad SD di atas ke dalam papan Arduino Nano. Sebaik sahaja berjaya memuat naik kod, sistem anda akan memulakan proses merekodkan ketinggi air di dalam bekas. Data rekod boleh dilihat di dalam kad SD yang telah dimasukkan ke dalam modul kad SD. Sekali lagi, pengguna boleh menggunakan data yang ditulis ke dalam kad SD untuk membuat analisa yang sepatutnya.

>> Tahniah, anda hebat <<

Anda telah berjaya menyelesaikan tutorial Merekodkan Paras Air Menggunakan Sensor Jarak Ultrasonik Dan Kad SD.

TINGGALKAN JAWAPAN BALAS ANDA

Sila masukkan ulasan anda!
Sila masukkan nama anda di sini