Bezprzewodowa tablica ogłoszeń jest bardzo selektywnym określeniem dla tego projektu, ponieważ ma bardzo szeroki zakres, a nie jest zwykłą tablicą ogłoszeń. Najpierw powinniśmy zrozumieć cel tego projektu, w tym systemie możemy wyświetlać wiadomość lub powiadomienie na jakimś urządzeniu wyświetlającym, takim jak LCD, i tę wiadomość można łatwo ustawić lub zmienić z dowolnego miejsca na świecie, po prostu używając funkcji SMS twojego telefon komórkowy. Cokolwiek chcemy wyświetlić, po prostu wyślij SMS z tym tekstem, z pewnym prefiksem i sufiksem.
Jest to bardzo przydatne w hotelach, centrach handlowych, uczelniach, biurach i może być używane wszędzie, nawet w domu. Na przykład możesz ustawić wiadomość typu „Nie przeszkadzać” przy bramie pokoju hotelowego, możesz ustawić wiadomość na progu swojego domu, gdy Cię nie ma, i oczywiście jest ona używana jako tablica ogłoszeń w szkołach, uczelniach, salach kinowych itp. tak, to nie jest zwykła tablica ogłoszeń, przydatność tego projektu polega na tym, że możesz ustawić lub zmienić wiadomość lub powiadomienie z dowolnego miejsca, po prostu wysyłając SMS-a z telefonu. Możesz również sprawdzić podobny projekt, ale na innym typie wyświetlacza: Tablica wyników Arduino z zewnętrznym wyświetlaczem matrycowym LED P10.
Wcześniej korzystaliśmy z funkcji SMS telefonu komórkowego do zabezpieczenia domu i zdalnego sterowania urządzeniami gospodarstwa domowego: czujnik PIR i system bezpieczeństwa oparty na GSM oraz automatyka domowa oparta na GSM za pomocą Arduino
Wcześniejsze
Objaśnienie robocze:
W tym projekcie Arduino UNO służy do sterowania całym procesem, moduł GSM (SIM900A) do odbierania wiadomości SMS / wiadomości wysyłanej z telefonu komórkowego oraz LCD do wyświetlania wiadomości.
Możemy wysłać wiadomość lub powiadomienie, takie jak „#Circuit Digest *”, „#We Welcome You *” przez SMS. Tutaj użyliśmy przedrostka w ciągu wiadomości, którym jest „#”. Ten przedrostek służy do identyfikacji początku wiadomości lub powiadomienia. „*” Jest używany jako sufiks do wskazania końca wiadomości lub powiadomienia.
Kiedy wysyłamy SMS z telefonu komórkowego do modułu GSM, GSM odbiera ten SMS i wysyła go do Arduino. Teraz Arduino odczytuje ten SMS i wyodrębnia główną wiadomość z otrzymanym ciągiem i przechowuje w innym ciągu. Następnie wysyła wyodrębnioną wiadomość do 16x2 LCD za pomocą odpowiednich poleceń.
Dalsze działanie tego systemu jest wyjaśnione w sekcji „Opis kodu” poniżej. Zanim przejdziemy do szczegółów programowania, warto wiedzieć o module GSM.
Moduł GSM:
Moduł GSM jest stosowany w wielu urządzeniach komunikacyjnych opartych na technologii GSM (Global System for Mobile Communications). Służy do interakcji z siecią GSM za pomocą komputera. Moduł GSM rozumie tylko polecenia AT i może odpowiednio reagować. Najbardziej podstawowym poleceniem jest „AT”, jeśli GSM odpowiada OK, to działa dobrze, w przeciwnym razie odpowiada „ERROR”. Istnieją różne polecenia AT, takie jak ATA do odbierania połączeń, ATD do wybierania połączenia, AT + CMGR do odczytywania wiadomości, AT + CMGS do wysyłania smsów itp. Po poleceniach AT powinien następować powrót karetki tj. \ R (0D w zapisie szesnastkowym), na przykład „AT + CMGS \ r”. Możemy skorzystać z modułu GSM za pomocą następujących poleceń:
ATE0 Wyłączenie echa
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = „Numer telefonu komórkowego”
>> Teraz możemy napisać naszą wiadomość
>> Po napisaniu wiadomości
Ctrl + Z polecenie wysłania wiadomości (26 dziesiętnie).
ENTER = 0x0d w formacie HEX
SIM900 jest kompletnym Quad-band moduł GSM / GPRS, który dostarcza GSM / GPRS 850/900/1800 / 1900MHz wydajność głosowe, SMS i transmisji danych przy niskim zużyciu energii.
Opis obwodu:
Połączenia bezprzewodowej tablicy ogłoszeń za pomocą GSM i Arduino są proste i pokazane na poniższym rysunku. Tutaj wyświetlacz ciekłokrystaliczny (LCD) służy do wyświetlania „Powiadomienia” lub wiadomości, która jest wysyłana przez telefon komórkowy jako SMS. Piny danych LCD, a mianowicie RS, EN, D4, D5, D6, D7 są podłączone do cyfrowego pinu arduino o numerze 7, 6, 5, 4, 3, 2. A pin Rx i Tx modułu GSM jest bezpośrednio podłączony do Tx i Rx odpowiednio pin Arduino. Moduł GSM jest zasilany za pomocą adaptera 12 V.
Kod Opis:
Kod programu jest łatwo zrozumiały; nowością jest tutaj funkcja inicjalizacji GSN gsm_init (), która jest wyjaśniona na końcu.
W programie w pierwszej kolejności dołączamy bibliotekę do wyświetlacza ciekłokrystalicznego (LCD), a następnie definiujemy dane i piny sterujące dla LCD oraz niektóre zmienne.
#zawierać
Następnie komunikacja szeregowa jest inicjalizowana przy 9600 bps i podaje kierunek używanego pinu. I zainicjalizuj moduł GSM w pętli konfiguracji.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, WYJŚCIE); digitalWrite (led, WYSOKI); lcd.print ("Inicjalizacja GSM…"); gsm_init (); lcd.setCursor (0,0); lcd.print („Uwaga dotycząca sieci bezprzewodowej”);
Do seryjnego odbierania danych używamy dwóch funkcji, jedna to Serial.available, która sprawdza, czy dane przychodzą, czy nie, a druga to Serial.read, która czyta dane przychodzące szeregowo.
void serialEvent () {while (Serial.available ()) {char ch = (char) Serial.read (); str = ch; if (ch == '*') {temp = 1; lcd.clear (); lcd.print ("Wiadomość otrzymana"); opóźnienie (1000); }}}
Po odebraniu danych szeregowo przechowujemy je w łańcuchu i sprawdzamy, czy nie ma znaków „#” i „*”, aby znaleźć początek i koniec powiadomienia lub komunikatu. Wreszcie na wyświetlaczu LCD jest drukowana uwaga za pomocą lcd.print:
void loop () {for (unsigned int t = 0; t <60000; t ++) {serialEvent (); if (temp == 1) {x = 0, k = 0, temp = 0; podczas gdy (x
Ważna jest tutaj funkcja inicjalizacji „gsm_init () ” dla GSM, gdzie najpierw sprawdza się, czy moduł GSM jest podłączony, czy nie, wysyłając polecenie „AT” do modułu GSM. Jeśli otrzymano odpowiedź OK, oznacza to, że jest gotowa. System sprawdza, czy moduł jest gotowy lub do otrzymania „OK”. Następnie ECHO jest wyłączane przez wysłanie komendy ATE0, w przeciwnym razie moduł GSM powtórzy wszystkie komendy. W końcu dostępność sieci jest sprawdzana przez „AT + CPIN?” polecenie, jeśli włożona karta jest kartą SIM i obecny jest kod PIN, daje odpowiedź + CPIN: GOTOWE. Jest to również sprawdzane wielokrotnie, aż do znalezienia sieci. Można to wyraźnie zrozumieć na poniższym filmie.
void gsm_init () {lcd.clear (); lcd.print ("Znajdowanie modułu.."); boolean at_flag = 1; while (at_flag) {Serial.println ("AT"); while (Serial.available ()> 0) {if (Serial.find ("OK")) at_flag = 0; } opóźnienie (1000); }