#1 Re: Програмування Arduino » Маршрутовказівник на тролейбус » 2023-01-13 20:06:17

vrd пише:

Самым оптимальным является использование gps модуля с самоопределением направления маршрута. Но для этого лучше всего подходит esp32сам со встроенным слотом SD.
У ардуины всего 16Мгц тактовая частота и поэтому нормальную точность + считывание файла она не потянет. Надо будет мудрить с прерываниями.

Не зовсім потрібно мудрити smile Але без таймерів ніяк. Ардуіно нано вистачає щоб считати 5 GPS пакетів в секунду здається і це потолок якщо не меньше також ще залежить від бібліотеки і протокола. Але 1 пакет в секунду з головою вистачить + використання інших операцій считати дані з sd.. наприклад є функція визначення скільки метрів до зупинки "А", коли прийшли в радіусі 20м на цю зупинку то через 2хв показуєм іншу  hmm!

int distanceBetween(double lat1, double long1, double lat2, double long2) {
  // повертає відстань у метрах між двома вказаними позиціями
  // у вигляді десяткових градусів широти та довготи зі знаком. Використовує велике коло
  // Розрахунок відстані для гіпотетичної сфери радіусом 6372795 метрів.
  // Оскільки Земля не є точною кулею, похибки округлення можуть становити до 0,5%.
  // Надано Мартеном Ламерсом
  double delta = radians(long1 - long2);
  double sdlong = sin(delta);
  double cdlong = cos(delta);
  lat1 = radians(lat1);
  lat2 = radians(lat2);
  double slat1 = sin(lat1);
  double clat1 = cos(lat1);
  double slat2 = sin(lat2);
  double clat2 = cos(lat2);
  delta = (clat1 * slat2) - (slat1 * clat2 * cdlong);
  delta = sq(delta);
  delta += sq(clat2 * sdlong);
  delta = sqrt(delta);
  double denom = (slat1 * slat2) + (clat1 * clat2 * cdlong);
  delta = atan2(delta, denom);
  return delta * 6372795;
}

#2 Re: Програмування Arduino » Ардуіно GPS і компас » 2023-01-13 19:45:20

Так звичайно, для цього вам потрібен хостинг/vds знати html, css, php, js .. через get або web сокет відправляти дані на сервер чи з серверу.

#3 Re: Програмування Arduino » Не могу найти ошибку в коде » 2022-04-19 20:45:48

Привіт), а де навчаєшся ?
Скажи в чом помилка ? бо ми не будемо збирати це все..звучить страшновато lol lol wink Тиш будеш провіряти на свої моделі.. і сам осмислювати в чому нам для тебе підсказати..

#4 Програмування Arduino » SIM800L GPRS передача даних, швидкість, "багатопоточність" AT команди » 2022-04-11 22:07:10

zDimaby
відповідей: 0

SIM800 Series_FM_Application Note_V1.00

SIM800 Series_Email_Application Note_V1.00

SIM800 Series_MMS_Application Note_V1.00

SIM800 Series IP Application Note V1.00

SIM800 Series TCPIP Application Note V1.00

SIM800 Series TCPIP Application Note V1.01

SIM800 Series TCPIP Application Note V1.03 - Serial.print("ваше повідомлення x1A"); - Відправити дані на віддалений сервер, CTRL+Z (0x1a) щоб надіслати.

SIM800 Series Serial Port Application Note V1.01

SIM800 Series AT Command Manual V1.01

SIM800 Series AT Command Manual V1.05

SIM800 Series AT Command Manual V1.10

SIM800 Series Embedded AT Application Note v1.04

SIM800_Hardware Design_V1.09

SIM800 Hardware Design V2.02

Позбирав мануали може комусь буде у нагоді. можливо не все.


модуль SIM800L дозволяє командою 'AT+CSQ' оцінити якість сигналу в 'папугах'.

Value   RSSI dBm    Condition
2   -109    Marginal
3   -107    Marginal
4   -105    Marginal
5   -103    Marginal
6   -101    Marginal
7   -99 Marginal
8   -97 Marginal
9   -95 Marginal
10  -93 OK
11  -91 OK
12  -89 OK
13  -87 OK
14  -85 OK
15  -83 Good
16  -81 Good
17  -79 Good
18  -77 Good
19  -75 Good
20  -73 Excellent
21  -71 Excellent
22  -69 Excellent
23  -67 Excellent
24  -65 Excellent
25  -63 Excellent
26  -61 Excellent
27  -59 Excellent
28  -57 Excellent
29  -55 Excellent
30  -53 Excellent

Цікавий момент: В SIM800 Series_TCPIP_Application Note_V1.00 зміст 4: Two GPRS Context

Серія SIM800 підтримує використання двох APN(до 6), тобто двох різних з'єднань GPRS.
передачі даних. Цей режим має використовуватись у багатоканальному з'єднанні. Клієнт активував GPRS перше з'єднання, зробіть якесь з'єднання. Коли потрібне друге з'єднання для підключення до даних, використовуйте
"at+cipsgtxt=1" для перемикання, після цього активуйте друге з'єднання та здійсніть підключення даних.


Взагалом моя ціль була досягти 10пакетів за секунду.

1 бод = 1 біт/сек. 1 байт = 8 біт, слід. 9600 бод = 1200 байт/сек. 150байт 1 запит 200мс норм буде на 9600. Думаю більше залежить від захламленого loop.. а на стороні модему обмежує AT+HTTPACTION=0 сесія передачі даних щоб досягти 10 пакетів в секунду

макс швидкість залежить від БС. GPRS class 12 (85.6 кБ/с) - 85.6 Кілобайт = 87654.4 Байт. зі сторони модему Запити GET. POST зовсім інше.. потрібно досягти потоку даних TCP на скільки зрозумів

Ще розгляну у вільний час TCP і UDP, mqtt ..

ПРИКЛАД ініціалізації HTTP під mega2560

#define APN "internet" //Профіль інтернет з'єднання
#define USER ""
#define PASSWORD ""
#define ATsetTimeout 2000 //Час очікування відповіді мс
void setup() {
  Serial.begin(115200);
  Serial3.begin(115200);
  Serial3.setTimeout(10000);//Час очікування модему
  //AT("", "READY");
  Serial3.setTimeout(ATsetTimeout);
  AT("AT", "OK");
  AT("AT+DDET=0; E0; +CLIP=1; S0=0; V1; +CMEE=2; +CMGF=0; +CIPMODE=0", "OK"); //1 - виключаємо режим розпізнавання DTMF, 2 - відключаємо повернення команд від модему, 3 - включаємо АОН, 4 - вручну піднімати трубку при вхідному дзвінку, 5 - розгорнуту символьну відповідь від модему, 6 - докладний висновок помилок, 7 - PDU режим прийому та відправки SMS, 8 - Командний режим передачі даних
  AT("AT+SAPBR=3,1,"CONTYPE","GPRS"", "OK");
  AT("AT+SAPBR=3,1,"APN", "APN"", "OK");
  AT("AT+SAPBR=3,1,"USER","USER"", "OK");
  AT("AT+SAPBR=3,1,"PWD","PASSWORD"", "OK");
  AT("AT+SAPBR=1,1", "OK");//Встановлюємо GPRS з'єднання
  AT("AT+HTTPINIT", "OK");//Ініціалізація http сервісу
  AT("AT+HTTPPARA="CID",1", "OK");//Налаштування CID параметра для http сесії
  Serial3.println("AT+SAPBR=4,1; +SAPBR=2,1; +CREG?; +COPS?; +CGATT?");//відомості про профіль, з'єднання та IP адреси (+SAPBR: 1,1,"-ip-") з'єднання встановлено, перевіряємо що реєструвалися в домашній мережі, дивимось хто оператор, Перевірка доступу до послуг пакетної передачі даних
}
void loop() {
}
void serialEvent() {
  Serial3.write(Serial.read());    // ...та відправляємо отриману команду модему
}
void serialEvent3() {
  Serial.write(Serial3.read());    // ...і виводимо їх у Serial
}
void AT (String ATcmd, char *res) {
  Serial.println(ATcmd);
  Serial.print(" wait->");
  Serial3.println(ATcmd);
  while (!Serial3.available()) {
    Serial.print(".");
  } if (Serial3.find(res)) {
    Serial.println("done!");
  } else {
    Serial.println("timeOut!");
  }
}

Приклад передачі TCP під mega328.. для дешевих клонів зменшуємо швидкість Sim800GSM.begin(57600); сервер в архіві Ajax_server.rar весь код потрібно оптимізувати. У мене виходило досягти 5 пакетів в секунду, здається впираюсь в Sim800l не вспіває обробляти serial.

#include <GParser.h>
#include <SoftwareSerial.h>// Підключаємо бібліотеку Software Serial
SoftwareSerial Sim800GSM(5, 6); // RX, TX // Оголошуємо задіяні дискретні канали контролера для зв'язку

#define FOR_i(from, to) for(int i = (from); i < (to); i++)
#define APN "internet"
#define SERVER "999.999.105.221"//ІР тср сервера
#define PORT "10000"//порт сервера
#define ATsetTimeout 5000

int ATdelay;
char buff[70];
byte iBuff = 0;//для буфера

void setup() {
  Serial.begin(115200);//
  Sim800GSM.begin(115200);
  Sim800GSM.println("AT");
  Sim800GSM.setTimeout(ATsetTimeout);
  gprsINIT();
  FOR_i(0, 2) {
    gprsLOOP();
  }
  AT("AT+CIPSHUT", "SHUT OK");
}
void loop() {
}
void gprsLOOP() {
  AT("AT+CIPSEND", ">");
  ATLoopSend("99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 rn x1A", "SEND OK");
}
void gprsINIT() {
  ATdelay = 500;
  AT("AT", "OK");
  AT("AT+CSTT="APN"", "OK");
  AT("AT+CIICR", "OK");
  AT("AT+CIFSR", "");
  AT("AT+CIFSR", "");
  AT("AT+CIPSTART="TCP","SERVER","PORT" rn", "CONNECT OK");
  ATdelay = 50;
}
void ATLoopSend (String ATcmd, char *res) {
  Serial.println(ATcmd);
  Sim800GSM.println(ATcmd);
  while (!Sim800GSM.available());
  if (Sim800GSM.find(res)) {
    Serial.println(res);
  }
  while (!Sim800GSM.available()) Serial.print(".");
  while (Sim800GSM.available()) {
    char ch = Sim800GSM.read();
    if (ch == 'n') {
      buff[iBuff] = 0;
      iBuff = 0;
      Serial.println(buff);
      GParser data(buff, ':');
      int am = data.split();
      for (byte i = 0; i < am; i++) Serial.println(data[i]);
    } else {
      buff[iBuff++] = ch;
    }
  }
}
void AT (String ATcmd, char *res) {
  delay(ATdelay);
  Serial.println(ATcmd);
  Sim800GSM.println(ATcmd);
  while (!Sim800GSM.available()) Serial.print(".");
  if (Sim800GSM.find(res)) {
    Serial.println(res);
  } else {
    FOR_i(0, 2) {
      Sim800GSM.println(ATcmd);
      while (!Sim800GSM.available()) Serial.print(".");
      if (Sim800GSM.find(res)) {
        Serial.println(res);
      }
    }
  }
}

Приклад передачі TCP під stm32f103c8t6 впираюсь в 5 пакетів/с в Ajax_server.rar в /php/server.php рядок $talkback = "'$inDATA->inDATA'.\n"; замінити на $talkback = "'$inDATA->inDATA'.\0\n";

#include <GParser.h>

#define FOR_i(from, to) for(int i = (from); i < (to); i++)
#define APN "internet"
#define SERVER "999.999.104.159"//ІР тср сервера
#define PORT "10000"//порт сервера

unsigned long timing;
char buff[70];
byte iBuff = 0;//для буфера

int timeOut = 5000;//timeOut мс AT команд
byte delayInit = 100;//Затримка ініціалізації AT команд


void setup() {
  delay(4000);
  Serial.println("START");
  Serial.begin(115200);
  Serial1.begin(115200);
  gprsINIT();
  FOR_i(0, 10) {
    gprsLOOP();
  }
  AT("AT+CIPSHUT", "SHUT OK");
}
void loop() {
  if (Serial1.available()) {
    Serial.write(Serial1.read());
  }
  if (Serial.available()) {
    Serial1.write(Serial.read());
  }
}
void gprsLOOP() {
  ATLoop("AT+CIPSEND", ">");
  ATLoopSend("99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 rn x1A", "SEND OK");
}
void ATLoop (char *ATcmd, char *res) {
  timing = millis();
  while (millis() - timing < delayInit);
  Serial.println(ATcmd);
  Serial1.println(ATcmd);
  while (!Serial1.available());
  if (Serial1.find(res)) {
    Serial.print(res);
  }
}
void ATLoopSend (char *ATcmd, char *res) {
  bool ATLoopWhile = true;
  Serial.println(ATcmd);
  Serial1.println(ATcmd);
  while (!Serial1.available());
  if (Serial1.find(res)) {
    Serial.println(res);
  }
  while (ATLoopWhile) {
    while (Serial1.available()) {//поки в порту є символи
      char ch = Serial1.read(); // читаємо його з порту
      switch (ch) {
        case '\0'://Якщо в пакеті є  - закінченя рядка
          buff[iBuff] = 0;
          iBuff = 0;
          Serial.print(buff);
          Serial.print(" ");
          ATLoopWhile = false;
          break;
        case '\v'://вертикальна табуляція - ігноруємо
          //Serial.println("/v");
          break;
        case '\r'://Повернення каретки - закінчення рядка
          //Serial.println("/r");
          break;
        case '\n'://переклад рядка - ігноруємо
          //Serial.println("/n");
          break;
        default://якщо символ – не кінець рядка
          buff[iBuff++] = ch;// – додаємо символ у буфер
          break;
      }
    }
    if (millis() - timing > timeOut) {
      if (ATLoopWhile) {
        Serial.println("FATAL");
        ATLoopWhile = false;
      }
    }
  }
}
void gprsINIT() {
  AT("AT", "OK");
  AT("AT+CSTT="APN"", "OK");
  timeOut = 50000;
  AT("AT+CIICR", "OK");
  timeOut = 5000;
  AT("AT+CIFSR", ".");
  AT("AT+CIPSTART="TCP","SERVER","PORT" rn", "CONNECT OK");
  delayInit = 30;//Затримка AT команд
}
void AT(char *ATcmd, char *res) {
  bool ATLoopWhile = true;
  timing = millis();
  while (millis() - timing < delayInit);
  Serial1.println(ATcmd);
  while (ATLoopWhile) {
    while (Serial1.available()) {//поки в порту є символи
      char ch = Serial1.read(); // читаємо його з порту
      switch (ch) {
        case '\n'://переклад рядка - ігноруємо та ..
          buff[iBuff] = 0;
          iBuff = 0;
          Serial.print(buff);
          Serial.print(" ");
          if (strcheck(buff, res)) {
            Serial.println("DONE");
            ATLoopWhile = false;
          }
          break;
        case '\v'://вертикальна табуляція - ігноруємо
          //Serial.println("/v");
          break;
        case '\r'://Повернення каретки - закінчення рядка
          //Serial.println("/r");
          break;
        case '\0'://Закінченя рядка - [color=#ff1919]ігноруємо STM32F103C8T6 чомусь не бачить його[/color]
          //Serial.println("/0");
          break;
        default://якщо символ – не кінець рядка
          buff[iBuff++] = ch;// – додаємо символ у буфер
          break;
      }
    }
    if (millis() - timing > timeOut) {
      if (ATLoopWhile) {
        Serial.println("FATAL");
        ATLoopWhile = false;
      }
    }
  }
}
int strcheck(char *str1, char *str2) {
  int i = 0;
  while (str1[i] != '' && str2[i] != '') {
    if (str1[i] != str2[i])
      return 0;
    i++;
  }
  return 1;
}

Логи COM port

20:11:44.982 -> START
20:11:45.074 -> AT OK DONE
20:11:45.213 -> AT+CSTT=internet OK DONE
20:11:45.725 -> AT+CIICR OK DONE
20:11:45.818 -> AT+CIFSR 10.76.172.65 FATAL
20:11:50.807 -> AT+CIPSTART="TCP",999.999.104.159,10000  OK  DONE
20:11:51.455 -> AT+CIPSEND
20:11:51.455 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:51.455 ->  
20:11:51.641 -> SEND OK
20:11:51.965 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:52.013 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:52.013 ->  
20:11:52.198 -> SEND OK
20:11:52.245 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:52.291 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:52.291 ->  
20:11:52.431 -> SEND OK
20:11:52.478 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:52.478 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:52.478 ->  
20:11:52.662 -> SEND OK
20:11:52.662 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:52.708 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:52.708 ->  
20:11:52.893 -> SEND OK
20:11:52.893 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:52.939 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:52.939 ->  
20:11:53.123 -> SEND OK
20:11:53.123 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:53.170 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:53.170 ->  
20:11:53.355 -> SEND OK
20:11:53.355 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:53.402 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:53.402 ->  
20:11:53.588 -> SEND OK
20:11:53.588 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:53.588 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:53.588 ->  
20:11:53.774 -> SEND OK
20:11:53.774 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:53.820 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:53.820 ->  
20:11:54.148 -> SEND OK
20:11:54.148 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:54.195 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:54.195 ->  
20:11:54.338 -> SEND OK
20:11:54.338 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:54.385 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:54.385 ->  
20:11:54.621 -> SEND OK
20:11:54.621 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:54.668 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:54.668 ->  
20:11:54.947 -> SEND OK
20:11:54.947 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:54.993 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:54.993 ->  
20:11:55.225 -> SEND OK
20:11:55.225 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:55.272 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:55.272 ->  
20:11:59.549 -> SEND OK'89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:11:59.598 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:11:59.598 ->  
20:12:00.297 -> SEND OK
20:12:00.344 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:00.391 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:00.391 ->  
20:12:01.093 -> SEND OK
20:12:01.139 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:01.186 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:01.186 ->  
20:12:01.370 -> SEND OK
20:12:01.416 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:01.416 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:01.416 ->  
20:12:01.555 -> SEND OK
20:12:03.136 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:03.136 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:03.136 ->  
20:12:04.684 -> SEND OK'89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:04.733 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:04.733 ->  
20:12:04.964 -> SEND OK
20:12:04.964 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:05.009 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:05.009 ->  
20:12:05.148 -> SEND OK
20:12:05.148 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:05.193 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:05.193 ->  
20:12:05.333 -> SEND OK
20:12:05.379 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:05.379 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:05.379 ->  
20:12:05.565 -> SEND OK
20:12:05.565 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:05.611 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:05.611 ->  
20:12:05.752 -> SEND OK
20:12:05.752 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:05.799 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:05.799 ->  
20:12:05.984 -> SEND OK
20:12:05.984 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:06.030 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:06.030 ->  
20:12:06.538 -> SEND OK
20:12:06.538 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:06.585 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:06.585 ->  
20:12:06.909 -> SEND OK
20:12:06.956 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:06.956 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:06.956 ->  
20:12:07.608 -> SEND OK
20:12:07.608 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:07.608 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:07.655 ->  
20:12:07.933 -> SEND OK
20:12:07.933 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:07.933 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:07.933 ->  
20:12:08.120 -> SEND OK
20:12:08.120 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:08.166 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:08.166 ->  
20:12:08.305 -> SEND OK
20:12:08.305 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:08.352 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:08.352 ->  
20:12:08.491 -> SEND OK
20:12:08.538 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:08.538 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:08.538 ->  
20:12:08.724 -> SEND OK
20:12:08.724 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:08.770 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:08.770 ->  
20:12:08.910 -> SEND OK
20:12:08.910 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:08.957 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:08.957 ->  
20:12:09.096 -> SEND OK
20:12:09.096 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:09.142 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:09.142 ->  
20:12:09.327 -> SEND OK
20:12:09.327 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:09.374 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:09.374 ->  
20:12:10.581 -> SEND OK'89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:10.581 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:10.581 ->  
20:12:10.766 -> SEND OK
20:12:10.766 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:10.812 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:10.812 ->  
20:12:10.952 -> SEND OK
20:12:10.999 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:11.044 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:11.044 ->  
20:12:11.184 -> SEND OK
20:12:11.231 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:11.231 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:11.231 ->  
20:12:11.462 -> SEND OK
20:12:11.462 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:11.509 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:11.509 ->  
20:12:12.067 -> SEND OK
20:12:12.067 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:12.114 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:12.114 ->  
20:12:12.299 -> SEND OK
20:12:12.299 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:12.346 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:12.346 ->  
20:12:12.532 -> SEND OK
20:12:12.532 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:12.578 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:12.578 ->  
20:12:12.763 -> SEND OK
20:12:12.763 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:12.810 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:12.810 ->  
20:12:12.996 -> SEND OK
20:12:12.996 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:13.043 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:13.043 ->  
20:12:13.228 -> SEND OK
20:12:13.228 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:13.275 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:13.275 ->  
20:12:13.460 -> SEND OK
20:12:13.460 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:13.506 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:13.506 ->  
20:12:13.692 -> SEND OK
20:12:13.692 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:13.692 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:13.692 ->  
20:12:13.925 -> SEND OK
20:12:13.925 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:13.972 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:13.972 ->  
20:12:14.158 -> SEND OK
20:12:14.158 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:14.204 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:14.204 ->  
20:12:14.440 -> SEND OK
20:12:14.440 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:14.487 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:14.487 ->  
20:12:14.675 -> SEND OK
20:12:14.675 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:14.675 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:14.675 ->  
20:12:14.908 -> SEND OK
20:12:14.908 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:14.955 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:14.955 ->  
20:12:15.468 -> SEND OK
20:12:15.468 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:15.468 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:15.468 ->  
20:12:15.840 -> SEND OK
20:12:15.840 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:15.886 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:15.886 ->  
20:12:16.259 -> SEND OK
20:12:16.259 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:16.305 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:16.305 ->  
20:12:16.491 -> SEND OK
20:12:16.491 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'. AT+CIPSEND
20:12:16.491 -> >99:88:77:66:55:44:33:22:00:88:77:66:55:44:33:22:11 
20:12:16.491 ->  
20:12:16.678 -> SEND OK
20:12:16.678 -> '89:50:50:31:50:50:50:50:50:50:50:50:50:50:50:50'.  DONE
20:12:16.724 -> AT+CIPSHUT

20:12:19.375 -> SHUT OK
20:12:59.870 -> AT+CSQ
20:12:59.870 -> +CSQ: 12,0
20:12:59.870 -> 
20:12:59.870 -> OK
20:13:01.134 -> AT+CSQ
20:13:01.134 -> +CSQ: 12,0
20:13:01.134 -> 
20:13:01.134 -> OK
20:13:01.927 -> AT+CSQ
20:13:01.927 -> +CSQ: 12,0
20:13:01.927 -> 
20:13:01.927 -> OK

Підвал форуму