Yaz mevsiminde “Keşke kendi vantilatörümü yapsam” diye düşünmüşsünüzdür. Bu yazımızda PicoBricks ile nasıl kendi akıllı vantilatörünüzü yapabileceğinizi öğreneceksiniz.
Klimalar, bir ortamı yazın soğuk ve kışın sıcak tutmak için kullanılırlar. Fırınlar ise yemek pişirirken kullanıcının belirlediği sıcaklığa göre kendini ayarlar ve o sıcaklıkta kendini sabit tutmaya çalışır. Bu iki cihaz da sıcaklığı kontrol etmek için sıcaklık sensörler kullanırlar.
PicoBricks’te sıcaklık ve nemi ayrı ayrı ölçmeyi sağlayan sensörler bulunur. Böylece ortam sıcaklığını ve nemini kolayca kontrol etmeye yararlar. Bu projemizde vantilatör hızını ortam sıcaklığına göre otomatik olarak ayarlayan bir soğutma sistemi yapacağız.
Proje Detayları ve Algoritma
Öncelikle yazacağımız kod PicoBricks üzerinde bulunan DHT11 sensörünün ölçtüğü sıcaklık ve nem değerlerini görüntüleyecektir. Sonrasında PicoBricks’e bağlı bir DC motor sıcaklık değeri belli bir limite ulaştığında çalışacak ve farklı bir limit değerin altına indiğinde duracak.
Bileşenler
1x PicoBricks
3x Jumper Kablo
Devre Şeması
PicoBricks modülleri kablolar olmadan kodlanabilir ve çalıştırılabilir. Ancak modülleri panodan ayırarak kullanmak isterseniz bağlantılar için kablo kullanmanız gerekecektir.
MicroBlocks Kodları
Microblocks kodlarına yukarıdaki resmi Run sekmesine sürükleyerek ulaşabilirsiniz.
MicroPython Kodları
from machine import Pin
from picobricks importDHT11import utime
LIMIT_TEMPERATURE=20 #define the limit temperature
dht_sensor =DHT11(Pin(11, Pin.IN, Pin.PULL_DOWN))
m1 =Pin(21, Pin.OUT)
m1.low()
dht_read_time = utime.time()
#define input-output pins
while True:if utime.time()- dht_read_time >=3:
dht_read_time = utime.time()
dht_sensor.measure()
temp= dht_sensor.temperature
print(temp)if temp >=LIMIT_TEMPERATURE:
m1.high()
#operate if the room temperature is higher than the limit temperature
else:
m1.low()
Arduino C Kodları
#include
#define LIMIT_TEMPERATURE27
#define DHTPIN11
#define DHTTYPEDHT11DHTdht(DHTPIN,DHTTYPE);
float temperature;voidsetup(){// put your setup code here, to run once:
Serial.begin(115200);
dht.begin();pinMode(21,OUTPUT);}voidloop(){// put your main code here, to run repeatedly:delay(100);
temperature = dht.readTemperature();
Serial.print("Temp: ");
Serial.println(temperature);if(temperature >LIMIT_TEMPERATURE){digitalWrite(21,HIGH);}else{digitalWrite(21,LOW);}}9