esp8266wifi отправка sms через шлюз
- Войдите на сайт для отправки комментариев
Всем привет.
Играюсь дома с датчиками движения делаю следующую задачу: имеется несколько датчиков движения плата 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 от сервера шлюза смс.
Подскажите как правильно тут прописать подключение к серверу.
А 12-ую строку как меняете? Чего не дописали-то?
А 12-ую строку как меняете? Чего не дописали-то?
Ошибка вылетает раньше.
client.println("GET /send/?login=mylogin&password=mypassword&phone=%2B71234567890&text=test HTTP/1.1"); //Send dataЕсли разобрать подробнее из того что мне удалось понять. Система подключения к серверу следующая:
1. Сначала мы подключаетмся к серверу по 80 порту - gate.iqsms.ru
2. Затем отправляем запрос - /send/?login=mylogin&password=mypassword&phone=%2B71234567890&text=test
Отсюда видим проблему яснее, в монитор порта при попытке подключения к серверу п. 1 получаем ошибку 404. Пробуем вручную вбить в браузер gate.iqsms.ru и тоже получаем 404.
Теперь вопрос здесь, может как-нибудь по другому необходимо формировать запрос или сервер как-то по другомц указать?