Mündəricat:

NodeMCU (Arduino), Google Firebase və Laravel istifadə edərək real vaxt hadisəsi bildirişləri: 4 addım (şəkillərlə)
NodeMCU (Arduino), Google Firebase və Laravel istifadə edərək real vaxt hadisəsi bildirişləri: 4 addım (şəkillərlə)

Video: NodeMCU (Arduino), Google Firebase və Laravel istifadə edərək real vaxt hadisəsi bildirişləri: 4 addım (şəkillərlə)

Video: NodeMCU (Arduino), Google Firebase və Laravel istifadə edərək real vaxt hadisəsi bildirişləri: 4 addım (şəkillərlə)
Video: Google Firebase & ESP8266 Complete Guide - Sending/Receiving Data from ESP8266 & Firebase 2024, Iyun
Anonim
Image
Image
NodeMCU (Arduino), Google Firebase və Laravel istifadə edərək real vaxt hadisələri bildirişləri
NodeMCU (Arduino), Google Firebase və Laravel istifadə edərək real vaxt hadisələri bildirişləri

Veb saytınızda bir hərəkət edildiyində, ancaq e -poçt uyğun olmadıqda xəbərdar olmaq istəmisinizmi? Hər satış etdiyiniz zaman bir səs və ya zəng eşitmək istəyirsinizmi? Yoxsa evdə fövqəladə vəziyyət səbəbiylə dərhal diqqətinizə ehtiyac var?

Bu cihaz istədiyiniz hər şeyi real vaxt rejimində xəbərdar edə bilər.

Addım 1: Dövrəni bağlayın

Dövrəni bağlayın
Dövrəni bağlayın
Dövrəni bağlayın
Dövrəni bağlayın

Qurduğum cihaz, bir veb saytında edilən satışları xəbərdar etmək üçün səs siqnalı olan NodeMCU lövhəsindən ibarətdir. Mikro nəzarətçi Arduino proqramı ilə proqramlaşdırılmışdır və tetikleyici hissəsi hər hansı bir veb, iOS və ya Android tətbiqi ola bilər. Nümunə üçün biri Laraveldə, digəri isə düz HTML və JavaScript -də iki sadə veb tətbiqi yaratdım.

NodeMCU lövhəsi, pinlərdəki təxminən 12mA cərəyana qədər etibarlı şəkildə işləyə bildiyindən, səs siqnalı NPN tranzistoru ilə bağlanır. 2N2222 -dən istifadə etdim, çünki çoxlarının ətrafında yatıram, amma əminəm ki, bu prinsip digər NPN tranzistorları ilə eyni olacaq.

Dövrəni bağlamaq üçün tranzistorun kollektorunu lövhədəki Vin pininə qoşun. Zil 5V -də işləyir və cihazı USB -dən alacağımız üçün bu pin lövhədəki 3.3V tənzimləyicidən əvvəl bizə gərginlik verəcək.

Bundan sonra, siqnalın müsbət tərəfini tranzistor emitörünə və səs siqnalının mənfi pinini lövhədəki hər hansı bir torpaq pininə bağlayın. Pin 2 -dən istifadə etdim, ancaq 9, 25 və ya 29 -cu pinlərdə də bağlaya bilərsiniz.

Transistorun bazası Arduino proqramında GPIO 4 ilə əlaqəli D2 pininə bağlıdır. Bu quruluşla, tranzistor effektiv olaraq hər bir hadisədə səs siqnalı açan funksiyasını yerinə yetirəcək. Siqnal əvəzinə bir siqnal qurğusu hazırlayırsınızsa, lampalar, maşınlar və ya siren kimi hər hansı bir elektrik cihazını idarə etmək üçün eyni şəkildə bir röleyi bağlaya bilərsiniz.

Addım 2: Veb Tətbiqlərini hazırlayın

Veb proqramlarını hazırlayın
Veb proqramlarını hazırlayın
Veb proqramlarını hazırlayın
Veb proqramlarını hazırlayın
Veb proqramlarını hazırlayın
Veb proqramlarını hazırlayın

Cihazın tetikleyici və real vaxt hissəsi üçün Google Firebase Realtime Database -dən istifadə edəcəyik. İstifadə olunan platformaların hər biri arasında real vaxt məlumat sinxronizasiyasını təmin edən Google tərəfindən hazırlanmış gözəl bir NoSQL bulud verilənlər bazasıdır.

Əvvəlcə seçdiyiniz bir adla layihə yaradın. Yaradıldıqdan sonra "count" adlı tək bir node yaradın və 0 olarsa dəyəri ilə başlayın. Bu, gələcəkdə izləmək istədiyimiz başlanğıc sayımız olacaq.

Laravel tətbiqi, Kreaitdən gələn "firebase-php" paketini istifadə edir və aşağıda bağlandı. Paketi "bəstəkar kreait/firebase-php tələb edir" işlədərək quraşdırın. Quraşdırma tamamlandıqdan sonra, hərəkətin baş verəcəyi bir nəzarətçi yaratmalıyıq. Metodu "yeniləmə" adlandırdım və bir POST hərəkətində marşrutlara bağladım.

Firebase nümunəsini əldə etmək üçün Firebase konsolundan yükləməyiniz lazım olan bir json faylına ehtiyacınız var. Bu faylı Laravel layihənizin kökünə qoyun və adını firebase.json adlandırın. Firebase nümunəsini əldə edərkən, withCredentials metodundan istifadə edərək bu faylın yolunu göstərməliyik.

Firebase nümunəsini əldə etdikdən sonra verilənlər bazasına və əvvəllər yaratdığımız düyünə istinad almalıyıq. Hər bir hərəkətdə, düyünün cari dəyərini alacağıq, onu bir dəfə artıracağıq və əgər verilənlər bazasına qayıtsaq qənaət edəcəyik. Bu, xəbərdar etməli olduğumuz hadisələri izləyəcək.

Eyni təmin edilən firebase kitabxanasından istifadə edərək sadə HTML və JavaScript ilə də əldə edilə bilər. Bununla birlikdə əvvəlcə konfiqurasiya dizisini Firebase konsolundan uyğun parametrlərlə təmin etməliyik və tətbiqi işə salmalıyıq. Başladıqdan sonra, hadisə sayını saxladığımız qovluğa istinad alırıq və hər hansı bir dəyər dəyişikliyini almaq üçün dinləyicini əlavə edirik.

Əlavə olaraq, Laravel nümunəsindəki kimi forma təqdim etmək əvəzinə, düyməni basmaqla çağırılan, sayını yeniləyən və yenilənmiş dəyəri yenidən verilənlər bazasına yazan bir JavaScript funksiyasına sahibik.

Addım 3: NodeMCU lövhəsini proqramlaşdırın

NodeMCU lövhəsini proqramlaşdırın
NodeMCU lövhəsini proqramlaşdırın
NodeMCU lövhəsini proqramlaşdırın
NodeMCU lövhəsini proqramlaşdırın
NodeMCU lövhəsini proqramlaşdırın
NodeMCU lövhəsini proqramlaşdırın

NodeMCU -nu proqramlaşdırmaq üçün Arduino proqramından istifadə etdim və lövhəni quraşdırdıqdan sonra proqramı yükləyə bilmək üçün uyğun versiyanı və portu seçdiyimə əmin oldum. Mine 1.0 versiyasıdır, buna görə davam etməzdən əvvəl lövhənizlə iki dəfə yoxlayın.

Arduino kodunun ilk hissəsi, cihazınızda tənzimləməyiniz lazım olan bütün lazımi tərifləri təyin edir. İlk belə parametr WiFi ssid və onun paroludur, sonra firebase url və firebase db sirrini qurmalıyıq. Təəssüf ki, bu verilənlər bazasına qoşulmağın tövsiyə olunan yolu deyil, ancaq indiyə qədər kitabxananın onu dəstəklədiyi yeganə yoldur. Bu sirri Firebase konsolunda Layihə Ayarları, xidmət hesabları menyusunda tapa bilərsiniz.

Növbəti tərif, yeniləmələri və cihaz idini yoxlayacağımız yoldur. Cihaz identifikatoruna ehtiyac var, buna görə eyni hadisələr haqqında məlumat vermək üçün birdən çox cihazımız varsa, hadisə üçün bizə hansı cihazın xəbər verdiyini bilməli və bunun qeydini saxlamalıyıq. Sonuncu, səs siqnalı bağladığımız pin qurmalıyıq və bu bizim vəziyyətimizdə D2 -dir.

Quraşdırma funksiyası, quraşdırılmış led pin və D2 sancaqlarını çıxış kimi təyin edir, nələrin baş verdiyini bilmək üçün serial ünsiyyətinə başlayır və göstərilən WiFi şəbəkəsinə qoşulur. Bağlantı qurulduqdan sonra Firebase ilə ünsiyyətə başlayır və bildirdiyimiz son dəyəri alır. Daha sonra göstərilən yolda dəyişiklikləri dinləməyə başlayır.

Əsas döngədə, cihazın aktiv olduğunu deyə bilməyimiz üçün daxili ledini 500 millisaniyə ərzində yanıb -sönən yanıb sönmə funksiyasına zəng var. Dəyişiklik aşkar edildikdə və mövcud funksiya ilə oxuya biləcəyimiz məlumatlar olduqda, düyünün yeni dəyəri oxunur, arada bir çox hadisə ola biləcəyi üçün fərq hesablanır və hər dəfə bir bip səsi eşidilir. fərq haqqında.

Məsələn, son bildirilən dəyər ilə yeni dəyər arasındakı fərq 4 olarsa, 4 yeni alış -verişin edildiyini bildirmək üçün 4 bip səsi çıxarılacaq. Səs siqnalı funksiyası müəyyən bir müddət ərzində səs siqnalı vasitəsilə müəyyən bir tezliyi səsləndirmək üçün daxili ton funksiyasından istifadə edir.

Səs siqnalları verildikdən sonra göstərilən cihaz üçün yeni dəyər yenilənir və axın yenidən başlayır. Hal -hazırda arduino firebase kitabxanasında açıq bir problem var ki, bir dəyəri əl ilə saxladıqdan sonra axının avtomatik olaraq davam etməməsi üçün onu yenidən başlatmalıyıq.

Addım 4: Cihazınızdan zövq alın

Cihazınızdan zövq alın!
Cihazınızdan zövq alın!

İstifadə etdiyim bütün kod, layihənin sxematik bağlantısı ilə birlikdə aşağıda əlaqəli GitHub hesabımda mövcuddur.

Mənbə Kodu

Sxematik

Kod bir çox fərqli ssenari və hadisə üçün işləmək üçün asanlıqla qəbul edilə bilər və əminəm ki, onunla oynamaq çox əyləncəli olacaq.

Mənim üçün bu çox əyləncəli bir quruluş idi və bu mövzuda çox şey öyrənə bildim və bunun üçün həqiqətən xoşbəxtəm. Ümid edirəm ki, layihənizdə sizə kömək edə bilər, amma hər hansı bir hissəsində ilişib qalmısınızsa və ya əlavə məlumatlara ehtiyacınız varsa, şərhlərdə mənə bildirin və sizə kömək etmək üçün əlimdən gələni edəcəyəm.

Layihəni bəyəndinizsə YouTube kanalıma abunə olun:

Kodun dadına baxın

Tövsiyə: