Haberleşme hızını kontrol ediniz,seri iletişim 115200 kontrol ediniz,arduino haberleşme ayarlarını kontrol ediniz,Kullandığınız DMT80600L104-02w için ;
#define temp_add 0x51
#define hum_add 0x52
adreslerini kontrol ediniz, DHT kütüphanesindeki değişkenleri ve giriş çıkış pinlerini kontrol ediniz,
Putty programı ile seri portu dinlemenizi tavsiye ederim
#include "DHT.h"
burada DMT olması gerekmez mi?
DHT.h sensörün(DHT11) kütüphanesi.
Adreslerde ve haberleşme hızında sorun yok. hepsini kontrol ettim.
Dwin Lcd de yaptığım butonlardan arduinoya veri alıp led yakıp söndürebiliyorum.
Led yakıp söndürme işlemlerinide içeren kod aşağıda.
#include <Arduino.h>
#include "DHT.h"
#define DHTPIN 7
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
int lamp = 4;
int fan = 5;
int light = 6;
int lg = 8;
byte temp[8]={0x5a, 0xa5, 0x05, 0x82, 0x51, 0x00, 0x00, 0x00};
byte hum[8]={0x5a, 0xa5, 0x05, 0x82, 0x52, 0x00, 0x00, 0x00};
int temp_value=0;
int hum_value=0;
void setup()
{
Serial.begin(115200);
dht.begin();
pinMode(lamp, OUTPUT);
digitalWrite(lamp, LOW);
pinMode(fan, OUTPUT);
digitalWrite(fan, LOW);
pinMode(light, OUTPUT);
digitalWrite(light, LOW);
pinMode(lg, OUTPUT);
digitalWrite(lg, LOW);
}
void loop()
{
Data_Arduino_to_Display();
delay(10);
Data_Display_to_Arduino();
delay(80);
}
void Data_Arduino_to_Display()
{
int t = dht.readTemperature();
int h = dht.readHumidity();
temp_value=dht.readTemperature();
temp[6] =highByte(temp_value);
temp[7] =lowByte(temp_value);
Serial.write(temp,8);
hum_value=dht.readHumidity();
hum[6] =highByte(hum_value);
hum[7] =lowByte(hum_value);
Serial.write(hum,8);
}
void Data_Display_to_Arduino()
{
if(Serial.available()>0){ // Eğer buffer'da veri varsa
int uz=9;
byte gelenveri[uz] ;
Serial.readBytes(gelenveri,uz);
int ledon=(gelenveri[4]);
int ledoff(gelenveri[8]);
if (ledon == 84 && ledoff==1)
{
digitalWrite(lamp, HIGH);
}
if (ledon == 84 && ledoff==0)
{
digitalWrite(lamp, LOW);
}
if (ledon == 83 && ledoff==1)
{
digitalWrite(fan, HIGH);
}
if (ledon == 83 && ledoff==0)
{
digitalWrite(fan, LOW);
}
if (ledon == 85 && ledoff==1)
{
digitalWrite(light, HIGH);
}
if (ledon == 85 && ledoff==0)
{
digitalWrite(light, LOW);
}
if (ledon == 86 && ledoff==1)
{
digitalWrite(lg, HIGH);
}
if (ledon == 86 && ledoff==0)
{
digitalWrite(lg, LOW);
}
}
}