Агуулгын хүснэгт:

NodeMCU (Arduino), Google Firebase, Laravel ашиглан бодит цагийн үйл явдлын мэдэгдэл: 4 алхам (зурагтай)
NodeMCU (Arduino), Google Firebase, Laravel ашиглан бодит цагийн үйл явдлын мэдэгдэл: 4 алхам (зурагтай)

Видео: NodeMCU (Arduino), Google Firebase, Laravel ашиглан бодит цагийн үйл явдлын мэдэгдэл: 4 алхам (зурагтай)

Видео: NodeMCU (Arduino), Google Firebase, Laravel ашиглан бодит цагийн үйл явдлын мэдэгдэл: 4 алхам (зурагтай)
Видео: Realtime Event Notifications Using NodeMCU (Arduino), Google Firebase and Laravel 2024, Арваннэгдүгээр
Anonim
Image
Image
NodeMCU (Arduino), Google Firebase, Laravel ашиглан бодит цагийн үйл явдлын мэдэгдэл
NodeMCU (Arduino), Google Firebase, Laravel ашиглан бодит цагийн үйл явдлын мэдэгдэл

Таны вэбсайтад ямар нэгэн үйлдэл хийсэн боловч танд имэйл тохирохгүй байвал танд мэдэгдэхийг хүсч байсан уу? Та худалдаа хийх болгондоо дуу чимээ, хонх сонсохыг хүсч байна уу? Эсвэл гэртээ яаралтай тусламжийн улмаас яаралтай тусламж шаардлагатай байна уу?

Энэ төхөөрөмж нь танд дуртай зүйлийнхээ талаар бодит цаг хугацаанд мэдэгдэх боломжтой.

Алхам 1: Цахилгаан хэлхээг холбоно уу

Цахилгаан хэлхээг утсаар холбоно уу
Цахилгаан хэлхээг утсаар холбоно уу
Цахилгаан хэлхээг утсаар холбоно уу
Цахилгаан хэлхээг утсаар холбоно уу

Миний бүтээсэн төхөөрөмж нь вэбсайт дээр хийсэн борлуулалтын талаар надад анхааруулах дохио бүхий NodeMCU самбараас бүрдэнэ. Микроконтроллерийг Arduino програм хангамж ашиглан програмчилсан бөгөөд идэвхжүүлэх хэсэг нь дурын вэб, iOS эсвэл Android програм байж болно. Би жишээн дээр хоёр энгийн вэб програмыг бүтээсэн бөгөөд нэг нь Ларавелд, нөгөө нь энгийн HTML болон JavaScript дээр бий болсон.

NodeMCU самбар нь тээглүүр дээрх 12 мА орчим гүйдэл гүйх хүртэл аюулгүй ажиллах боломжтой тул дуугаруулагч нь NPN транзистороор холбогддог. Би 2N2222 -ийг ашигласан, учир нь би тэдний ихэнхийг тойрон хүрээлж байгаа боловч зарчим нь бусад NPN транзистортой ижил байх болно гэдэгт би итгэлтэй байна.

Цахилгаан хэлхээг холбохын тулд транзисторын коллекторыг самбар дээрх Vin зүү рүү холбоно уу. Дуут дохио нь 5В хүчдэл дээр ажилладаг бөгөөд бид төхөөрөмжийг USB -ээр тэжээх тул энэ зүү нь самбар дээрх 3.3V зохицуулагчийн өмнө хүчдэл өгөх болно.

Дараа нь транзисторын ялгаруулагч дээрх дуут дохионы эерэг талыг, дуугарагчийн сөрөг тээглүүрийг самбар дээрх газардуулгатай холбоно уу. Би 2 -р зүүг ашигласан, гэхдээ та үүнийг 9, 25 эсвэл 29 -р зүүгээр холбож болно.

Транзисторын суурь нь Arduino програм хангамжийн GPIO 4 -тэй холбоотой D2 зүүтэй холбогддог. Энэхүү тохиргоог хийснээр транзистор нь үйл явдал бүрт дуут дохиог асаах үүргийг үр дүнтэй гүйцэтгэх болно. Дуут дохионы оронд та реле холбож, гэрлийн чийдэн, машин, дохиолол гэх мэт аливаа цахилгаан хэрэгслийг жолоодох боломжтой бол дохиоллын төхөөрөмж хийж болно.

Алхам 2: Вэб програмыг бэлтгэ

Вэб програмыг бэлтгэ
Вэб програмыг бэлтгэ
Вэб програмыг бэлтгэ
Вэб програмыг бэлтгэ
Вэб програмыг бэлтгэ
Вэб програмыг бэлтгэ

Төхөөрөмжийн идэвхжүүлэгч болон бодит цагийн хувьд бид Google -ийн Firebase бодит цагийн мэдээллийн санг ашиглах болно. Энэ бол Google -ийн бүтээсэн гайхалтай NoSQL үүл мэдээллийн сан бөгөөд ашиглаж буй платформ бүрийн хооронд бодит цагийн синхрончлолыг өгдөг.

Эхлээд өөрийн хүссэн нэрээр төсөл зохио. Үүсгэсний дараа "тоолох" нэртэй ганц зангилаа үүсгээд 0 байвал үүнийг эхлүүлнэ үү. Энэ бол бидний ирээдүйд дагахыг хүсч буй эхлэлийн тоо байх болно.

Laravel програм нь Крейтийн "firebase-php" багцыг ашигладаг бөгөөд үүнийг доор холбосон болно. Багцыг "хөгжмийн зохиолч kreait/firebase-php шаарддаг" програмыг ажиллуулж суулгана уу. Суулгалт дууссаны дараа бид үйл ажиллагаа явагдах хянагчийг бий болгох хэрэгтэй. Би энэ аргыг "шинэчлэх" гэж нэрлэсэн бөгөөд үүнийг POST үйлдэл дээр маршрутад холбосон.

Firebase -ийн жишээг авахын тулд танд Firebase консолоос татаж авах шаардлагатай json файл хэрэгтэй болно. Энэ файлыг Laravel төслийнхөө үндэс дээр байрлуулаад firebase.json гэж нэрлэнэ үү. Firebase -ийн жишээ татаж авахдаа бид withCredentials аргыг ашиглан энэ файлын замыг өгөх ёстой.

Галын баазын жишээ авсны дараа бид өмнө нь үүсгэсэн мэдээллийн сан болон зангилааны лавлагаа авах шаардлагатай болно. Үйлдэл бүр дээр бид зангилааны одоогийн утгыг авч, нэгээр нэмэгдүүлж, өгөгдлийн санд буцаж очих тохиолдолд хадгалах болно. Энэ нь бидний мэдэгдэх ёстой үйл явдлуудыг хянах болно.

Үүнтэй ижил Firebase номын санг ашиглан энгийн HTML болон JavaScript ашиглан хүрч болно. Үүний тусламжтайгаар бид эхлээд тохиргооны массивыг Firebase консолоос тохирох тохиргоогоор хангаж, програмыг эхлүүлэх хэрэгтэй. Эхлүүлсний дараа бид үйл явдлын тоог хадгалдаг зангилааны лавлагаа авч, аливаа өөрчлөлтийн өөрчлөлтийг авахын тулд сонсогчийг хавсаргана.

Нэмж дурдахад, Ларавелийн жишээн дээрх шиг маягтыг оруулахын оронд бид товчлуур дээр дарахад JavaScript функцтэй болж, тооллогыг шинэчилж, шинэчилсэн утгыг мэдээллийн санд буцааж бичдэг.

Алхам 3: NodeMCU самбарыг програмчлах

NodeMCU зөвлөлийг програмчлах
NodeMCU зөвлөлийг програмчлах
NodeMCU зөвлөлийг програмчлах
NodeMCU зөвлөлийг програмчлах
NodeMCU зөвлөлийг програмчлах
NodeMCU зөвлөлийг програмчлах

NodeMCU -ийг програмчлахын тулд би Arduino програмыг ашигласан бөгөөд самбарыг суулгасны дараа програмыг байршуулахын тулд тохирох хувилбар, портыг сонгохоо мартсангүй. Минийх бол 1.0 хувилбар тул үргэлжлүүлэхээсээ өмнө самбараасаа дахин шалгаарай.

Arduino кодын эхний хэсэг нь таны төхөөрөмж дээр тохируулах шаардлагатай бүх тодорхойлолтыг тохируулдаг. Эхний ийм тохиргоо нь WiFi -ийн ssid ба түүний нууц үг юм, дараа нь бид firebase url болон firebase db -ийн нууцыг тохируулах хэрэгтэй. Харамсалтай нь энэ бол мэдээллийн санд холбогдохыг зөвлөдөггүй арга боловч одоогоор номын сан үүнийг дэмжих цорын ганц арга зам юм. Та энэ нууцыг Firebase консол дахь Төслийн тохиргоо, үйлчилгээний дансны цэснээс олж болно.

Дараагийн тодорхойлолт бол шинэчлэлтүүд болон төхөөрөмжийн id -ийг шалгаж буй зам юм. Төхөөрөмжийн ID шаардлагатай тул хэрэв бид ижил үйл явдлын талаар мэдээлэх олон төхөөрөмжтэй бол тухайн үйл явдлын талаар аль төхөөрөмж бидэнд мэдэгдсэнийг мэдэж, энэ тухай тэмдэглэл хөтлөх ёстой. Сүүлийнх нь бид дуугаралтыг холбосон зүүгээ тохируулах ёстой бөгөөд энэ нь бидний хувьд D2 юм.

Тохиргооны функц нь суурилуулсан LED зүү ба D2 зүүг гаралт гэж тодорхойлж, юу болж байгааг мэдэхийн тулд цуваа холболтыг эхлүүлж, заасан WiFi сүлжээнд холбогддог. Холболт хийсний дараа Firebase -тай холбоо тогтоож, бидний мэдээлсэн хамгийн сүүлийн утгыг авна. Дараа нь заасан зам дээрх өөрчлөлтийг сонсож эхэлдэг.

Үндсэн гогцоонд төхөөрөмж идэвхтэй байгааг мэдэгдэхийн тулд бүтээгдсэн LED -ийг 500 миллисекундээр анивчих анивчих функц руу залгах дуудлага байдаг. Өөрчлөлтийг илрүүлж, боломжтой функцээр унших боломжтой өгөгдөл байгаа үед зангилааны шинэ утгыг уншиж байна, энэ хооронд олон үйл явдал тохиолдсон байж болзошгүй тул зөрүүг тооцоолж, дохио өгөх болно. ялгааг.

Жишээлбэл, хамгийн сүүлд мэдээлсэн утга болон шинэ утгын хоорондох зөрүү 4 бол 4 шинэ худалдан авалт хийгдсэн гэдгийг танд мэдэгдэхийн тулд 4 дохио өгөх болно. Дуут дохионы функц нь дуут дохиог ашиглан тодорхой давтамжийг тогтоосон хугацаанд тоглуулахын тулд дууны функцийг ашигладаг.

Дуут дохио өгсний дараа заасан төхөөрөмжийн шинэ утгыг шинэчилж, дамжуулалтыг дахин эхлүүлнэ. Одоогоор arduino firebase номын санд нээлттэй асуудал байгаа бөгөөд бид гараар утгыг хадгалсны дараа урсгал автоматаар үргэлжлэхгүй байгаа тул бид үүнийг дахин эхлүүлэх шаардлагатай байна.

Алхам 4: Төхөөрөмжөө сайхан өнгөрүүлээрэй

Төхөөрөмжөө сайхан өнгөрүүлээрэй!
Төхөөрөмжөө сайхан өнгөрүүлээрэй!

Миний ашигласан кодыг бүхэлд нь төслийн схемийн линкийн хамт доорх GitHub данс дээрээс авах боломжтой.

Эх код

Схем

Энэ кодыг олон янзын хувилбар, үйл явдалд ашиглахад хялбараар баталж болох бөгөөд та түүнтэй тоглоход маш их хөгжилтэй байх болно гэдэгт итгэлтэй байна.

Миний хувьд энэ бол үнэхээр хөгжилтэй барилга байсан бөгөөд би энэ талаар маш их зүйлийг сурч чадсан бөгөөд үүнийхээ төлөө би үнэхээр баяртай байна. Энэ нь танай төсөлд тусалж чадна гэж найдаж байна, гэхдээ хэрэв та түүний аль нэг хэсэгт гацсан эсвэл нэмэлт тодруулга авах шаардлагатай бол тайлбар дээр надад мэдэгдээрэй, би танд туслахын тулд чадах бүхнээ хийх болно.

Хэрэв танд төсөл таалагдсан бол миний YouTube сувгийг бүртгүүлнэ үү.

Кодыг амтлаарай

Зөвлөмж болгож буй: