Langaton ilmoitustaulu on hyvin valikoiva termi tälle hankkeelle, koska sillä on hyvin laaja soveltamisala eikä vain yksinkertainen ilmoitustaulu. Ensinnäkin meidän pitäisi ymmärtää tämän projektin tarkoitus, tässä järjestelmässä voimme näyttää viestin tai ilmoituksen jollekin näyttölaitteelle, kuten LCD, ja tämä viesti voidaan helposti asettaa tai vaihtaa mistä päin maailmaa tahansa, vain käyttämällä puhelimesi tekstiviestitoimintoa. matkapuhelin. Minkä ilmoituksen haluamme näyttää, lähetä vain tekstiviesti tekstiviestillä, jossa on etuliite ja jälkiliite.
Tämä on erittäin hyödyllistä hotelleissa, ostoskeskuksissa, korkeakouluissa, toimistoissa ja sitä voidaan käyttää missä tahansa, jopa kotona. Kuten voit asettaa viestin, kuten "Älä häiritse" hotellihuoneen portille, voit asettaa viestin kotiisi oven portaalle, kun olet poissa, ja tietysti sitä käytetään ilmoitustauluna kouluissa, korkeakouluissa, elokuvateattereissa jne. kyllä, se ei vain ole yksinkertainen viestitaulu, tämän projektin hyödyllisyys on, että voit asettaa tai muuttaa viestin tai ilmoituksen mistä tahansa, vain lähettämällä tekstiviestejä puhelimestasi. Voit myös tarkistaa samanlaisen projektin, mutta erityyppisellä näytöllä: Arduino-tulostaulu Outdoor P10 LED -matriisinäytöllä.
Olemme aiemmin käyttäneet matkapuhelimen tekstiviestitoimintoa kodinturvallisuuteen ja kodinkoneiden etähallintaan: PIR-anturi ja GSM-pohjainen turvajärjestelmä ja GSM-pohjainen kotiautomaatio Arduinolla
A
Työselitys:
Tässä projektissa Arduino UNO: ta käytetään koko prosessin ohjaamiseen, GSM-moduulia (SIM900A) matkapuhelimelta ja LCD- näytöltä lähetetyn tekstiviestin / viestin vastaanottamiseksi viestin näyttämiseksi.
Voimme lähettää tekstiviestillä jonkin viestin tai ilmoituksen, kuten "#Circuit Digest *", "#We Welcome You *". Tässä olemme käyttäneet sanamerkkijonossa etuliitettä, joka on #. Tätä etuliitettä käytetään viestin tai ilmoituksen alkamisen tunnistamiseen. Ja '*' käytetään loppuliitteenä osoittamaan viestin tai ilmoituksen loppua.
Kun lähetämme tekstiviestejä matkapuhelimesta GSM-moduuliin, GSM vastaanottaa kyseisen tekstiviestin ja lähettää sen Arduinolle. Arduino luki nyt tämän tekstiviestin ja poimi pääilmoitusviestin vastaanotetusta merkkijonosta ja tallentaa toisen merkkijonon. Ja sitten purettu viesti lähetetään 16x2 LCD: lle käyttämällä sopivia komentoja.
Tämän järjestelmän jatkotoimet on selitetty alla olevassa Koodin kuvaus -osiossa. Ennen ohjelmoinnin yksityiskohtien aloittamista meidän tulisi tietää GSM-moduulista.
GSM-moduuli:
GSM-moduulia käytetään monissa tietoliikennelaitteissa, jotka perustuvat GSM (Global System for Mobile Communications) -tekniikkaan. Sitä käytetään vuorovaikutuksessa GSM-verkon kanssa tietokonetta käyttäen. GSM-moduuli ymmärtää vain AT-komennot ja voi vastata vastaavasti. Peruskäsky on “AT”, jos GSM vastaa OK, se toimii hyvin, muuten se vastaa ”ERROR”. On olemassa useita AT-komentoja, kuten ATA puheluun vastaamiseksi, ATD puhelun valitsemiseksi, AT + CMGR viestin lukemiseksi, AT + CMGS tekstiviestien lähettämiseksi jne. AT-komentojen jälkeen tulisi olla Carriage return eli \ r (0D heksalla), kuten "AT + CMGS \ r". Voimme käyttää GSM-moduulia seuraavilla komennoilla:
ATE0 Kaiku pois päältä
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = ”Matkapuhelinnumero”
>> Nyt voimme kirjoittaa viestimme
>> Viestin kirjoittamisen jälkeen
Ctrl + Z Lähetä viestikomento (26 desimaalilla).
ENTER = 0x0d HEX: ssä
SIM900 on täydellinen Quad- GSM / GPRS-moduuli, joka tuottaa GSM / GPRS 850/900 / 1800/1900 MHz suorituskyvyn puhelut, tekstiviestit ja tiedot, joiden alhainen virrankulutus.
Piirin kuvaus:
Langattoman ilmoitustaulun liitännät GSM: n ja Arduinon kanssa ovat yksinkertaisia ja näkyvät alla olevassa kuvassa. Tässä nestekidenäyttöä (LCD) käytetään "Ilmoituksen" tai viestin näyttämiseen, joka lähetetään matkapuhelimen kautta tekstiviestinä. LCD: n datanastat eli RS, EN, D4, D5, D6, D7 on kytketty digitaaliseen arduino-nastaan numeroihin 7, 6, 5, 4, 3, 2. Ja GSM-moduulin Rx- ja Tx-nastat on kytketty suoraan Tx- ja Rx-pisteisiin pin Arduino vastaavasti. Ja GSM-moduuli saa virtansa käyttämällä 12 voltin sovitinta.
Koodin kuvaus:
Ohjelman koodi on helposti ymmärrettävä; uusi asia tässä on GSN- alustusfunktio gsm_init (), joka selitetään lopulta.
Ohjelmaan sisällytetään ensinnäkin kirjasto nestekidenäytölle (LCD) ja sitten määritetään tiedot ja ohjaustapit LCD: lle ja joillekin muuttujille.
#sisältää
Tämän jälkeen sarjaliikenne alustetaan 9600 bps: llä ja antaa käytetylle pinille suunnan. Ja alusta GSM-moduuli asennuspiirissä.
void setup () {lcd.begin (16,2); Sarjan alku (9600); pinMode (led, OUTPUT); digitalWrite (led, HIGH); lcd.print ("GSM Initilizing…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("Langaton ilmoitus");
Sarjatiedon vastaanottamiseen käytämme kahta toimintoa, joista toinen on Serial.available, joka tarkistaa mahdolliset sarjatiedot tai ei, ja toinen on Serial.read, joka lukee sarjaan tulevat tiedot.
void serialEvent () {while (Sarja.available ()) {char ch = (char) Sarja.lue (); str = ch; jos (ch == '*') {temp = 1; lcd.clear (); lcd.print ("Vastaanotettu viesti"); viive (1000); }}}
Saatuamme tiedot sarjaan, tallennamme ne merkkijonoon ja tämä merkkijono tarkistetaan '#' ja '*', jotta löydetään ilmoituksen tai viestin alku ja loppu. Lopuksi Ilmoitus tulostetaan nestekidenäytölle käyttämällä lcd.print:
void loop () {for (allekirjoittamaton int t = 0; t <60000; t ++) {serialEvent (); jos (temp == 1) {x = 0, k = 0, lämpötila = 0; kun (x
Alustustoiminto 'gsm_init () ' 'GSM: lle on tässä tärkeä, missä ensinnäkin GSM-moduuli tarkistetaan, onko se kytketty vai ei, lähettämällä AT-komento GSM-moduuliin. Jos vastaus on OK, se tarkoittaa, että se on valmis. Järjestelmä jatkaa moduulin tarkistamista, kunnes se on valmis tai kunnes OK tulee. Sitten ECHO kytketään pois päältä lähettämällä ATE0-komento, muuten GSM-moduuli toistaa kaikki komennot. Sitten lopuksi verkon saatavuus tarkistetaan 'AT + CPIN?' komento, jos asetettu kortti on SIM-kortti ja PIN-koodi on läsnä, se antaa vastauksen + CPIN: VALMIS. Tämä tarkistetaan myös toistuvasti, kunnes verkko löytyy. Tämä voidaan ymmärtää selvästi alla olevasta videosta.
void gsm_init () {lcd.clear (); lcd.print ("Etsii moduuli.."); totuusarvo atlippu = 1; while (at_flag) {Sarja.println ("AT"); kun taas (Sarja.käytettävissä ()> 0) {if (Sarja.etsit ("OK")) at_lippu = 0; } viive (1000); }