Sisällysluettelo:

Reaaliaikaiset tapahtumailmoitukset NodeMCU: n (Arduino), Google Firebasen ja Laravelin avulla: 4 vaihetta (kuvilla)
Reaaliaikaiset tapahtumailmoitukset NodeMCU: n (Arduino), Google Firebasen ja Laravelin avulla: 4 vaihetta (kuvilla)

Video: Reaaliaikaiset tapahtumailmoitukset NodeMCU: n (Arduino), Google Firebasen ja Laravelin avulla: 4 vaihetta (kuvilla)

Video: Reaaliaikaiset tapahtumailmoitukset NodeMCU: n (Arduino), Google Firebasen ja Laravelin avulla: 4 vaihetta (kuvilla)
Video: How to Make PLC LCD HMI || FLProg 2024, Marraskuu
Anonim
Image
Image
Reaaliaikaiset tapahtumailmoitukset NodeMCU: n (Arduino), Google Firebasen ja Laravelin avulla
Reaaliaikaiset tapahtumailmoitukset NodeMCU: n (Arduino), Google Firebasen ja Laravelin avulla

Oletko koskaan halunnut saada ilmoituksen, kun verkkosivustollasi tehdään toiminto, mutta sähköposti ei sovi oikein? Haluatko kuulla äänen tai kellon joka kerta, kun teet myynnin? Tai tarvitsetko välitöntä huomiota kotisi hätätilanteen vuoksi?

Tämä laite voi varoittaa sinua reaaliajassa mistä tahansa.

Vaihe 1: Johdotkaa piiri

Johdota piiri
Johdota piiri
Johdota piiri
Johdota piiri

Rakentamani laite koostuu NodeMCU -kortista, jossa on summeri, joka varoittaa minua verkkosivustolla tehdystä myynnistä. Mikro -ohjain on ohjelmoitu Arduino -ohjelmiston avulla ja laukaisuosa voi olla mikä tahansa verkko-, iOS- tai Android -sovellus. Olen luonut kaksi yksinkertaista verkkosovellusta, toinen Laravelissa ja toinen tavallisessa HTML- ja JavaScript -esimerkissä.

Koska NodeMCU -kortti voi toimia turvallisesti n. 12 mA: n virtaan asti, summeri on kytketty NPN -transistorin kautta. Olen käyttänyt 2N2222: tä, koska minulla on monia niistä, mutta olen varma, että periaate on sama kaikkien muiden NPN -transistorien kanssa.

Kytke piiri kytkemällä transistorin kerääjä levyn Vin -nastaan. Summeri toimii 5 V: n jännitteellä, ja koska saamme virran laitteesta USB: stä, tämä nasta antaa meille jännitteen ennen levyn 3.3 V: n säädintä.

Liitä seuraavaksi summerin positiivinen puoli transistorin emitteriin ja summerin negatiivinen tappi mihin tahansa levyn maadoitusnastaan. Olen käyttänyt nastaa 2, mutta voit liittää sen myös nastoihin 9, 25 tai 29.

Transistorin kanta on kytketty nastaan D2, joka korreloi Arduino -ohjelmiston GPIO 4: n kanssa. Tällä asetuksella transistori toimii tehokkaasti kytkimenä, joka kytkee summerin päälle jokaisessa tapahtumassa. Summerin sijasta voit kytkeä releen samalla tavalla, jotta voit käyttää mitä tahansa verkkovirtalaitetta, kuten hehkulamppuja, koneita tai sireenia, jos teet jonkin hälytyslaitteen.

Vaihe 2: Valmistele verkkosovellukset

Valmistele verkkosovellukset
Valmistele verkkosovellukset
Valmistele verkkosovellukset
Valmistele verkkosovellukset
Valmistele verkkosovellukset
Valmistele verkkosovellukset

Laitteen käynnistämiseen ja reaaliaikaiseen osaan käytämme Googlen reaaliaikaista Firebase -tietokantaa. Tämä on Googlen loistava upea NoSQL -pilvitietokanta, joka mahdollistaa reaaliaikaisen tietojen synkronoinnin jokaisen käytetyn alustan välillä.

Luo ensin projekti valitsemallasi nimellä. Kun olet luonut, luo yksittäinen solmu nimeltä "count" ja aloita sen arvo, jos 0. Tämä on aloituslukumme, jota haluamme seurata tulevaisuudessa.

Laravel-sovellus käyttää Kreaitin "firebase-php" -pakettia, ja se on linkitetty alla. Asenna paketti suorittamalla "composer need kreait/firebase-php". Kun asennus on valmis, meidän on luotava ohjain, jossa toiminto tapahtuu. Nimesin menetelmän "päivitykseksi" ja olen yhdistänyt sen POST -toiminnon reiteille.

Firebase -ilmentymän hakemiseksi tarvitset json -tiedoston, joka on ladattava Firebase -konsolistasi. Aseta tämä tiedosto Laravel -projektisi juurihakemistoon ja anna sille nimi firebase.json. Kun haemme firebase -ilmentymää, meidän on annettava polku tähän tiedostoon withCredentials -menetelmällä.

Kun olemme saaneet firebase -ilmentymän, meidän on saatava viittaus tietokantaan ja aiemmin luomaamme solmuun. Kullakin toiminnolla saamme solmun nykyisen arvon, lisäämme sitä yhdellä ja tallennamme, jos palaamme tietokantaan. Tämä seuraa tapahtumiamme, joista meidän on ilmoitettava.

Sama voidaan saavuttaa tavallisella HTML- ja JavaScript -koodilla käyttämällä mukana toimitettua firebase -kirjastoa. Sen avulla meidän on ensin annettava määritysjärjestykselle asianmukaiset asetukset Firebase -konsolista ja alustettava sovellus. Alustamisen jälkeen saamme viittauksen solmuun, johon tallennamme tapahtumamäärät, ja liitämme kuuntelijan noutamaan mahdolliset arvomuutokset.

Lisäksi sen sijaan, että lähetämme lomakkeen kuten Laravel -esimerkissä, meillä on nyt JavaScript -toiminto, jota kutsutaan painikkeen napsautuksella, päivittää laskennan ja kirjoittaa päivitetyn arvon takaisin tietokantaan.

Vaihe 3: Ohjelmoi NodeMCU -kortti

Ohjelmoi NodeMCU -kortti
Ohjelmoi NodeMCU -kortti
Ohjelmoi NodeMCU -kortti
Ohjelmoi NodeMCU -kortti
Ohjelmoi NodeMCU -kortti
Ohjelmoi NodeMCU -kortti

NodeMCU: n ohjelmointiin olen käyttänyt Arduino -ohjelmistoa ja asentanut levyn siihen varmistin, että valitsin oikean version ja portin, jotta voin ladata ohjelmiston. Minun versio on 1.0, joten tarkista korttisi ennen kuin jatkat.

Arduino -koodin ensimmäinen osa määrittää kaikki tarvittavat määritelmät, joita sinun on säädettävä laitteellasi. Ensimmäinen tällainen asetus on WiFi: n SSID ja sen salasana, sitten meidän on määritettävä firebase -URL -osoite ja firebase db -salaisuus. Valitettavasti tämä ei ole suositeltava tapa muodostaa yhteys tietokantaan, mutta toistaiseksi se on ainoa tapa, jolla kirjasto tukee sitä. Löydät tämän salaisuuden Firebase -konsolin Project Settings (Palvelutilit) -valikosta.

Seuraava määritelmä on polku, josta tarkistamme päivitykset ja laitteen tunnuksen. Laitetunnus tarvitaan, joten jos meillä on useita laitteita ilmoittamaan samoista tapahtumista, meidän on tiedettävä, mikä laite ilmoitti meille tapahtumasta, ja pidettävä siitä kirjaa. Viimeisenä meidän on asetettava tappi, johon olemme liittäneet summerin, ja tämä on tapauksessamme D2.

Asennustoiminto määrittää sisäänrakennetun led -nastan ja D2 -nastat ulostuloiksi, käynnistä sarjaliikenne, jotta tiedät mitä tapahtuu, ja muodostaa yhteyden määritettyyn WiFi -verkkoon. Kun yhteys on muodostettu, se aloittaa viestinnän Firebasen kanssa ja saa viimeisimmän ilmoittamamme arvon. Sitten se alkaa kuunnella muutoksia määritetyllä polulla.

Pääsilmukassa on kutsu vilkkua -toimintoon, joka vilkuttaa sisäänrakennettua lediä 500 millisekuntia, jotta voimme kertoa, että laite on aktiivinen. Kun muutos havaitaan ja käytettävissä olevaa dataa voidaan lukea käytettävissä olevalla funktiolla, solmun uutta arvoa luetaan, ero lasketaan, koska sillä välin on saattanut tapahtua useita tapahtumia, ja kuuluu äänimerkki joka kerta eroa.

Jos esimerkiksi viimeksi ilmoitetun arvon ja uuden arvon välinen ero on 4, kuuluu 4 äänimerkkiä, jotka kertovat, että 4 uutta ostosta on tehty. Äänimerkki käyttää sisäänrakennettua äänitoimintoa toistamaan tietyn taajuuden summerin läpi tietyn ajan.

Kun äänimerkit on annettu, uusi arvo päivitetään määritetylle laitteelle ja suoratoisto käynnistetään uudelleen. Tällä hetkellä arduino firebase -kirjastossa on avoin ongelma, että suoratoisto ei jatku automaattisesti sen jälkeen, kun olemme tallentaneet arvon manuaalisesti, joten meidän on käynnistettävä se uudelleen.

Vaihe 4: Nauti laitteestasi

Nauti laitteestasi!
Nauti laitteestasi!

Koko käyttämäni koodi on saatavilla alla linkitetyllä GitHub -tililläni sekä linkki projektin kaavioon.

Lähdekoodi

Kaavamainen

Koodi voidaan helposti omaksua toimimaan monissa eri tilanteissa ja tapahtumissa, ja olen varma, että sinulla on hauskaa pelata sen kanssa.

Minulle tämä oli todella hauska rakennus ja onnistuin oppimaan siitä paljon ja olen siitä todella onnellinen. Toivon, että se voi auttaa sinua projektissasi, mutta jos huomaat olevasi jossakin osassa sitä tai tarvitset lisäselvityksiä, kerro siitä minulle kommenteissa, niin autan sinua parhaani mukaan.

Jos pidit projektista, tilaa YouTube -kanavani:

Maista koodi

Suositeltava: