Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino GSM GPS屏蔽不';t执行GSM\u就绪检查_Arduino_Gsm_Arduino Uno_Arduino Ide - Fatal编程技术网

Arduino GSM GPS屏蔽不';t执行GSM\u就绪检查

Arduino GSM GPS屏蔽不';t执行GSM\u就绪检查,arduino,gsm,arduino-uno,arduino-ide,Arduino,Gsm,Arduino Uno,Arduino Ide,在您将此问题标记为重复问题之前,请注意,我已经尝试 我最近买了一个Arduino UNO R3和一个SIM808 GSM/GPS屏蔽。屏蔽的RX连接至Arduino的引脚11,TX连接至引脚10,两个GND相互连接。我已经用USB将Arduino连接到了我的电脑上,屏蔽层通过一个12V适配器连接到了一个外部电源。此外,我已将Arduino的3.3V连接到屏蔽的Vcc 以下是我使用的草图: // Include the GSM library #include <GSM.h> #de

在您将此问题标记为重复问题之前,请注意,我已经尝试

我最近买了一个Arduino UNO R3和一个SIM808 GSM/GPS屏蔽。屏蔽的RX连接至Arduino的引脚11,TX连接至引脚10,两个GND相互连接。我已经用USB将Arduino连接到了我的电脑上,屏蔽层通过一个12V适配器连接到了一个外部电源。此外,我已将Arduino的3.3V连接到屏蔽的Vcc

以下是我使用的草图:

// Include the GSM library
#include <GSM.h>

#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;

void setup() {
  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  Serial.println("SMS Messages Sender");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while (notConnected) {
    if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
      notConnected = false;
    } else {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized");
}

void loop() {

  Serial.print("Enter a mobile number: ");
  char remoteNum[20];  // telephone number to send sms
  readSerial(remoteNum);
  Serial.println(remoteNum);

  // sms text
  Serial.print("Now, enter SMS content: ");
  char txtMsg[200];
  readSerial(txtMsg);
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);

  // send the message
  sms.beginSMS(remoteNum);
  sms.print(txtMsg);
  sms.endSMS();
  Serial.println("\nCOMPLETE!\n");
}

/*
  Read input serial
 */
int readSerial(char result[]) {
  int i = 0;
  while (1) {
    while (Serial.available() > 0) {
      char inChar = Serial.read();
      if (inChar == '\n') {
        result[i] = '\0';
        Serial.flush();
        return 0;
      }
      if (inChar != '\r') {
        result[i] = inChar;
        i++;
      }
    }
  }
}
//包括GSM库
#包括
#定义PINNUMBER“”
//初始化库实例
GSM-gsmAccess;
手机短信;
无效设置(){
//初始化串行通信并等待端口打开:
Serial.begin(9600);
而(!串行){
;//等待串行端口连接。仅本机USB端口需要
}
Serial.println(“短信发送者”);
//连接状态
布尔notConnected=true;
//启动GSM屏蔽
//如果您的SIM卡有PIN码,请将其作为begin()的参数以引号形式传递
while(未连接){
如果(gsmAccess.begin(PINNUMBER)=GSM\u READY){
notConnected=false;
}否则{
Serial.println(“未连接”);
延迟(1000);
}
}
Serial.println(“GSM初始化”);
}
void循环(){
Serial.print(“输入手机号码:”);
char remoteNum[20];//发送短信的电话号码
readSerial(remoteNum);
Serial.println(remoteNum);
//短信文本
打印(“现在,输入短信内容:”);
char-txtMsg[200];
readSerial(txtMsg);
Serial.println(“发送”);
Serial.println();
Serial.println(“消息:”);
Serial.println(txtMsg);
//发送消息
sms.beginSMS(remoteNum);
短信打印(txtMsg);
endSMS();
Serial.println(“\n完成!\n”);
}
/*
读输入串行
*/
int readSerial(字符结果[]){
int i=0;
而(1){
while(Serial.available()>0){
char inChar=Serial.read();
如果(英寸=='\n'){
结果[i]='\0';
Serial.flush();
返回0;
}
如果(英寸!='\r'){
结果[i]=英寸;
i++;
}
}
}
}
这里的问题和那些链接帖子中提到的一样

条件
if(gsmAccess.begin(PINNUMBER)=GSM\u READY)
永远不会执行。
else
部件也不会执行

串行监视器永远不会经过短信发送者

请注意,我正在使用AirTel India,我有一个完全激活的数据计划&PIN码已更改为0000

如果有人能提出一些有用的建议,我将不胜感激


谢谢你的时间

请首先检查模块是否响应下一个代码


其他事项电源电压范围必须为3.4~4.4V,尽量不要使用较少的电压。

Arduino的GSM库用于Quectel M10 GSM/GPRS模块,与SimCom SIMxxx模块不兼容

以下是可用于SIM808模块的库(repo中包含的示例)。请注意,此库使用允许与SimCom模块进行低级接口的
SIM900

此处有两个adafruit链接供进一步阅读:


屏蔽连接到具有12V电源的外部电源 适配器。此外,我已将Arduino的3.3V连接到Vcc 盾的边缘

你这是什么意思?您需要为您的屏蔽提供所需的电压,以提供所需的安培数。你也需要和你的arduino有一个共同点

此外,如果您的屏蔽为3.3V,则需要使用分压器从arduino转移Tx线路通信(因为它是5V)


请注意,这些屏蔽还有一个需要连接的软通电按钮,以允许代码为您的模块通电。

您不能从3.3V的Arduino为GSM模块供电!GSM需要3A的峰值电流(是的,安培,而不是毫安)。你真的需要一个LiPo电池来为GSM供电。事实上,如果你需要移动解决方案,你可以用同样的LiPo电池为3V Arduino供电,但不是相反