Brezžična oglasna deska je zelo selektiven izraz za ta projekt, saj ima zelo širok obseg in ne le preprosta oglasna deska. Najprej bi morali razumeti namen tega projekta, v tem sistemu lahko prikažemo sporočilo ali obvestilo na neki prikazovalni napravi, kot je LCD, in to sporočilo lahko enostavno nastavite ali spremenite kjer koli na svetu, samo s pomočjo SMS-sporočila vašega mobilna slušalka. Ne glede na obvestilo, ki ga želimo prikazati, preprosto pošljite SMS tega besedila z nekaj predpono in pripono.
To je zelo koristno v hotelih, nakupovalnih središčih, na fakultetah, v pisarnah in se lahko uporablja kjer koli, tudi doma. Tako kot lahko nastavite sporočilo, kot je »Ne moti« na vratih hotelske sobe, lahko nastavite sporočilo na stopnici doma, ko vas ni, in seveda se uporablja kot oglasna deska v šolah, fakultetah, kino dvoranah itd. ja, preprosto ni preprosta oglasna deska, koristnost tega projekta je, da lahko sporočilo ali obvestilo nastavite ali spremenite od koder koli, samo s pošiljanjem SMS-ov iz telefona. Lahko tudi preverite podoben projekt, vendar na drugem tipu zaslona: Arduino Scoreboard z zunanjim P10 LED matričnim zaslonom.
Pred tem smo uporabljali SMS-storitev mobilnega telefona za domačo varnost in daljinsko upravljanje gospodinjskih aparatov: PIR-senzor in GSM-zaščitni sistem ter GSM-avtomatizirano domovanje z uporabo Arduino
U
Delovna razlaga:
V tem projektu se Arduino UNO uporablja za nadzor celotnega procesa, modul GSM (SIM900A) za sprejemanje SMS / sporočila, poslanega z mobilnega telefona, in LCD za prikaz sporočila.
Prek SMS-a lahko pošljemo nekaj sporočil ali obvestil, kot so "#Circuit Digest *", "#We Welcome You *". Tu smo uporabili predpono v sporočilnem nizu, ki je '#'. Ta predpona se uporablja za identifikacijo začetka sporočila ali obvestila. In »*« se uporablja kot pripona za označevanje konca sporočila ali obvestila.
Ko pošljemo SMS z mobilnega telefona na modul GSM, GSM prejme ta SMS in ga pošlje Arduinu. Zdaj Arduino prebere ta SMS in iz prejetega niza izvleče glavno obvestilo ter shrani v drug niz. Nato izvlečeno sporočilo z ustreznimi ukazi pošlje na LCD 16x2.
Nadaljnje delovanje tega sistema je razloženo v spodnjem oddelku "Opis kode". Preden se lotimo podrobnosti programiranja, moramo vedeti o GSM modulu.
GSM modul:
GSM modul se uporablja v številnih komunikacijskih napravah, ki temeljijo na tehnologiji GSM (Global System for Mobile Communications). Uporablja se za interakcijo z omrežjem GSM s pomočjo računalnika. Modul GSM razume samo ukaze AT in se lahko ustrezno odzove. Najosnovnejši ukaz je »AT«, če se GSM odzove v redu, potem deluje dobro, sicer se odzove z »ERROR«. Obstajajo različni ukazi AT, kot so ATA za sprejem klica, ATD za klicanje, AT + CMGR za branje sporočila, AT + CMGS za pošiljanje sms-a itd. Ukazom AT mora slediti Carriage return, tj. R (0D v šestnajstiški vrstici)), na primer »AT + CMGS \ r«. Modul GSM lahko uporabljamo s pomočjo teh ukazov:
ATE0 Za odmev
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = "Mobilna številka"
>> Zdaj lahko napišemo svoje sporočilo
>> Po pisanju sporočila
Ctrl + Z ukaz za pošiljanje sporočila (26 v decimalnih mestih).
ENTER = 0x0d v šestnajstiškem
SIM900 je popolna Quad-band / GPRS modul GSM, ki zagotavlja GSM / GPRS 850/900/1800 / 1900MHz zmogljivosti za govorno, SMS in podatkov z nizko porabo energije.
Opis vezja:
Povezave brezžične oglasne deske z uporabo GSM in Arduino so preproste in prikazane na spodnji sliki. Tu se zaslon s tekočimi kristali (LCD) uporablja za prikaz obvestila ali sporočila, ki se pošlje prek mobilnega telefona kot SMS. Podatkovni zatiči LCD, in sicer RS, EN, D4, D5, D6, D7, so povezani na arduino digitalni pin številka 7, 6, 5, 4, 3, 2. In Rx in Tx zatič GSM modula je neposredno povezan na Tx in Rx pin Arduina. GSM modul pa napaja 12-voltni adapter.
Koda Opis:
Koda programa je lahko razumljiva; nova stvar pri tem je funkcija za inicializacijo GSN gsm_init (), ki je pojasnjena na koncu.
V program najprej vključimo knjižnico za zaslon s tekočimi kristali (LCD), nato določimo podatke in nadzorne nožice za LCD ter nekatere spremenljivke.
#include
Po tem se zaporedna komunikacija inicializira s hitrostjo 9600 bps in usmerja uporabljeni pin. In inicializirajte GSM modul v nastavitveni zanki.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, IZHOD); digitalWrite (led, HIGH); lcd.print ("GSM se zažene…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("Brezžično obvestilo");
Za zaporedno sprejemanje podatkov uporabljamo dve funkciji, ena je Serial.available, ki preveri, ali prihajajo serijski podatki ali ne, druga pa Serial.read, ki bere podatke, ki prihajajo serijsko.
void serialEvent () {while (Serial.available ()) {char ch = (char) Serial.read (); str = ch; če (ch == '*') {temp = 1; lcd.clear (); lcd.print ("Prejeto sporočilo"); zamuda (1000); }}}
Po serijskem prejemu podatkov jih shranimo v niz in ta niz se preveri za '#' in '*', da se poišče začetek in konec obvestila ali sporočila. Nato se na LCD-ju natisne obvestilo s pomočjo lcd.print:
void loop () {for (unsigned int t = 0; t <60000; t ++) {serialEvent (); če (temp == 1) {x = 0, k = 0, temp = 0; medtem ko (x
Tu je pomembna funkcija inicializacije 'gsm_init () ' za GSM, kjer najprej GSM modul preveri, ali je povezan ali ne, s pošiljanjem ukaza 'AT' modulu GSM. Če je odgovor prejet, pomeni, da je pripravljen. Sistem nadaljuje s preverjanjem modula, dokler ni pripravljen ali dokler ne prejme 'OK'. Nato se ECHO izklopi s pošiljanjem ukaza ATE0, sicer bo modul GSM odmeval vse ukaze. Nato se končno preveri razpoložljivost omrežja s pomočjo 'AT + CPIN?' Če je vstavljena kartica SIM kartica in je prisoten PIN, se prikaže odgovor + CPIN: PRIPRAVLJEN. To tudi večkrat preverite, dokler ne najdete omrežja. To lahko jasno razumemo v spodnjem videoposnetku.
void gsm_init () {lcd.clear (); lcd.print ("Iskanje modula.."); logična at_flag = 1; while (at_flag) {Serial.println ("AT"); while (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag = 0; } zamuda (1000); }