Отправка GET запроса, через ENC28J60

VaDoSiQ
VaDoSiQ аватар
Offline
Зарегистрирован: 19.01.2017

Имеется веб-сервер, на нём есть вот такой вот файлик, который будет принимать GET запросы и записывать их в базу данных:

<?php
require 'system/launch.php';
$arduino = [
    'value' => [
        'one' => isset($_GET['one']) ? abs(intval($_GET['one'])) : null,
        'two' => isset($_GET['two']) ? abs(intval($_GET['two'])) : null,
    ],
    'error' => [],
];
    $total = $db->query('SELECT COUNT(*) FROM data')->fetchColumn();
    if ($total > 10) {
        $db->query('DELETE FROM data ORDER BY id ASC LIMIT 1');
    }
    if (count($arduino['error']) == 0) {
        $data = $db->prepare('INSERT INTO data SET one = :one, two = :two, time = "' . time() . '"');
        $data->bindParam(':one', $arduino['value']['one'], PDO::PARAM_STR);
        $data->bindParam(':two', $arduino['value']['two'], PDO::PARAM_STR);
        $data->execute();
        echo 'Good!';
    }
?>

У меня имеется Ethernet Shield ENC28J60, но он не хочет работать со стандартной библиотекой Ethernet, ничего не выводит даже в консоль, когда компилируешь примеры. Он может лишь писать: Server is at 0.0.0.0.

В общем попробовал я поставить библиотеку EtherCard и у меня получилось запустить rbbb_server.

Так как я новичок в Arduino, прошу Вас помощи!

Дайте наглядный пример, как можно с данной библиотекой, реализовать что то типа этого:

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

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

EthernetClient client;

//Переменные
unsigned long int timeConn = millis();
float one;
float two;
char server[] = "www.example.com";
void setup()
{
  //Старт
  Serial.begin(9600);
  Ethernet.begin(mac);
}
void loop()
{
  one = 12345;
  two = 54321;
  if (millis() - timeConn > 2000) {
    sendData(one,two);
    timeConn = millis();
    Serial.println("Connected to server: Sending the first and second values.");
  }
}
void sendData(float one, float two) {
  client.connect(server, 80);
  client.print( "GET /arduino.php?");
  client.print("one=");
  client.print(one);
  client.print("&");
  client.print("two=");
  client.print(two);
  client.println(" HTTP/1.1");
  client.print( "Host: www.example.com" );
  client.println(server);
  client.println( "Connection: close." );
  client.println();
  client.println();
  client.stop();
  client.flush();
}

Буду благодарен, за любую помощь! (:

nik182
Offline
Зарегистрирован: 04.05.2015

Стандартная библиотека для стандартного шилда. Ищите на гитхабе библиотеку для вашего чипа.

Например https://github.com/ntruchsess/arduino_uip

VaDoSiQ
VaDoSiQ аватар
Offline
Зарегистрирован: 19.01.2017

nik182 пишет:

Например https://github.com/ntruchsess/arduino_uip

По поводу библиотеки, вот что Arduino выдаёт: Invalid version found: 1.04.

nik182 пишет:

Стандартная библиотека для стандартного шилда. Ищите на гитхабе библиотеку для вашего чипа.

На счёт чипа, вы имеете ввиду чип самого Arduino?

nik182
Offline
Зарегистрирован: 04.05.2015

Нет. Для ENC28J60. Прочитайте описание библиотеки по ссылке. Посмотрите примеры использования. Совсем чут чуть поправить надо.

Странно. Пример эхосервер от этой библиотеки для платы леонардо скомпилировля без ошибок:Скетч использует 20 266 байт (70%) памяти устройства. Всего доступно 28 672 байт. Глобальные переменные используют 1 147 байт (44%) динамической памяти, оставляя 1 413 байт для локальных переменных. Максимум: 2 560 байт.

nik182
Offline
Зарегистрирован: 04.05.2015

VaDoSiQ пишет:

По поводу библиотеки, вот что Arduino выдаёт: Invalid version found: 1.04.

У меня тоже выдает такое сообщение. На любой скетч. К данной библиотеке отношения не имеет. У неё верся неизвестна. Нашёл только библиотеку Esplora c номером 1.04