Სარჩევი:
- ნაბიჯი 1: ჩართეთ წრე
- ნაბიჯი 2: მოამზადეთ ვებ პროგრამები
- ნაბიჯი 3: პროგრამირება NodeMCU ფორუმში
- ნაბიჯი 4: ისიამოვნეთ თქვენი მოწყობილობით
ვიდეო: რეალურ დროში მოვლენების შეტყობინებები NodeMCU (Arduino), Google Firebase და Laravel გამოყენებით: 4 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:20
ოდესმე გსურდათ გაცნობოთ, როდესაც თქვენს ვებგვერდზე განხორციელდება ქმედება, მაგრამ ელ.ფოსტა არ არის შესაფერისი? გსურთ გაიგოთ ხმა ან ზარი ყოველ ჯერზე გაყიდვისას? ან საჭიროა თქვენი დაუყოვნებელი ყურადღება სახლში გადაუდებელი დახმარების გამო?
ამ მოწყობილობას შეუძლია რეალურ დროში გაგაფრთხილოთ ყველაფრის შესახებ, რაც მოგწონთ.
ნაბიჯი 1: ჩართეთ წრე
მოწყობილობა, რომელიც მე ავაშენე, შედგება NodeMCU დაფისგან, რომელზეც გამაფრთხილებელია, რომ გამაფრთხილოს ვებგვერდზე განხორციელებული გაყიდვების შესახებ. მიკროკონტროლი დაპროგრამებულია Arduino პროგრამული უზრუნველყოფის გამოყენებით და გამომწვევი ნაწილი შეიძლება იყოს ნებისმიერი ვებ, iOS ან Android პროგრამა. მე შევქმენი ორი მარტივი ვებ პროგრამა, ერთი ლარაველში და მეორე უბრალო HTML და JavaScript მაგალითისთვის.
ვინაიდან NodeMCU დაფას შეუძლია უსაფრთხოდ იმუშაოს ქინძისთავებზე დაახლოებით 12 mA დენამდე, ზუზერი უკავშირდება NPN ტრანზისტორს. მე გამოვიყენე 2N2222, რადგან ბევრი მათგანი მყავს გარშემო, მაგრამ დარწმუნებული ვარ, რომ პრინციპი იგივე იქნება ნებისმიერ სხვა NPN ტრანზისტორთან.
მიკროსქემის დასაკავშირებლად, დააკავშირეთ ტრანზისტორის კოლექტორი Vin pin- ზე დაფაზე. ზუზერი მუშაობს 5 ვ -ზე და რადგან ჩვენ ვამუშავებთ მოწყობილობას USB- დან, ეს პინი გვაძლევს ძაბვას 3.3V რეგულატორის წინ დაფაზე.
შემდეგ დააკავშირეთ ზუზერის პოზიტიური მხარე ტრანზისტორის ემიტერზე, ხოლო ზუმერის უარყოფითი ბინტი დაფის რომელიმე დაფაზე. მე გამოვიყენე პინ 2, მაგრამ თქვენ ასევე შეგიძლიათ დააკავშიროთ იგი 9, 25 ან 29 ქინძისთავებთან.
ტრანზისტორის ბაზა უკავშირდება pin D2- ს, რომელიც შეესაბამება GPIO 4 -ს Arduino პროგრამულ უზრუნველყოფაზე. ამ დაყენებით, ტრანზისტორი ეფექტურად იფუნქციონირებს, როგორც გადამრთველი, რომელიც ჩართავს ზუმერს თითოეულ მოვლენაზე. ზუზერის ნაცვლად თქვენ შეგიძლიათ დააკავშიროთ რელე ერთნაირად, რათა შეძლოთ ნებისმიერი ელექტრო მოწყობილობის მართვა, როგორიცაა ნათურები, მანქანები ან სირენა, თუ აკეთებთ სიგნალიზაციის მოწყობილობას.
ნაბიჯი 2: მოამზადეთ ვებ პროგრამები
მოწყობილობის გამომწვევი და რეალურ დროში ნაწილისთვის ჩვენ გამოვიყენებთ Google- ის Firebase Realtime მონაცემთა ბაზას. ეს არის მშვენიერი NoSQL ღრუბლოვანი მონაცემთა ბაზა, რომელიც შექმნილია Google– ის მიერ და უზრუნველყოფს რეალურ დროში მონაცემთა სინქრონიზაციას მის მიერ გამოყენებულ თითოეულ პლატფორმას შორის.
ჯერ შექმენით პროექტი თქვენი არჩევანის სახელით. შექმნისთანავე შექმენით ერთი კვანძი სახელწოდებით "დათვლა" და წამოიწყეთ იგი მნიშვნელობით 0. თუ ეს იქნება ჩვენი საწყისი რიცხვი, რომელსაც ჩვენ გვსურს მივყვეთ მომავალში.
Laravel პროგრამა იყენებს "firebase-php" პაკეტს კრეატიდან და ის ქვემოთ არის დაკავშირებული. დააინსტალირეთ პაკეტი "კომპოზიტორი მოითხოვს kreait/firebase-php" გაშვებით. ინსტალაციის დასრულების შემდეგ, ჩვენ უნდა შევქმნათ კონტროლერი, სადაც მოქმედება მოხდება. მე მეთოდს დავარქვი „განახლება“და დავაკავშირე ის მარშრუტებში POST მოქმედებაზე.
Firebase ინსტანციის მოსაპოვებლად გჭირდებათ json ფაილი, რომელიც უნდა ჩამოტვირთოთ თქვენი Firebase კონსოლიდან. განათავსეთ ეს ფაილი თქვენი Laravel პროექტის ძირში და დაასახელეთ firebase.json. Firebase ინსტანციის მოძიებისას, ჩვენ უნდა მივაწოდოთ გზა ამ ფაილს withCredentials მეთოდით.
მას შემდეგ რაც მივიღეთ firebase ინსტანცია, ჩვენ უნდა მივიღოთ მითითება მონაცემთა ბაზაზე და კვანძზე, რომელიც ადრე შევქმენით. თითოეულ მოქმედებაზე ჩვენ მივიღებთ კვანძის ამჟამინდელ მნიშვნელობას, გავზრდით მას ერთით და შევინახავთ მონაცემთა ბაზაში დაბრუნების შემთხვევაში. ეს თვალყურს ადევნებს ჩვენს მოვლენებს, რომლის შესახებაც ჩვენ უნდა შევატყობინოთ.
იგივე შეიძლება მიღწეული იქნას ჩვეულებრივი HTML და JavaScript– ით, მოწოდებული firebase ბიბლიოთეკის გამოყენებით. მასთან ერთად ჩვენ პირველ რიგში უნდა მივაწოდოთ კონფიგურაციის მასივს შესაბამისი პარამეტრები Firebase კონსოლიდან და დავიწყოთ აპლიკაცია. ინიციალიზაციის შემდეგ, ჩვენ ვიღებთ მითითებას იმ კვანძზე, სადაც ვინახავთ მოვლენათა რიცხვს და ვამაგრებთ მსმენელს, რომ მივიღოთ ნებისმიერი ცვლილების მნიშვნელობა.
გარდა ამისა, იმის ნაცვლად, რომ წარვადგინოთ ფორმა, როგორც Laravel– ის მაგალითში, ჩვენ ახლა გვაქვს JavaScript ფუნქცია, რომელიც იძახება ღილაკზე დაჭერით, განაახლებს რიცხვს და წერს განახლებულ მნიშვნელობას მონაცემთა ბაზაში.
ნაბიჯი 3: პროგრამირება NodeMCU ფორუმში
NodeMCU- ის დასაპროგრამებლად, მე გამოვიყენე Arduino პროგრამული უზრუნველყოფა და მას შემდეგ, რაც მასზე დაფა დავაინსტალირე, დარწმუნებული ვარ, რომ ავირჩიე შესაბამისი ვერსია და პორტი, რათა შევძლო პროგრამული უზრუნველყოფის ატვირთვა. ჩემი არის 1.0 ვერსია, ასე რომ გააგრძელეთ თქვენი დაფის გაგრძელებამდე.
Arduino კოდის პირველი ნაწილი ადგენს ყველა აუცილებელ განსაზღვრებას, რომლის შესწორებაც დაგჭირდებათ თქვენს მოწყობილობაზე. პირველი ასეთი პარამეტრი არის ssid WiFi და მისი პაროლი, შემდეგ ჩვენ უნდა დავაყენოთ firebase url და firebase db საიდუმლო. სამწუხაროდ, ეს არ არის მონაცემთა ბაზასთან დაკავშირების რეკომენდებული გზა, მაგრამ ჯერჯერობით ეს არის ბიბლიოთეკის ერთადერთი მხარდაჭერა. თქვენ შეგიძლიათ იპოვოთ ეს საიდუმლო პროექტის პარამეტრების, მომსახურების ანგარიშების მენიუში firebase კონსოლში.
შემდეგი განმარტება არის გზა, რომელსაც ჩვენ შევამოწმებთ განახლებებისა და მოწყობილობის იდენტიფიკაციისთვის. მოწყობილობის პირადობის მოწმობა საჭიროა, ასე რომ, თუ ჩვენ გვაქვს რამდენიმე მოწყობილობა ერთიდაიგივე მოვლენების შესახებ შეტყობინებისთვის, ჩვენ უნდა ვიცოდეთ რომელმა მოწყობილობამ შეგვატყობინა ამ მოვლენის შესახებ და შევინახოთ ამის შესახებ ჩანაწერი. ბოლო ერთი ჩვენ გვჭირდება კონფიგურაციის pin რომლითაც ჩვენ დაუკავშირდა buzzer და ეს არის D2 ჩვენს შემთხვევაში.
დაყენების ფუნქცია განსაზღვრავს ჩაშენებულ led pin და D2 ქინძისთავებს, როგორც შედეგებს, დაიწყეთ სერიული კომუნიკაცია იმის გასაგებად, თუ რა ხდება და უკავშირდება მითითებულ WiFi ქსელს. კავშირის დამყარებისთანავე ის იწყებს კომუნიკაციას Firebase– თან და იღებს ბოლო მნიშვნელობას, რისთვისაც ჩვენ შევატყობინეთ. შემდეგ ის იწყებს ცვლილებების მოსმენას მითითებულ გზაზე.
მთავარ მარყუჟში არის მოციმციმე ფუნქციის მოწოდება, რომელიც აციმციმებს ინტეგრირებულ led- ს 500 მილიწამი, რათა ჩვენ შეგვეძლოს გითხრათ, რომ მოწყობილობა აქტიურია. როდესაც გამოვლინდება ცვლილება და არსებობს არსებული მონაცემები, რომელთა წაკითხვაც შეგვიძლია არსებული ფუნქციით, იკითხება კვანძის ახალი მნიშვნელობა, განსხვავება გამოითვლება, ვინაიდან ამასობაში შეიძლება მომხდარიყო რამდენიმე მოვლენა და ყოველ ჯერზე იქმნებოდა სიგნალი. განსხვავებისა.
მაგალითად, თუ სხვაობა ბოლო მოხსენებულ მნიშვნელობასა და ახალ მნიშვნელობას შორის არის 4, გამოვა 4 სიგნალი, რომ შეგატყობინოთ, რომ 4 ახალი შესყიდვა განხორციელდა. სიგნალის ფუნქცია იყენებს ჩამონტაჟებულ ტონის ფუნქციას განსაზღვრული პერიოდის განმავლობაში ზუმერის საშუალებით განსაზღვრული სიხშირის დასაკრავად.
სიგნალების მიღების შემდეგ, ახალი მნიშვნელობა განახლდება მითითებული მოწყობილობისთვის და ნაკადი კვლავ განახლდება. ამჟამად არდუინოს firebase ბიბლიოთეკაში არის ღია საკითხი, რომ ნაკადი არ გაგრძელდება ავტომატურად მას შემდეგ, რაც ჩვენ ვინახავთ მნიშვნელობას ხელით, ამიტომ მისი გადატვირთვა გვჭირდება.
ნაბიჯი 4: ისიამოვნეთ თქვენი მოწყობილობით
მთელი კოდი, რომელიც მე გამოვიყენე, ხელმისაწვდომია ჩემს GitHub ანგარიშზე, რომელიც დაკავშირებულია ქვემოთ, პროექტის სქემატურ ბმულთან ერთად.
Საწყისი კოდი
სქემატური
კოდი ადვილად შეიძლება იქნას მიღებული მრავალი განსხვავებული სცენარისა და მოვლენისთვის და დარწმუნებული ვარ, რომ თქვენ ძალიან გაერთობით მასთან თამაშით.
ჩემთვის ეს მართლაც სახალისო ნაგებობა იყო და მე საკმაოდ ბევრი რამის სწავლა მოვახერხე და ამიტომაც ნამდვილად ბედნიერი ვარ. ვიმედოვნებ, რომ ის დაგეხმარებათ თქვენი პროექტის განხორციელებაში, მაგრამ თუკი აღმოჩნდებით მის რომელიმე ნაწილში გაჭედილი ან გჭირდებათ დამატებითი განმარტება, გთხოვთ შემატყობინოთ კომენტარებში და მე ყველაფერს გავაკეთებ დაგეხმაროთ.
თუ მოგეწონათ პროექტი, გთხოვთ გამოიწეროთ ჩემი YouTube არხი:
გასინჯე კოდი
გირჩევთ:
SCARA Robot: ისწავლეთ შორსმჭვრეტელი და ინვერსიული კინემატიკის შესახებ !!! (Plot Twist ისწავლეთ როგორ გააკეთოთ რეალურ დროში ინტერფეისი ARDUINO– ში დამუშავების გამოყენებით !!!!): 5 ნაბიჯი (სურათებით)
SCARA Robot: სწავლა შორსმჭვრეტელ და უკუ კინემატიკის შესახებ !!! (Plot Twist ისწავლეთ როგორ გააკეთოთ რეალურ დროში ინტერფეისი ARDUINO– ში დამუშავების გამოყენებით !!!!): SCARA რობოტი ძალიან პოპულარული მანქანაა ინდუსტრიის სამყაროში. სახელი ნიშნავს როგორც შერჩევითი შეთანხმებული ასამბლეის რობოტის მკლავს, ასევე შერჩევით დამთმობ არტიკულაციულ რობოტ მკლავს. ეს არის ძირითადად თავისუფლების სამი გრადუსიანი რობოტი, პირველი ორი დისლოცირებული
Arduino დაფუძნებული საათი DS1307 რეალურ დროში საათის გამოყენებით (RTC) მოდული და 0.96: 5 ნაბიჯი
Arduino დაფუძნებული საათი DS1307 რეალურ დროში საათის გამოყენებით (RTC) მოდული & 0.96: გამარჯობა ბიჭებო ამ გაკვეთილში ჩვენ ვნახავთ როგორ გავაკეთოთ სამუშაო საათი რეალურ დროში DS1307 საათის მოდულის გამოყენებით & OLED მონიტორები. ასე რომ, ჩვენ წავიკითხავთ დროს საათის მოდულიდან DS1307. და დაბეჭდეთ იგი OLED ეკრანზე
ESP01 Moodlight Firebase– ით რეალურ დროში + OTA: 7 ნაბიჯი
ESP01 Moodlight ერთად Firebase რეალურ დროში + OTA: ის მხარს უჭერს R-G-B რეჟიმს და Fade ეფექტს. ასევე არსებობს მხარდაჭერა სიკაშკაშის კონტროლისთვის. მხარდაჭერა OTA განახლებისთვის
როგორ გააკეთოთ რეალურ დროში Arduino და TFT ჩვენების გამოყენებით - Arduino Mega RTC 3.5 ინჩიანი TFT ჩვენებით: 4 ნაბიჯი
როგორ გავაკეთოთ რეალურ დროში Arduino და TFT ჩვენების გამოყენებით | Arduino Mega RTC 3.5 ინჩიანი TFT ჩვენებით: ეწვიეთ ჩემს Youtube არხს. შესავალი:- ამ პოსტში ვაპირებ გავაკეთო "რეალურ დროში საათი" 3.5 ინჩიანი TFT სენსორული LCD ეკრანის გამოყენებით, Arduino Mega 2560 და DS3231 RTC მოდული…. დაწყებამდე… შეამოწმეთ ვიდეო ჩემი YouTube არხიდან .. შენიშვნა:- თუ თქვენ იყენებთ Arduin– ს
რეალურ დროში დავალებების სია Google Firebase– ის გამოყენებით: 12 ნაბიჯი
რეალურ დროში დავალებების სია Google Firebase– ის გამოყენებით: გამარჯობა! ჩვენ ყველანი ყოველდღიურად ვიყენებთ დავალებების ჩამონათვალს, იქნება ეს ონლაინ თუ ოფლაინ. მიუხედავად იმისა, რომ ხაზგარეშე სიები მიდრეკილია დაკარგვისკენ, ხოლო ვირტუალური სიები შეიძლება არასწორად განთავსდეს, შემთხვევით წაიშალოს ან თუნდაც დაივიწყოს. ასე რომ, ჩვენ გადავწყვიტეთ, რომ გვექნა Google Firebase