Smart Cooler

Giriş

Projemizde öncelikle Picobricks üzerindeki DHT11 sıcaklık ve nem sensörünün ölçtüğü sıcaklık değerlerini görüntüleyeceğiz. Daha sonra sonra bir sıcaklık sınırı belirleyerek DHT11 modülünden gelen sıcaklık değeri bu sınıra ulaştığında Picobricks’e bağlı DC motorun dönmeye başlaması, sıcaklık değeri belirlediğimiz sınırın altına indiğinde ise DC motorun durması için gerekli kodları yazacağız.

Projenin Detayları ve Algoritması

Yaz aylarında serinlemek için kış aylarında ısınmak için klimalar kullanılır. Klimalar ısıtma ve soğutma derecesini bulunduğu ortamın sıcaklığına göre ayarlamaktadır. Fırınlar yemeği pişirirken kullanıcının ayarladığı sıcaklık değerine çıkmaya ve o sıcaklığı korumaya çalışırlar. Bu iki elektronik cihazda sıcaklığı kontrol etmek için özel sıcaklık sensörleri kullanmaktadır. Ayrıca seralarda sıcaklık ve nem birlikte ölçülür. Bu iki değer istenen düzeyde dengede kalabilmesi için fan ile hava akımını sağlanmaya çalışılır.

PicoBricks’te sıcaklığı ve nemi ayrı ayrı ölçebilir ve bu ölçümler ile çevreyle etkileşime girebilirsiniz. Bu projede PicoBricks ile sıcaklığa göre fan hızını otomatik ayarlayan bir serinletme sistemi hazırlayacağız. Böylelikle DC motor çalışma sistemini ve motor hız ayarı yapmayı öğreneceksin.

Bağlantı Diyagramı

../_images/smart-cooler.png

Picobricks modüllerini herhangi bir kablo bağlantısı olmadan programlayabilir ve çalıştırabilirsiniz. Modülleri karttan ayırarak kullanacaksanız modül bağlantılarını verilen konektör kablolar ile yapmalısınız.

Projenin MicroPython Kodu

from machine import Pin
from picobricks import DHT11
import 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()

Tüyo

Eğer kodunuzun adını main.py olarak kaydederseniz, kodunuz her BOOT yaptığınızda çalışacaktır.

Projenin Arduino C Kodu

#include <DHT.h>
#define LIMIT_TEMPERATURE     27
#define DHTPIN 11
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);
float temperature;

void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
dht.begin();
pinMode(21,OUTPUT);

    }

void loop() {
// 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);
    }


}

Projenin MicroBlocks Kodu

smart-cooler1

Not

MicroBlocks ile kodlama yapmak için yukarıdaki görseli MicroBlocks Run sekmesine sürükleyip bırakmanız yeterlidir.