Satura rādītājs:

Paziņojumi reāllaikā, izmantojot NodeMCU (Arduino), Google Firebase un Laravel: 4 soļi (ar attēliem)
Paziņojumi reāllaikā, izmantojot NodeMCU (Arduino), Google Firebase un Laravel: 4 soļi (ar attēliem)

Video: Paziņojumi reāllaikā, izmantojot NodeMCU (Arduino), Google Firebase un Laravel: 4 soļi (ar attēliem)

Video: Paziņojumi reāllaikā, izmantojot NodeMCU (Arduino), Google Firebase un Laravel: 4 soļi (ar attēliem)
Video: Business Case Example (How to Write a Business Case) 2024, Novembris
Anonim
Image
Image
Paziņojumi reāllaikā, izmantojot NodeMCU (Arduino), Google Firebase un Laravel
Paziņojumi reāllaikā, izmantojot NodeMCU (Arduino), Google Firebase un Laravel

Vai esat kādreiz vēlējies saņemt paziņojumu, kad jūsu vietnē tiek veikta darbība, bet e -pasts nav piemērots? Vai vēlaties katru reizi, pārdodot, dzirdēt skaņu vai zvanu? Vai arī jūsu tūlītēja uzmanība ir nepieciešama ārkārtas situācijas dēļ mājās?

Šī ierīce var jūs brīdināt reālā laikā par visu, kas jums patīk.

1. solis: savienojiet ķēdi

Pievienojiet ķēdi vadam
Pievienojiet ķēdi vadam
Pievienojiet ķēdi vadam
Pievienojiet ķēdi vadam

Manis izveidotā ierīce sastāv no NodeMCU plates ar skaņas signālu, lai brīdinātu mani par pārdošanu vietnē. Mikrokontrolleris ir ieprogrammēts, izmantojot Arduino programmatūru, un aktivizējošā daļa var būt jebkura tīmekļa, iOS vai Android lietojumprogramma. Esmu izveidojis divas vienkāršas tīmekļa lietojumprogrammas, vienu Laravel un otru, izmantojot vienkāršu HTML un JavaScript.

Tā kā NodeMCU plate var droši darboties līdz aptuveni 12 mA strāvai uz tapām, skaņas signāls ir savienots caur NPN tranzistoru. Esmu izmantojis 2N2222, jo daudzi no tiem atrodas apkārt, bet esmu pārliecināts, ka princips būs tāds pats ar jebkuru citu NPN tranzistoru.

Lai pieslēgtu ķēdi, savienojiet tranzistora kolektoru ar paneļa Vin tapu. Signāls darbojas pie 5 V sprieguma, un, tā kā mēs darbināsim ierīci no USB, šī tapa mums parādīs spriegumu pirms 3.3V regulatora uz tāfeles.

Tālāk pievienojiet skaņas signāla pozitīvo pusi tranzistora izstarotājam un signāla negatīvo tapu pie jebkuras plāksnes iezemētās tapas. Esmu izmantojis 2. tapu, bet to var savienot arī 9., 25. vai 29. tapā.

Tranzistora pamatne ir savienota ar tapu D2, kas korelē ar GPIO 4 Arduino programmatūrā. Izmantojot šo iestatījumu, tranzistors efektīvi darbosies kā slēdzis, ieslēdzot skaņas signālu katrā notikumā. Signāla vietā jūs varat pieslēgt releju tādā pašā veidā, lai varētu vadīt jebkuru tīkla ierīci, piemēram, spuldzes, mašīnas vai sirēnu, ja gatavojat kādu trauksmes ierīci.

2. darbība. Sagatavojiet tīmekļa lietotnes

Sagatavojiet tīmekļa lietotnes
Sagatavojiet tīmekļa lietotnes
Sagatavojiet tīmekļa lietotnes
Sagatavojiet tīmekļa lietotnes
Sagatavojiet tīmekļa lietotnes
Sagatavojiet tīmekļa lietotnes

Ierīces aktivizēšanas un reālā laika daļā mēs izmantosim Google Firebase reāllaika datu bāzi. Šī ir brīnišķīga Google izveidota NoSQL mākoņu datu bāze, kas nodrošina reāllaika datu sinhronizāciju starp katru izmantoto platformu.

Vispirms izveidojiet projektu ar izvēlētu nosaukumu. Kad tas ir izveidots, izveidojiet vienu mezglu ar nosaukumu “count” un sāciet to ar vērtību, ja tā ir 0. Šis būs mūsu sākuma skaitlis, kuram vēlamies sekot arī turpmāk.

Lietojumprogramma Laravel izmanto Kreait pakotni “firebase-php”, un tā ir saistīta tālāk. Instalējiet pakotni, palaižot “komponists prasa kreait/firebase-php”. Kad instalēšana ir pabeigta, mums ir jāizveido kontrolieris, kurā darbība notiks. Es nosaucu metodi par “atjaunināšanu” un esmu to savienojis POST darbības maršrutos.

Lai izgūtu Firebase instanci, jums ir nepieciešams json fails, kas jālejupielādē no Firebase konsoles. Ievietojiet šo failu sava Laravel projekta saknē un nosauciet to par firebase.json. Izgūstot firebase instanci, mums jānorāda ceļš uz šo failu, izmantojot metodi withCredentials.

Pēc Firebase instances iegūšanas mums ir jāsaņem atsauce uz datu bāzi un mezglu, ko esam izveidojuši iepriekš. Katrā darbībā mēs iegūsim mezgla pašreizējo vērtību, palielināsim to par vienu un saglabāsim, ja atgriezīsimies datu bāzē. Tas sekos mūsu notikumiem, par kuriem mums jāpaziņo.

To pašu var panākt ar vienkāršu HTML un JavaScript, izmantojot nodrošināto firebase bibliotēku. Ar to mums vispirms ir jānodrošina konfigurācijas masīvs ar atbilstošiem Firebase konsoles iestatījumiem un jāinicializē lietotne. Pēc inicializācijas mēs iegūstam atsauci uz mezglu, kurā mēs glabājam notikumu skaitu, un pievienojam klausītāju, lai izgūtu visas vērtības izmaiņas.

Turklāt, tā vietā, lai iesniegtu veidlapu, kā norādīts Laravel piemērā, mums tagad ir JavaScript funkcija, kas tiek izsaukta, noklikšķinot uz pogas, atjaunina skaitīšanu un atjaunoto vērtību ieraksta atpakaļ datu bāzē.

3. darbība: ieprogrammējiet NodeMCU padomi

Programmējiet NodeMCU padomi
Programmējiet NodeMCU padomi
Programmējiet NodeMCU padomi
Programmējiet NodeMCU padomi
Programmējiet NodeMCU padomi
Programmējiet NodeMCU padomi

Lai ieprogrammētu NodeMCU, esmu izmantojis Arduino programmatūru un pēc tā dēļa instalēšanas pārliecinājos, ka esmu izvēlējies pareizo versiju un portu, lai varētu augšupielādēt programmatūru. Manējā ir versija 1.0, tāpēc pirms turpināt, vēlreiz pārbaudiet savu dēli.

Arduino koda pirmajā daļā ir iestatītas visas nepieciešamās definīcijas, kas jums būs jāpielāgo savā ierīcē. Pirmais šāds iestatījums ir WiFi ssid un tā parole, tad mums ir jāiestata firebase URL un firebase db noslēpums. Diemžēl tas nav ieteicamais savienojuma veids ar datu bāzi, taču pagaidām tas ir vienīgais veids, kā bibliotēka to atbalsta. Šo noslēpumu varat atrast Firebase konsoles izvēlnē Projekta iestatījumi, pakalpojumu konti.

Nākamā definīcija ir ceļš, kurā mēs pārbaudīsim atjauninājumus un ierīces ID. Ierīces ID ir nepieciešams, tādēļ, ja mums ir vairākas ierīces, kas paziņo par tiem pašiem notikumiem, mums ir jāzina, kura ierīce mūs informēja par notikumu, un jāreģistrē tas. Pēdējais mums ir jāiestata tapa, pie kuras mēs esam pievienojuši skaņas signālu, un mūsu gadījumā tas ir D2.

Iestatīšanas funkcija definē iebūvēto LED tapu un D2 tapas kā izejas, sāciet seriālo komunikāciju, lai uzzinātu, kas notiek, un izveido savienojumu ar norādīto WiFi tīklu. Kad savienojums ir izveidots, tas sāk saziņu ar Firebase un iegūst pēdējo vērtību, par kuru ziņojām. Pēc tam tas sāk klausīties izmaiņas norādītajā ceļā.

Galvenajā cilpā tiek izsaukta mirgošanas funkcija, kas mirgo iebūvēto gaismas diodi 500 milisekundēs, lai mēs varētu noteikt, ka ierīce ir aktīva. Kad tiek konstatētas izmaiņas un ir pieejami dati, kurus varam nolasīt, izmantojot pieejamo funkciju, tiek nolasīta jaunā mezgla vērtība, tiek aprēķināta starpība, jo pa to laiku varētu būt notikuši vairāki notikumi, un par katru reizi tiek atskaņots pīkstiens. no starpības.

Piemēram, ja starpība starp pēdējo ziņoto vērtību un jauno vērtību ir 4, tiks atskaņoti 4 pīkstieni, lai jūs informētu, ka ir veikti 4 jauni pirkumi. Pīkstiena funkcija izmanto iebūvēto signālu funkciju, lai noteiktu laiku atskaņotu noteiktu frekvenci, izmantojot skaņas signālu.

Pēc pīkstienu atskaņošanas norādītajai ierīcei tiek atjaunināta jaunā vērtība un straumēšana tiek atsākta vēlreiz. Pašlaik arduino firebase bibliotēkā ir atklāta problēma, ka straumēšana netiek automātiski turpināta pēc vērtības manuālas saglabāšanas, tāpēc mums tā ir jārestartē.

4. solis: izbaudiet savu ierīci

Izbaudiet savu ierīci!
Izbaudiet savu ierīci!

Viss mans izmantotais kods ir pieejams manā GitHub kontā, kas ir saistīts tālāk, kopā ar saiti uz projekta shēmu.

Avota kods

Shematisks

Šo kodu var viegli pieņemt, lai tas darbotos daudzos dažādos scenārijos un notikumos, un es esmu pārliecināts, ka jums būs ļoti jautri spēlēties ar to.

Man šī bija patiešām jautra būve, un man izdevās par to uzzināt daudz, un par to esmu patiesi laimīgs. Es ceru, ka tas var jums palīdzēt jūsu projektā, bet, ja atrodaties iestrēdzis kādā no tā daļām vai jums ir nepieciešami papildu paskaidrojumi, lūdzu, informējiet mani komentāros, un es darīšu visu iespējamo, lai jums palīdzētu.

Ja jums patika projekts, lūdzu, abonējiet manu YouTube kanālu:

Izbaudiet kodu

Ieteicams: