#include <SimpleDHT.h>
#include <Ultrasonic.h>
#include <LiquidCrystal.h>
#include <TimerOne.h>
#define buzzerPin 6
#define toprakSensor 14
#define dhtSensor 2
#define DHTtip DHT11
#define Vantilator 5
#define Aspirator 3
#define suPompa 4
//dht sensor icin pin ve tip parametreleri verilir
SimpleDHT11 dht11;
//lcd ekran için LiquidCrystal sınıfından bir
//örnek nesne tanımlanır.Tanımlama esnasında
//RS,E,D4,D5,D6,D7 pinlerinin arduino ile olan
//bağlantıları parametre olarak verilir.
LiquidCrystal lcd(8,9,13,12,11,10);
volatile int toprakNemDegeri=0;
volatile byte SicaklikHava=0;
volatile byte NemHava=0;
int havaSicaklik=0;
int havaNem=0;
int toprakNem=0;
int toprakNemReferans=700;
int havaNemMax=70;
int havaNemMin=60;
int notalar[]={440, 494, 131};
void setup() {
//dht sensoru baslatilir.
//lcd ekranin sutun ve satir sayisi belirtilir.
lcd.begin(16, 2);
//timer1'in kac mikrosaniyede bir calisacagini belirtir.
Timer1.initialize(1000000);
//Timer1'in çalıştıgında hangi fonksiyonu cagiracagi belirtilir.
Timer1.attachInterrupt(SensorOku);
//pinler cikis olarak ayarlanir.
pinMode (buzzerPin, OUTPUT);
pinMode (suPompa, OUTPUT);
pinMode (Vantilator, OUTPUT);
pinMode (Aspirator, OUTPUT);
Serial.begin (9600);
}
void loop() {
//hava sıcakligi olculur, havaSicaklik degiskenine aktarilir.
//Toprak nem degeri olcülür, tprakNem degiskenine aktarilir.
noInterrupts();
havaSicaklik = (int)SicaklikHava;
havaNem = (int)NemHava;
toprakNem = toprakNemDegeri;
interrupts ();
Serial.print("havaNem:"); Serial.println (havaNem);
Serial.print("havaSicaklik:"); Serial.println (havaSicaklik);
Serial.print("toprakNem:"); Serial.println (toprakNem);
// lcd ekran temizlenir.
lcd.clear();
//kursor 1. satirin ilk sutununa alinir.
lcd.setCursor(0, 0);
//Hava nem degeri lcd ekranda goruntulenir.
lcd.print("Nem:");
lcd.print(havaNem);
//kursor 1. satirin 7. sutununa alinir.
lcd.setCursor(7, 0);
//Hava sicaklik degeri lcd ekranda gotuntulenir.
lcd.print ("C:");
lcd.print (havaSicaklik);
//kursor 2. satirin ilk sutununa alinir
lcd.setCursor (0, 1);
//Toprak nem degeri lcd ekranda goruntulenir.
lcd.print ("Toprak:");
lcd.print (toprakNem);
delay(250);
//toprak nem degeri olculur, referans degerin uzerinde ise
//su pompasi acilarak topragin sulanmasi saglanir.
//pompa acildiginda kullanici buzzer ile uyarilir.
if (toprakNem > toprakNemReferans)
{
digitalWrite (suPompa, HIGH);
lcd.clear();
lcd.print ("su pompa acik");
for (byte i =0; i < 3; i++) {
tone (6, notalar[i], 20);
delay(100);
}
noTone(6);
}
else
{
digitalWrite (suPompa, LOW);
lcd.clear();
}
//Havadaki nem degeri max degerin uzerinde ise
//vantilator ve aspirator fanlarinin hizlari arttirilir.
if (havaNem > havaNemMax)
{
analogWrite (5, 255);
analogWrite (3, 255);
}
else //hava nem degeri en max seviyeye ulasmadiysa fanlar normal hizinda calisir.
{
analogWrite (5, 155);
analogWrite (3, 155);
}
}
void SensorOku()
{
//hava nem degeri olculur, havaNem degiskenine aktarilir.
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(dhtSensor, &SicaklikHava, &NemHava, NULL)) != SimpleDHTErrSuccess) {
Serial.print("Read DHT11 failed, err="); Serial.println(err);
return;
}
//hava sicakligi olculur, havaSicaklik degiskenine aktarilir.
//Toprak nem degeri olculur, toprakNem degiskenine akrarilir.
toprakNemDegeri = analogRead(toprakSensor);
}
Arduino:1.6.5 (Windows XP), Kart:"Arduino/Genuino Uno"
sketch_feb21a.ino: In function 'void SensorOku()':
sketch_feb21a:127: error: invalid conversion from 'volatile byte* {aka volatile unsigned char*}' to 'byte* {aka unsigned char*}' [-fpermissive]
In file included from sketch_feb21a.ino:1:0:
C:\Documents and Settings\ttt\My Documents\Arduino\libraries\SimpleDHT/SimpleDHT.h:81:17: error: initializing argument 2 of 'virtual int SimpleDHT::read(int, byte*, byte*, byte*)' [-fpermissive]
virtual int read(int pin, byte* ptemperature, byte* phumidity, byte pdata[40]);
^
sketch_feb21a:127: error: invalid conversion from 'volatile byte* {aka volatile unsigned char*}' to 'byte* {aka unsigned char*}' [-fpermissive]
In file included from sketch_feb21a.ino:1:0:
C:\Documents and Settings\ttt\My Documents\Arduino\libraries\SimpleDHT/SimpleDHT.h:81:17: error: initializing argument 3 of 'virtual int SimpleDHT::read(int, byte*, byte*, byte*)' [-fpermissive]
virtual int read(int pin, byte* ptemperature, byte* phumidity, byte pdata[40]);
^
invalid conversion from 'volatile byte* {aka volatile unsigned char*}' to 'byte* {aka unsigned char*}' [-fpermissive]
Hello, this is my first time installing and you couldn't solve the error. Please help.