Trådlöst anslagstavla är mycket selektivt för detta projekt, eftersom det har ett mycket brett omfång snarare än att bara vara ett enkelt anslagstavla. Först bör vi förstå syftet med detta projekt, i det här systemet kan vi visa ett meddelande eller meddelande till någon visningsenhet som LCD, och detta meddelande kan enkelt ställas in eller ändras från var som helst i världen, bara genom att använda SMS-funktionen på din mobil handenhet. Oavsett vilket meddelande vi vill visa, bara skicka SMS med texten, med något prefix och suffix.
Detta är mycket användbart på hotell, gallerior, college, kontor och kan användas var som helst, även hemma. Som om du kan ställa in meddelandet som "Stör inte" vid ditt hotells rumsport, kan du ställa in meddelandet vid ditt hems dörrsteg när du är borta, och det används naturligtvis som anslagstavla i skolor, högskolor, biosalar etc. Och ja, det är bara inte ett enkelt anslagstavla, nyttan med detta projekt är att du kan ställa in eller ändra meddelandet eller meddelandet var som helst, bara skicka SMS från din telefon. Du kan också kontrollera ett liknande projekt men på en annan typ av skärm: Arduino resultattavla med utomhus P10 LED Matrix Display.
Vi har tidigare använt SMS-anläggningen för mobiltelefon för hemskydd och fjärrstyrning av hushållsapparater: PIR-sensor och GSM-baserat säkerhetssystem och GSM-baserad hemautomation med Arduino
</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>
Arbetsförklaring:
I detta projekt används Arduino UNO för att styra hela processen, GSM-modul (SIM900A) för att ta emot SMS / meddelande som skickas från mobiltelefon och LCD för att visa meddelandet.
Vi kan skicka ett meddelande eller meddelande som "#Circuit Digest *", "#We Welcome You *" via SMS. Här har vi använt ett prefix i meddelandesträngen som är '#'. Detta prefix används för att identifiera början på meddelandet eller meddelandet. Och '*' används som suffix för att ange slutet på meddelandet eller meddelandet.
När vi skickar SMS från mobiltelefon till GSM-modulen tar GSM emot det SMSet och skickar det till Arduino. Nu läser Arduino detta SMS och extraherar huvudmeddelandet från den mottagna strängen och lagrar i en annan sträng. Och skickar sedan det extraherade meddelandet till 16x2 LCD med hjälp av lämpliga kommandon.
Ytterligare bearbetning av detta system förklaras i avsnittet "Kodbeskrivning" nedan. Innan vi går in i programmeringsdetaljer bör vi veta om GSM-modulen.
GSM-modul:
GSM-modulen används i många kommunikationsenheter som är baserade på GSM-teknik (Global System for Mobile Communications). Den används för att interagera med GSM-nätverk med hjälp av en dator. GSM-modulen förstår bara AT-kommandon och kan svara därefter. Det mest grundläggande kommandot är "AT", om GSM svarar OK fungerar det bra annars svarar det med "ERROR". Det finns olika AT-kommandon som ATA för att svara på ett samtal, ATD för att ringa ett samtal, AT + CMGR för att läsa meddelandet, AT + CMGS för att skicka sms etc. AT-kommandon ska följas av Carriage return dvs. \ r (0D i hex), som “AT + CMGS \ r”. Vi kan använda GSM-modulen med följande kommandon:
ATE0 För eko av
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = ”mobilnummer”
>> Nu kan vi skriva vårt meddelande
>> Efter att ha skrivit meddelande
Ctrl + Z skicka meddelandekommando (26 i decimal).
RETUR = 0x0d i HEX
Den SIM900 är en komplett Quad-band GSM / GPRS-modul som levererar GSM / GPRS 850/900 / 1800 / 1900MHz prestanda för röst, SMS och data med låg strömförbrukning.
Kretsbeskrivning:
Anslutningar av trådlöst anslagstavla med GSM och Arduino är enkla och visas i figuren nedan. Här används en LCD-skärm (Liquid Crystal Display) för att visa "Meddelande" eller meddelande, som skickas via mobiltelefonen som SMS. Datapinnar på LCD, nämligen RS, EN, D4, D5, D6, D7 är anslutna till arduino digitala stift nummer 7, 6, 5, 4, 3, 2. Och Rx och Tx-stift på GSM-modulen är direkt ansluten till Tx och Rx pin av Arduino respektive. Och GSM-modulen drivs med en 12-voltsadapter.
Kodbeskrivning:
Programmets kod är lätt att förstå; det nya här är GSN-initialiseringsfunktionen gsm_init (), vilket förklaras i slutändan.
I programmet inkluderar vi först och främst bibliotek för LCD-skärm (liquid crystal display) och sedan definierar vi data och kontrollstift för LCD och vissa variabler.
#omfatta
Efter detta initieras seriekommunikation vid 9600 bps och ger riktning till den använda stiftet. Och initiera GSM-modulen i installationsslingan.
ogiltig installation () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); digitalWrite (ledd, HÖG); lcd.print ("GSM-initiering…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("Trådlöst meddelande");
För att ta emot data seriellt använder vi två funktioner, en är Serial.available som kontrollerar att seriell data kommer eller inte och den andra är Serial.read som läser de data som kommer seriellt.
ogiltigt serialEvent () {while (Serial.available ()) {char ch = (char) Serial.read (); str = ch; om (ch == '*') {temp = 1; lcd.clear (); lcd.print ("Meddelande mottaget"); fördröjning (1000); }}}
Efter att ha tagit emot data seriellt lagrar vi det i en sträng och den här strängen kontrolleras för '#' och '*', för att hitta start och slut på meddelandet eller meddelandet. Sedan slutligen meddelande skrivs ut på LCD med lcd.print:
ogiltig slinga () {för (osignerad int t = 0; t <60000; t ++) {serialEvent (); om (temp == 1) {x = 0, k = 0, temp = 0; medan (x
Initieringsfunktionen 'gsm_init () ' för GSM är viktig här, där GSM-modulen först kontrolleras om den är ansluten eller inte genom att skicka 'AT' -kommandot till GSM-modulen. Om svaret OK tas emot betyder det att det är klart. Systemet fortsätter att kontrollera modulen tills den blir klar eller tills "OK" tas emot. Därefter stängs ECHO av genom att skicka ATE0-kommandot, annars kommer GSM-modulen att echo alla kommandon. Slutligen kontrolleras nätverks tillgänglighet genom "AT + CPIN?" kommandot, om det isatta kortet är SIM-kort och PIN finns, ger det svaret + CPIN: KLAR. Detta kontrolleras också upprepade gånger tills nätverket hittas. Detta kan tydligt förstås av videon nedan.
ogiltigt gsm_init () {lcd.clear (); lcd.print ("Hitta modul.."); booleska at_flag = 1; medan (at_flag) {Serial.println ("AT"); medan (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag = 0; } fördröjning (1000); }