SIM800L 기반 SMS 컨트롤러

Pin
Send
Share
Send


SIM800L V2.0 GSM / GPRS는 Arduino와 호환되는 쿼드 밴드 GSM / GPRS 모듈입니다. 이 모듈은 GSM (통화 및 SMS) 및 GPRS 기능을 구현하는 데 사용됩니다. 이 모듈의 장점은 5V 전압의 TTL 인터페이스로, 5V 전원 공급 장치가있는 Arduino 또는 다른 시스템에 직접 연결할 수 있습니다. SIM800L V.2 GSM / GPRS에서는 추가 인터페이스 레벨 변환 회로가 필요하지 않지만, 시중에 나와있는 대부분의 GSM / GPRS 모듈에는 레귤레이터 연결 또는 레벨 변환이 필요합니다.
다음은 SIM800L V.2 GSM / GPRS를 사용하는 프로젝트 예입니다. 이 프로젝트의 의미는 SMS 컨트롤러를 사용하여 스위치를 제어하는 ​​것입니다. 라마, 팬 등과 같은 집안의 대부분의 가전 제품을 쉽게 켜고 끌 수 있습니다.

SIM800L V.2 GSM / GPRS 모듈의 특징


다음은 SIM800L V.2 GSM / GPRS 모듈의 모든 기술 사양입니다 :
  • Arduino와 호환되는 3.3V 및 5V 마이크로 컨트롤러와 호환되는 TTL 직렬 인터페이스.
  • SIM800L 모듈에는 TTL 직렬 인터페이스가 있습니다.
  • 안테나 플러그
  • 네트워크 지원 : 4 개의 밴드 850/900/1800/1900 MHz로 배터리 소비를 크게 줄이면서 전화, SMS 및 데이터 전송이 가능합니다.
  • VDD TTL UART 인터페이스를 통해 51MCU, ARM 또는 MSP430과 같은 MCU를 직접 연결할 수 있습니다. TTL 전압을 맞추는 데 사용되는 VDD 플러그.
  • 모델 : SIMCOM SIM800L
  • 작동 전압 : 3.7V ~ 5V;
  • 차원 : 40mm x 28mm x 3mm
  • GPRS 멀티 슬롯 클래스 12/10
  • GPRS 배치 서비스 클래스 B
  • GSM 2/2 단계에 해당
  • 클래스 4 (2 와트 @ 850 / 900MHz)
  • 클래스 1 (1 와트 @ 1800/1900 MHz)

필요한 자료


다음이 필요합니다.


1. SIM800L V.2 GSM / GPRS 모듈.
2. 아두 이노 우노.
3. 4 채널 5 볼트 릴레이 모듈.
4. 전선-점퍼.
5. 전원 공급 장치 5V.
(구매할 상점에 대한 활성 링크)

조립 및 구성


모든 구성 요소를 연결했으면 프로그램을 만든 다음 Arduino에 다운로드하십시오. 그러나 먼저 GPRS 라이브러리를 설치해야합니다.
gprs.zip 28.02 Kb (다운로드 : 509)

Arduino의 프로그램 코드


SIM800L, 4 채널 릴레이 모듈 및 Arduino를 컴퓨터에 연결 한 후 아래 코드를 입력하면 완료됩니다.
#include #include #define TIMEOUT 5000 #define ACTIVE LOW #define OFF HIGH byte Relay = {A0, A1, A2, A3}; 바이트 StatRelay4; char buffNumber20; char currentLine500 = ""; int currentLineIndex = 0; bool nextLineIsMessage = false; 문자열 replyNumber = "089510863958"; GPRS gprs; void setup () {for (int i = 0; i >> 자동 SMS 읽기 "); gprs.preInit (); 지연 (1000); while (0! = gprs.init ()) {delay (1000); Serial .print ( "init errorrn");} // (0! = gprs.sendCmdAndWaitForResp ( "AT + CMGF = 1rn", "OK", TIMEOUT)) 경우 ASCII 모드로 메시지를 관리합니다. {ERROR ( "ERROR : CNMI") ; return;} // (0! = gprs.sendCmdAndWaitForResp ( "AT + CNMI = 1,2,0,0,0rn", "OK", TIMEOUT)) {ERROR ( "ERROR : CNMI") 인 경우 수신 SMS를 읽습니다. ; return;} int pjg = replyNumber.length () + 1; buffNumberpjg; replyNumber.toCharArray (buffNumber, pjg); Serial.print ( "번호로 회신 보내기 =>"); Serial.println (buffNumber); Serial.println ( "초기화 완료"); Serial.println ( "====================================== =========================))} void loop () {// (int i = 0; i 0)에 대한 상태 변경 릴레이 ON / OFF {if (nextLineIsMessage) {Serial.println (lastLine); // ====================================== ============================ >> 릴레이 컨트롤러의 기능 // 릴레이 1 컨트롤러 if (lastLine.indexOf ( "Relay 1 ON ")> = 0) {StatRelay0 = AKTIF; Serial.print ( "답장 ==== >>>>"); Serial.println ( "릴레이 1 상태 활성"); gprs.sendSMS (buffNumber, "릴레이 1 상태 활성"); } else if (lastLine.indexOf ( "Relay 1 OFF")> = 0) {StatRelay0 = MATI; Serial.print ( "답장 ==== >>>>"); Serial.println ( "릴레이 1 상태 꺼짐"); gprs.sendSMS (buffNumber, "릴레이 1 상태 끄기"); } // 릴레이 2 컨트롤러 if (lastLine.indexOf ( "Relay 2 ON")> = 0) {StatRelay1 = AKTIF; Serial.print ( "답장 ==== >>>>"); Serial.println ( "릴레이 2 상태 활성"); gprs.sendSMS (buffNumber, "릴레이 2 상태 활성"); } else if (lastLine.indexOf ( "Relay 2 OFF")> = 0) {StatRelay1 = MATI; Serial.print ( "답장 ==== >>>>"); Serial.println ( "릴레이 2 상태 꺼짐"); gprs.sendSMS (buffNumber, "릴레이 2 상태 끄기"); } // 릴레이 3 컨트롤러 if (lastLine.indexOf ( "Relay 3 ON")> = 0) {StatRelay2 = AKTIF; Serial.print ( "답장 ==== >>>>"); Serial.println ( "릴레이 3 상태 활성"); gprs.sendSMS (buffNumber, "릴레이 3 상태 활성"); } else if (lastLine.indexOf ( "Relay 3 OFF")> = 0) {StatRelay2 = MATI; Serial.print ( "답장 ==== >>>>"); Serial.println ( "릴레이 3 상태 꺼짐"); gprs.sendSMS (buffNumber, "릴레이 3 상태 끄기"); } // 릴레이 4 컨트롤러 if (lastLine.indexOf ( "Relay 4 ON")> = 0) {StatRelay3 = AKTIF; Serial.print ( "답장 ==== >>>>"); Serial.println ( "릴레이 4 상태 활성"); gprs.sendSMS (buffNumber, "릴레이 1 상태 활성"); } else if (lastLine.indexOf ( "Relay 4 OFF")> = 0) {StatRelay3 = MATI; Serial.print ( "답장 ==== >>>>"); Serial.println ( "릴레이 4 상태 끄기"); gprs.sendSMS (buffNumber, "릴레이 4 상태 끄기"); } nextLineIsMessage = false; } // ==================================================== ==================== >>} // 다음 읽기 행에 대한 char 배열 지우기 (int i = 0; i <sizeof (currentLine); ++ i) {currentLinei = (char) 0; } currentLineIndex = 0; } else {currentLinecurcurrentLineIndex ++ = lastCharRead; }}}

장치 확인


이 도구는 특정 문자 시퀀스로 SMS를 SIM800L에 전송하여 작동합니다. 예를 들어, 릴레이 1을 활성화하려면 "Relay 1 ON"명령을 사용하고 끄려면 "Relay 1 OFF"명령을 사용하십시오. 나머지 계전기는 작동하려는 각 계전기의 일련 번호를 제외하고 거의 동일한 명령을 갖습니다. 메시지를 자동으로 보낸 후에 SIM800은 각 SIM 카드에 대한 상태 메시지 형태로 응답을 보냅니다.

비디오 조립, 구성 및 장치 검증



영어 원문

Pin
Send
Share
Send

비디오 시청: NFC OTP One Time Password (십일월 2024).