Ви не увійшли.
Сторінки 1
вот попробуй подумать про https://www.ebay.com/itm/16CH-Analog-Digital-MUX-Breakout-Board-CD74HC4067-Precise-module-Arduino-LD/223452845448?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649
могу поделиться функцией, которая посылает команду в модем и жет ответ.... может вам поможет....
пример использования .... формат: "команда","ответ", время ожидаия в секундах, кол-во повторных попыток, читить буфер);
надеюсь вы понимаете что \" это символ "
if (!modem_write("AT+SAPBR=3,1,\"Contype\",\"GPRS\"","OK",1,3,true ))
if (!modem_write("AT+SAPBR=3,1,\"APN\",\"www.ab.kievstar.net\"","OK",1,3,true ))
if (!modem_write("AT+SAPBR=1,1","OK",5,3,true ))
в начале
Serial.begin(9600);
debugSerial.begin(38400);
#define DEBUGMODE 4
//-------------------------------------------------modem_write---------------------------------------------
boolean SMARTBHIVE::modem_write(char command[], char answer[], byte waitTime, byte repeet, boolean after_read){
while(repeet>0){
#if DEBUGMODE < 5
debugSerial.print(F("modWrite>\""));debugSerial.print(command);debugSerial.print(F("\" wait:"));debugSerial.print(waitTime);
debugSerial.print(F("for:\"")); debugSerial.print(answer); debugSerial.print(F("\" left:")); debugSerial.print(repeet);
#endif
Serial.println(command);
gsm_read_buf ="";
unsigned long ii=millis();
while ((millis()-ii)/1000 < waitTime){
if (Serial.available()) gsm_read_buf += char(Serial.read());
if (gsm_read_buf.endsWith(answer)){
#if DEBUGMODE < 5
debugSerial.print (F("->DONE in:"));
debugSerial.println ((millis()-ii));
#endif
if (after_read){
unsigned long iii=millis();
while ((millis()-iii) < 200) if (Serial.available()) gsm_read_buf +=char(Serial.read());
};
#if DEBUGMODE < 5
debugSerial.println(gsm_read_buf);
#endif
return (0);
};
};
#if DEBUGMODE < 5
debugSerial.println(F(">TIMEOUT"));
#endif
#if DEBUGMODE < 5
debugSerial.println(gsm_read_buf);
#endif
repeet--;
};
#if DEBUGMODE < 7
debugSerial.println(F("modWrite>FAIL"));
#endif
return (1);
};
привет.
у SoftwareSerial есть одна проблема....если во время передачи данных (от mcu в модуль) модуль что-нибудь пошлет (типа OK)....это вызовет int2 и передаваемые данные потеряются
я бы очень рекомендовал использовать аппаратный serial для модема а отлаживаться с softserial... хотя это довольно геморойно
есть еще чудесная библиотека AltSoftSerial она лучше работает для вашей задачи
удачи.
Сторінки 1