Sisällysluettelo:

Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita: 9 vaihetta (kuvilla)
Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita: 9 vaihetta (kuvilla)

Video: Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita: 9 vaihetta (kuvilla)

Video: Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita: 9 vaihetta (kuvilla)
Video: #9 Ohjelmoi ESP8266 Modbus TCP || FLProg || VTSCADA 2024, Kesäkuu
Anonim
Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita
Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita
Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita
Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita
Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita
Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita
Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita
Langaton Arduino -hälytysjärjestelmä, joka käyttää olemassa olevia antureita

Tämä projekti voidaan rakentaa noin puolessa tunnissa ja maksaa noin 20,00 dollaria, jos sinulla on olemassa olevat 433Mhz tai 315Mhz langattomat hälytysanturit.

Se voi olla myös täysin uusi projekti langattomilla hälytysantureilla, kuten infrapuna -liiketunnistimilla ja reed -kytkimillä, helposti ja edullisesti verkossa. Etsi vain 433Mhz tai 315Mhz antureita, jotka käyttävät PT2262- tai EV1527 -koodausta.

Olen varma, että monet minun kaltaiseti ovat ostaneet langattomilla antureilla varustetun GSM/2G -hälytysjärjestelmän ja olivat siihen tyytyväisiä, mutta kun 2G/GSM -verkko sammutettiin asuinpaikastani, minulle jäi hälytysjärjestelmä ei enää ohjelmoi tai edes aseta aikaa sille. Eräänä päivänä mietin, mitä voisin tehdä saadakseni hälytyksen toimimaan uudelleen, mieleeni tuli tarkistaa, voiko Arduino vastaanottaa signaaleja antureista. Törmäsin epäluotettavaan https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ ja havaitsin kokeilun jälkeen, että voisin vastaanottaa signaalit olemassa olevista antureistani. Aloitin prosessin rakentaa hälytysjärjestelmä, joka voisi korvata nykyisen hälytykseni ja parantaisi myös toiminnallisuutta. Yksi vanhan hälytyksen ongelmista ei ollut koskaan tietää tarkasti, mikä 25 anturista lähti, lisäämällä nestekidenäytön uuteen hälytysrakenteeseeni, nyt saan LCD -näytölle tekstin, joka osoittaa tarkasti, mikä anturi aktivoitiin. Uusi hälytys voidaan edelleen virittää manuaalisesti nykyisillä langattomilla näppäimistöillä, ja siinä on reaaliaikainen kello, jonka avulla se voi virittää ja kytkeä virran pois automaattisesti esiasetettuina vuorokaudenaikoina.

Tarvikkeet

Katso lopussa olevat lisähuomautukset varmistaaksesi, että käytät osien oikeaa versiota.

Arduino Uno tai vastaava

433 tai 315 MHz vastaanotinmoduuli Arduinolle

DS3231 reaaliaikainen kellomoduuli Arduinolle

I2C 16x2 LDC -moduuli Arduinolle

Langattomat hälytyskytkimet, liikeanturit ja kauko -ohjaimet halutulla tavalla

Pietsosummeri

LED- ja 220 ohmin vastus

Leipälauta (valinnainen, mutta suositeltava)

Sopiva virtalähde Arduinolle

Hyppyjohdot jne

PC, johon on asennettu Arduino IDE

Arduinon perustiedot

Vaihe 1: Tarvikkeet

Tarvikkeet
Tarvikkeet
Tarvikkeet
Tarvikkeet
Tarvikkeet
Tarvikkeet

Muutama kuva yllä olevista tarvikkeista tähän projektiin

Vaihe 2: Yhdistä Ardunio ja moduulit kuvan mukaisesti

Kytke Ardunio ja moduulit kuten kuvassa
Kytke Ardunio ja moduulit kuten kuvassa

Pietso Arduinon nastan 5 ja maan välissä

LED Arduinon nastan 8 ja 220 ohmin vastuksen välillä ja sitten maahan

433 tai 315 Mhz -vastaanotin, VCC - 5 V, GND maahan ja jompikumpi Arduinon 2 -nastaisista nastoista 2

I2C 16X2 LCD -moduuli VCC - 5 V, GND maahan, SCL SDA -nastat Arduinon SCL SDA: han (nasta A5 on SCL, nasta A4 on SDA)

DS3231 RTC -moduuli VCC - 5 V, GND maahan, SCL SDA -nastat Arduinon SCL SDA: han (toinen sarja sijaitsee useimpien Arduinon GND- ja AREF -nastojen yläpuolella)

Tiedän, että jotkut teistä eivät tarvitse enempää tietoa kuin tämä ja alla oleva luonnos, mutta kerron tarkemmin kaikille, jotka haluavat hieman lisäapua.

Vaihe 3: Lisää tarvittavat kirjastot Arduino IDE: hen

Lisää tarvittavat kirjastot Arduino IDE: hen
Lisää tarvittavat kirjastot Arduino IDE: hen
Lisää tarvittavat kirjastot Arduino IDE: hen
Lisää tarvittavat kirjastot Arduino IDE: hen
Lisää tarvittavat kirjastot Arduino IDE: hen
Lisää tarvittavat kirjastot Arduino IDE: hen

Arduino Sketch hälytyksen suorittamiseen käyttää joitain kirjastoja, joita ei ole jo asennettu Arduino IDE: hen oletuksena.

RCSwitch -kirjaston lisääminen Arduino IDE: hen. Avaa Arduino IDE ylävalikosta ja valitse "Luonnos", sitten avattavasta valikosta "Sisällytä kirjasto" ja valitse seuraavasta avattavasta valikosta "Hallitse kirjastoja". Kirjoita "Suodata haku" -kenttään "RCSW" ja napsauta seuraavaksi "rc-switch by sui77" -asennusta.

Yksityiskohtaiset ohjeet kirjastojen lisäämisestä osoitteessa

Tässä vaiheessa meidän on myös lisättävä kirjasto nimeltä Time, TimeAlarms, DS1307RTC ja LiquidCrystal_I2C, sama menettely kuin yllä, mutta etsitään jokaisen uuden kirjaston nimi ja asennetaan. Katso yllä olevat kuvakaappaukset, jos et ole varma, mitä kirjastoja haluat käyttää.

Reaaliaikainen DS3231-kello on yhteensopiva DS1307RTC-kirjaston kanssa ja käyttää sitä.

Vaihe 4: Seuraavaksi meidän on hankittava anturien koodit

Seuraavaksi meidän on hankittava anturien koodit
Seuraavaksi meidän on hankittava anturien koodit
Seuraavaksi meidän on hankittava anturien koodit
Seuraavaksi meidän on hankittava anturien koodit

Olen toimittanut alla olevan Arduino -koodin mallin, mutta sinun on löydettävä kunkin anturin arvot ja liitettävä ne koodiin.

Molemmilla sivustoilla on paljon tietoa näiden koodien saamisesta.

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

Tässä kuitenkin lyhennetty versio;

Saadaksesi anturien ja kauko -ohjainten lähettämät koodit, liitä vaiheessa 1 koottu Arduino tietokoneeseen USB -kaapelilla ja avaa Arduino IDE. Siirry sitten Arduino IDE: n avattavaan "Tiedosto" -valikkoon ja siirry kohtaan "Esimerkit", vieritä esimerkkiluetteloa alaspäin, kunnes löydät "RCSWITCH", valitse sitten "ReceiveDemo_Advanced" -luonnos ja lataa se Arduinolle. Kun luonnos on ladattu onnistuneesti, avaa Arduino IDE: n sarjamonitori ja se on edelleen liitettynä tietokoneeseesi USB: n kautta. Käynnistä nyt ensimmäinen antureista, joille haluat saada koodin, RCSwitchin lähtö näkyy sarjamittari -ikkunassa. Tässä projektissa etsimme desimaalikoodeja, kuten kuvakaappaus 2 korostaa. Sinun on käynnistettävä anturi useita kertoja etsimällä useimmin näkyvää desimaaliarvoa, joskus eri arvot sekoitetaan todelliseen arvoon. satunnaisten radioaaltojen tai muiden samalla taajuudella toimivien laitteiden aiheuttamien häiriöiden vuoksi.

Huomaa anturin desimaalikoodi käytettäväksi seuraavassa vaiheessa. Toista kaikki anturit ja kauko -ohjaimet, joita haluat käyttää projektissa, ja seuraa, mikä koodi kullakin anturilla menee. Jos hälytys kytketään päälle ja pois päältä kauko -ohjaimilla, sinun on muistettava kunkin kaukosäätimen viritys- ja poiskytkentäpainikkeen eri koodit.

Vaihe 5: Arduino -koodimalli

Alla on kopio Arduino -koodistani.ino -tiedostona nimeltä Wireless_Alarm. Voit napsauttaa sitä ja sen pitäisi avautua Arduino IDE: ssä. En ole ohjelmoija, koodini on koottu osittain Arduino IDE: n esimerkeistä, se ei todennäköisesti ole erityisen tyylikäs, mutta se toimii ja on ollut luotettava pitkän ajan.

Muista tallentaa luonnos uudelleen, kun olet tehnyt muutokset sisällyttääksesi omien antureidesi koodit.

Vaihe 6: Liitä vaiheessa 5 saamasi koodit Arduino -mallipohjaan

Nyt vaiheet käyttämäsi antureiden ja kauko -ohjainten koodin mukauttamiseen.

Jos avaat Wireless_Alarm -luonnoksen IDE -laitteessasi, näet rivillä 111.

if (mySwitch.getReceivedValue () == 115166236) // Kädensijan painikkeen koodi

Jos nykyisessä koodissa lukee 115166236, sinun on korvattava tämä numero desimaalikoodilla kauko -ohjaimen käsivarsipainikkeelle, jonka tallennit vaiheessa 5.

Jos esimerkiksi vaiheessa 5 saat desimaalin 1154321, muokkaat riviä 111 nyt luettavaksi;

if (mySwitch.getReceivedValue () == 1154321) // Kädensijan painikkeen koodi

Noudata samaa menettelyä rivillä 125.

if (mySwitch.getReceivedValue () == 115166234) // Fobin poiskytkentäpainikkeen koodi

Korvaa vaiheessa 5 tallentamasi kaukosäätimen poiskytkentäpainikkeen koodi 115166234.

Jos haluat virittää ja purkaa useita kauko -ohjaimia, kopioi ja liitä rivit 111–136 niin monta kertaa kuin tarvitaan ja muuta sitten arvoja muiden kauko -ohjainten mukaan, mutta on parasta aloittaa yhdellä kaukosäätimellä, kunnes olet varma luonnos toimii.

Nyt hälytysantureiden koodaamiseen luonnoksessa rivillä 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Toimenpide signaalin lähettäjän toimistokoteloon

Ota 1151640 ulos ja lisää yhden hälytysanturisi desimaaliarvo.

Sitten rivillä 158.

lcd.print (F ("Toimistokaappi")); // tulosta viesti lcd: lle tietääksesi mikä anturi on aktivoitu (ja mene etsimään murtovaras:)

Vaihda Office -kaappi sellaiseksi, jonka haluat näkyvän anturin nestekidenäytössä. Jos esimerkiksi haluat sen lukevan kitchendoor, tee rivi tältä;

lcd.print (F ("Kitchendoor")); // tulosta viesti lcd: lle tietääksesi, mikä anturi oli aktivoitu (ja mene etsimään murtovaras:)

Nimet eivät saa ylittää 16 merkkiä.

Rivien 165 ja 187 välissä on malli, joka kopioidaan ja liitetään niin monta kertaa kuin on tarpeen suoraan alla 187 oleville riveille. Korvaa numero mySwitch.getReceivedValue () == toisen vaiheessa 5 tallentamasi anturin desimaalilla ja muuta nimi "" sisällä lcd.print (F ("sensornamehere")); nimeen, jonka haluat antaa anturillesi.

Jos et käytä kauko-ohjaimia hälytyksen virittämiseen ja virittämiseen, voit jättää huomiotta rivit 111-136 tai laittaa // jokaisen ei-toivotun rivin alkuun, ja Arduino ei lue niitä.

Muista tallentaa tiedosto muutosten jälkeen.

Vaihe 7: Lataa muutettu.ino Arduinoosi ja testaa

Lataa muutettu.ino Arduinoosi ja testaa
Lataa muutettu.ino Arduinoosi ja testaa
Lataa muutettu.ino Arduinoosi ja testaa
Lataa muutettu.ino Arduinoosi ja testaa
Lataa muutettu.ino Arduinoosi ja testaa
Lataa muutettu.ino Arduinoosi ja testaa

Kun Arduino on edelleen liitettynä tietokoneeseesi USB: llä, lataa luonnos Arduino Boardille. Kun lataus on suoritettu onnistuneesti, nestekidenäytössä pitäisi näkyä "Hälytys pois päältä". Paina kauko -ohjaimen käsivarsipainiketta ja nestekidenäytössä lukee "Alarm On Armed" ja LED -merkkivalon tulee palaa, jotta voit tietää, että se on viritetty, käynnistä nyt anturi, kun se on viritetty, nestekidenäytön pitäisi lukea Hälytys ja aikaleima ja anturin sijainnin, äänimerkin pitäisi kuulua 2 minuutin ajan, ellet paina poiskytkentäpainiketta. Jos et saa tätä tulosta, tarkista vaiheessa 5 saamasi koodit ja edellisessä vaiheessa koodiin tekemäsi muutokset, tarkista myös kaikkien komponenttien johdotus. Jos nestekidenäyttö ei lue ollenkaan, LCD -moduulin takana on kontrastisäätö. Kun kontrasti on asetettu oikein, jos nestekidenäyttö ei edelleenkään lue, yritä muuttaa nestekidenäytön osoitetta 0x3f: stä 0x27: ksi luonnoksen rivillä 12. Nestekidenäytön vianmääritys tässä I2C LCD -opetusohjelma

Vaihe 8: RTC -moduulin ajan asettaminen ja viritys- ja poiskytkentäaikojen muuttaminen

Toivottavasti RTC oli jo asetettu oikeaan aikaan, mutta jos et avaa IDE: tä, valitse 'Tiedosto' ja napsauta avattavasta valikosta "Esimerkit", vieritä alas kohtaan "DS1307RTC" ja valitse "SetTime" -luonnos, lataa luonnos Arduino ja se asettaa reaaliaikaisen kellon tietokoneeltasi tulevan ajan kanssa. Sitten sinun on ladattava Wireless_Alarm -luonnos uudelleen Arduinoosi.

Antamani Wireless_Alarm.ino on oletusarvoisesti asettanut hälytyksen kytkeytymään automaattisesti päälle joka ilta kello 22.15 ja kytkeytymään pois päältä kello 6.00 joka aamu. Jos haluat muuttaa näitä aikoja, muokkaa luonnosta riveillä 71 ja 72. Aika on suluissa Alarm.alarmRepeat muodossa HH, MM, SS. muuta tämä sinulle sopivaan aikaan.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // DISARM -aika

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // ARM -aika

Joten jos haluat muuttaa aseistojen poistoajan 9.15am: ksi ja aseistusajan 17.30: ksi, koodi näyttäisi tältä

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // DISARM -aika

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // ARM -aika

Jos et halua hälytyksen kytkeytyvän päälle ja pois päältä, aseta // kahden rivin eteen ja niitä ei käytetä.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // DISARM -aika

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Arm -aika

Hälytyksen merkkiäänen ajan voi muuttaa muuttamalla riviä 22

const pitkä väli = 120000; // millisaviolle hälytysääniä varten

Väli on millisekuntia, joten 120000 = 120 sekuntia, vaihtamalla 120000 arvoon 30000 hälytysääni kuuluu 30 sekunnin ajan.

Solenoidi sireenin, vilkkuvalon, suuren äänenvoimakkuuden jne. Käynnistämiseksi voidaan myös kytkeä nastaan 7 tai nastaan 9, ja se toimii yllä määritetyn "jakson" ajan. Muista, että Arduino -nastan maksimikuorma ei saa ylittää 40 mA.

Vaihe 9: Lisähuomautuksia

Kun valitset Arduinolle 433 tai 315 MHz vastaanotinmoduulin, sinun on valittava taajuus, joka vastaa käytettäviä hälytysantureita. Ehdotan, että ostat moduulin, jossa on pienet kierukka -antennit parhaan suorituskyvyn saavuttamiseksi, tai vaihtoehtoisesti 17,3 mm: n pituiset suorat lanka -antennit lisäävät suorituskykyä.

16x2 LCD -moduulin kanssa sinun on käytettävä 4 -nastaista I2C -LCD -näyttöä, jotta voit käyttää tässä annettuja ohjeita ja koodia. Se voidaan tehdä 16 -nastaisella tavallisella LCD -näytöllä, mutta se ei toimi täällä olevien johtojen tai koodin kanssa.

Langattomien hälytysreed -kytkimien, liikeanturien ja kauko -ohjainten on oltava 433 MHz tai 315 MHz, jotta ne vastaavat vastaanotinta, jota aiot käyttää, ja niiden tulee käyttää PT2262- tai EV1527 -koodausta.

Hälytys on laajennettavissa ja mukautettavissa, olen jo lisännyt SD -kortin tallentamaan, kun anturit laukeavat, muuttanut nestekidenäytön syttymään vain, kun painiketta pidetään painettuna, ja lisännyt 100dB: n sireenin, mutta en ole lisännyt tähän tietoja artikkelin pitämiseksi mahdollisimman lyhyt ja yksinkertainen. Toivon, että tästä hälytyksestä tekemäni työn jakaminen hyödyttää toisia.

Vastailen mielelläni kaikkiin kysymyksiin.

Kiitos.

Suositeltava: