이 라이브러리는 M10 모듈이있는 거의 모든 것과 작동해야합니다.
SIM900 모듈에 대한 경험이 있습니다. EBay에서 가장 저렴한 것을 발견했습니다.
이러한 것들과의 인터페이스는 처음에는 어려울 수 있지만 실제로 모든 AT 명령에 대한 매뉴얼을 읽고 실행하면됩니다. 도움이 될 수있는 몇 가지 기능을 작성했습니다.
참고 : 안전의 모든 인스턴스를 대체 할 수 DEBUG_PRINT
와 DEBUG_PRINTLN
와 Serial.print
와 Serial.println
.
SoftwareSerial SIM900(7, 8);
/*
Sends AT commands to SIM900 module.
Parameter Description
command String containing the AT command to send to the module
timeout A timeout, in milliseconds, to wait for the response
Returns a string containing the response. Returns NULL on timeout.
*/
String SIMCommunication::sendCommand(String command, int timeout) {
SIM900.listen();
// Clear read buffer before sending new command
while(SIM900.available()) { SIM900.read(); }
SIM900.println(command);
if (responseTimedOut(timeout)) {
DEBUG_PRINT(F("sendCommand Timed Out: "));DEBUG_PRINTLN(command);
return NULL;
}
String response = "";
while(SIM900.available()) {
response.concat((char)SIM900.read());
delayMicroseconds(500);
}
return response;
}
/*
Waits for a response from SIM900 for <ms> milliseconds
Returns true if timed out without response. False otherwise.
*/
bool SIMCommunication::responseTimedOut(int ms) {
SIM900.listen();
int counter = 0;
while(!SIM900.available() && counter < ms) {
counter++;
delay(1);
}
// Timed out, return null
if (counter >= ms) {
return true;
}
counter = 0;
return false;
}