Valize teker eklemek gibi dramatik bir örnek olmasa da; Ses sensörü yerine PIR sensörü takarak AHMT’i harekete daha duyarlı hale getirmiştik.
Bkz: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, görsel
Son durumdaki kodları biraz geliştirelim.
if (biri) {
Serial.println("biri var"); kombi(ISIdeger - 3 , ISIdeger);
} else {
Serial.println("kimse yok"); }
Burada, PIR sensöründen gelecek değere göre, ısıyı kontrol edip kombiye Çalış demesi için, kombi()
fonksiyonunu çağırıyoruz.
Ancak yazılımsal olarak imla hatası olmasa da mantıksal olarak öyle mi tartışılabilir. Zira koda dikkat edilecek olursa, “biri” durumuna göre tetikleniyor. Biri=1
ise kombi’yi çağırıyoruz, Biri=0
ise kimse yok yazıyoruz.
Burada sürekli hareket etmemiz lazım ki kombi() fonksiyonu tetiklensin. Aksi halde herhangi bir aksiyon olmayacak. Yani çok fazla hareket etmeden uzanmış youtube izliyorsanız, biraz sonra üşümeye başlayabilirsiniz
Şöyle bir güncelleme yapsak?
PIR sensöründen Biri=1, değeri geliyorsa, evde hareketlenme başlamış birileri eve gelmiş demektir. Ve kitap unutma/cüzdan unutma gibi vakalar yoksa çok büyük ihtimalle evde uzun bir müddet birileri olacak demektir.
Her iki -hatta tasarruf ögesini de eklersek 3- durumu düşünerek kodlarımızı şu hale getirelim:
if ( biri > 0) {
Serial.println ("biri var");
/* // 60*5 demek: 5 dakika yanacak */
for ( k = 1; k < 60 * 5; k++ ) {
Serial.print (k);
kombi ( ISIdeger - 3 , ISIdeger );
delay (1000); /* // çalışma süresi için durmalı */ }
} else {
Serial.println ( "kimse yok" );
kombi ( ISIdeger - 3 , ISIdeger );
}
gayet kolay ve pratik bir şekilde, kombi() fonksiyonunu bir döngünün içine aldık. Ve döndü adı üstünde başa dönmeden içerisine 1 saniye bekleme koyduk. Böylece; for’un çalışma şeklini belirtirken yazdığımız k < 60 * 5
kısmında 5 yerine 10 yazarsak 10 dakika ya da Ne kadar süre boyunca kombi()’yi kontrol etmesi gerektiğini ayarlamış oluruz.
Dikkat! 10 dakika boyunca kombi yanacak demiyorum. 10 dakika boyunca kombi() fonksiyonunu çağıracağız.
Aradaki fark ne ki?
Birisinde,
hareketi algıladığında kombi yanacak.
10 dakika sonunda
yeniden hareketi dinlemeye(?) başlayacak.
Diğerinde,
hareketi algıladığında kombi’nin çalışmasına gerek var mı bakacak,
zaten istenen sıcaklık aralığında ise kombi yanmayacak
ama ortam sıcaklığı evde birisi varken olması gereken sıcaklıktan düşükse kombi yanacak.
// evet daha karpuz kesmedik, evde birisi yokken olması gereken min ve max sıcaklık aralıklarını da kodlarımıza ekleyeceğiz 😉 //ki evde kimse yokken tümden kapanıp, eve birisi geldiğinde iyice buz olmuş evi ısıtana kadar millet hasta olmasın..