İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu talimat, Matlab yazılımı ve Raspberry Pi donanımını kullanarak Akıllı Ev Sistemimizin nasıl kurulacağını ve kullanılacağını açıklamaya yardımcı olacaktır. Bu talimatın sonunda, ürünümüzü kolaylıkla tam olarak kullanabilmelisiniz!
Adım 1: Adım 1: Gerekli Parçalar ve Malzemeler
- Ahududu Pi
- Breadboard (x2)
- PIR Hareket sensörü
- LCD Modülü
- LED ışığı
- kondansatör
- Ahududu Pi Kamera
- Mikro Servo Motor
- Çift Uçlu Teller (20)
Adım 2: Adım 2: Sorun Bildirimi
Ürünümüzün ele almaya çalıştığı konular manuel ışık kontrolleri, iç mekan sıcaklık kontrolü ve enerji verimliliğidir. Ortalama bir evin kullandığı enerji miktarına odaklandık ve enerji kullanımını azaltmanın yollarını bulmak istedik. Işıkların açık bırakılması ve gereksiz termostat sıcaklıkları çok yüksek gereksiz enerji kullanımına neden olur. Işık, bir oda boş olduğunda kapandıkları yerde harekete geçecek ve termostat, dış ortam sıcaklığının okunmasına bağlı olarak çevre açısından verimli bir sıcaklığa ayarlanacaktır.
Adım 3: Adım 3: Hareket Sensörü Yapılandırması
Hareket sensörü, bir 3.3V güç pimine, topraklama pimine ve seçtiğiniz bir dijital pime bağlanır. Sırasıyla hareket sensörü üzerindeki VCC, GND ve OUT portlarına bağlanırlar. Hareket sensörü, birinin yakınında olduğunu algılar ve ışıkların açık olduğunu belirtmek için LED'i etkinleştirir. Hareket artık algılanmadığında LED kendini kapatacaktır. Kod aşağıdaki gibidir:
doğru iken
motionDetected = readDigitalPin(rpi, 3);
eğer hareket Algılandıysa == 1
writeDigitalPin(rpi, 16, 1)
Başka
writeDigitalPin(rpi, 16, 0)
son
son
Adım 4: Adım 4: LCD Modül Ekranı
LCD, internetten sağlanan canlı hava durumu bilgisinden sıcaklık verilerini alır. LCD modülü daha sonra mevcut sıcaklık okumasını görüntüler. Matlab'da sıcaklık okunur ve ardından evdeki sıcaklık ayarının ne kadar ayarlanacağını belirlemek için bir if döngüsünden geçer. Kod aşağıdaki gibidir:
url='https://forecast.weather.gov/MapClick.php?lat=35.9606&lon=-83.9207&FcstType=json';
veri = webread(url);
a = data.currentobservation. Temp;
fprintf('Dış sıcaklık %s\n', a)
x = str2num(a);
x > 80 ise
fprintf('Termostatı 15 derece kısın')
writeDigitalPin(rpi, 26, 1) %ışıkları açar
yoksa x > 75 && x < 80
fprintf('Termostatı kapat\n')
writeDigitalPin(rpi, 26, 1) %ışıkları açar
aksi takdirde x 55
fprintf('Termostatı 10 derece yükseltin \n')
writeDigitalPin(rpi, 26, 0) %ışıkları kapatır
aksi takdirde x 45
fprintf('Termostatı 20 derece yükseltin \n')
writeDigitalPin(rpi, 26, 0) %ışıkları kapatır
yoksa x 40
fprintf('Termostatı 25 derece yükseltin \n')
writeDigitalPin(rpi, 26, 0) %ışıkları kapatır
aksi takdirde x 30
fprintf('Termostatı 35 derece yükseltin \n')
Başka
fprintf('Termostatı 65 dereceye kadar çevirin\n')
son
Adım 5: Adım 5: Motor Servo Modülü
Motor Servo Modülü, panjurları açma ve kapama yeteneğini temsil eder. Evin soğutulması gerektiğinde panjurlar daha az ısı alacak şekilde kapanacaktır. Evin ısıtılması gerektiğinde panjurlar daha hızlı ısınmak için açılır. Servo, bir seçenekler menüsü ile etkileşime giren kullanıcıdan girdi alarak hangisinin yapılacağına karar verir. Motorun kodu aşağıdaki gibidir:
s = servo(rpı, 3)
writeDigitalPin(rpı, 4, 1)
writePosition(lar, 45)
temp_sys = menu('Nasıl hissediyorsun?') %temp ayarlayıcı
eğer temp_sys == % 1 sıcak
writeDigitalPin(rpi, 26, 1) %ışıkları açar
writePosition(s, 0) %motoru sağa/sola döndürür
panjurları kapat, ışıkları kapat
elseif temp_sys == %2 soğuk
writeDigitalPin(rpi, 26, 0) %ışıkları kapatır
writePosition(s, 180) %motoru CCW/CW döndürür
panjurları aç, ışıkları aç
elseif temp_sys == %3 tam doğru
fprintf('Sıcaklık durumunu koruma.\n')
son
Adım 6: Adım 6: Hareket Sensörlü Kamera
Hareket sensörlü kamera, odaya giren veya çıkanların fotoğrafını çeker. Evine kimlerin girdiğini merak edenler için ek bir güvenlik özelliği olarak bunu seçtik. Hareket sensörü hareketi algıladığında, Matlab kodu kameraya bir görüntü almasını ve göstermesini söyler. Kod aşağıdaki gibidir:
ben=0
temiz kamera
kamera = kamera tahtası(rpi);
ben==0 iken
anlık görüntü(kamera); %görüntü arabelleğini temizle
img = anlık görüntü(kamera);
resimlerc(img);
son