![Իրական ժամանակի իրադարձությունների մասին ծանուցումներ `օգտագործելով NodeMCU (Arduino), Google Firebase և Laravel: 4 քայլ (նկարներով) Իրական ժամանակի իրադարձությունների մասին ծանուցումներ `օգտագործելով NodeMCU (Arduino), Google Firebase և Laravel: 4 քայլ (նկարներով)](https://i.howwhatproduce.com/images/003/image-7269-49-j.webp)
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48
![Image Image](https://i.howwhatproduce.com/images/003/image-7269-51-j.webp)
![](https://i.ytimg.com/vi/Ki5t_-Jjpjg/hqdefault.jpg)
![Իրական ժամանակի իրադարձությունների մասին ծանուցումներ `օգտագործելով NodeMCU (Arduino), Google Firebase և Laravel Իրական ժամանակի իրադարձությունների մասին ծանուցումներ `օգտագործելով NodeMCU (Arduino), Google Firebase և Laravel](https://i.howwhatproduce.com/images/003/image-7269-52-j.webp)
Երբևէ ցանկացե՞լ եք տեղեկացվել, երբ որևէ գործողություն է կատարվում ձեր կայքում, բայց էլ. Փոստը ճիշտ չէ: Ուզու՞մ եք ամեն անգամ վաճառք կատարելիս ձայն կամ զանգ լսել: Թե՞ ձեր անհապաղ ուշադրության կարիքը կա տանը արտակարգ իրավիճակի պատճառով:
Այս սարքը կարող է ձեզ իրական ժամանակում զգուշացնել այն ամենի մասին, ինչ ձեզ դուր է գալիս:
Քայլ 1: Լարացրեք շրջանը
![Լարել սխեման Լարել սխեման](https://i.howwhatproduce.com/images/003/image-7269-53-j.webp)
![Լարել սխեման Լարել սխեման](https://i.howwhatproduce.com/images/003/image-7269-54-j.webp)
Սարքը, որը ես կառուցել եմ, բաղկացած է NodeMCU տախտակից ՝ ազդանշանային ազդանշանով, որն ինձ տեղեկացնում է կայքում կատարված վաճառքների մասին: Միկրոկոնտրոլերը ծրագրավորված է Arduino ծրագրաշարի միջոցով, իսկ հրահրող մասը կարող է լինել ցանկացած վեբ, iOS կամ Android ծրագիր: Ես ստեղծել եմ երկու պարզ վեբ ծրագիր ՝ մեկը Laravel- ում, իսկ մյուսը ՝ պարզ HTML- ի և JavaScript- ի օրինակով:
Քանի որ NodeMCU տախտակը կարող է ապահով աշխատել մինչև կապերի վրա մինչև 12 մԱ հոսանք, ազդանշանը միացված է NPN տրանզիստորի միջոցով: Ես օգտագործել եմ 2N2222- ը, քանի որ դրանցից շատերը կողքիս են, բայց վստահ եմ, որ սկզբունքը նույնը կլինի ցանկացած այլ NPN տրանզիստորի դեպքում:
Շղթան միացնելու համար տրանզիստորի կոլեկտորը միացրեք տախտակի Vin քորոցին: Zանգի ձայնը գործում է 5 Վ լարման դեպքում, և քանի որ մենք սարքը սնուցելու ենք USB- ից, այս քորոցը մեզ կտա լարումը տախտակի 3.3 Վ կարգավորիչից առաջ:
Հաջորդը միացրեք ազդանշանի դրական կողմը տրանզիստորի էմիտերի վրա, իսկ ազդանշանի բացասական քորոցը `տախտակի ցանկացած հիմնավորված կապում: Ես օգտագործել եմ քորոց 2 -ը, բայց կարող եք նաև այն միացնել 9, 25 կամ 29 կապում:
Տրանզիստորի հիմքը միացված է D2 կապին, որը փոխկապակցված է Arduino ծրագրաշարի GPIO 4 -ի հետ: Այս կարգավորմամբ տրանզիստորը արդյունավետորեն կաշխատի որպես անջատիչ, որը միացնում է ազդանշանը յուրաքանչյուր իրադարձության համար: Theանգի ձայնի փոխարեն կարող եք միացնել ռելեն նույն կերպ, որպեսզի կարողանաք ցանկացած էլեկտրական սարք վարել, ինչպիսիք են լամպերը, մեքենաները կամ ազդանշանը, եթե ինչ -որ ազդանշանային սարք եք պատրաստում:
Քայլ 2: Պատրաստեք վեբ ծրագրեր
![Պատրաստեք վեբ ծրագրեր Պատրաստեք վեբ ծրագրեր](https://i.howwhatproduce.com/images/003/image-7269-55-j.webp)
![Պատրաստեք վեբ ծրագրեր Պատրաստեք վեբ ծրագրեր](https://i.howwhatproduce.com/images/003/image-7269-56-j.webp)
![Պատրաստեք վեբ ծրագրեր Պատրաստեք վեբ ծրագրեր](https://i.howwhatproduce.com/images/003/image-7269-57-j.webp)
Սարքի գործարկման և իրական ժամանակի մասի համար մենք կօգտագործենք Google- ի Firebase Realtime Database- ը: Սա Google- ի կողմից պատրաստված NoSQL ամպային հիանալի տվյալների շտեմարան է, որն իրական ժամանակի տվյալների համաժամացում է ապահովում օգտագործվող յուրաքանչյուր հարթակի միջև:
Նախ ստեղծեք նախագիծը ձեր ընտրած անունով: Ստեղծվելուց հետո ստեղծեք «հաշվել» կոչվող մեկ հանգույց և գործարկեք այն 0 արժեքով, եթե դա լինի մեր սկզբնական հաշվարկը, որին ցանկանում ենք հետևել ապագայում:
Laravel հավելվածը օգտագործում է Kreait- ի «firebase-php» փաթեթը, և այն կապված է ստորև: Տեղադրեք փաթեթը ՝ գործարկելով «կոմպոզիտորը պահանջում է kreait/firebase-php»: Տեղադրումն ավարտվելուց հետո մենք պետք է ստեղծենք վերահսկիչ, որտեղ կատարվելու է գործողությունը: Ես մեթոդն անվանեցի «թարմացում» և այն միացրեցի երթուղիներում ՝ POST գործողությամբ:
Firebase- ի օրինակն առբերելու համար ձեզ հարկավոր է json ֆայլ, որը պետք է ներբեռնեք ձեր Firebase վահանակից: Տեղադրեք այս ֆայլը ձեր Laravel նախագծի արմատում և անվանեք այն firebase.json: Firebase- ի օրինակն առնելիս մենք պետք է տրամադրենք այս ֆայլի ուղին ՝ օգտագործելով withCredentials մեթոդը:
Firebase- ի օրինակը ստանալուց հետո մենք պետք է տեղեկանք ստանանք տվյալների բազայի և ավելի վաղ ստեղծված հանգույցի մասին: Յուրաքանչյուր գործողության դեպքում մենք կստանանք հանգույցի ընթացիկ արժեքը, կավելացնենք այն մեկով և կպահենք, եթե վերադառնանք տվյալների բազա: Սա հետևելու է մեր իրադարձություններին, որոնց մասին մենք պետք է տեղեկացնենք:
Նույնը կարելի է հասնել պարզ HTML- ով և JavaScript- ով ՝ օգտագործելով տրամադրված firebase գրադարանը: Դրանով մենք նախ պետք է տրամադրենք կազմաձևման զանգվածին համապատասխան պարամետրեր Firebase վահանակից և նախաստորագրենք ծրագիրը: Նախաստորագրվելուց հետո մենք ստանում ենք հղում այն հանգույցին, որտեղ մենք պահում ենք իրադարձությունների քանակը և կցում ենք ունկնդիրին `արժեքի ցանկացած փոփոխություն ստանալու համար:
Բացի այդ, ձևը ներկայացնելու փոխարեն, ինչպես Laravel- ի օրինակում, մենք այժմ ունենք JavaScript գործառույթ, որը կանչվում է կոճակի սեղմման վրա, թարմացնում է հաշվարկը և թարմացված արժեքը հետ գրում տվյալների բազայում:
Քայլ 3. Programրագրեք NodeMCU խորհուրդը
![Programրագրեք NodeMCU խորհուրդը Programրագրեք NodeMCU խորհուրդը](https://i.howwhatproduce.com/images/003/image-7269-58-j.webp)
![Programրագրեք NodeMCU խորհուրդը Programրագրեք NodeMCU խորհուրդը](https://i.howwhatproduce.com/images/003/image-7269-59-j.webp)
![Programրագրեք NodeMCU խորհուրդը Programրագրեք NodeMCU խորհուրդը](https://i.howwhatproduce.com/images/003/image-7269-60-j.webp)
NodeMCU- ն ծրագրավորելու համար ես օգտագործել եմ Arduino ծրագրաշարը և տախտակը դրան տեղադրելուց հետո համոզվել եմ, որ ընտրել եմ համապատասխան տարբերակը և նավահանգիստը, որպեսզի կարողանամ վերբեռնել ծրագրակազմը: Իմը 1.0 տարբերակն է: Շարունակելուց առաջ կրկնակի ստուգեք ձեր տախտակը:
Arduino ծածկագրի առաջին մասը սահմանում է բոլոր անհրաժեշտ սահմանումները, որոնք դուք պետք է կարգավորեք ձեր սարքում: Առաջին նման կարգավորումը WiFi- ի ssid- ն է և դրա գաղտնաբառը, այնուհետև մենք պետք է կարգավորենք firebase- ի url- ը և firebase db գաղտնիքը: Unfortunatelyավոք, սա տվյալների շտեմարանին միանալու առաջարկվող միջոց չէ, բայց այս պահի դրությամբ դա միակ միջոցն է, որն ապահովում է գրադարանը: Այս գաղտնիքը կարող եք գտնել Settingsրագրի կարգավորումների, սպասարկման հաշիվների ընտրացանկում ՝ firebase վահանակում:
Հաջորդ սահմանումը այն ճանապարհն է, որը մենք ստուգելու ենք թարմացումների և սարքի ID- ի համար: Սարքի ID- ն անհրաժեշտ է, այնպես որ, եթե մենք ունենք մի քանի իրադարձություն նույն իրադարձությունների մասին ծանուցող սարքեր, մենք պետք է իմանանք, թե որ սարքն է մեզ տեղեկացրել իրադարձության մասին և դրա մասին գրառում կատարել: Վերջինը մենք պետք է կարգավորենք այն քորոցը, որով միացրել ենք ազդանշանը, և սա մեր դեպքում D2 է:
Կարգավորման գործառույթը սահմանում է ներկառուցված led կապը և D2 կապումներն ՝ որպես ելքեր, սկսեք սերիական հաղորդակցությունը ՝ իմանալու համար, թե ինչ է կատարվում և միանում է նշված WiFi ցանցին: Երբ կապը հաստատվի, այն սկսում է հաղորդակցությունը Firebase- ի հետ և ստանում է վերջին արժեքը, որի մասին մենք հայտնել ենք: Այնուհետև այն սկսում է լսել նշված ճանապարհի փոփոխությունները:
Հիմնական հանգույցում կա թարթման գործառույթի կանչ, որը թարթում է ներկառուցված led- ը 500 միլիվայրկյան շարունակ, որպեսզի մենք կարողանանք ասել, որ սարքն ակտիվ է: Երբ փոփոխություն է հայտնաբերվում և առկա են տվյալներ, որոնք կարող ենք կարդալ առկա գործառույթով, ընթերցվում է հանգույցի նոր արժեքը, տարբերությունը հաշվարկվում է, քանի որ այդ ընթացքում կարող էին լինել մի քանի իրադարձություններ, և յուրաքանչյուր անգամ հնչում է ազդանշան: տարբերությունից:
Օրինակ, եթե վերջին զեկուցված արժեքի և նոր արժեքի միջև տարբերությունը 4 է, ապա կստեղծվի 4 ազդանշան, որը ձեզ կտեղեկացնի, որ կատարվել է 4 նոր գնում: Ազդանշանային ազդանշանն օգտագործում է ներկառուցված հնչերանգային գործառույթը `որոշակի ժամանակահատվածում ազդանշանի միջոցով որոշակի հաճախականություն նվագարկելու համար:
Ձայնային ազդանշանների թողարկումից հետո նոր արժեքը թարմացվում է նշված սարքի համար և հոսքը նորից վերսկսվում է: Ներկայումս arduino firebase գրադարանում բաց հարց կա, որ հոսքը չի շարունակվում ինքնաբերաբար, երբ արժեքը ձեռքով պահում ենք, ուստի պետք է այն վերագործարկել:
Քայլ 4: Վայելեք ձեր սարքը:
![Վայելեք ձեր սարքը Վայելեք ձեր սարքը](https://i.howwhatproduce.com/images/003/image-7269-61-j.webp)
Իմ օգտագործած ամբողջ ծածկագիրը հասանելի է իմ GitHub հաշվի ներքևում, որը կցված է ծրագրի սխեմատիկ հղմանը:
Աղբյուրի ծածկագիր
Սխեմատիկ
Կոդը կարող է հեշտությամբ ընդունվել `աշխատելու համար շատ տարբեր սցենարների և իրադարձությունների համար, և ես վստահ եմ, որ դուք շատ զվարճանալու եք դրա հետ խաղալով:
Ինձ համար սա իսկապես զվարճալի կառուցվածք էր, և ես կարողացա շատ բան սովորել դրա վրա, և դրա համար ես իսկապես երջանիկ եմ: Հուսով եմ, որ այն կարող է օգնել ձեզ ձեր նախագծում, բայց եթե ինքներդ ձեզ խճճված եք զգում դրա որևէ մասում կամ լրացուցիչ պարզաբանումների կարիք ունեք, ապա խնդրում եմ ինձ տեղյակ պահեք մեկնաբանություններում, և ես կանեմ հնարավորը ՝ ձեզ օգնելու համար:
Եթե ձեզ դուր եկավ նախագիծը, ապա բաժանորդագրվեք իմ YouTube ալիքին.
Համտեսեք ծածկագիրը
Խորհուրդ ենք տալիս:
Օգտագործելով DS1307 և DS3231 Իրական ժամանակի ժամացույցի մոդուլներ Arduino- ով. 3 քայլ
![Օգտագործելով DS1307 և DS3231 Իրական ժամանակի ժամացույցի մոդուլներ Arduino- ով. 3 քայլ Օգտագործելով DS1307 և DS3231 Իրական ժամանակի ժամացույցի մոդուլներ Arduino- ով. 3 քայլ](https://i.howwhatproduce.com/images/001/image-94-115-j.webp)
Օգտագործելով DS1307 և DS3231 Իրական ժամանակի ժամացույցների մոդուլներ Arduino- ի հետ. Մենք շարունակում ենք հարցում ստանալ, թե ինչպես օգտագործել իրական ժամանակի DS1307 և DS3231 ժամացույցների մոդուլները Arduino- ով `տարբեր աղբյուրներից, ուստի սա դրանցից օգտվելու երկու մասից բաղկացած առաջին ձեռնարկն է: Arduino- ի այս ձեռնարկի համար մենք ունենք իրական ժամանակի ժամացույցի երկու մոդուլ
Arduino- ի վրա հիմնված ժամացույց ՝ օգտագործելով DS1307 իրական ժամանակի ժամացույց (RTC) մոդուլ և 0.96: 5 քայլ
![Arduino- ի վրա հիմնված ժամացույց ՝ օգտագործելով DS1307 իրական ժամանակի ժամացույց (RTC) մոդուլ և 0.96: 5 քայլ Arduino- ի վրա հիմնված ժամացույց ՝ օգտագործելով DS1307 իրական ժամանակի ժամացույց (RTC) մոդուլ և 0.96: 5 քայլ](https://i.howwhatproduce.com/images/001/image-2174-20-j.webp)
Arduino- ի վրա հիմնված ժամացույց ՝ օգտագործելով DS1307 Իրական ժամանակի ժամացույց (RTC) մոդուլ և 0.96. Բարև տղերք, այս ձեռնարկում մենք կտեսնենք, թե ինչպես պատրաստել աշխատանքային ժամացույց ՝ օգտագործելով իրական ժամանակի DS1307 ժամացույցի մոդուլ և AMP; OLED էկրաններ: Այսպիսով, մենք կկարդանք ժամանակը ժամացույցի մոդուլից DS1307: Եվ տպեք այն OLED էկրանին
M5stick C- ով ժամացույց պատրաստելը `օգտագործելով Arduino IDE - RTC Իրական ժամանակի ժամացույց M5stack M5stick-C: 4 քայլ
![M5stick C- ով ժամացույց պատրաստելը `օգտագործելով Arduino IDE - RTC Իրական ժամանակի ժամացույց M5stack M5stick-C: 4 քայլ M5stick C- ով ժամացույց պատրաստելը `օգտագործելով Arduino IDE - RTC Իրական ժամանակի ժամացույց M5stack M5stick-C: 4 քայլ](https://i.howwhatproduce.com/images/002/image-3337-33-j.webp)
M5stick C- ով ժամացույց պատրաստելը `օգտագործելով Arduino IDE | RTC Իրական ժամանակի ժամացույց M5stack M5stick-C- ով: Ողջույն, այս հրահանգների ընթացքում մենք կսովորենք, թե ինչպես պատրաստել ժամացույց m5stack- ի m5stick-C մշակումով Arduino IDE- ով: Այսպիսով, m5stick- ը կցուցադրի ամսաթիվ, ժամ և AMP; ամսվա շաբաթը ցուցադրվում է
Իրական ժամանակի անելիքների ցուցակ ՝ օգտագործելով Google Firebase- ը ՝ 12 քայլ
![Իրական ժամանակի անելիքների ցուցակ ՝ օգտագործելով Google Firebase- ը ՝ 12 քայլ Իրական ժամանակի անելիքների ցուցակ ՝ օգտագործելով Google Firebase- ը ՝ 12 քայլ](https://i.howwhatproduce.com/images/001/image-2507-105-j.webp)
Իրական ժամանակի անելիքների ցուցակ ՝ օգտագործելով Google Firebase- ը. Մինչդեռ անցանց ցուցակները հակված են կորչելու, իսկ վիրտուալ ցուցակները կարող են սխալ տեղադրվել, պատահաբար ջնջվել կամ նույնիսկ մոռացվել: Այսպիսով, մենք որոշեցինք այն պատրաստել Google Firebase- ում
Լվացքի մեքենայի մասին ծանուցումներ MESH- ի միջոցով. 4 քայլ (նկարներով)
![Լվացքի մեքենայի մասին ծանուցումներ MESH- ի միջոցով. 4 քայլ (նկարներով) Լվացքի մեքենայի մասին ծանուցումներ MESH- ի միջոցով. 4 քայլ (նկարներով)](https://i.howwhatproduce.com/images/001/image-885-112-j.webp)
Լվացքի մեքենայի մասին ծանուցումներ MESH- ի միջոցով. Ես մոռացել եմ լվացքի մեքենայի հագուստի մասին … Մի՞շտ եք մոռանում հագուստը լվանալուց հետո վերցնել: Այս բաղադրատոմսը կբարելավի ձեր լվացքի մեքենան ՝ Gmail- ի կամ IFTTT- ի միջոցով ծանուցումներ ստանալուց հետո, երբ ձեր հագուստը պատրաստ լինի նկարելու