YAPAY_ZEKA ve ARDUINO ile YANGIN ALARMI

 

Öncelikle diyeceksiniz ki Arduino ile yapay zeka kullanmaya ne gerek var.
Belki de haklısınız. Fakat yazıyı okuyunca bazı durumlarda Arduino’nun ve diğerlerinin yetersiz kalabileceğini göreceksiniz.

Yapay zeka neden gerekli olabilir. Her yerde yapay zekadan faydalanılmalı mı?

Önce bu soruya cevap arayalım.
Mesela Kapı aç, kapat komutlarını röle ile verdiğiniz bir devre var. Asistan programlarıyla da kontrol edebiliyorsunuz.
Neden yapay zekaya ihtiyaç duysun ki.
Yapay zeka ne işe yarasın. Zaten kolaylıkla bu hallediliyor.
Bir yandan kontrol elemanı olarak kullanılan sensörler var. Mesela oda 20 dereceye inerse ısıtıcıyı çalıştır dersiniz. Yaz ve KIŞ durumuna göre birkaç IF cümlesi eklersiniz bu da hallolur.

O zaman NEDEN YAPAY ZEKA kullanalım?
Kendi görüşüme göre Yapay zeka birden fazla değişkenin, devamlı analog olarak değişmesi ve hepsinin tek bir noktaya hizmet etmesi durumu olabilir.
Yani Hem sıcaklık kontrolü, hem de yaz kış için yazdığınız IF cümleleri çok uzun sürmez. Fakat yüzlerce değişik duruma göre IF cümlesi yazmak çok karmaşık olsa gerek.
Bu durumda Yapay Zeka kısmından yardım alabiliriz.
O değişkenlerin durumlarına göre öğrendiği şekliyle bizim yaptığımız gibi karar alabilir.

ÖRNEK DURUM1:
Bir evde elektrik kablosu çok ısındığı için yangına sebep olsun. Bu yangının çıkacağını siz insan olarak nasıl kontrol görebilirsiniz.
Önce burnunuza bir yanık kokusu gelir. Sonra bu yanık kokusunun keskinliğine bakarsınız. Sonrasında ise nereden geldiğine bakarsınız.
Sonra duman ararsınız. Yoksa, duvar içinde priz arkasında olduğunu düşünürsünüz elektriği kesersiniz kontrol edersiniz.
Yapay zeka evi gezemez. Ama her odanın sensör durumlarına göre karar verebilir. Bu tabii ki yalnızca sıcaklık sensörü olamaz. Duman sensörü de olamaz. ( aşağıda göreceğiniz sebepten dolayı) Koku alma sensörlerine de bakmak lazım.
Tüm bu durumlar bizim gözümüz ve burnumuzun yaptığı işi yapabilir.

ÖRNEK DURUM2 :
Bir evde yangın sadece elektrikten değil, uyurken düşürdüğünüz sigara ya da evde sobadan çıkan bir kıvılcım ve yanıcı maddelerin durumuna göre yangın çıkarabilir. O zaman da yangının önce kokusunu duyarız ve dumanını görürüz. Tabii ki duman sensörü olmasa da çıkan gazlar koku sensörleriyle algılanabilir.

Şimdi gelelim yangın durumunu IF cümlesiyle kontrol etmeye. Ne kadar IF cümlesi yazmanız gerek bir düşünün.
Bunun yerine Yapay Zekayı eğitirsiniz.
Sonrasında bu eğitimden çıkarımlar yapan yapay zeka, sizin sensörlerinize göre hangi odada sorun var bunu yakalar.

EN ÖNEMLİSİ, Aşağıdaki tabloya baktığınızda NEM VE SICAKLIK sensörlerinin kıpırdamadığını bunun yanı sıra gaz sensörlerinin yükseldiğini göreceksiniz.

Aşağıdaki test sonuçları DHT22 (SICAKLIK VE NEM SENSÖRÜ) ve ( Analiz sonuçları MQ139 a göre olsa da proteus MQ135 kütüphanesi var diye bu sensör seçildi.)
MQ135 gaz sensörü (NH3,NOx, alcohol, Benzene, smoke,CO2 , VS.),
Toplam uçucu organik bileşenleri toplamak için SGP30 sensörü kullanıldı. (SGP30 sensörü (TVOC ve EOC2 okuması yapıyor. )

ELEKTRİK YANGINI
KARTON YANGINI

Yukarıdaki tabloları incelerseniz elektrik yangınlarında sıcaklığın ve nem sensörünün pek fazla değişmediğini görebilirsiniz.
Normalde Alev çıktığı anda sıcaklıkta yükselir. Fakat ALEV öncesi duman ya da koku zamanı yangın alarmını çalıştırmak isteriz. ÖNLEM ALINABİLSİN diye.
Bizler ne yaparız. Hemen yanık kokusu varsa elektrikleri ve doğalgazı kapatırız. Aynı tepki için yapay zeka da erken uyarı vermeli.

Bundan dolayı bu sensörlerin durumuna göre, biz odada yokken bir karar verilmesi gerekiyorsa,
bu, sıcaklık sensörüne göre olmayacaktır.  Ya da nem sensörüne göre. Fakat bunları da göz ardı edemeyeceğimize göre hesaba dahil etmek zorunda kalıyoruz.

Şimdi de bu sensörlerin her birinin durumuna göre IF cümlesi yazmaya başlayalım.
Tabii ki ŞAKA yapıyorum.

YAPAY ZEKA da tam bu sırada devreye giriyor. Biz insanların yaptığına benzer şekilde karar alınmasına yardımcı oluyor. Tabii ki ne kadar iyi eğitilirse o kadar iyi kararlar alabiliyor.

Nasıl ki bir çocuk büyürken parça, parça öğrenip daha iyi karar almaya başlıyorsa YAPAY ZEKA da devamlı eğitilerek daha iyi kararlar alması sağlanıyor.
Benim devremde TEORİK bir durum yaratıldığından Devamlı Öğrenme olmayacak. Modeli 1 kez eğiteceğim ve o bu öğrenme sürecine göre bana yardımcı olacak.

YAPAY ZEKA konusu benim için de yeni bir konu. Bundan dolayı sadece temelini anlatacağım.
Nasıl eğitilebilir. Basit olarak veri tablosuyla bunu yapabilirsiniz. Sizde kendi verilerinizi tablolara koyarak başka model eğitimleri yapabilirsiniz. Bu Excel tablolarının benzeri olarak yaparsanız eğitim kalıbını kullanabilirsiniz.

Nerede model hazırlarız. Bunu GOOGLE COLAB denilen sitede yapabilirsiniz. Size vereceğim COLAB dosyalarını açarak videodaki gibi kendi modelinizi eğitebilirsiniz.

https://colab.research.google.com/

Bu site için google hesabınızla oturum açmanız yeter. ( oturum açtığınızda yaptığınız değişiklikleri google drive da saklayabilirsiniz. )

Daha sonra ne yapacağız derseniz PYTHON ile modeli tanıtıp seri port üzerinden gelen bilgiye göre yapay zekanın karar vermesini sağlarsınız.
ARDUINO seri port üzerinden tüm sensörleri okuyarak, PYTHON programına bilgilerini aktaracak. PYTHON programı yapay zekanın cevabını alıp, tekrar ARDUINO ya iletecek.
Ben Arduino da sadece LED yaktım. Fakat sizler arduinoya ESP bağlayarak bunu bulut sistemine aktarabilirsiniz ve kullanıcıya evdeki durum için mail atabilirsiniz.

Bu konuda Sitemdeki yazılarım size yardımcı olacaktır. SİTE YAZILARINI KATEGORİK KOY.

Mantık basit.

PYTHON programı da dosyaların arasında var. 2. Video size python ve arduino çalışmasını gösterecek.

Aklınıza bir soru gelebilir. Tüm gün bilgisayar açık mı kalacak. Tabii ki hayır.
PYTHON programları Android üzerinde ve Raspberry pi üzerinde çalışabiliyor. Bundan dolayı Devreyi gerçekleştirmek ve kullanmak isteyenler Raspberry pi ya da eski telefonunu devamlı açık olacak şekilde kullanabilir ve ev otomasyonu programına yapay zekayı ekleyebilir.
PYTHON programlarıyla sesi yazıya ve yazıyı ses dönüştürebilirsiniz. Kendi asistanınızı yazıp yapay zeka destekli olarak çalıştırabilirsiniz.

PYTHON ve arduino programları birbirinden farklı görünseler de benzer çalışma yanları vardır.
PYTHON da def tanımlamaları arduinoda VOID tanımlamaları gibidir. Ayrıca VOID LOOP bölümü ise pythonda WHILE true ile sonsuz döngüye girer. Yine break komutuyla döngüden çıkar.
Ben python bilmiyorum derseniz BÜYÜK HATA YAPARSINIZ.

Çünkü arduino kodlama yapıyorsanız, biraz uğraşma ile PYTHON da program yazabilirsiniz.
Tabii ki farklılıkları olacaktır. Fakat bunlara adapte olmanız kolay.
Arduino komut isimleri ya da çalışma şekilleri PYTHON ile benzer durumdadır.
Bununla birlikte PYTHON a has bir program yazma metodu vardır. Bu da TAB kuralları.
Program içerisinde bunu zaten gözlemleyeceksiniz. ( ; ) işareti kullanılmadığından her satırın yazılacağı yer, her komutun yazılacağı şekil belirtilmiştir. Zaten editör hatayı hemen gösterecektir.

PYTHON programını yazma kolaylığı olsun diye Visual Studio Code programını kullanmanızı öneririm.
İsterseniz PYTHON kurulumundan sonra IDLE adlı programı kullanabilirsiniz. Fakat iyi bir editör sayılmaz. Yine de işinizi görür.
Bir de bazı kütüphanelere ihtiyacınız olacak. PYTHON 3.11 e kadar kurabilirsiniz. Daha yüksek versiyonlarda kullanılan yapay zeka çalışma programı olan TENSORFLOW sorun yaratıyor şimdilik uyumlu değil.
Nasıl Kütüphane kurarız derseniz Windows ta CMD komutuyla Command siyah ekranına gidin. Sonra PYTHON dizinine giderek,
siyah ekranda
pip install tensorflow yazarak kütüphaneleri kurabilirsiniz. Tensorflow gibi, import satırında bulunan kütüphaneleri de buradan kurabilirsiniz.

Ayrıca PYTHON programında birden fazla eğitilmiş model kullanabilirsiniz. Ben tek model ile çalıştım fakat şöyle düşünün,

Eğitimi elektrik yangınının simüle değerleri ile yaptınız. Tek modelle çalıştığınızda bu model elektrik yangınına göre karar verecektir. İsterseniz KARTON yangını simüle değerleri ile de bir model eğitirsiniz. Aynı PYTHON programında Aşağıdaki satır gibi, değişkenlerini değiştirerek modelleri yükleyebilirsiniz. Yani birden fazla model yüklersiniz sırasıyla gelen değere göre tüm modelleri tarama yapar ve ortak sonucu verir. Bu satırlar program başında olacak fakat sonuca karar verme satırları bir alt fonksiyonun içinde olacağından sonuç geldiğinde ilk önce 1. model kontrol edecek alarm yoksa 2. modele göre fonksiyonlar sırayla çağırılarak kontrol edilecek. bundan daha fazla model ile bile çalışabilecek durumda olacaktır.

model1 = load_model(“model1.h5”)

model2 = load_model(“model2.h5”)

PYTHON kullanırken komutlar öğrenmek için bir çok site araştırmak zorunda kalmayacaksınız. 
Yazıyı okumaya devam edin göreceksiniz. 

YAPAY ZEKA HAKKINDA:

Yapay zeka, yeni bir teknoloji olduğundan herkes farklı algılıyor. Neredeyse insanlığı ele geçirecek olarak düşünenler var. Tabii ki gelecekte ne olur bilinmez.
Bu yapay zeka algoritmaları, birer metin tabanlı öğrenme işlemi devam eden programlardır.  Fakat bu şekilde düşünürseniz eksik bilginiz olur.
Metin tabanlı yazıyla, yapay zeka kullanarak resim üretebileceğiniz gibi yapay zekayı resimlerle eğiterek farklı kararlar almasını sağlayabilirsiniz. Hatta kamera görüntüleriyle eğiterek farklı bir yönde karar almasını sağlayabilirsiniz.

                                              KAMERA YANGIN VİDEOSU YAPAY ZEKA DESTEKLİ
KISACA yapay zeka dediğimizde belli bir konuda eğitilmiş programlardır diyebiliriz. UZMAN program diyebiliriz.
Mesela Bazı reklamlarda görürsünüz. Yapay zeka destekli ürünümüz derler. Neresi yapay zeka diye düşünürsünüz ve alırsınız. Aslında kandırmaca bile olabilir. Her söylenene inanmayın.

Elbette yapay zeka ürünlerde kullanılabilir. Mesela alışkanlıklarınıza göre müzik dinletmek gibi.
SIK dinlediğiniz müziklere göre, ruh halinize göre size müzik teklifi sunabilir. Bazen de internette youtube da rastlarsınız, ya da google reklamlarda. Birkaç ürün bakarsınız ve artık o sizin aradığınız kelimeler internette sizin karşınıza çıkar. Bu tip yerlerde kullanılır.
Son zamanlarda TBMM de yazmanların yerine, eğitilmiş yapay zeka kullanılması düşünülüyor. Konuşmacının kim olduğunu anlayarak onun konuşmalarını bir yerde toplayabilen bir yapay zeka destekli program.
HUKUK alanında sağlık alanında ve birçok alanda yardımcı olarak kullanılabiliyor.
Yakın gelecekte evlerimize de girecektir. Yeni bir teknoloji ve dikkatli kullanılması gereken bir teknolojidir.

Sizler de bir YAPAY ZEKA ile konuşmak isterseniz CHAT-GPT 3.5 ücretsiz olarak sizin sorularınızı cevaplayabilir. Bunun için de mailinizle üye olmanız yeterli. GPT 3.5 şimdilik ücretsiz denemelerinizi bununla yapabilirsiniz. Temel anlamda programlama tavsiyesi de alabilirsiniz.
Hatta PYTHON programını öğrenirken kendisine nasıl yapacağınızı sorabilirsiniz. Program örneği  bile hazırlayabiliyor.  CHAT-GPT 3.5 soru sorma limiti yok.
Fakat uzun sorularda anlamsız cevaplar gelebilir. Ayrıca Türkçe cümle yapısına dikkat etmeniz gerekir. Normal halk diliyle yazarsanız yanlış yorumlamalara neden olabilir. ( LAN OĞLUM şu soruyu bilsene derseniz. Yanlış bir cevap ya da askıya alınan soru ile karşılaşabilirsiniz. )

KENDİ CSV DOSYANIZI NASIL HAZIRLARSINIZ.


Ben resimde gördüğünüz gibi electrical_1.csv dosyasını buraya sürükledim ve koyduktan sonra buna göre öğrenme süreci başladı. Bu colab dosyasında resimde gördüğünüz gibi ismini belirttim.

Sizler de csv dosyanızı bu formatta hazırlamanız gerekir. Şayet öğrenmede kullanılmayacak sütunlar olursa resimdeki mavi yerdeki iptal etme kısmını kullanarak sütunların öğrenme sürecine girmemesini sağlarsınız. Bu şekilde hazırlandığında en altta öğrenme sürecine etki edecek sütunlar resimde görülmektedir.

Ben bunu ne yapayım diyorsanız belki elinizde size ait ya da şirketinize ait veriler ya da datalog dediğiniz veriler vardır. Bu verilere göre sizlerde yapay zekayı eğiterek yardımcı olmasını isteyebilirsiniz.
Bu sadece bir fikir. Bu program ile ve bu yazım ile size uzak görünen YAPAY ZEKA nın temelini anlamanızı hedefledim. Ben de acaba nasıl eğitiliyor diyordum. merak ediyordum programlarıma destek olabilir mi? Nerelerde kullanabilirim diyordum.
Bu yazı için araştırmaya başladığımda kafamdaki soruların bir kısmına cevap bulabildim.
Herşeyden önce artık nasıl öğrendiğini biliyorum. Tabii ki temel olarak. Daha derinine gitmek gibi bir niyetim yok. Ayrıca CHAT GPT3.5 hayatıma girdi. WEB sitesleri arasında araştırma yapmak yerine bundan sonra CHAT GPT3.5 te arama yapıp sonrasında diğer web sitelerine ayrıntılar için gitmek yerinde olacaktır.

NOT: Bu programı PC de PROTEUS üzerinden denemek için SERIAL PORT EMULATOR programına ihtiyaç duydum. Com1 üzerinden Arduino ve PYTHON programı birbiriyle haberleşti.
Bu programı da 32 bitlik olmasına rağmen WIN10 da çalışan kurulumunu Tüm dosyalar içerisinde bulabilirsiniz.
Ayrıca çizimi Proteus 8.6 versiyonunda yapsam da PDF olarak çizimi verdim. Kendiniz kolaylıkla bu çizimi yapabilirsiniz. Burada MQ135 proteus kütüphanesi kullandım. kütüphane dosyalarını da Tüm dosyalar arasında bulabilirsiniz. Kütüphane dosyalarını Proteus Library dizinine ekledikten sonra HEX programı proteus programınızın çalıştığı dizinine koymanız gerekiyor. ( bir problem olursa yardımcı olmaya çalışırım)

Tabii ki bunlar bir başlangıç SİZLERİNDE FİKİRLERİNİ BEKLİYORUM. ACABA HANGİ KONULARDA YAPAY ZEKA BİZLERE YARDIMCI OLABİLİR. 

BUNU YORUM KISMINDA BİZLERLE PAYLAŞIRSANIZ BELKİ DE YAZININ GELİŞMESİNE KATKIDA BULUNABİLİRSİNİZ. 

YAPAY ZEKA Eğitimi:
OĞLUM, YAPAY ZEKA alanında yüksek lisans yaptığı için bana yardımcı oldu.
Gelecekte daha da iyi örneklerle, sizleri bilgilendirmek istiyorum.

 

TÜM DOSYALARA BURADAN ULAŞABİLİRSİNİZ.

YAPAY ZEKA konusunda temel bilgileri buradan okuyabilirsiniz.
https://www.gtech.com.tr/yapay-zeka-nedir-yapay-zeka-hakkinda-bilmeniz-gerekenler/

Ayrıca PYTHON için gerekli olan TENSORFLOW 2.12 yi internetten bulamazsanız buradan alıp install edilebilir.

Bir de VİSUAL STUDIO CODE kurulumunu internetten alamazsanız, buradan alabilirsiniz.

PYTHON 3.11.6 versiyonunu kullandım. İndirme için buraya tıklayınız. 

MQ139 sensör için bu sayfaya bakabilirsiniz.

SGP30 datasheet buradan alabilirsiniz. 

Video -1 YAPAY ZEKA VE COLAB kullanımı.

Video -2  PYTHON ve ARDUINO kullanımı

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.