Mundarija:
- 1 -qadam: O'chirish simini ulang
- 2 -qadam: Internet -ilovalarni tayyorlang
- 3 -qadam: NodeMCU kartasini dasturlashtiring
- 4 -qadam: Qurilmangizdan rohatlaning
Video: NodeMCU (Arduino), Google Firebase va Laravel -dan foydalangan holda voqea haqida xabarlar: 4 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Sizning veb -saytingizda biron bir xatti -harakatlar amalga oshirilgan bo'lsa ham, sizga xabar berishni xohlaganmisiz? Har safar sotuvda ovoz yoki qo'ng'iroqni eshitishni xohlaysizmi? Yoki uyda favqulodda vaziyat yuzaga kelganligi sababli darhol sizning e'tiboringizga muhtoj bo'ladimi?
Bu qurilma sizga xohlagan narsangiz haqida real vaqtda xabar berishi mumkin.
1 -qadam: O'chirish simini ulang
Men qurgan qurilma NodeMCU taxtasidan iborat bo'lib, u veb -saytda sotuvlar to'g'risida meni ogohlantiradi. Mikrokontroller Arduino dasturidan foydalangan holda dasturlashtirilgan va har qanday veb, iOS yoki Android ilovasi bo'lishi mumkin. Men ikkita oddiy veb -ilovani yaratdim, biri Laravelda, ikkinchisi oddiy HTML va JavaScript -da.
NodeMCU taxtasi pimlarda 12 mA ga yaqin oqim bilan xavfsiz ishlashi mumkinligi sababli, signal nPN tranzistor orqali ulanadi. Men 2N2222 -dan foydalandim, chunki menda ularning ko'plari yotadi, lekin ishonchim komilki, boshqa NPN tranzistorlari bilan bir xil bo'ladi.
Zanjirni ulash uchun tranzistor kollektorini taxtadagi Vin piniga ulang. Buzzer 5V da ishlaydi va biz qurilmani USB orqali quvvatlantiradigan bo'lsak, bu pin bortdagi 3.3V regulyatoridan oldingi kuchlanishni beradi.
Keyin signalning ijobiy tomonini tranzistorning emitentiga va signalning manfiy pinini bortdagi har qanday tuproqli pimlarga ulang. Men 2 -pinni ishlatganman, lekin siz uni 9, 25 yoki 29 -pinlarda ham ulashingiz mumkin.
Transistorning asosi Arduino dasturiy ta'minotidagi GPIO 4 ga mos keladigan D2 piniga ulangan. Ushbu sozlash yordamida tranzistor har bir hodisada signal signalini yoqadigan kalit vazifasini samarali bajaradi. Agar siz signalizatsiya moslamasini ishlab chiqarayotgan bo'lsangiz, lampochka, mashina yoki siren kabi har qanday elektr moslamasini boshqarishingiz uchun signal signalining o'rniga xuddi shu tarzda o'rni ulashingiz mumkin.
2 -qadam: Internet -ilovalarni tayyorlang
Qurilmaning ishga tushadigan va real vaqtli qismi uchun biz Google Firebase real vaqtda ma'lumotlar bazasidan foydalanamiz. Bu Google tomonidan yaratilgan NoSQL bulutli ma'lumotlar bazasi, u har bir platforma o'rtasida real vaqtda ma'lumotlarni sinxronlashtirishni ta'minlaydi.
Birinchidan, siz tanlagan nom bilan loyihani yarating. Yaratilgandan so'ng, "hisoblash" deb nomlangan bitta tugunni yarating va uni 0 bo'lsa, uni ishga tushiring. Bu bizning boshlang'ich hisobimiz, biz kelajakda kuzatishni xohlaymiz.
Laravel ilovasi Kreait-dan "firebase-php" paketini ishlatadi va u quyida bog'langan. Paketni "bastakor kreait/firebase-php talab qiladi" buyrug'i bilan o'rnating. O'rnatish tugagandan so'ng, biz harakat sodir bo'ladigan nazoratchini yaratishimiz kerak. Men usulni "yangilash" deb nomladim va uni POST harakati bo'yicha marshrutlarga uladim.
Firebase misolini olish uchun sizga Firebase konsolidan yuklab olishingiz kerak bo'lgan json fayli kerak bo'ladi. Bu faylni Laravel loyihangizning ildiziga joylashtiring va uni firebase.json deb nomlang. Yong'in bazasi misolini olganda, biz bu faylga yo'lni withCredentials usuli bilan ta'minlashimiz kerak.
Yong'in bazasi misolini olganimizdan so'ng, biz ma'lumotlar bazasi va biz ilgari yaratgan tugunga havolani olishimiz kerak. Har bir harakatda biz tugunning joriy qiymatini olamiz, uni bittaga ko'paytiramiz va agar ma'lumotlar bazasiga qaytamiz. Bu biz xabardor qilishimiz kerak bo'lgan voqealarimizni kuzatib boradi.
Xuddi shunday HTML va JavaScript -da, firebase kutubxonasi yordamida erishish mumkin. Buning yordamida biz birinchi navbatda konfiguratsiya qatorini Firebase konsolidan tegishli sozlamalar bilan ta'minlashimiz va dasturni ishga tushirishimiz kerak. Boshlangandan so'ng, biz voqealar sonini saqlaydigan tugunga havola olamiz va har qanday qiymat o'zgarishini olish uchun tinglovchini biriktiramiz.
Laravel misolida bo'lgani kabi, shaklni topshirishning o'rniga, bizda JavaScript funktsiyasi mavjud, u tugmani bosish orqali chaqiriladi, hisobni yangilaydi va yangilangan qiymatni ma'lumotlar bazasiga qaytaradi.
3 -qadam: NodeMCU kartasini dasturlashtiring
NodeMCU -ni dasturlash uchun men Arduino dasturidan foydalandim va unga taxtani o'rnatganimdan so'ng, dasturiy ta'minotni yuklash uchun to'g'ri versiya va portni tanlashga ishonch hosil qildim. Meniki 1.0 versiyasi, shuning uchun davom etishdan oldin taxtangiz bilan ikki marta tekshiring.
Arduino kodining birinchi qismi sizning qurilmangizda sozlashingiz kerak bo'lgan barcha ta'riflarni o'rnatadi. Birinchi bunday sozlash - bu Wi -Fi ssid va uning parolidir, keyin biz yong'in bazasi urlini va firebase db sirini sozlashimiz kerak. Afsuski, bu ma'lumotlar bazasiga ulanishning tavsiya etilgan usuli emas, lekin hozircha kutubxonaning yagona yo'li. Siz bu sirni Loyiha sozlamalari, yong'in bazasi konsolidagi xizmat hisoblari menyusida topishingiz mumkin.
Keyingi ta'rif - bu biz yangilanishni va qurilma identifikatorini tekshiradigan yo'l. Qurilma identifikatori kerak, shuning uchun bizda bir xil voqealar haqida xabar beradigan bir nechta qurilmalar bo'lsa, biz qaysi qurilma voqea haqida bizga xabar berganini bilishimiz va bu haqda yozuvni saqlashimiz kerak. Oxirgisi, biz signal signalini ulagan pinni o'rnatishimiz kerak va bu bizning holatimizda D2.
O'rnatish funktsiyasi o'rnatilgan pin va D2 pinlarini chiqish sifatida belgilaydi, nima bo'layotganini bilish uchun ketma -ket muloqotni boshlaydi va belgilangan WiFi tarmog'iga ulanadi. Ulanish o'rnatilgandan so'ng, u Firebase bilan aloqani boshlaydi va biz xabar bergan oxirgi qiymatni oladi. Keyin u belgilangan yo'ldagi o'zgarishlarni tinglay boshlaydi.
Asosiy tsiklda, miltillovchi funktsiyaga chaqiruv mavjud bo'lib, u o'rnatilgan LEDni 500 millisekundga miltillatadi, shunda biz qurilma faolligini aytishimiz mumkin. O'zgarish aniqlanganda va bizda mavjud funktsiya yordamida o'qish mumkin bo'lgan ma'lumotlar mavjud bo'lganda, tugunning yangi qiymati o'qiladi, farq bir vaqtning o'zida bir nechta hodisalar bo'lgani uchun hisoblanadi va har safar signal eshitiladi. farq haqida.
Masalan, oxirgi hisobot qiymati bilan yangi qiymat o'rtasidagi farq 4 bo'lsa, 4 ta yangi signal sotib olinganligini bildirish uchun 4 ta signal eshitiladi. Ovozli signal funktsiyasi o'rnatilgan ohang funktsiyasidan foydalanib, ma'lum bir vaqt davomida ovozli signal orqali ma'lum bir chastotani ijro etadi.
Ovozli signal eshitilgandan so'ng, ko'rsatilgan qurilma uchun yangi qiymat yangilanadi va oqim qayta boshlanadi. Hozirgi vaqtda arduino firebase kutubxonasida ochiq muammo bor, biz qiymatni qo'lda saqlaganimizdan so'ng oqim avtomatik ravishda davom etmaydi, shuning uchun uni qayta ishga tushirishimiz kerak.
4 -qadam: Qurilmangizdan rohatlaning
Men ishlatgan kodning hammasi GitHub hisobimda, loyihaning sxemasiga havola bilan birga bog'langan.
Manba kodi
Sxematik
Kodni turli xil stsenariylar va hodisalarda ishlash uchun osonlikcha qabul qilish mumkin, va aminmanki, u bilan o'ynash sizga zavq bag'ishlaydi.
Men uchun bu juda qiziqarli qurilish edi va men bu borada ko'p narsalarni o'rgandim va buning uchun men juda xursandman. Umid qilamanki, bu sizning loyihangizda sizga yordam berishi mumkin, lekin agar siz uning biron bir qismida qotib qolgan bo'lsangiz yoki sizga qo'shimcha tushuntirish kerak bo'lsa, iltimos, izohlarda menga xabar bering va men sizga yordam berish uchun qo'limdan kelganicha harakat qilaman.
Agar sizga loyiha yoqqan bo'lsa, mening YouTube kanalimga obuna bo'ling:
Kodni tatib ko'ring
Tavsiya:
O'yin maydonchasi ekspresidan foydalangan holda harakatlanuvchi Cosplay qanotlari - 1 -qism: 7 qadam (rasmlar bilan)
O'yin maydonchasi ekspresidan foydalangan holda harakatlanuvchi faollashtirilgan kosplay qanotlari - 1 -qism: Bu ikki qismli loyihaning birinchi qismi, men sizga avtomatlashtirilgan peri qanotlarini ishlab chiqarish jarayonini ko'rsataman. Loyihaning birinchi qismi - bu qanotlarning mexanikasi, ikkinchi qismi esa uni kiyiladigan qilib qo'yish va qanotlarni qo'shish
Ajoyib analog sintezator/organ faqat alohida komponentlardan foydalangan holda: 10 qadam (rasmlar bilan)
Ajoyib analog sintezatori/organi faqat alohida komponentlardan foydalangan holda: Analog sintezatorlar juda zo'r, lekin ularni tayyorlash juda qiyin, shuning uchun men uni iloji boricha soddalashtirmoqchi edim, shuning uchun uning ishlashi oson tushuniladi. bir nechta asosiy kichik sxemalar kerak: rezistorli oddiy osilator
Arduino va Pythondan foydalangan holda DIY "PC foydalanish o'lchagichi ROG bazasi": 5 qadam (rasmlar bilan)
Arduino va Python yordamida DIY "PC foydalanish o'lchagichi ROG bazasi": *********************************** +Birinchidan, bu ko'rsatmalarni ingliz tilida bo'lmagan, ingliz tili bo'lmagan kishi yozgan …… ingliz professori emas, shuning uchun meni masxara qilishdan oldin har qanday grammatik xato haqida xabar bering.: P +va iltimos taqlid qilmang
Uy haqida ogohlantirish: Arduino + Katta displeyda bulutli xabarlar: 14 qadam (rasmlar bilan)
Uyga ogohlantirish: Katta displeyda Arduino + Bulutli xabarlar: Mobil telefonlar asrida odamlar 24/7 qo'ng'irog'ingizga javob berishini kutishingiz mumkin. Yoki … emas Xotinim uyga qaytgach, telefon qo'lidagi sumkada qoladi yoki batareyasi tugab qoladi. Bizda quruqlik chizig'i yo'q. Qo'ng'iroq qilish yoki
Arduino va WS2812b LED -laridan foydalangan holda DIY shaxsiy muhit yoritgichi: 6 qadam (rasmlar bilan)
Arduino va WS2812b LED -laridan foydalangan holda DIY -ning atrof -muhit yoritgichi: O'yin/film ko'rish tajribam uchun ko'proq chuqurlik kerak edi, shuning uchun men atrof -muhit yoritgichlarini qanday o'rnatganman. Ishni boshlashdan oldin, bu loyiha siz lehimlantiruvchi dazmolni va boshqa asosiy elementlardan qanday foydalanishni bilishingizni talab qiladi. asboblar. Agar sizga qulay lehim bo'lmasa