ПБ отправки методом POST

Нужна помощь в создании пользовательского блока из скетча

Ответить
Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06.04.2016{, 19:59}
Репутация: 20
Откуда: bish
Имя: Антон

ПБ отправки методом POST

#1

Сообщение Cancertanly » 03.10.2022{, 12:14}

Доброго времени суток, коллеги.
Нужна помощь в создании пользовательского блока из скетча:

Код: Выделить всё

#include <ESP8266WiFi.h>
const char* ssid = "*****";
const char* password = "********";
int myIP = 100;
int mySub = 166;
IPAddress staticIP(10, 3, 166, 100);
IPAddress gateway(10, 3, 1, 7);
IPAddress subnet(255, 255, 0, 0);
IPAddress dns (10, 10, 10, 3);
IPAddress web_server (10, 10, 10, 12);
WiFiClient client;
WiFiServer server(80);
int AnalIN;
String answer = "";
unsigned long int timeConn = millis();      // Частота отправки данных

void sendTemperature(String deviceTemp) {
  if (client.connect(web_server, 80)) {
    String data = "tmp=" + String(deviceTemp) + "&ip="+String(mySub)+"."+String(myIP);

    Serial.println("POST /add_temp.php");
    Serial.println(data);
    Serial.println(data.length());
    client.println("POST /add_temp.php HTTP/1.1");
    client.println("Host: localhost");
    client.println("Content-Type: application/x-www-form-urlencoded");
    client.print("Content-Length: ");
    client.println(data.length());
    client.println();
    client.print(data);
    client.stop();
  } else {
    Serial.println("ErrorSend!!!");
  }

  if (client.connected()) {
    client.stop();
  }
}
void setup(void){
  Serial.begin(115200);
  Serial.println();
  Serial.printf("Connecting to %s\n", ssid);
  WiFi.config(staticIP, gateway, subnet, dns);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print("*");
  }
  Serial.println();
  Serial.print("Connected, IP address: ");
  Serial.println(WiFi.localIP());
  server.begin();
}
void loop() {
 
  Serial.println("START"+String(AnalIN));
  
  AnalIN = analogRead(A0);
  answer = "";
  answer = answer + "\"666" + "\":" + String(AnalIN) + " ";
 delay(1000);
  answer.trim();
  answer.replace(" ", ",");
  answer = "{" + answer + "}";

  if (millis() - timeConn > 60000) {
    sendTemperature(answer);
    timeConn = millis();
  }
  
}
Этот скетч отправляет данные с аналогового входа ЕСП8266 на сервер методом POST.
Штатными блоками может можно как-то обойтись, но у меня не получилось. Мне необходимо помимо аналогового входа отправлять другие данные, а как это сделать ума не приложу...
Помогите пожалуйста!
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino

Anydy

ПБ отправки методом POST

#2

Сообщение Anydy » 03.10.2022{, 16:24}

Вы этот скетч сами сочинили?
Он работает?
Не понятно что в блоке еще должно быть?

Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06.04.2016{, 19:59}
Репутация: 20
Откуда: bish
Имя: Антон

ПБ отправки методом POST

#3

Сообщение Cancertanly » 03.10.2022{, 19:23}

Anydy писал(а):
03.10.2022{, 16:24}
Вы этот скетч сами сочинили?
Он работает?
Не понятно что в блоке еще должно быть?
да сочинил сам, по примеру веб-клиента. Но мне нужен ПБ для использования в ФЛПрог, чтобы можно было подставить свою переменную вместо аналогового входа, там
Cancertanly писал(а):
03.10.2022{, 12:14}
answer = answer + "\"666" + "\":" + String(AnalIN) + " ";
формируется строка и в ней есть 666, которая тоже нужна, как переменная. А как это сделать, не хватает опыта в создании пользовательских блоков
Да, скетч работает!
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino

Anydy

ПБ отправки методом POST

#4

Сообщение Anydy » 03.10.2022{, 19:33}

Cancertanly, Вот накидал блок из вашего скетча, 2 входа - от аналогово пина и от цифрового, в настройках указываются пины.
Но его по идее нужно дорабатывать ...выносить все настройки ...ну и малоли чего еще....
Проверяйте...
Send_POST_(Code_-_Basic).ubi
(108.87 КБ) 25 скачиваний
Отправлено спустя 5 минут 1 секунду:
Cancertanly писал(а):
03.10.2022{, 19:23}
answer = answer + "\"666" + "\":" + String(AnalIN) + " ";
как то так answer = answer + "\"+ String(переменная) + "\":" + String(AnalIN) + " ";

Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06.04.2016{, 19:59}
Репутация: 20
Откуда: bish
Имя: Антон

ПБ отправки методом POST

#5

Сообщение Cancertanly » 03.10.2022{, 19:41}

Спасибо, с утра проверю
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino

Anydy

ПБ отправки методом POST

#6

Сообщение Anydy » 04.10.2022{, 04:06}

как ни пытался ....обратная флешь ( \ ) ардуине не нравится.....не знаю почему...буду разбиратся
Видимо пока придется отправлять только таком формате - " \ ABC "
Попробую в новом редакторе....

Аватара пользователя
Cancertanly
Сержант
Сообщения: 214
Зарегистрирован: 06.04.2016{, 19:59}
Репутация: 20
Откуда: bish
Имя: Антон

ПБ отправки методом POST

#7

Сообщение Cancertanly » 04.10.2022{, 07:56}

Anydy писал(а):
04.10.2022{, 04:06}
....обратная флешь ( \ ) ардуине не нравится....
я тоже столкнулся с этим, оказывается, так надо ее экранировать "\""
у меня такая строчка получилась

Код: Выделить всё

answer = answer + "\"" + int(INDEXserver)  + "\""+":" + String(AnalIN);
FLProg_ru
https://t.me/flrog_ru ...................................................FLProg_v7.3.4
https://t.me/soft_duino

Ответить

Вернуться в «Помогите, а то я "нимагу"»