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 Suhu Dan Kelembapan DHT22 DHT11

>> Arduino Mengawal Kontras Paparan LCD 16×2 Menggunakan Perintang Boleh Laras

Sistem di bawah ini tidaklah direka untuk kegunaan pada kereta sebenar. Ianya direka untuk tujuan pembelajaran reka cipta elektronik.

>> Pengenalan <<

Penulisan tutorial kali ini akan menerangkan bagaimana Prototaip Konsep Sistem Keselamatan Kereta Menggunakan Arduino Dan DHT11 dapat dibangunkan. Litar yang bakal ditunjukkan di bahagian sambungan litar di bawah nanti akan memodelkan konsep sistem keselamatan kereta. Sistem ini sepatutnya beroperasi apabila enjin kereta dimatikan. Sensor suhu yang terdapat pada sistem akan beroperasi memantau suhu kereta. Sebagai contoh kejadian, sistem ini memberi manfaat apabila pemilik kenderaan tertinggal anak kecil atau haiwan peliharaan di dalam kereta. Apabila suhu di dalam kereta menjadi semakin panas, tingkap kereta akan diturunkan sedikit bagi membolehkan haba dari dalam kereta keluar. Apabila hujan lebat turun lalu menyebabkan suhu menurun, tingkap akan dinaikkan semula bagi mengelak air hujan masuk ke dalam kereta. Geganti atau relay adalah suis yang akan mengawal naik dan turun tingkap.

Apabila suhu di dalam kereta menjadi semakin panas, tingkap kereta akan diturunkan sedikit bagi membolehkan haba dari dalam kereta keluar.

Apabila hujan lebat turun lalu meyebabkan suhu menurun, tingkap akan dinaikkan semula bagi mengelak air hujan masuk ke dalam kereta.

>> Komponen Apa yang anda perlukan <<

Untuk tutorial ini, anda perlukan :

>> sambungan LITAR <<

Litar skematik fritzing : Simple Car Safety.fzz

>> Kod Arduino <<

#include "DHT.h"
#include <LiquidCrystal.h>

const int rs = 5, en = 6, d4 = 7, d5 = 8, d6 = 9, d7 = 10;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

#define DHTPIN 13
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

float temperatureSetHigh = 36;
float temperatureSetLow = 33;
int doneRotateDown = 0;
int doneRotateUp = 0;

int motorPin1 = 11;
int motorPin2= 12;

void setup() 
{
  Serial.begin(9600);
  pinMode(motorPin1,OUTPUT);
  pinMode(motorPin2,OUTPUT);
  digitalWrite(motorPin1,HIGH);
  digitalWrite(motorPin2,HIGH);
  lcd.begin(16, 2);
  lcd.print("Start System");
  lcd.setCursor(0,1);
  lcd.print("Please Wait");
  dht.begin();
  delay(10000); //delay 10 second
}

void loop() 
{
  delay(2000);

  float t = dht.readTemperature();  
    
  if (isnan(t)) 
  {
    lcd.clear(); lcd.home();    

    lcd.setCursor(0,0); lcd.print("Sensor Error    ");
    lcd.setCursor(0,1); lcd.print("                ");        
    return;
  }

  lcd.clear(); lcd.home();  

  lcd.setCursor(0,0);
  lcd.print("Temperature"); 

  lcd.setCursor(0,1);
  lcd.print(t);
  lcd.print(" Celcius");

  if( t > temperatureSetHigh && doneRotateDown == 0 )
  {
    //Rotate motor down
    digitalWrite(motorPin1,HIGH);
    digitalWrite(motorPin2,LOW);
    Serial.println("Rotate Down");
    lcd.clear(); lcd.home();    
    lcd.setCursor(0,0); lcd.print("Rotate Down     ");
    lcd.setCursor(0,1); lcd.print("                ");         
    delay(5000);
    doneRotateDown = 1;
    doneRotateUp = 0;
    digitalWrite(motorPin1,HIGH);
    digitalWrite(motorPin2,HIGH);    
  }

  if( t < temperatureSetLow && doneRotateUp == 0 )
  {
    //Rotate motor up
    digitalWrite(motorPin1,LOW);
    digitalWrite(motorPin2,HIGH);
    Serial.println("Rotate Up");
    lcd.clear(); lcd.home();    
    lcd.setCursor(0,0); lcd.print("Rotate Up       ");
    lcd.setCursor(0,1); lcd.print("                ");       
    delay(5000);
    doneRotateUp = 1;
    doneRotateDown = 0;
    digitalWrite(motorPin1,HIGH);
    digitalWrite(motorPin2,HIGH);     
  }

  Serial.print("Temperature = "); Serial.print(t); Serial.print(" Celcius"); Serial.print("\t");
  Serial.print("doneRotateDown = "); Serial.print(doneRotateDown); Serial.print("\t");
  Serial.print("doneRotateUp = "); Serial.println(doneRotateUp);
  
}

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

Muat naik kod Prototaip Konsep Sistem Keselamatan Kereta Menggunakan Arduino Dan DHT11 di atas ke dalam papan Arduino Uno. Selepas berjaya memuat naik, paparan LCD akan memaparkan “System Start“,”Please Wait” selama 10 saat. Kemudian, paparan LCD akan memaparkan nilai suhu persekitaran di dalam darjah celcius dengan kadar kemas kini setiap 2 saat. Jika suhu melebihi 36 darjah celcius, geganti yang mengawal suis turun tingkap kereta akan diaktifkan selama 5 saat bagi menurunkan tingkap dan membolehkan udara panas keluar dari kereta. Jika suhu kurang daripada 33 darjah celcius, geganti yang mengawal suis naik tingkap kereta akan diaktifkan bagi menaikkan semula tingkap dan mengelak hujan lebat daipada masuk ke dalam kereta.

>> Tahniah, anda hebat <<

Anda telah berjaya menyelesaikan tutorial Prototaip Konsep Sistem Keselamatan Kereta Menggunakan Arduino Dan DHT11.

TINGGALKAN JAWAPAN BALAS ANDA

Sila masukkan ulasan anda!
Sila masukkan nama anda di sini