enc28j60 и ардуино нано

wwserg
Offline
Зарегистрирован: 08.03.2014

Добрый день!

Туплю и не могу справится, похоже с простейшим. Шилд enc28j80 подключен к нано с целью протестировать передачу get-запроса на собственный сайт. На хостинге всё настроено и работает благодаря инструкциям от ЕвгенийП от 2016 г. Простой запрос на хостинг в адресной строке (http://mysyte.ru/arddta.php?tempra=27,5&humda=35&presra=467&carbra=1444) замечательно отражает информацию на сайте. Я не могу передать этот же запрос из ардуины. Не подскажете, в чём ошибка? Заранее спасибо.

Код переделан из примера.


#include <SPI.h>
#include <Ethernet.h>

// replace the MAC address below by the MAC address printed on a sticker on the Arduino Shield 2
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

EthernetClient client;

int    HTTP_PORT   = 80;
String HTTP_METHOD = "GET"; // or POST
char   HOST_NAM[] = "mysyte.ru";
String PATH_NAME   = "";

void setup() {
  Serial.begin(9600);
  
  String queryString = "arddta.php?tempra=27,5&humda=35&presra=467&carbra=1444";

  // connect to web server on port 80:
  if(client.connect(HOST_NAM, HTTP_PORT)) {
    // if connected:
    Serial.println("Connected to server");
    // make a HTTP request:
    // send HTTP header
    client.println(HTTP_METHOD + " " + PATH_NAME + " HTTP/1.1");
    client.println("Host: " + String(HOST_NAM));
    client.println("Connection: close");
    client.println(); // end HTTP header

    while(client.connected()) {
      if(client.available()){
        // read an incoming byte from the server and print it to serial monitor:
        char c = client.read();
        Serial.print(c);
      }
    }

    // the server's disconnected, stop the client:
    client.stop();
    Serial.println();
    Serial.println("disconnected");
  } else {// if not connected:
    Serial.println("connection failed");
  }
}

void loop() {

}

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Ну и где у вас в коде queryString отдаётся серверу? В упор не вижу!

wwserg
Offline
Зарегистрирован: 08.03.2014

Прошу прощения, ошибся при вставке кода. Строка 25 в скетче выглядит так

client.println(HTTP_METHOD + PATH_NAME + queryString + " HTTP/1.1");

 

sadman41
Offline
Зарегистрирован: 19.10.2016

wwserg пишет:

Прошу прощения, ошибся при вставке кода. Строка 25 в скетче выглядит так

client.println(HTTP_METHOD + PATH_NAME + queryString + " HTTP/1.1");

 


client.println(...) => Serial.println(...)

sadman41
Offline
Зарегистрирован: 19.10.2016

Да и удивительно - как библиотека для Wiznet работает с ENC...

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

sadman41 пишет:
wwserg пишет:

Прошу прощения, ошибся при вставке кода. Строка 25 в скетче выглядит так

client.println(HTTP_METHOD + PATH_NAME + queryString + " HTTP/1.1");

client.println(...) => Serial.println(...)

Что то мне кажется не только в этом косяк ))) Но вывод посмотреть в сериал надо!

wwserg
Offline
Зарегистрирован: 08.03.2014

Проблема решена.

Отправки простого get-запроса проходит благополучно. В паре "enc28j60+nano" среди всех испробованных библиотек заработала только EtherCard.

В скетче строка отправки выглядит так:

ether.browseUrl(PSTR("/arddta.php??"), "tempra=25,6&humda=39&presra=499&carbra=1564", website, my_callback);

"website" - сайт, куда направляется get-запрос.

За основу был взят пример webClient из библиотеки EtherCard.

Тема закрыта.