무선 게시판 은 단순한 게시판이 아닌 매우 넓은 범위를 가지고 있기 때문에이 프로젝트에서 매우 선택적 용어입니다. 먼저이 프로젝트의 목적을 이해해야합니다.이 시스템에서는 LCD와 같은 일부 디스플레이 장치에 메시지 또는 알림을 표시 할 수 있으며,이 메시지는 귀하 의 SMS 기능 을 사용하여 전 세계 어디서나 쉽게 설정하거나 변경할 수 있습니다. 모바일 핸드셋. 어떤 알림을 표시하든 접두사와 접미사와 함께 해당 텍스트의 SMS를 보내십시오.
이것은 호텔, 쇼핑몰, 대학, 사무실에서 매우 유용하며 집에서도 어디에서나 사용할 수 있습니다. 호텔 객실 게이트에서 "방해 금지"와 같은 메시지를 설정할 수있는 것처럼, 외출시 집 현관 계단에서 메시지를 설정할 수 있으며, 물론 학교, 대학, 영화관 등의 게시판으로도 사용됩니다. 그리고 네, 단순한 메시지 보드가 아닙니다.이 프로젝트의 유용성은 어디에서나 메시지 또는 알림을 설정하거나 변경할 수 있으며, 휴대폰에서 SMS 만 보낼 수 있다는 것입니다. 비슷한 프로젝트를 확인할 수도 있지만 다른 유형의 디스플레이 인 야외 P10 LED 매트릭스 디스플레이를 사용하는 Arduino Scoreboard에서 확인할 수 있습니다.
우리는 이전에 가정 보안을 위해 휴대폰의 SMS 기능을 사용하고 가전 제품을 원격으로 제어했습니다. PIR 센서 및 GSM 기반 보안 시스템 및 Arduino를 사용한 GSM 기반 홈 자동화
작동 설명:
이 프로젝트에서 Arduino UNO 는 전체 프로세스를 제어하는 데 사용되며, GSM 모듈 (SIM900A) 은 휴대폰에서 보낸 SMS / 메시지를 수신하고 메시지 를 표시하는 LCD 입니다.
SMS를 통해 "#Circuit Digest *", "#We Welcomes You *"와 같은 메시지 나 알림을 보낼 수 있습니다. 여기에서는 메시지 문자열에 '#'접두사를 사용했습니다. 이 접두사는 메시지 또는 알림의 시작을 식별하는 데 사용됩니다. 그리고 '*'는 메시지 또는 알림의 끝을 나타내는 접미사로 사용됩니다.
휴대 전화에서 GSM 모듈로 SMS를 보내면 GSM은 그 SMS를 받아 Arduino로 보냅니다. 이제 Arduino는이 SMS를 읽고 수신 된 문자열에서 주요 알림 메시지를 추출하여 다른 문자열에 저장합니다. 그런 다음 적절한 명령을 사용하여 추출 된 메시지를 16x2 LCD로 보냅니다.
이 시스템의 추가 작업은 아래 '코드 설명'섹션에 설명되어 있습니다. 프로그래밍 세부 사항에 들어가기 전에 GSM 모듈에 대해 알아야합니다.
GSM 모듈:
GSM 모듈 은 GSM (Global System for Mobile Communications) 기술을 기반으로하는 많은 통신 장치에 사용됩니다. 컴퓨터를 사용하여 GSM 네트워크와 상호 작용하는 데 사용됩니다. GSM 모듈은 AT 명령 만 이해 하며 그에 따라 응답 할 수 있습니다. 가장 기본적인 명령은 "AT"입니다. GSM이 OK로 응답하면 정상 작동하는 것입니다. 그렇지 않으면 "ERROR"로 응답합니다. 전화 응답을위한 ATA, 전화를 걸기위한 ATD, 메시지를 읽기위한 AT + CMGR, SMS를 보내기위한 AT + CMGS 등과 같은 다양한 AT 명령이 있습니다. AT 명령 뒤에는 Carriage return ie \ r (16 진수로 0D), "AT + CMGS \ r"와 같습니다. 다음 명령을 사용하여 GSM 모듈을 사용할 수 있습니다.
ATE0 에코 오프 용
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS =”휴대폰 번호”
>> 이제 메시지를 작성할 수 있습니다.
>> 메시지 작성 후
Ctrl + Z 메시지 보내기 명령 (10 진수 26).
HEX에서 ENTER = 0x0d
SIM900는 완전한 쿼드 밴드 GSM / GPRS 모듈 / GSM을 제공합니다 낮은 전력 소모와 음성, SMS 및 데이터 850 / 1,800분의 900 / 1900MHz의 성능을 GPRS.
회로 설명:
GSM과 Arduino를 이용한 무선 게시판 연결 은 간단하며 아래 그림과 같습니다. 여기에서 LCD (Liquid Crystal Display)는 휴대폰을 통해 SMS로 전송되는“Notice”또는 메시지를 표시하는 데 사용됩니다. LCD의 데이터 핀 즉 RS, EN, D4, D5, D6, D7은 arduino 디지털 핀 번호 7, 6, 5, 4, 3, 2에 연결되며 GSM 모듈의 Rx 및 Tx 핀은 Tx 및 Rx에 직접 연결됩니다. Arduino의 핀. 그리고 GSM 모듈은 12V 어댑터를 사용하여 전원이 공급됩니다.
코드 설명:
프로그램의 코드는 쉽게 이해할 수 있습니다. 여기서 새로운 것은 GSN 초기화 함수 gsm_init ()이며, 이는 마지막에 설명합니다.
프로그램에서 먼저 LCD (Liquid Crystal Display) 용 라이브러리를 포함시킨 다음 LCD 및 일부 변수에 대한 데이터 및 제어 핀을 정의합니다.
#포함
이후 9600bps로 시리얼 통신이 초기화되고 사용 된 핀에 방향을 알려줍니다. 그리고 설정 루프에서 GSM 모듈을 초기화합니다.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); digitalWrite (led, HIGH); lcd.print ("GSM 초기화 중…"); gsm_init (); lcd.setCursor (0,0); lcd.print ("무선 통지");
직렬로 데이터를 수신하기 위해 두 가지 기능을 사용합니다. 하나는 직렬 데이터가 들어오는 지 여부를 확인하는 Serial.available이고 다른 하나는 직렬로 들어오는 데이터를 읽는 Serial.read입니다.
void serialEvent () {while (Serial.available ()) {char ch = (char) Serial.read (); str = ch; if (ch == '*') {임시 = 1; lcd.clear (); lcd.print ("메시지 수신"); 지연 (1000); }}}
데이터를 직렬로 수신 한 후 문자열에 저장하고이 문자열에 '#'및 '*'가 있는지 확인하여 알림 또는 메시지의 시작과 끝을 찾습니다. 마지막으로 lcd.print를 사용하여 Notice가 LCD에 인쇄됩니다.
void loop () {for (unsigned int t = 0; t <60000; t ++) {serialEvent (); if (temp == 1) {x = 0, k = 0, temp = 0; 동안 (x
여기서 GSM 초기화 함수 'gsm_init () '이 중요합니다. 먼저 GSM 모듈에 'AT'명령을 전송하여 GSM 모듈의 연결 여부를 확인합니다. OK 응답이 수신되면 준비가 된 것입니다. 시스템은 모듈이 준비 될 때까지 또는 'OK'가 수신 될 때까지 모듈을 계속 확인합니다. 그런 다음 ATE0 명령을 전송하여 ECHO를 끄고 그렇지 않으면 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) {if (Serial.find ("OK")) at_flag = 0; } 지연 (1000); }