Trådløst opslagstavle er meget selektivt betegnelse for dette projekt, da det har et meget bredt anvendelsesområde snarere end blot at være et simpelt opslagstavle. Først skal vi forstå formålet med dette projekt, i dette system kan vi vise en besked eller en meddelelse til en visningsenhed som LCD, og denne meddelelse kan let indstilles eller ændres fra hvor som helst i verden, bare ved hjælp af SMS-funktionen på din mobiltelefon. Uanset hvilken meddelelse vi vil vise, skal du bare sende SMS'en til den tekst med noget præfiks og suffiks.
Dette er meget nyttigt på hoteller, indkøbscentre, college, kontorer og kan bruges overalt, selv derhjemme. Som om du kan indstille beskeden som "Forstyr ikke" ved dit hotels værelsesport, kan du indstille besked ved dit hjems dørtrin, når du er væk, og selvfølgelig bruges det som opslagstavle i skoler, gymnasier, biografhaller osv. Og ja, det er bare ikke et simpelt opslagstavle, nytten af dette projekt er, at du kan indstille eller ændre beskeden eller meddelelsen fra hvor som helst, bare sende SMS fra din telefon. Du kan også kontrollere et lignende projekt, men på en anden type skærm: Arduino resultattavle ved hjælp af Outdoor P10 LED Matrix Display.
Vi har tidligere brugt mobiltelefonens SMS-funktion til sikkerhed i hjemmet og fjernstyre husholdningsapparaterne: PIR-sensor og GSM-baseret sikkerhedssystem og GSM-baseret hjemmeautomatisering ved hjælp af Arduino
</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>
Arbejdsforklaring:
I dette projekt bruges Arduino UNO til at styre hele processen, GSM-modul (SIM900A) til at modtage SMS / besked sendt fra mobiltelefon og LCD til at vise beskeden.
Vi kan sende en besked eller en meddelelse som "#Circuit Digest *", "#We Welcome You *" via SMS'en. Her har vi brugt et præfiks i meddelelsesstrengen, der er '#'. Dette præfiks bruges til at identificere starten af meddelelsen eller meddelelsen. Og '*' bruges som suffiks til at indikere slutningen af meddelelsen eller meddelelsen.
Når vi sender SMS fra mobiltelefon til GSM-modul, modtager GSM denne SMS og sender den til Arduino. Nu læser Arduino denne SMS og udtrækker hovedmeddelelsen fra den modtagne streng og gemmer i en anden streng. Og sender derefter den udpakkede besked til 16x2 LCD ved hjælp af passende kommandoer.
Yderligere bearbejdning af dette system forklares i afsnittet 'Kodebeskrivelse' nedenfor. Før vi går ind i programmeringsoplysninger, skal vi vide om GSM-modulet.
GSM-modul:
GSM-modulet bruges i mange kommunikationsenheder, der er baseret på GSM-teknologi (Global System for Mobile Communications). Det bruges til at interagere med GSM-netværk ved hjælp af en computer. GSM-modulet forstår kun AT-kommandoer og kan reagere i overensstemmelse hermed. Den mest grundlæggende kommando er “AT”, hvis GSM svarer OK, fungerer den godt, ellers svarer den med “FEJL”. Der er forskellige AT-kommandoer som ATA til besvarelse af et opkald, ATD for at ringe til et opkald, AT + CMGR for at læse beskeden, AT + CMGS for at sende sms osv. AT-kommandoer skal følges af Carriage return dvs. \ r (0D i hex), som “AT + CMGS \ r”. Vi kan bruge GSM-modul ved hjælp af disse kommandoer:
ATE0 Til ekko fra
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = ”mobilnummer”
>> Nu kan vi skrive vores besked
>> Efter at have skrevet besked
Ctrl + Z send beskedkommando (26 i decimal).
ENTER = 0x0d i HEX
Den SIM900 er en komplet Quad-band GSM / GPRS-modul, som leverer GSM / GPRS 850/900 / 1800 / 1900MHz ydeevne til tale, sms og data med lavt strømforbrug.
Beskrivelse af kredsløb:
Forbindelser til trådløst opslagstavle ved hjælp af GSM og Arduino er enkle og vist i nedenstående figur. Her bruges et LCD-display (Liquid Crystal Display) til visning af "Notice" eller meddelelsen, der sendes via mobiltelefonen som SMS. Datastifter på LCD, nemlig RS, EN, D4, D5, D6, D7, er forbundet til arduino digital pin nummer 7, 6, 5, 4, 3, 2. Og GSM-modulets Rx og Tx-pin er direkte forbundet med Tx og Rx pin af henholdsvis Arduino. Og GSM-modulet får strøm ved hjælp af en 12 volt adapter.
Kode Beskrivelse:
Programmets kode er let forståelig; den nye ting her er GSN-initialiseringsfunktionen gsm_init (), som forklares i sidste ende.
I programmet inkluderer vi først og fremmest bibliotek til LCD-skærm (liquid crystal display) og derefter definerer vi data og kontrolpinde til LCD og nogle variabler.
#omfatte
Herefter initialiseres seriel kommunikation med 9600 bps og giver retning til brugt pin. Og initialiser GSM-modul i installationssløjfe.
ugyldig opsætning () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); digitalWrite (ledet, HØJ); lcd.print ("GSM-initialisering…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("Trådløs meddelelse");
Til seriemodtagelse bruger vi to funktioner, den ene er Seriel.tilgængelig, som kontrollerer, at serielle data kommer eller ej, og den anden er Seriel.læs, der læser de data, der kommer serielt.
ugyldigt serialEvent () {while (Serial.available ()) {char ch = (char) Serial.read (); str = ch; hvis (ch == '*') {temp = 1; lcd.clear (); lcd.print ("Besked modtaget"); forsinkelse (1000); }}}
Efter modtagelse af data serielt gemmer vi dem i en streng, og denne streng kontrolleres for '#' og '*' for at finde starten og slutningen af meddelelsen eller meddelelsen. Derefter udskrives meddelelse på LCD ved hjælp af lcd.print:
ugyldig sløjfe () {for (usigneret int t = 0; t <60000; t ++) {serialEvent (); hvis (temp == 1) {x = 0, k = 0, temp = 0; mens (x
Initialiseringsfunktionen 'gsm_init () ' for GSM er vigtig her, hvor GSM-modulet for det første kontrolleres, om det er tilsluttet eller ikke ved at sende 'AT' -kommandoen til GSM-modulet. Hvis svaret OK modtages, betyder det, at det er klar. Systemet fortsætter med at kontrollere modulet, indtil det bliver klar, eller indtil 'OK' modtages. Derefter slukkes ECHO ved at sende kommandoen ATE0, ellers ekko GSM-modulet alle kommandoerne. Derefter kontrolleres netværkets tilgængelighed gennem 'AT + CPIN?' kommando, hvis indsat kort er SIM-kort og PIN er til stede, giver det svaret + CPIN: KLAR. Dette kontrolleres også gentagne gange, indtil netværket findes. Dette kan tydeligt forstås af videoen nedenfor.
ugyldigt gsm_init () {lcd.clear (); lcd.print ("Finding Module.."); boolsk at_flag = 1; while (at_flag) {Serial.println ("AT"); mens (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag = 0; } forsinkelse (1000); }