esp8266wifi отправка sms через шлюз

YaSerg
Offline
Зарегистрирован: 02.03.2017

Всем привет. 

Играюсь дома с датчиками движения делаю следующую задачу: имеется несколько датчиков движения плата wemos d1 r2(esp8266wifi), платаа отслеживает датчики движения и по положительному сигналу отсылает e-mail по средствам GET запроса на свой сервер, который генерирует письмо.

Сейчас решил переделать под отправку смс через смс шлюз, выглядело довольно все просто. Сервис поддерживает GET запрос и вроде просто надо прописать другую строку, но не тут то было.

Для отправки e-mail я использую следующую ф-цию:

#include <ESP8266WiFi.h>

char servername[]="youhost.ru";  // сервер на который отправлять запрос
String result;

// пропущен луп

void sendDataToServer(String room)
{
  if (client.connect(servername, 80)) {  //starts client connection, checks for connection
    Serial.println("connected");
    client.println("GET /send_email.php?room="+room+" HTTP/1.1"); //Send data
    client.println("Host: youhost.ru");
    client.println("Connection: close");  //close 1.1 persistent connection  
    client.println(); //end of get request
  } 
  else {
    Serial.println("connection failed"); //error message if no client connect
    Serial.println();
  }

 while(client.connected() && !client.available()) delay(1); //waits for data
  while (client.connected() || client.available()) { //connected or data available
    char c = client.read(); //gets byte from ethernet buffer
      result = result+c;
    }

    client.stop(); //stop client
    Serial.println(result);
  
}

Для смс шлюза требуется запрос следующего формата http://gate.iqsms.ru/send/?phone=%2B71234567890&text=test

Меняем

char servername[]="gate.iqsms.ru"; 

client.connect(servername, 80)

и при исполнении скетча при попытке коннекта получаем ошибку 302 от сервера шлюза смс.

Подскажите как правильно тут прописать подключение к серверу.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А 12-ую строку как меняете? Чего не дописали-то?

YaSerg
Offline
Зарегистрирован: 02.03.2017

ЕвгенийП пишет:

А 12-ую строку как меняете? Чего не дописали-то?

Ошибка вылетает раньше.

client.println("GET /send/?login=mylogin&password=mypassword&phone=%2B71234567890&text=test HTTP/1.1"); //Send data

 

YaSerg
Offline
Зарегистрирован: 02.03.2017

Если разобрать подробнее из того что мне удалось понять. Система подключения к серверу следующая:

1. Сначала мы подключаетмся к серверу по 80 порту - gate.iqsms.ru

2. Затем отправляем запрос - /send/?login=mylogin&password=mypassword&phone=%2B71234567890&text=test

Отсюда видим проблему яснее, в монитор порта при попытке подключения к серверу п. 1 получаем ошибку 404. Пробуем вручную вбить в браузер gate.iqsms.ru и тоже получаем 404.

Теперь вопрос здесь, может как-нибудь по другому необходимо формировать запрос или сервер как-то по другомц указать?