Беспроводная доска объявлений - очень выборочный термин для этого проекта, поскольку она имеет очень широкий охват, а не просто является простой доской объявлений. Сначала мы должны понять цель этого проекта, в этой системе мы можем отображать сообщение или уведомление на каком-либо устройстве отображения, таком как ЖК-дисплей, и это сообщение можно легко настроить или изменить из любой точки мира, просто используя функцию SMS вашего мобильный телефон. Какое бы уведомление мы ни хотели отобразить, просто отправьте SMS с этим текстом с некоторым префиксом и суффиксом.
Это очень полезно в отелях, торговых центрах, колледжах, офисах и может использоваться где угодно, даже дома. Например, вы можете установить сообщение типа «Не беспокоить» на воротах вашего отеля, можете установить сообщение на пороге вашего дома, когда вас нет, и, конечно же, оно используется в качестве доски объявлений в школах, колледжах, кинозалах и т. Д. да, это не просто доска сообщений, полезность этого проекта заключается в том, что вы можете установить или изменить сообщение или уведомление из любого места, просто отправив SMS со своего телефона. Вы также можете проверить аналогичный проект, но на другом типе дисплея: табло Arduino с использованием уличного светодиодного матричного дисплея P10.
Ранее мы использовали возможность SMS мобильного телефона для домашней безопасности и удаленного управления бытовой техникой: датчик PIR и система безопасности на основе GSM и домашняя автоматизация на основе GSM с использованием Arduino.
Взаимодействие с другими людьми
Рабочее объяснение:
В этом проекте Arduino UNO используется для управления всем процессом, модуль GSM (SIM900A) для получения SMS / сообщения, отправленного с мобильного телефона, и ЖК-дисплей для отображения сообщения.
Мы можем отправить сообщение или уведомление, например «#Circuit Digest *», «#We Welcomes You *» с помощью SMS. Здесь мы использовали префикс в строке сообщения - «#». Этот префикс используется для обозначения начала сообщения или уведомления. А '*' используется как суффикс для обозначения конца сообщения или уведомления.
Когда мы отправляем SMS с мобильного телефона на модуль GSM, GSM получает это SMS и отправляет его в Arduino. Теперь Arduino читает это SMS, извлекает из полученной строки основное уведомление и сохраняет в другой строке. Затем отправляет извлеченное сообщение на ЖК-дисплей 16x2, используя соответствующие команды.
Дальнейшая работа с этой системой описана в разделе «Описание кода» ниже. Прежде чем мы перейдем к деталям программирования, мы должны знать о модуле GSM.
Модуль GSM:
Модуль GSM используется во многих устройствах связи, основанных на технологии GSM (Глобальная система мобильной связи). Он используется для взаимодействия с сетью GSM с помощью компьютера. Модуль GSM понимает только AT-команды и может реагировать соответствующим образом. Самая основная команда - «AT», если GSM отвечает ОК, значит, она работает нормально, в противном случае она отвечает «ERROR». Существуют различные AT-команды, такие как ATA для ответа на звонок, ATD для набора номера, AT + CMGR для чтения сообщения, AT + CMGS для отправки sms и т. Д. После AT-команд должен следовать возврат каретки, т.е. \ r (0D в шестнадцатеричном формате), например «AT + CMGS \ r». Мы можем использовать модуль GSM, используя следующие команды:
ATE0 Для выключения эха
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = "Мобильный номер"
>> Теперь мы можем написать наше сообщение
>> После написания сообщения
Ctrl + Z отправить команду сообщения (26 в десятичной системе).
ENTER = 0x0d в HEX
SIM900 является полным трехдиапазонным / GPRS, GSM модуль, который обеспечивает GSM / GPRS 850/900/1800 / 1900MHz производительности для передачи голоса, SMS и данных с низким энергопотреблением.
Описание схемы:
Подключения Wireless Notice Board с использованием GSM и Arduino просты и показаны на рисунке ниже. Здесь жидкокристаллический дисплей (ЖКД) используется для отображения «Уведомления» или сообщения, которое отправляется через мобильный телефон в виде SMS. Выводы данных ЖК-дисплея, а именно RS, EN, D4, D5, D6, D7, подключены к цифровым выводам Arduino 7, 6, 5, 4, 3, 2, а выводы Rx и Tx модуля GSM напрямую подключены к Tx и Rx. пин Arduino соответственно. А модуль GSM питается от адаптера на 12 вольт.
Описание кода:
Код программы понятен; новинка здесь - это функция инициализации GSN gsm_init (), которая объясняется в конце.
В программу, прежде всего, мы включаем библиотеку для жидкокристаллического дисплея (LCD), а затем мы определяем контакты данных и управления для LCD и некоторых переменных.
#включают
После этого инициализируется последовательная связь со скоростью 9600 бит / с и указывается направление для используемого вывода. И инициализируйте модуль GSM в цикле настройки.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (светодиод, ВЫХОД); digitalWrite (светодиод, ВЫСОКИЙ); lcd.print («Запуск GSM…»); gsm_init (); lcd.setCursor (0,0); lcd.print («Уведомление о беспроводной связи»);
Для последовательного получения данных мы используем две функции: одна - Serial.available, которая проверяет, поступают ли последовательные данные или нет, а другая - Serial.read, которая считывает данные, которые поступают последовательно.
void serialEvent () {в то время как (Serial.available ()) {char ch = (char) Serial.read (); str = ch; если (ch == '*') {temp = 1; lcd.clear (); lcd.print («Сообщение получено»); задержка (1000); }}}
После последовательного получения данных мы сохраняем их в строке, и эта строка проверяется на «#» и «*», чтобы найти начало и конец уведомления или сообщения. Затем, наконец, на ЖК-дисплее печатается уведомление с использованием lcd.print:
void loop () {for (int t = 0 без знака; t <60000; t ++) {serialEvent (); если (temp == 1) {x = 0, k = 0, temp = 0; в то время как (x
Здесь важна функция инициализации 'gsm_init () ' для GSM, где, во-первых, модуль GSM проверяется, подключен он или нет, посылая команду 'AT' модулю GSM. Если получен ответ ОК, значит он готов. Система продолжает проверять модуль, пока он не станет готовым или пока не будет получено сообщение «ОК». Затем ECHO отключается отправкой команды ATE0, иначе GSM-модуль будет повторять все команды. Затем, наконец, проверяется доступность сети через "AT + CPIN?" команда, если вставлена SIM-карта и присутствует PIN-код, выдает ответ + CPIN: READY. Это также проверяется неоднократно, пока сеть не будет найдена. Это можно четко понять из видео ниже.
void gsm_init () {lcd.clear (); lcd.print ("Модуль поиска.."); логическое at_flag = 1; while (at_flag) {Serial.println ("AT"); while (Serial.available ()> 0) {если (Serial.find ("OK")) at_flag = 0; } задержка (1000); }