- IoT tabanlı Tavan Fan Regülatörünün Çalışması
- AC Fan Hız Kontrol Devresi için Gerekli Malzemeler
- AC Fan Regülatörü Kontrol Devresi
- IoT Kontrollü Tavan Vantilatörü Düzenleyicisi için PCB Tasarımı
- Firebase Hesabı Oluşturma
- NodeMCU ile Fan Regülatörünü Kontrol Etmek için Arduino Kodu
- MIT App Inventor ile Fan Regülatörü Uygulamasını Oluşturma
- ESP32 Tabanlı Dokunmatik Sensör Devresinin Test Edilmesi
- Diğer Geliştirmeler
Bu yazımızda, fana giden akımın akışını kısıtlayarak fanın hızını kontrol edebilen bir AC Fan Regülatör Devresi inşa ediyoruz. AC Tavan Vantilatörü Regülatörü terimi ağız doludur, bu nedenle bundan sonra ona basitçe bir fan regülatörü diyeceğiz. Bir fan regülatör devresi, ihtiyaçlara göre bir AC Fan / motorun hızını artırmak veya azaltmak için kullanılan çok önemli bir bileşendir. Birkaç yıl önce, geleneksel dirençli tip fan regülatörü veya elektronik regülatör arasında bir seçim yapmıştınız, ancak günümüzde bunların hepsi elektronik fan regülatör devresi ile değiştirildi.
Önceki bir makalede, bir akkor ampulün parlaklığını kontrol edebilen ve aynı zamanda bir Fanın hızını kontrol edebilen bir Arduino ile bir AC Faz Açısı Kontrol Devresini nasıl inşa edebileceğinizi göstermiştik. Bu yazıda, IoT tabanlı bir AC Tavan Fan Regülatörü devresi inşa edeceğiz. Bir Android Uygulaması yardımıyla tavan vantilatörünüzün hızını kontrol edebileceksiniz.
IoT tabanlı Tavan Fan Regülatörünün Çalışması
Fan Regülatör devresi, AC sinüs dalgasının faz açısını değiştirerek veya basit terimlerle TRIAC'ın hassas kontrolünü değiştirerek bir AC tavan fanının hızını kontrol edebilen basit bir devredir. AC fan regülatör devresinin tüm temel işleyişini 555 Zamanlayıcılı AC Faz Açısı Kontrolünde ve PWM makalesinde belirttiğim gibi, devrenin gerçek yapısına odaklanacağız. Ve yine konu hakkında daha fazla bilgi edinmek isterseniz, lütfen Arduino ve TRIAC Project kullanarak AC Light Dimmer hakkındaki makaleyi de kontrol edin.
Yukarıdaki temel blok şeması, devrenin gerçekte nasıl çalıştığını gösterir. Daha önce de söylediğim gibi, Firebase IoT ve NodeMCU'nun yardımıyla bir PWM sinyali üreteceğiz, ardından PWM sinyali, bir MOSFET'in kapısını kontrol edecek olan düşük geçişli filtreden geçirilecek ve bundan sonra 555 zamanlayıcı kontrol edecek bir optocoupler yardımıyla gerçek TRIAC.
Bu durumda, android uygulaması firebaseDB'deki değeri değiştirir ve ESP, aşağı çekilen herhangi bir değişiklik olursa ve değer bir PWM sinyaline dönüştürülürse bu DB'de meydana gelen değişiklikleri sürekli olarak kontrol eder.
AC Fan Hız Kontrol Devresi için Gerekli Malzemeler
Aşağıdaki resim, bu devreyi oluşturmak için kullanılan malzemeyi göstermektedir, bu çok genel bileşenlerle yapıldığından, listelenen tüm malzemeleri yerel hobi mağazanızda bulabilmeniz gerekir.
Ayrıca bir gösteri projesinden bu yana bileşenleri aşağıdaki tabloda tür ve miktar olarak listeledim, bunu yapmak için tek bir kanal kullanıyorum. Ancak devre, ihtiyaca göre kolayca ölçeklendirilebilir.
- Vidalı Klemens 5.04mm Konnektör - 2
- Erkek Başlık 2.54mm Konnektör - 1
- 56K, 1W Direnç - 2
- 1N4007 Diyot - 4
- 0.1 uF, 25V Kondansatör - 2
- AMS1117 Voltaj Regülatörü - 1
- 1000 uF, 25V Kondansatör - 1
- DC Güç Jakı - 1
- 1K Direnç - 1
- 470R Direnç - 2
- 47R Direnç - 2
- 82 K Direnç - 1
- 10 K Direnç - 5
- PC817 Optocoupler - 1
- NE7555 IC - 1
- MOC3021 Opto TriacDrive - 1
- IRF9540 MOSFET - 1
- 3.3 uF Kapasitör - 1
- Bağlantı Telleri - 5
- 0.1uF, 1KV Kondansatör - 1
- ESP8266 (ESP-12E) Mikrodenetleyici - 1
AC Fan Regülatörü Kontrol Devresi
IoT fan regülatör devresi için şematik aşağıda gösterilmiştir, bu devre çok basittir ve faz açısı kontrolü sağlamak için genel bileşenleri kullanır.
Bu devre, çok dikkatli tasarlanmış bileşenlerden oluşur. Her birini gözden geçireceğim ve her bloğu açıklayacağım.
ESP8266 (ESP-12E) Wi-Fi Çipi:
Bu, devremizin ilk bölümüdür ve birçok şeyi değiştirdiğimiz bölümdür, diğer bölümler tamamen aynı kalır, yani önceki makaleyi takip ettiyseniz.
Bu bölümde, Etkinleştir, Sıfırla ve GPIO0 pinlerini çıkardık, ayrıca çipin veri sayfası tarafından önerilen GPIO15 ve Ground Pin'i de indirdik. Programlamaya gelince, çipi çok kolay programlayabileceğimiz TX, RX ve topraklama pinini açığa çıkaran 3 pinli bir başlık yerleştirdik. Ayrıca, GPIO0'u toprağa bağlamak için dokunsal bir anahtar koyduk, bu ESP'yi programlama moduna getirmek için gerekli bir adımdır. PWM sinyalinin üretildiği çıkış olarak GPIO14 pinini seçtik.
Not! Programlama sırasında düğmeye basmalı ve cihazı DC varil jakı ile çalıştırmalıyız.
Sıfır Geçiş Algılama Devresi:
İlk olarak, listemizde dört adet 1n4007 diyot ve bir PC817 optocoupler ile birlikte iki adet 56K, 1W direnç ile yapılan sıfır geçiş algılama devresi var. Ve bu devre, 555 zamanlayıcı IC'ye sıfır geçiş sinyalini sağlamaktan sorumludur. Ayrıca, TRIAC bölümünde daha fazla kullanmak için fazı ve nötr sinyali bantladık.
AMS1117-3.3V Voltaj Regülatörü:
AMS1117 voltaj regülatörü, devreye güç sağlamak için kullanılır, devre tüm devreye güç sağlamaktan sorumludur. Ek olarak, AMS1117-3.3 IC için dekuplaj kondansatörü olarak iki adet 1000uF kapasitör ve 0.1uF kapasitör kullandık.
NE555 Zamanlayıcılı Kontrol Devresi:
Yukarıdaki görüntü 555 zamanlayıcı kontrol devresini göstermektedir, 555 tek kararlı bir konfigürasyonda yapılandırılmıştır, bu nedenle sıfır geçiş algılama devresinden gelen bir tetikleme sinyali tetiğe çarptığında, 555 zamanlayıcı bir direnç yardımıyla kapasitörü şarj etmeye başlar (genel olarak), ancak devremizde bir direnç yerine bir MOSFET var ve MOSFET'in kapısını kontrol ederek kondansatöre giden akımı kontrol ediyoruz, bu yüzden şarj süresini kontrol ediyoruz, dolayısıyla 555 zamanlayıcının çıkışını kontrol ediyoruz..
TRIAC ve TRIAC-Sürücü Devresi:
TRIAC, gerçekte açılıp kapanan ve dolayısıyla AC sinyalinin çıkışını kontrol eden ana anahtar görevi görür. MOC3021 Opto-Triac sürücüsünü kullanarak TRIAC'ı sürmek, yalnızca TRIAC'ı sürmekle kalmaz, aynı zamanda optik izolasyon sağlar, 0.01uF 2KV yüksek voltaj kondansatörü ve 47R direnci, devremizi bunlardan koruyan bir snubber devresi oluşturur. Endüktif bir yüke bağlandığında meydana gelen yüksek voltaj yükselmeleri, Anahtarlanan AC sinyalinin sinüzoidal olmayan doğası, sivri uçlardan sorumludur. Ayrıca, güç faktörü sorunlarından sorumludur, ancak bu başka bir makalenin konusudur.
Lowpass-Filter ve P-Channel MOSFET (Devrede Direnç Olarak Görev Yapan):
82K direnç ve 3,3 uF kapasitör, Arduino tarafından üretilen yüksek frekanslı PWM sinyalini yumuşatmaktan sorumlu olan düşük geçiş filtresini oluşturur. Daha önce belirtildiği gibi, P-Channel MOSFET, kapasitörün şarj süresini kontrol eden değişken direnç görevi görür. Bunu kontrol etmek, alçak geçiren filtre ile yumuşatılan PWM sinyalidir.
IoT Kontrollü Tavan Vantilatörü Düzenleyicisi için PCB Tasarımı
IoT Tavan Fan Regülatörü devremizin PCB'si tek taraflı bir kartta tasarlanmıştır. PCB'mi tasarlamak için Eagle PCB tasarım yazılımını kullandım, ancak istediğiniz herhangi bir tasarım yazılımını kullanabilirsiniz. Kart tasarımımın 2D görüntüsü aşağıda gösterilmektedir.
Tüm bileşenler arasında uygun topraklama bağlantıları yapmak için yeterli toprak dolgusu kullanılır. 3.3V DC girişi ve 220 Volt AC girişi sol tarafta bulunur, çıkış PCB'nin sağ tarafında bulunur. Gerber ile birlikte Eagle için eksiksiz tasarım dosyası aşağıdaki bağlantıdan indirilebilir.
- Tavan Fan Regülatörü Devresi için PCB Tasarımı, GERBER ve PDF dosyaları
El yapımı PCB:
Kolaylık sağlamak için PCB'nin el yapımı versiyonunu yaptım ve aşağıda gösteriliyor.
Bununla birlikte, devre şemamıza göre donanımımız hazır, şimdi android uygulamamızı ve Google firebase'i hazır hale getirmemiz gerekiyor.
Firebase Hesabı Oluşturma
Sonraki adım için bir firebase hesabı oluşturmamız gerekiyor. Tüm iletişim firebase hesabından geçecek. Bir firebase hesabı oluşturmak için Firebase web sitesine gidin ve "başla" yı tıklayın.
Tıkladıktan sonra, Google hesabınızla giriş yapmanız ve
Giriş yaptıktan sonra, proje oluştur düğmesine tıklayarak bir proje oluşturmanız gerekir.
Bunu yapmak sizi yukarıdaki resme benzeyen bir sayfaya yönlendirecektir. Projenizin adını yazın ve devam et'i tıklayın.
Tekrar devam et'i tıklayın.
Bunu yaptıktan sonra, onay kutusuna tıklayarak bazı hüküm ve koşulları kabul etmeniz gerekir, ardından proje oluştur düğmesine tıklamanız gerekir.
Her şeyi doğru yaptıysanız, bir süre sonra böyle bir mesaj alacaksınız. Bittiğinde, firebase konsolunuz aşağıdaki resimdeki gibi görünmelidir.
Şimdi buradan iki şey toplamamız gerekiyor. Bunu yapmak için, yeni oluşturduğunuz projenin adına tıklamanız gerekir. Benim için CelingFanRegulator, üzerine tıkladığınızda aşağıdaki resme benzer bir gösterge tablosu alacaksınız.
Ayarlar'a, ardından proje ayarlarına tıklayın, alacağınız sayfa aşağıdaki resimdeki gibi görünecektir.
Tıklayın hizmet hesabı -> veritabanı gizli.
Veritabanını gizli olarak kopyalayın ve daha sonra kullanmak üzere bir yerde saklayın.
Ardından, gerçek zamanlı veritabanına tıklayın ve URL'yi kopyalayın. bunu daha sonra kullanmak üzere saklayın.
Ve hepsi bu, şeylerin ateş üssü tarafında var.
NodeMCU ile Fan Regülatörünü Kontrol Etmek için Arduino Kodu
Basit bir Arduino kodu, firebase ile ESP-12E modülü arasındaki iletişimi halleder, devre ve kod açıklaması aşağıda verilmiştir, Öncelikle gerekli tüm kütüphaneleri tanımlıyoruz, verilen linklerden aşağıdaki kütüphaneleri indirebilirsiniz Arduino JSON kütüphanesi ve FirebaseArduino kütüphanesi
#Dahil etmek
Biz kullanıyor olacak FirebaseArduino Firebase ile iletişim kurmak için kütüphane.
// Örnekleri çalıştırmak için bunları ayarlayın. #define FIREBASE_HOST "celingfanregulator.firebaseio.com" #define FIREBASE_AUTH "1qAnDEuPmdy4ef3d9QLEGtYcA1cOehKmpmzxUtLr" #define WIFI_SSID "SSID'niz" # tanımlı WIFI_PASSWORD "
Sonra, tanımladığınız Firebase ev sahibi, Firebase auth, biz Firebase hesabını yapıyor, biz daha önce kurtarmıştı. Ardından yönlendiricimizin SSID ve şifresini tanımladık.
Dize Resivedata; # tanımla PWM_PIN 14;
Daha sonra, tüm verilerin depolanacağı Resivedata adında bir string tipi değişken tanımladık ve ayrıca PWM çıktısını alacağımız PWM_PIN'i de tanımladık.
Ardından, void setup () bölümünde gerekli olanı yapıyoruz,
Serial.begin (9600); pinMode (PWM_PIN, OUTPUT); WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("bağlanıyor"); while (WiFi.status ()! = WL_CONNECTED) {Seri.print ("."); gecikme (500); } Serial.println (); Seri.print ("bağlı:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString ("Değişken / Değer", "FirstTestStrig");
İlk olarak, Serial.begin () işlevini çağırarak seriyi etkinleştiririz. Daha sonra PWM pinini OUTPUT olarak ayarladık. Wi-Fi bağlantısına WiFi.begin () fonksiyonu yardımıyla başlıyoruz ve fonksiyonda SSID ve Şifreyi geçiyoruz . Bir while döngüsünde bağlantı durumunu kontrol ediyoruz ve bağlandıktan sonra döngüyü kesip devam ediyoruz. Ardından, bağlı mesajı IP adresiyle yazdırıyoruz.
Son olarak Firebase.begin () fonksiyonu ile firebase ile iletişime başlıyoruz ve daha önce tanımladığımız FIREBASE_HOST ve FIREBASE_AUTH parametrelerini geçiyoruz . Ve dizgeyi, setup işlevinin sonunu işaret eden setString () işlevi ile belirleriz . Boş döngü () bölümünde,
Resivedata = Firebase.getString ("Değişken / Değer"); Serial.println (Resivedata); analogWrite (PWM_PIN, harita (Resivedata.toInt (), 0, 80, 80, 0)); Serial.println (Resivedata); gecikme (100);
Diyoruz getString () işlevi ile değişken / Değer verileri Firebase depolanır, örnek görüntü aşağıda- gibi olur
Ardından değeri sadece hata ayıklama için yazdırırız. Daha sonra, değeri eşlemek için harita işlevini kullanıyoruz, 80 kullanılır çünkü 0 - 80 aralığında, MOSFET'in kapısını doğru bir şekilde kontrol edebiliyoruz ve RC alçak geçiren filtresi bu değerden bir şekilde sorumludur. Bu aralıkta, faz açısı kontrol devresi doğru çalışır, değeri bir donanım-yazılım tatlı noktası olarak adlandırabilirsiniz. Bu projeyi yapıyorsanız ve sorunlarla karşılaşırsanız, değerle oynamanız ve sonuçları kendiniz belirlemeniz gerekir.
Ve bundan sonra, verileri beslemek ve PWM'yi etkinleştirmek için analogWrite () işlevini kullanıyoruz, bundan sonra, yalnızca sonucu gözden geçirmek için Serial.println () işlevini kullanıyoruz ve son olarak, programımızın sonunu getiren firebase API'sine hit-count.
MIT App Inventor ile Fan Regülatörü Uygulamasını Oluşturma
AppInventor yardımıyla firebase ile iletişim kuracak ve firebase veritabanında depolanan verileri değiştirme yetkisine sahip bir android uygulaması yapacağız.
Bunu yapmak için appInventors web sitesine gidin, Google hesabınızla giriş yapın ve şartlar ve koşulları kabul edin. Bunu yaptığınızda, aşağıdaki resme benzeyen bir ekranla karşılaşacaksınız.
Yeni bir proje başlat simgesine tıklayın ve bir isim verin ve Tamam'a basın, bunu yaptığınızda karşınıza aşağıdaki resimdeki gibi bir ekran çıkacaktır.
Oraya vardığınızda, önce kaydırıcıyı biraz aşağıya koymak için iki etiket koymanız gerekir, daha sonra bazı modülleri çekmeniz gerekir ve bunlar FirebaseDB modülü ve web modülüdür.
FirebaseDB Firebase modül ile iletişim kurmaktadır, ağ modülü saat için kullanılan bir HTTP isteği andle. Aşağıdaki resme benzeyen.
Bu yapıldıktan sonra, kaydırıcıyı ve PWM adını verdiğimiz bir etiketi içeri çekmeniz gerekir, şu anda kafanız karışırsa, bir uygulama mucidi ile bir uygulama oluşturmayla ilgili diğer bazı öğreticilere göz atabilirsiniz.
İşlemi bitirdikten sonra, firebase DB simgesine tıklayın ve firebase hesabını oluştururken kaydettiğimiz firebase jetonunu ve firebase URL'sini girin.
Şimdi tasarım bölümünü bitirdik ve blok bölümünü kurmamız gerekiyor. Bunu yapmak için, tasarımcının yanında sağ üst köşedeki engelle düğmesine tıklamamız gerekiyor.
Kaydırıcıya tıkladığınızda uzun bir modül listesi sunulur, ilk modülü çıkarın ve farenizi başparmak pozisyonu düğmesinin üzerine getirin, iki modül daha karşınıza çıkacak, ikisini de dışarı çekeceksiniz. Bunları daha sonra kullanacağız.
Şimdi başparmak pozisyonu değişkenini ekliyoruz, onu yuvarlıyoruz ve başparmak pozisyon değerini elde ediyoruz. Ardından, firebasedb'yi tıklıyoruz ve depolamak, modül haline getirmek ve başparmak konumu değerinin altına eklemek için FirebaseDB.storeValue etiket değerini çağırıyoruz.
Bittiğinde, metin bloğuna tıklayarak boş bir metin kutusu çıkarırız ve bunu etiketle ekleriz, bu, verileri firebase'de okumak ve yazmak için Arduino IDE'de ayarladığımız etikettir. Şimdi etiketi saklamak için değere başparmak değeri değişkenini ekleyin. Her şeyi doğru yaptıysanız, kaydırıcıyı hareket ettirerek firebaseDB'deki değerleri değiştirebilirsiniz.
- .Aia (kaydedilmiş dosya) ve.apk (derlenmiş dosya)
Bu da uygulama oluşturma sürecimizin sonunu işaret ediyor. Az önce oluşturduğumuz android uygulamasının bir anlık görüntüsü aşağıda gösterilmiştir.
ESP32 Tabanlı Dokunmatik Sensör Devresinin Test Edilmesi
Devreyi test etmek için tavan fanına paralel bir akkor ampul bağladım ve devreye 5V DC adaptör ile güç verdim, yukarıdaki resimde de görebileceğiniz gibi, uygulama kaydırıcısı düşük olarak ayarlanmış, bu yüzden ampul düşük parlaklıkta yanıyor. Ve fan da yavaş dönüyor.
Diğer Geliştirmeler
Bu gösterim için devre el yapımı bir PCB üzerinde yapılır, ancak devre kolayca kaliteli bir PCB üzerine kurulabilir, deneylerimde PCB'nin boyutu bileşen boyutuna bağlı olarak gerçekten birazdır, ancak bir üretim ortamında ucuz SMD bileşenleri kullanılarak azaltılabilir, 555 zamanlayıcı yerine 7555 zamanlayıcı kullanmanın kontrolü büyük ölçüde artırdığını ve ayrıca devrenin kararlılığının da arttığını gördüm.