狗屎佳世通旗艦店,賣的什么破玩意sim900a芯片,不支持聯通卡,還生明模塊支持雙卡的
之前買的esp8266-07都是內存偷工減料
買的液體濁度傳感器給的原理圖也不給基本接線。
差評垃圾店,你敢賣就別怪我吐槽。耽誤我這么多時間。
問題
使用arduino nano板子以及其擴展板子經常因為電流不足短信無法正常工作
需要額外供電,l例如一個單獨的usb-ttl(5v)或者 220v-5v或220v-12v插在擴展板子供電
如果用arduino nano板子(店家不同質量不同)自帶供電 USB線很可能電流有限制
導致功率過低發不出短息
這個時候單獨用一個USB-ttl來個5V供電就解決了
1 只能發送英文
#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); } }