산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

SMS로 보드 현지화

구성품 및 소모품

Arduino MKR GSM 1400
× 1

이 프로젝트 정보

참고:이 튜토리얼은 오래되었을 수 있습니다. 여기 최신 버전의 경우

이 프로젝트의 목적은 Arduino MKR GSM 1400의 셀룰러 현지화를 사용하는 방법을 보여주는 것입니다. 이를 위해 보안 검사가 포함된 SMS가 전송될 때 MKR GSM의 위도와 경도를 다시 시도할 수 있는 간단한 애플리케이션을 구현했습니다. 편지를 받습니다. 발신자 번호는 수신된 SMS에서 복구되고 u-blox 모듈에서 제공하는 위치 서비스에서 제공한 좌표로 완성된 적절한 Google 지도 링크로 응답이 생성됩니다.

필요한 것

이 프로젝트는 Arduino MKR GSM 1400, 안테나, LiPo 배터리 팩, 스마트폰 및 1개의 데이터 SIM 카드를 기반으로 합니다.

<울>
  • Arduino MKR GSM 1400은 스케치를 실행하고 우리 프로젝트에 필요한 현지화 기능을 허용하는 GSM 연결을 지원합니다.
  • <울>
  • 안테나와 배터리 팩은 신호가 좋은 셀룰러 데이터 네트워크에 연결하고 다른 전원 공급 장치를 사용할 수 없을 때 기기에 전원을 공급하는 데 각각 사용됩니다.
  • <울>
  • MKR GSM 1400에 SMS를 보내고 GPRS 현지화를 요청하려면 스마트폰이 필요합니다.
  • <울>
  • 데이터 네트워크에 액세스하고 네트워크 작동을 허용하려면 SIM 카드가 필요합니다.
  • <울>
  • 데이터 네트워크에 연결하려면 PIN, APN 및 액세스 자격 증명이 필요합니다.
  • 하드웨어 설정

    이 프로젝트는 특별한 것이 필요하지 않습니다. 보드에 안테나를 연결하고 SIM 카드를 삽입하고 LiPo 배터리를 JST 커넥터에 연결합니다.

    LiPo 배터리는 선택 사항이지만 커버리지가 좋지 않은 특정 조건에서 GSM 모듈이 요구할 수 있는 최대 전류에 대처할 수 있습니다.

    작동 방식

    이 프로젝트는 MKRGSM 라이브러리를 사용하여 SMS 메시지와 셀 기반 지리 참조를 관리합니다.

    SMS가 수신되면 내용을 확인하여 문자 "L"이 포함되어 있는지 확인합니다. 이 경우에만 스케치는 현지화 및 SMS 전송을 진행합니다. 이 솔루션을 사용하면 모든 번호가 시스템 위치를 요청할 수 있지만 비밀번호("비밀 문자")를 아는 사람만 응답을 받습니다. 이것은 if (c !=76) 검사를 수행하는 라인입니다. 76은 "L"의 ASCII 코드입니다. 값을 변경하여 인식되는 문자를 변경할 수 있습니다.

    GSM 모듈에는 GPS 수신기가 없지만 제조업체는 GSM 네트워크의 각 셀 위치에 대한 데이터베이스를 가지고 있으므로 제공된 각 셀 ID에 대한 좌표를 제공합니다. 이 시스템은 각 셀이 작은 영역을 차지하는 도시 지역에서 매우 정확합니다. 시골 지역에서는 각 셀의 적용 범위가 훨씬 더 크며 제공된 위치는 더 대략적입니다.

    Google 지도에 대한 링크를 생성하기 위해 끝에 적절한 Long 및 Lat 값을 연결하는 표준 URL을 사용합니다. 이 URL은 "https://www.google.com/maps/place/, "과 같습니다. 지도에 표시된 위치는 셀이 물리적으로 기반을 둔 위치입니다. 우리 보드는 셀이 덮는 반경 내에 있습니다.

    스케치

    스케치에 대한 자세한 설명에 이어; 첫 번째 코드 섹션은 애플리케이션에 필요한 라이브러리를 포함하는 데 사용됩니다.

    MKRGSM 모든 GSM 연결, 현지화 및 SMS 관리 기능을 포함합니다. 이는 GSMClient, GPRS, GSM 개체를 통해 사용할 수 있습니다. 및 GSMLocation, SMS 관리 API는 GSM_SMS 개체를 통해 사용할 수 있습니다. , 헤더 ArduinoLowPower 보드 모듈의 저전력 관리를 허용하는 API를 가져옵니다.

    웹 편집기에서 코드를 다운로드하면 arduino_secrets.h PIN, APN, 사용자 와 같은 합리적인 데이터를 포함하는 파일 및 비밀번호 웹에디터에서는 Secrets 탭에 합리적인 데이터를 채워넣어야 합니다.

    // GSM 라이브러리 포함#include #include "ArduinoLowPower.h"char PINNUMBER [] =SECRET_PINNUMBER;char GPRS_APN[] =SECRET_GPRS_APN;char GPRS_LOGIN [] =SECRET_GPRS_LOGIN;[] GPRS_PASS ] =SECRET_GPRS_PASSWORD;// 라이브러리 인스턴스 초기화GPRS gprs;GSM gsmAccess;GSM_SMS sms;GSMLocation 위치; 

    measureLocation() 모듈을 쿼리하여 셀룰러 네트워크로 좌표를 재시도합니다. 새 좌표를 사용할 수 있으면 전역 변수에 할당합니다. 그렇지 않으면 45초 동안 다시 요청합니다. 정확도 제약 조건을 준수하는 사용 가능한 측정이 없으면 마지막으로 좋은 좌표를 반환합니다.

    //위치 관리에 사용되는 전역 변수String GSMlatitude ="0.000000";String GSMlongitude ="0.000000";// 이 함수는 위치의 API를 사용하여 장치 좌표를 가져오고 모든 요구 사항이 충족되는 경우 globa 변수를 업데이트합니다. 만족된 무효 측정 위치() {부호 없는 긴 시간 초과 =millis();while (millis() - 시간 초과 <45000) {if (location.available() &&location.accuracy() <300 &&location.accuracy() !=0) { GSMlatitude =문자열(위치.위도(), 6);GSMlongitude =문자열(위치.경도(), 6);중단;}}} 

    connectNetwork() API smAccess.begin 사용 및 gprs.attachGPRS 보드를 데이터 네트워크에 연결하기 위해; 자격 증명 데이터 이 사용됩니다. , apn , 사용자 그리고 통과 arduino_secrets.h의 선언에 의해 할당됩니다.

    // connectNetwork() 함수는 보드 데이터 연결에 사용됩니다. connectNetwork(){bool status =false;//글로벌 AT 명령 시간 초과를 설정하면 uart 통신에서 복구할 수 있습니다.// samd 모듈과 ublox module.gprs.setTimeout(100000);gsmAccess.setTimeout(100000); // (상태 ==false) {if ((gsmAccess.begin(PINNUMBER) ==GSM_READY) &(gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) ==GPRS_READY)) {status =true;} else {delay(1000);}}}스케치에 사용된 모든 개체를 초기화할 수 있는 설정 섹션은 데이터를 설정하는 connectionNetwork() 함수라고 합니다. 연결 및 현지화 구조 시작.//데이터 연결 및 현지화를 초기화하는 데 사용되는 코드 섹션 objectvoid setup() {connectNetwork();location.begin();} 

    마지막 코드 섹션은 SMS 관리 및 위치 측정을 구현하는 루프 기능으로, 새 SMS가 사용 가능할 때마다 보드 좌표가 포함된 SMS로 발신자에게 보드 응답을 보내 보드가 모듈을 종료하고 소비를 줄입니다. 60초 동안 깊은 잠에 들어갑니다.

    void 루프() { int c; 문자열 응답; 문자열 메시지 =""; 측정 위치(); 서명되지 않은 긴 시간 초과 =millis(); while (millis() - timeout <5000) {if (sms.available()) { //SMS 사용 가능char senderNumber[20] ={"0"};sms.remoteNumber(senderNumber, 20); //원격 번호 가져오기int c =sms.read();if (c !=76) {sms.flush();break;}//원격 번호로 보낼 문자열 메시지 연결String txtMsg ="https:// www.google.com/maps/place/" + GSMlatitude + "," + GSMlongitude;// 메시지 보내기ms.beginSMS(senderNumber);sms.print(txtMsg);sms.endSMS();break;} } // 잠자는 동안 GSM 모듈을 끄면 보드에서 가장 낮은 전력 소비를 얻을 수 있습니다. gsmAccess.shutdown(); LowPower.sleep(60000); //60초 동안 저전력을 활성화하고 보드를 재시도한 후 connectNetwork(); //모듈을 켜고 데이터 네트워크에 다시 연결} 

    사용 방법

    위에서 설명한 대로 하드웨어를 설정하고 액세스 자격 증명으로 스케치를 개인화하고 보드에 스케치를 로드하고 GSM 네트워크와의 연결이 설정될 때까지 기다립니다. 30초가 소요될 수 있습니다.

    연결이 설정되면 문자로 "L"이 포함된 MKRGSM SIM 번호로 SMS를 보내면 현지화 프로세스가 시작되고 게시판은 요청된 위치와 함께 Google 지도 링크가 포함된 SMS로 응답합니다. <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    아두이노

    제조공정

    1. 신제품 디자인으로 큰 성공을 거두거나 집으로 돌아가십시오
    2. 기상 관측소로 IOT에 참여하십시오 – CWOP
    3. Pioneer IoT 애드온 실드와 함께 PSoC 6 파이오니어 보드 사용
    4. CMMS에서 QR 코드 사용:단계별
    5. 탄소 섬유 수하물 세트로 수하물 업그레이드
    6. IoT를 현명하게 사용
    7. 웨비나:Techman Robot으로 프로세스 자동화
    8. PCB 비용을 줄이는 7가지 방법
    9. 농장 유지 관리로 사업 성장
    10. 중고 장비 처리 방법