İçindekiler:

NodeMCU (Arduino), Google Firebase ve Laravel Kullanarak Gerçek Zamanlı Etkinlik Bildirimleri: 4 Adım (Resimlerle)
NodeMCU (Arduino), Google Firebase ve Laravel Kullanarak Gerçek Zamanlı Etkinlik Bildirimleri: 4 Adım (Resimlerle)

Video: NodeMCU (Arduino), Google Firebase ve Laravel Kullanarak Gerçek Zamanlı Etkinlik Bildirimleri: 4 Adım (Resimlerle)

Video: NodeMCU (Arduino), Google Firebase ve Laravel Kullanarak Gerçek Zamanlı Etkinlik Bildirimleri: 4 Adım (Resimlerle)
Video: ESP32 ile Google Firebase Kullanımı Video Serisi -1 2024, Haziran
Anonim
Image
Image
NodeMCU (Arduino), Google Firebase ve Laravel Kullanan Gerçek Zamanlı Etkinlik Bildirimleri
NodeMCU (Arduino), Google Firebase ve Laravel Kullanan Gerçek Zamanlı Etkinlik Bildirimleri

Hiç web sitenizde bir işlem yapıldığında haberdar olmak istediniz ancak e-posta uygun değil mi? Her satış yaptığınızda bir ses veya zil duymak ister misiniz? Ya da evde acil bir durum olduğu için acilen ilgilenmeniz mi gerekiyor?

Bu cihaz, sevdiğiniz herhangi bir şey hakkında sizi gerçek zamanlı olarak uyarabilir.

Adım 1: Devreyi Bağlayın

Devreyi Bağlayın
Devreyi Bağlayın
Devreyi Bağlayın
Devreyi Bağlayın

Yaptığım cihaz, bir web sitesinde yapılan satışlar konusunda beni uyarmak için sesli uyarıya sahip bir NodeMCU panosundan oluşuyor. Mikrodenetleyici Arduino yazılımı kullanılarak programlanmıştır ve tetikleyici kısım herhangi bir web, iOS veya Android uygulaması olabilir. Örnek için biri Laravel'de, diğeri düz HTML ve JavaScript'te olmak üzere iki basit web uygulaması oluşturdum.

NodeMCU kartı, pinlerde yaklaşık 12mA akıma kadar güvenle çalışabildiğinden, sesli uyarı bir NPN transistörü üzerinden bağlanır. 2N2222 kullandım çünkü birçoğu var ama prensibin diğer NPN transistörleriyle aynı olacağına eminim.

Devreyi bağlamak için transistörün kolektörünü karttaki Vin pinine bağlayın. Buzzer 5V'da çalışıyor ve cihazı USB'den besleyeceğimiz için bu pin bize kart üzerindeki 3.3V regülatörden önceki voltajı verecektir.

Ardından, buzzerin pozitif tarafını transistörün emitörüne ve zilin negatif pinini karttaki topraklama pinlerinden herhangi birine bağlayın. Pin 2'yi kullandım, ancak 9, 25 veya 29 numaralı pinlere de bağlayabilirsiniz.

Transistörün tabanı, Arduino yazılımındaki GPIO 4 ile ilişkili olan pin D2'ye bağlanır. Bu kurulumla, transistör, her olayda sesli uyarıyı açan bir anahtar olarak etkin bir şekilde işlev görecektir. Herhangi bir alarm cihazı yapıyorsanız, ampul, makine veya siren gibi herhangi bir şebeke cihazını çalıştırabilmek için buzzer yerine aynı şekilde bir röle bağlayabilirsiniz.

2. Adım: Web Uygulamalarını Hazırlayın

Web Uygulamalarını Hazırlayın
Web Uygulamalarını Hazırlayın
Web Uygulamalarını Hazırlayın
Web Uygulamalarını Hazırlayın
Web Uygulamalarını Hazırlayın
Web Uygulamalarını Hazırlayın

Cihazın tetikleyici ve gerçek zamanlı kısmı için Google'ın Firebase Gerçek Zamanlı Veritabanını kullanacağız. Bu, Google tarafından yapılan ve kullanılan platformların her biri arasında gerçek zamanlı veri senkronizasyonu sağlayan harika bir NoSQL bulut veritabanıdır.

İlk önce projeyi seçtiğiniz bir adla oluşturun. Oluşturulduktan sonra “count” adında tek bir düğüm oluşturun ve bunu 0 ise değeri ile başlatın. Bu, gelecekte takip etmek istediğimiz başlangıç sayımız olacak.

Laravel uygulaması, Kreait'in “firebase-php” paketini kullanır ve aşağıda bağlantılıdır. “composer require kreait/firebase-php” komutunu çalıştırarak paketi kurun. Kurulum tamamlandıktan sonra, eylemin gerçekleşeceği denetleyiciyi oluşturmamız gerekiyor. Yöntemi “güncelleme” olarak adlandırdım ve onu bir POST eylemindeki rotalara bağladım.

Firebase örneğini almak için Firebase konsolunuzdan indirmeniz gereken bir json dosyasına ihtiyacınız var. Bu dosyayı Laravel projenizin kök dizinine yerleştirin ve firebase.json olarak adlandırın. Firebase örneğini alırken, withCredentials yöntemini kullanarak bu dosyanın yolunu sağlamamız gerekiyor.

Firebase örneğini aldıktan sonra, veritabanına ve daha önce oluşturduğumuz düğüme referansı almamız gerekiyor. Her eylemde, düğümün mevcut değerini alacağız, bir artıracağız ve veritabanına geri dönersek kaydedeceğiz. Bu, bildirmemiz gereken olaylarımızı takip edecektir.

Aynısı, sağlanan firebase kitaplığı kullanılarak düz HTML ve JavaScript ile de gerçekleştirilebilir. Bununla birlikte, önce Firebase konsolundan uygun ayarlarla config dizisi sağlamamız ve uygulamayı başlatmamız gerekiyor. Başlatıldığında, olay sayılarını depoladığımız düğüme bir referans alırız ve herhangi bir değer değişikliğini almak için bir dinleyici ekleriz.

Ayrıca Laravel örneğindeki gibi formu göndermek yerine artık butona tıklandığında çağrılan, sayımı güncelleyen ve güncellenen değeri tekrar veritabanına yazan bir JavaScript fonksiyonumuz var.

Adım 3: NodeMCU Board'u programlayın

NodeMCU Board'u programlayın
NodeMCU Board'u programlayın
NodeMCU Board'u programlayın
NodeMCU Board'u programlayın
NodeMCU Board'u programlayın
NodeMCU Board'u programlayın

NodeMCU'yu programlamak için Arduino yazılımını kullandım ve kartı yükledikten sonra yazılımı yükleyebilmek için uygun sürümü ve bağlantı noktasını seçtiğimden emin oldum. Benimki sürüm 1.0, bu yüzden devam etmeden önce tahtanızla iki kez kontrol edin.

Arduino kodunun ilk kısmı, cihazınızda ayarlamanız gereken tüm gerekli tanımları ayarlar. Bu tür ilk ayar, WiFi'nin ssid'si ve şifresidir, ardından firebase url'sini ve firebase db secret'ı kurmamız gerekir. Ne yazık ki, bu veritabanına bağlanmanın önerilen yolu değildir, ancak şu anda kitaplığın onu desteklemesinin tek yolu budur. Bu sırrı, firebase konsolundaki Proje Ayarları, hizmet hesapları menüsünde bulabilirsiniz.

Sonraki tanım, güncellemeleri ve cihaz kimliğini kontrol edeceğimiz yoldur. Cihaz kimliği gereklidir, bu nedenle aynı olayları bildirmek için birden fazla cihazımız olması durumunda, hangi cihazın bize olayı bildirdiğini bilmemiz ve bunun kaydını tutmamız gerekir. Sonuncusu, buzzer'ı bağladığımız pini kurmamız gerekiyor ve bu bizim durumumuzda D2.

Setup fonksiyonu, dahili led pini ve D2 pinlerini çıkış olarak tanımlar, olup biteni öğrenmek için seri iletişimi başlatır ve belirtilen WiFi ağına bağlanır. Bağlantı kurulduğunda, Firebase ile iletişimi başlatır ve bildirdiğimiz son değeri alır. Daha sonra belirtilen yoldaki değişiklikleri dinlemeye başlar.

Ana döngüde, cihazın aktif olduğunu söyleyebilmemiz için dahili led'i 500 milisaniye boyunca yanıp sönen yanıp sönme fonksiyonuna çağrı vardır. Bir değişiklik algılandığında ve mevcut fonksiyon ile okuyabileceğimiz mevcut veriler olduğunda, düğümün yeni değeri okunur, aradaki birden fazla olay olabileceğinden fark hesaplanır ve her seferinde bir bip sesi üretilir. farkın.

Örneğin, son bildirilen değer ile yeni değer arasındaki fark 4 ise, 4 yeni alım yapıldığını bildirmek için 4 bip sesi çıkarılacaktır. Bip işlevi, belirli bir süre boyunca sesli uyarı aracılığıyla belirli bir frekansı çalmak için yerleşik ton işlevini kullanır.

Bip sesleri üretildikten sonra, belirtilen cihaz için yeni değer güncellenir ve akış yeniden başlatılır. Şu anda arduino firebase kitaplığında, bir değeri manuel olarak kaydettikten sonra akışın otomatik olarak devam etmediğine dair açık bir sorun var, bu yüzden yeniden başlatmamız gerekiyor.

Adım 4: Cihazınızın Keyfini Çıkarın

Cihazınızın Keyfini Çıkarın!
Cihazınızın Keyfini Çıkarın!

Kullandığım kodun tamamı, projenin şematik bağlantısıyla birlikte aşağıda bağlantılı GitHub hesabımda mevcuttur.

Kaynak kodu

Şematik

Kod, birçok farklı senaryo ve olay için çalışmak üzere kolayca uyarlanabilir ve onunla oynarken çok eğleneceğinize eminim.

Benim için bu gerçekten eğlenceli bir yapıydı ve üzerinde oldukça fazla şey öğrenmeyi başardım ve bunun için gerçekten mutluyum. Umarım projenizde size yardımcı olabilir, ancak herhangi bir kısmında takılıp kalırsanız veya daha fazla açıklamaya ihtiyacınız olursa, lütfen yorumlarda bana bildirin, size yardımcı olmak için elimden gelenin en iyisini yapacağım.

Projeyi beğendiyseniz, lütfen YouTube kanalıma abone olun:

Kodu Tadın

Önerilen: