A vezeték nélküli hirdetőtábla nagyon szelektív kifejezés ennek a projektnek, mivel nagyon széles körű, és nem csupán egyszerű hirdetőtábla. Először meg kell értenünk a projekt célját, ebben a rendszerben üzenetet vagy értesítést jeleníthetünk meg valamilyen megjelenítő eszközön, például az LCD-n, és ezt az üzenetet egyszerűen beállíthatjuk vagy megváltoztathatjuk a világ bármely pontjáról, csak az Ön SMS-szolgáltatásának használatával. mobil kézibeszélő. Bármilyen értesítést is szeretnénk megjeleníteni, küldje el ennek a szövegnek az SMS-ét, némi előtaggal és utótaggal.
Ez nagyon hasznos szállodákban, bevásárlóközpontokban, főiskolákon, irodákban, és bárhol, akár otthon is használható. Mint például a „Ne zavarjanak” üzenetet állíthatja be a szállodája szobájának kapujában, üzenetet állíthat az otthona ajtajánál, amikor távol van, és természetesen hirdetőtáblaként használják iskolákban, főiskolákon, moziteremekben stb. igen, csak nem egyszerű üzenőfal, a projekt hasznossága, hogy bárhonnan beállíthatja vagy megváltoztathatja az üzenetet vagy értesítést, csak SMS-t küldhet a telefonjáról. Megvizsgálhat hasonló projektet is, de más típusú kijelzőn: Arduino eredménytábla a Outdoor P10 LED Matrix Display segítségével.
Korábban a mobiltelefon SMS szolgáltatását használtuk otthoni biztonságra és a háztartási készülékek távvezérlésére: PIR érzékelő és GSM alapú biztonsági rendszer és GSM alapú otthoni automatizálás az Arduino segítségével
A
Munka magyarázat:
Ebben a projektben az Arduino UNO- t használják a teljes folyamat vezérléséhez, a GSM-modult (SIM900A) a mobiltelefonról és az LCD- ről küldött SMS / üzenet fogadására az üzenet megjelenítéséhez.
SMS-ben küldhetünk üzenetet vagy értesítést, például „#Circuit Digest *”, „#We Welcome You *”. Itt az előtagot használtuk az üzenet karaktersorozatában, amely „#”. Ez az előtag az üzenet vagy értesítés kezdetének azonosítására szolgál. A „*” -t utótagként használják az üzenet vagy értesítés végének jelzésére.
Amikor mobiltelefonról küldünk SMS-t a GSM modulba, akkor a GSM megkapja azt az SMS-t és elküldi az Arduino-nak. Az Arduino elolvasta ezt az SMS-t, és kivonja a fő értesítési üzenetet a kapott karakterláncból, és egy másik karakterláncban tárolja. Ezután megfelelő parancsok segítségével elküldi a kibontott üzenetet a 16x2 LCD-re.
Ennek a rendszernek a további működését az alábbi „Kódleírás” szakasz ismerteti. Mielőtt belekezdenénk a programozás részleteibe, tudnunk kell a GSM modulról.
GSM modul:
A GSM modult számos kommunikációs eszközben használják, amelyek a GSM (Globális Mobil Kommunikációs Rendszer) technológián alapulnak. Arra használják, hogy számítógéppel kommunikáljanak a GSM hálózattal. A GSM modul csak az AT parancsokat érti, és ennek megfelelően tud válaszolni. A legalapvetőbb parancs az „AT”, ha a GSM rendben van, akkor jól működik, különben „ERROR” -val válaszol. Különböző AT parancsok léteznek, például ATA a hívás fogadásához, ATD hívás tárcsázásához, AT + CMGR az üzenet elolvasásához, AT + CMGS az sms küldéséhez stb. Az AT parancsokat a Carriage return követi, azaz \ r (0D hexán), például „AT + CMGS \ r”. A GSM modult a következő parancsok segítségével használhatjuk:
ATE0 A visszhang kikapcsolásához
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = „Mobilszám”
>> Most megírhatjuk az üzenetünket
>> Üzenet írása után
Ctrl + Z üzenetküldés parancs (26 tizedesjegyben).
ENTER = 0x0d a HEX-ben
A SIM900 egy teljes négysávú GSM / GPRS modul, amely GSM / GPRS 850/900/1800 / 1900MHz teljesítményt nyújt alacsony energiafogyasztású hang-, SMS- és adatátvitelhez.
Áramkör leírása:
A vezeték nélküli hirdetőtábla csatlakoztatása a GSM és az Arduino segítségével egyszerű és az alábbi ábrán látható. Itt folyadékkristályos kijelzőt (LCD) használnak a „Értesítés” vagy üzenet megjelenítésére, amelyet a mobiltelefon SMS-ben küld. Az LCD adatcsapjai, nevezetesen az RS, EN, D4, D5, D6, D7 csatlakoznak az Arduino 7, 6, 5, 4, 3, 2 számú digitális tűhöz. És a GSM modul Rx és Tx tűi közvetlenül csatlakoznak Tx és Rx tű Arduino ill. A GSM-modult pedig 12 V-os adapter segítségével táplálják.
Kód Leírás:
A program kódja könnyen érthető; az új dolog itt a GSN inicializáló függvény, a gsm_init (), amelyet a végén elmagyarázunk.
A programban mindenekelőtt felvesszük a folyadékkristályos kijelző (LCD) könyvtárát, majd meghatározzuk az LCD és néhány változó adat- és vezérlőcsapjait.
#include
Ezt követően a soros kommunikáció 9600 bps sebességgel inicializálódik, és irányt ad a használt tűnek. És inicializálja a GSM modult a telepítési ciklusban.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); digitalWrite (led, HIGH); lcd.print ("GSM-kezdeményezés…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("Vezeték nélküli közlemény");
Az adatok soros fogadásához két funkciót használunk, az egyik a Serial.available, amely ellenőrzi, hogy érkeznek-e soros adatok, vagy sem, a másik pedig a Serial.read, amely a soros adatokat olvassa.
void serialEvent () {while (Sorozat.available ()) {char ch = (char) Soros.olvasott (); str = ch; if (ch == '*') {temp = 1; lcd.clear (); lcd.print ("Üzenet érkezett"); késés (1000); }}}
Az adatok soros fogadása után egy karaktersorozatban tároljuk, és ezt a karaktersorozatot ellenőrizzük a „#” és a „*” kifejezésre, hogy megtaláljuk a Közlemény vagy az üzenet kezdetét és végét. Ezután végül az értesítést kinyomtatják az LCD-re az lcd.print használatával:
void loop () {for (előjel nélküli int t = 0; t <60000; t ++) {serialEvent (); if (temp == 1) {x = 0, k = 0, temp = 0; míg (x
Itt fontos a 'gsm_init () ' inicializáló függvény a GSM-hez, ahol először is ellenőrizzük, hogy a GSM-modul csatlakoztatva van-e az 'AT' parancs elküldésével a GSM-modulhoz. Ha a válasz OK, azt jelenti, hogy készen áll. A rendszer folyamatosan ellenőrzi a modult, amíg készen áll, vagy amíg az 'OK' üzenetet meg nem kapja. Ezután az ECHO kikapcsol az ATE0 parancs elküldésével, különben a GSM modul visszhangozza az összes parancsot. Végül a hálózati elérhetőséget ellenőrzik az "AT + CPIN?" parancs, ha a behelyezett kártya SIM-kártya és PIN-kód van, megadja a választ + CPIN: KÉSZ. Ezt addig is többször ellenőrizzük, amíg meg nem találjuk a hálózatot. Ezt az alábbi videó egyértelműen megértheti.
void gsm_init () {lcd.clear (); lcd.print ("Modul keresése.."); logikai at_flag = 1; while (at_flag) {Soros.println ("AT"); while (Soros.elérhető ()> 0) {if (Soros.talál ("OK")) at_flag = 0; } késleltetés (1000); }