• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Передача данных через GET c arduino через esp

ilya62

New member
Прошу помочь новичку с написанием скетча для передачи данных через get с arduino через esp-1 на сервер. Если у готовый пример буду очень благодарен.
 

Vitaly

Member
ардуино + есп или скетч будет грузится прямо в есп?

если второе - открываем в иде с установленными есп либами
file -> examples -> esp8266wifi -> wificlient

если ардуина и есп тоже со скетчем, то пример выше + код для преобразования данных от ардуины

если ардуина и ат прошивка на есп, то это можно по форуму поискать лично я считаю, что это не очень правильный путь
 

ilya62

New member
ардуино + есп или скетч будет грузится прямо в есп?

если второе - открываем в иде с установленными есп либами
file -> examples -> esp8266wifi -> wificlient

если ардуина и есп тоже со скетчем, то пример выше + код для преобразования данных от ардуины

если ардуина и ат прошивка на есп, то это можно по форуму поискать лично я считаю, что это не очень правильный путь
Спасибо за наводку. Скетч хотел заливать в ардуино и через SoftwareSerial.h библиотеку передавать по esp-1.
 
Последнее редактирование:

Lion777

New member
Я сейчас тоже подобное делаю, тоже новичек, АТ командами пока делаю, отправляю с Ардуино команду на ЕСП по софтсериал, а по сериал приходит как то криво, тип так
Код:
AT


    OK
AT
CЎCЎQѓAT


OI
AT
CЎCЎQѓAT


OK
    AT


    OK
код которым отправляю принимаю
Код:
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  //Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(115200);
  //mySerial.print("AT+GMR\r\n");
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
   
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
 
  }
}
 

ilya62

New member
Я сейчас тоже подобное делаю, тоже новичек, АТ командами пока делаю, отправляю с Ардуино команду на ЕСП по софтсериал, а по сериал приходит как то криво, тип так
Код:
AT


    OK
AT
CЎCЎQѓAT


OI
AT
CЎCЎQѓAT


OK
    AT


    OK
код которым отправляю принимаю
Код:
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  //Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(115200);
  //mySerial.print("AT+GMR\r\n");
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
 
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());

  }
}
Вот что посмотри
[HASHTAG]#include[/HASHTAG] <SoftwareSerial.h>
[HASHTAG]#define[/HASHTAG] SSID "xxxxxxxx"
[HASHTAG]#define[/HASHTAG] PASS "xxxxxxxx"
[HASHTAG]#define[/HASHTAG] DST_IP "220.181.111.85" //baidu.com
SoftwareSerial dbgSerial(0, 1); // RX, TX // here i tried with 10,11 and 2,3
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(57600);
Serial.setTimeout(5000);
dbgSerial.begin(9600); //can't be faster than 19200 for softserial
dbgSerial.println("ESP8266 Demo");
//test if the module is ready
Serial.println("AT+RST");
delay(1000);
if(Serial.find("ready"))
{
dbgSerial.println("Module is ready");
}
else
{
dbgSerial.println("Module have no response.");
while(1);
}
delay(1000);
//connect to the wifi
boolean connected=false;
for(int i=0;i<5;i++)
{
if(connectWiFi())
{
connected = true;
break;
}
}
if (!connected){while(1);}
delay(5000);
//print the ip addr
/*Serial.println("AT+CIFSR");
dbgSerial.println("ip address:");
while (Serial.available())
dbgSerial.write(Serial.read());*/
//set the single connection mode
Serial.println("AT+CIPMUX=0");
}
void loop()
{
String cmd = "AT+CIPSTART=\"TCP\",\"";
cmd += DST_IP;
cmd += "\",80";
Serial.println(cmd);
dbgSerial.println(cmd);
if(Serial.find("Error")) return;
cmd = "GET / HTTP/1.0\r\n\r\n";
Serial.print("AT+CIPSEND=");
Serial.println(cmd.length());
if(Serial.find(">"))
{
dbgSerial.print(">");
}else
{
Serial.println("AT+CIPCLOSE");
dbgSerial.println("connect timeout");
delay(1000);
return;
}
Serial.print(cmd);
delay(2000);
//Serial.find("+IPD");
while (Serial.available())
{
char c = Serial.read();
dbgSerial.write(c);
if(c=='\r') dbgSerial.print('\n');
}
dbgSerial.println("====");
delay(1000);
}
boolean connectWiFi()
{
Serial.println("AT+CWMODE=1");
String cmd="AT+CWJAP=\"";
cmd+=SSID;
cmd+="\",\"";
cmd+=PASS;
cmd+="\"";
dbgSerial.println(cmd);
Serial.println(cmd);
delay(2000);
if(Serial.find("OK"))
{
dbgSerial.println("OK, Connected to WiFi.");
return true;
}else
{
dbgSerial.println("Can not connect to the WiFi.");
return false;
}
}
 

Lion777

New member
пасиб, счас попробую, на моем то запрос проходит и ответ приходит, ответ 200, но сами данные с каракулями, значит отправляются данные правильно, а вот приходит в сам монитор каракули бывают, бывает более менее нормально, возможно ответ и без каракуль, это монитор каверкает, попробую ответ в файл сохранять.
---
Возможно SoftSerial не поддерживает скорость 115200 на уно ?
 
Последнее редактирование:
Сверху Снизу