Trådløst oppslagstavle er veldig selektivt for dette prosjektet, da det har et veldig bredt omfang i stedet for bare å være et enkelt oppslagstavle. Først skal vi forstå formålet med dette prosjektet. I dette systemet kan vi vise en melding eller melding til noen skjermenheter som LCD, og denne meldingen kan enkelt stilles inn eller endres fra hvor som helst i verden, bare ved å bruke SMS-anlegget til din mobiltelefon. Uansett hvilken melding vi vil vise, er det bare å sende SMS med teksten, med noe prefiks og suffiks.
Dette er veldig nyttig på hoteller, kjøpesentre, høyskoler, kontorer og kan brukes hvor som helst, selv hjemme. Som om du kan angi meldingen som "Ikke forstyrr" ved hotellporten til rommet ditt, kan du stille meldingen på dørtrinnet til hjemmet ditt når du er borte, og selvfølgelig brukes det som oppslagstavle i skoler, høyskoler, kinosaler osv. Og ja, det er bare ikke et enkelt oppslagstavle, nytten av dette prosjektet er at du kan angi eller endre meldingen eller varselet hvor som helst, bare sende SMS fra telefonen. Du kan også sjekke et lignende prosjekt, men på en annen type skjerm: Arduino resultattavle ved bruk av utendørs P10 LED matriseskjerm.
Vi har tidligere brukt SMS-anlegget på mobiltelefonen for sikkerhet i hjemmet og fjernstyrer husholdningsapparater: PIR-sensor og GSM-basert sikkerhetssystem og GSM-basert hjemmeautomatisering ved hjelp av Arduino
</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>
Arbeidsforklaring:
I dette prosjektet brukes Arduino UNO til å kontrollere hele prosessen, GSM-modul (SIM900A) for å motta SMS / melding sendt fra mobiltelefon og LCD for å vise meldingen.
Vi kan sende meldinger eller meldinger som "#Circuit Digest *", "#We Welcome You *" via SMS. Her har vi brukt et prefiks i meldingsstrengen som er '#'. Dette prefikset brukes til å identifisere starten på meldingen eller varselet. Og '*' brukes som suffiks for å indikere slutten på meldingen eller varselet.
Når vi sender SMS fra mobiltelefon til GSM-modul, mottar GSM den SMSen og sender den til Arduino. Nå leste Arduino denne SMSen og hentet ut hovedvarsel fra den mottatte strengen og lagrer i en annen streng. Og sender deretter den utpakkede meldingen til 16x2 LCD ved hjelp av passende kommandoer.
Videre bearbeiding av dette systemet er forklart i delen "Kodebeskrivelse" nedenfor. Før vi går inn i programmeringsdetaljer, bør vi vite om GSM-modulen.
GSM-modul:
GSM-modulen brukes i mange kommunikasjonsenheter som er basert på GSM-teknologi (Global System for Mobile Communications). Den brukes til å samhandle med GSM-nettverk ved hjelp av en datamaskin. GSM-modulen forstår bare AT-kommandoer, og kan svare tilsvarende. Den mest grunnleggende kommandoen er "AT". Hvis GSM svarer OK, fungerer den bra, ellers svarer den med "FEIL". Det er forskjellige AT-kommandoer som ATA for å svare på en samtale, ATD for å ringe en samtale, AT + CMGR for å lese meldingen, AT + CMGS for å sende sms osv. AT-kommandoer skal følges av Vognretur dvs. \ r (0D i heks), som “AT + CMGS \ r”. Vi kan bruke GSM-modul ved hjelp av disse kommandoene:
ATE0 For ekko av
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = ”mobilnummer”
>> Nå kan vi skrive meldingen vår
>> Etter å ha skrevet melding
Ctrl + Z send meldingskommando (26 i desimal).
ENTER = 0x0d i HEX
Den SIM900 er en komplett Quad-band GSM / GPRS-modul som leverer GSM / GPRS 850/900/1800/1900 MHz ytelse for tale, SMS og data med lavt strømforbruk.
Kretsbeskrivelse:
Tilkoblinger av trådløst oppslagstavle ved bruk av GSM og Arduino er enkle og vist i figuren nedenfor. Her brukes en LCD-skjerm (Liquid Crystal Display) for å vise "Merknaden" eller meldingen, som sendes via mobiltelefonen som SMS. Datapinner på LCD nemlig RS, EN, D4, D5, D6, D7 er koblet til arduino digital pin nummer 7, 6, 5, 4, 3, 2. Og Rx og Tx pin på GSM-modulen er direkte koblet til Tx og Rx pin av henholdsvis Arduino. Og GSM-modulen drives av en 12 volt adapter.
Kode Beskrivelse:
Koden til programmet er lett forståelig; den nye tingen her er GSN-initialiseringsfunksjonen gsm_init (), som forklares til slutt.
I programmet inkluderer vi først og fremst bibliotek for LCD-skjerm (liquid crystal display), og deretter definerer vi data og kontrollpinner for LCD og noen variabler.
#inkludere
Etter dette initialiseres seriekommunikasjon med 9600 bps og gir retning til brukt pin. Og initialiser GSM-modulen i konfigureringssløyfen.
ugyldig oppsett () {lcd.begin (16,2); Serial.begin (9600); pinMode (ledet, UTGANG); digitalWrite (ledet, HØYT); lcd.print ("GSM-initialisering…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("Trådløs merknad");
For å motta data serielt bruker vi to funksjoner, den ene er Serial. Tilgjengelig som sjekker at serielle data kommer eller ikke, og den andre er Serial.read som leser dataene som kommer serielt.
ugyldig serialEvent () {while (Serial.available ()) {char ch = (char) Serial.read (); str = lm; hvis (ch == '*') {temp = 1; lcd.clear (); lcd.print ("Melding mottatt"); forsinkelse (1000); }}}
Etter å ha mottatt data serielt lagrer vi det i en streng, og denne strengen blir sjekket for '#' og '*', for å finne start og slutt på merknaden eller meldingen. Så endelig er Merknad skrevet ut på LCD med lcd.print:
ugyldig sløyfe () {for (usignert int t = 0; t <60000; t ++) {serialEvent (); hvis (temp == 1) {x = 0, k = 0, temp = 0; mens (x
Initialiseringsfunksjonen 'gsm_init () ' for GSM er viktig her, for det første sjekkes GSM-modulen om den er koblet til eller ikke ved å sende 'AT' -kommandoen til GSM-modulen. Hvis svaret OK mottas, betyr det at det er klart. Systemet fortsetter å se etter modulen til den blir klar eller til 'OK' mottas. Deretter blir ECHO slått av ved å sende ATE0-kommandoen, ellers vil GSM-modulen ekko alle kommandoene. Så endelig blir nettverkstilgjengeligheten kontrollert gjennom 'AT + CPIN?' kommandoen, hvis det innsatte kortet er SIM-kort og PIN er til stede, gir det svaret + CPIN: KLAR. Dette sjekkes også gjentatte ganger til nettverket er funnet. Dette kan forstås tydelig av videoen nedenfor.
ugyldig gsm_init () {lcd.clear (); lcd.print ("Finne modul.."); boolsk at_flag = 1; while (at_flag) {Serial.println ("AT"); mens (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag = 0; } forsinkelse (1000); }