问题

使用arduino nano板子以及其扩展板子经常因为电流不足短信无法正常工作

需要额外供电,l例如一个单独的usb-ttl(5v)或者 220v-5v或220v-12v插在扩展板子供电

如果用arduino nano板子(店家不同质量不同)自带供电 USB线很可能电流有限制

导致功率过低发不出短息

这个时候单独用一个USB-ttl来个5V供电就解决了


1 只能发送英文


arduino (3) 控制sim900A发送短信_单片机


arduino (3) 控制sim900A发送短信_#define_02




#include<SoftwareSerial.h> SoftwareSerial softSerial1(4,5);//软串口RXD4、TXD5,与短信模块通信    int sendMeg(String phonenum,String text)//发送信息的函数,直接调用即可,无需修改   {         char comdata=0;//判断接收到的最后一位是否对         String phone="";//电话号码存储         phone="AT+CMGS=\""+phonenum+'\"';             while (softSerial1.available() > 0){         comdata = softSerial1.read();  //每次读一个char字符,并相加         delay(2);         }             softSerial1.println("AT");//对GSM发送AT,看响应         delay(1000);         while (softSerial1.available() > 2){         comdata = softSerial1.read();  //每次读一个char字符,并相加         Serial.print(comdata);//错误         delay(2);         }         if(comdata!='K')//判断没有收到OK         {         Serial.println("error1");//错误 //        return  0;         }         comdata=0;              softSerial1.println("AT+CMGF=1");//设置GSM文本模式         delay(500);         while (softSerial1.available() > 2){         comdata = softSerial1.read();  //每次读一个char字符,并相加         delay(2);         }                  if(comdata!='K')//没有收到OK         {         Serial.println("error2"); //        return  0;         }          comdata=0;         softSerial1.println(phone);//发送的目标号码         delay(1000);         while (softSerial1.available() > 1){         comdata = softSerial1.read();  //每次读一个char字符,并相加         delay(2);         }                  if(comdata!='>')//没有收到>         {         Serial.println("error3"); //        return  0;         }         comdata=0;         softSerial1.print(text);//发送所写内容         delay(500);         softSerial1.write(0x1A); //结束输入文本,并发送         Serial.println("success");  //成功          }  // for循环若收不到消息会卡死 暂时用来看逻辑 int sendsim2(String phone_num,String text,SoftwareSerial &p_serial) {   p_serial.println("AT");   delay(500);   p_serial.println("AT+CSCS=\"GSM\"");   delay(500);   p_serial.println("AT+CMGF=1");   delay(500);   p_serial.print("AT+CMGS=\"");   p_serial.print(phone_num);   p_serial.println("\"");  // Serial.println("1");  //for(;p_serial.read()!='>';) ;  // Serial.println("1");   p_serial.print(text);   delay(500);   p_serial.write(0x1A);   delay(500);   p_serial.flush();   delay(100);      }    void setup(){ //硬串口  Serial.begin(9600); //监听软串口通信 softSerial1.begin(9600); softSerial1.listen();   }    void loop(){     sendMeg("15529672865","msg to phion");//给15147300333  发送信息 // sendsim2("15529672865","ddd",softSerial1);  delay(5000); }




从单片机串口拿数据,然后转发

32有各种各样的问题



#include<SoftwareSerial.h>  #define phonenum_call "15529672865"   SoftwareSerial softSerial1(4,5);//软串口RXD4、TXD5,与短信模块通信  int sendMeg(String phonenum,String text)//发送信息的函数,直接调用即可,无需修改   {          softSerial1.println("AT");//对GSM发送AT,看响应         char comdata=0;//判断接收到的最后一位是否对         String phone="";//电话号码存储         phone="AT+CMGS=\""+phonenum+'\"';             while (softSerial1.available() > 0){         comdata = softSerial1.read();  //每次读一个char字符,并相加         delay(2);         }             softSerial1.println("AT");//对GSM发送AT,看响应         delay(1000);         while (softSerial1.available() > 2){         comdata = softSerial1.read();  //每次读一个char字符,并相加         Serial.print(comdata);//错误         delay(2);         }         if(comdata!='K')//判断没有收到OK         {         Serial.println("error1");//错误 //        return  0;         }         comdata=0;              softSerial1.println("AT+CMGF=1");//设置GSM文本模式         delay(500);         while (softSerial1.available() > 2){         comdata = softSerial1.read();  //每次读一个char字符,并相加         delay(2);         }                  if(comdata!='K')//没有收到OK         {         Serial.println("error2"); //        return  0;         }          comdata=0;         softSerial1.println(phone);//发送的目标号码         delay(1000);         while (softSerial1.available() > 1){         comdata = softSerial1.read();  //每次读一个char字符,并相加         delay(2);         }                  if(comdata!='>')//没有收到>         {         Serial.println("error3"); //        return  0;         }         comdata=0;         softSerial1.print(text);//发送所写内容         delay(500);         softSerial1.write(0x1A); //结束输入文本,并发送         Serial.println("success");  //成功          }     void setup(){ //硬串口  Serial.begin(9600); //监听软串口通信 softSerial1.begin(9600); softSerial1.listen();  delay(5000); }    void loop(){          if(Serial.available()>0){       delay(1);//影响读取速度       String  comdata = Serial.readString();        // Serial.print("Serial.readString:");         // Serial.println(comdata);       comdata = "";       sendMeg(phonenum_call,comdata);//给15147300333  发送信息       delay(5000);             }      }