Draadloos mededelingenbord is een zeer selectieve term voor dit project, omdat het een zeer brede reikwijdte heeft in plaats van alleen maar een eenvoudig mededelingenbord te zijn. Eerst moeten we het doel van dit project begrijpen, in dit systeem kunnen we een bericht of kennisgeving weergeven op een weergaveapparaat zoals een LCD-scherm, en dit bericht kan eenvoudig overal ter wereld worden ingesteld of gewijzigd, gewoon door de sms-functie van uw mobiele handset. Welke mededeling we ook willen weergeven, stuur gewoon de sms van die tekst, met een voor- en achtervoegsel.
Dit is erg handig in hotels, winkelcentra, universiteiten, kantoren en kan overal worden gebruikt, zelfs thuis. Zoals u kunt het bericht als 'Niet storen' instellen bij de kamerpoort van uw hotel, het bericht bij de deur van uw huis plaatsen wanneer u weg bent, en het wordt natuurlijk gebruikt als mededelingenbord in scholen, hogescholen, bioscoopzalen enz. En ja, het is gewoon geen eenvoudig prikbord, het nut van dit project is dat je het bericht of de melding overal kunt instellen of wijzigen door gewoon een sms te sturen vanaf je telefoon. Je kunt ook een soortgelijk project bekijken, maar dan op een ander type display: Arduino Scoreboard met Outdoor P10 LED Matrix Display.
We hebben eerder de sms-functie van de mobiele telefoon gebruikt voor thuisbeveiliging en bedienen de huishoudelijke apparaten op afstand: PIR-sensor en GSM-gebaseerd beveiligingssysteem en GSM-gebaseerde huisautomatisering met Arduino
Het is een feit dat u zich geen zorgen hoeft te maken.
Werkende uitleg:
In dit project wordt Arduino UNO gebruikt voor het besturen van het hele proces, GSM-module (SIM900A) om de sms / bericht te ontvangen dat vanaf de mobiele telefoon is verzonden en LCD om het bericht weer te geven.
We kunnen een bericht of bericht zoals "#Circuit Digest *", "#We Welkom *" via de sms sturen. Hier hebben we een voorvoegsel in de berichtstring gebruikt dat '#' is. Dit voorvoegsel wordt gebruikt om het begin van het bericht of bericht te identificeren. En '*' wordt gebruikt als achtervoegsel om het einde van het bericht of bericht aan te geven.
Wanneer we een sms verzenden van een mobiele telefoon naar een gsm-module, ontvangt gsm die sms en stuurt deze naar Arduino. Nu leest Arduino deze sms en haalt het hoofdbericht uit de ontvangen string en slaat het op in een andere string. En verzendt vervolgens het uitgepakte bericht naar 16x2 LCD met behulp van de juiste opdrachten.
De verdere werking van dit systeem wordt uitgelegd in het gedeelte 'Code Beschrijving' hieronder. Voordat we ingaan op programmeerdetails, moeten we de GSM-module kennen.
GSM-module:
GSM-module wordt gebruikt in veel communicatieapparaten die zijn gebaseerd op GSM-technologie (Global System for Mobile Communications). Het wordt gebruikt voor interactie met het GSM-netwerk met behulp van een computer. GSM-module begrijpt alleen AT-commando's en kan dienovereenkomstig reageren. Het meest basale commando is "AT", als GSM OK reageert, werkt het goed, anders reageert het met "ERROR". Er zijn verschillende AT-commando's zoals ATA voor het beantwoorden van een oproep, ATD om een oproep te plaatsen, AT + CMGR om het bericht te lezen, AT + CMGS om de sms te verzenden, etc. AT-commando's moeten worden gevolgd door Carriage return ie \ r (0D in hex), zoals "AT + CMGS \ r". We kunnen de GSM-module gebruiken met behulp van deze opdrachten:
ATE0 Voor echo uit
AT + CNMI = 2,2,0,0,0
BIJ D
AT + CMGF = 1
AT + CMGS = "Mobiel nummer"
>> Nu kunnen we ons bericht schrijven
>> Na het schrijven van bericht
Ctrl + Z stuur bericht commando (26 in decimaal).
ENTER = 0x0d in HEX
De SIM900 is een complete quad-band GSM / GPRS-module die GSM / GPRS 850/900/1800/1900 MHz - prestaties levert voor spraak, sms en data met een laag stroomverbruik.
Circuit Beschrijving:
Verbindingen van een draadloos mededelingenbord met behulp van GSM en Arduino zijn eenvoudig en worden weergegeven in de onderstaande afbeelding. Hier wordt een liquid crystal display (LCD) gebruikt voor het weergeven van de "Notice" of het bericht, dat als sms via de mobiele telefoon wordt verzonden. Datapinnen van LCD, namelijk RS, EN, D4, D5, D6, D7 zijn verbonden met Arduino digitale pin nummer 7, 6, 5, 4, 3, 2. En Rx en Tx pin van GSM module is direct verbonden met Tx en Rx pin van Arduino. En de GSM-module wordt gevoed door een 12 volt adapter.
Code Beschrijving:
De code van het programma is gemakkelijk te begrijpen; het nieuwe hier is de GSN-initialisatiefunctie gsm_init (), die aan het einde wordt uitgelegd.
In het programma nemen we allereerst een bibliotheek op voor liquid crystal display (LCD) en vervolgens definiëren we gegevens en controlepennen voor LCD en enkele variabelen.
# omvatten
Hierna wordt seriële communicatie geïnitialiseerd op 9600 bps en geeft deze richting aan de gebruikte pin. En initialiseer de GSM-module in de setup-lus.
leegte setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); digitalWrite (led, HIGH); lcd.print ("GSM initialiseren…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("Wireless Notice");
Voor het serieel ontvangen van gegevens gebruiken we twee functies, een is Serial.available die controleert of seriële gegevens binnenkomen en de andere is Serial.read die de gegevens leest die serieel komen.
void serialEvent () {while (Serial.available ()) {char ch = (char) Serial.read (); str = ch; if (ch == '*') {temp = 1; lcd.clear (); lcd.print ("Bericht ontvangen"); vertraging (1000); }}}
Nadat we de gegevens serieel hebben ontvangen, slaan we deze op in een string en deze string wordt gecontroleerd op '#' en '*' om het begin en einde van de Notice of het bericht te vinden. Ten slotte wordt de mededeling op het LCD-scherm afgedrukt met lcd.print:
void loop () {for (unsigned int t = 0; t <60000; t ++) {serialEvent (); if (temp == 1) {x = 0, k = 0, temp = 0; terwijl (x
Initialisatiefunctie 'gsm_init () ' voor GSM is hier belangrijk, waarbij eerst wordt gecontroleerd of de GSM-module is verbonden of niet door het 'AT'-commando naar de GSM-module te sturen. Als antwoord OK wordt ontvangen, betekent dit dat het klaar is. Het systeem blijft de module controleren totdat deze klaar is of totdat 'OK' wordt ontvangen. Vervolgens wordt ECHO uitgeschakeld door het ATE0-commando te verzenden, anders zal de GSM-module alle commando's echoën. Ten slotte wordt de netwerkbeschikbaarheid gecontroleerd via de 'AT + CPIN?' commando, als de geplaatste kaart een SIM-kaart is en de PIN aanwezig is, geeft dit het antwoord + CPIN: KLAAR. Dit wordt ook herhaaldelijk gecontroleerd totdat het netwerk is gevonden. Dit kan duidelijk worden begrepen door de onderstaande video.
leegte gsm_init () {lcd.clear (); lcd.print ("Module vinden.."); boolean at_flag = 1; while (at_flag) {Serial.println ("AT"); while (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag = 0; } vertraging (1000); }