Отправка GET запроса, через ENC28J60
- Войдите на сайт для отправки комментариев
Чт, 02/02/2017 - 23:53
Имеется веб-сервер, на нём есть вот такой вот файлик, который будет принимать 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(); }
Буду благодарен, за любую помощь! (:
Стандартная библиотека для стандартного шилда. Ищите на гитхабе библиотеку для вашего чипа.
Например https://github.com/ntruchsess/arduino_uip
Например https://github.com/ntruchsess/arduino_uip
По поводу библиотеки, вот что Arduino выдаёт: Invalid version found: 1.04.
Стандартная библиотека для стандартного шилда. Ищите на гитхабе библиотеку для вашего чипа.
На счёт чипа, вы имеете ввиду чип самого Arduino?
Нет. Для ENC28J60. Прочитайте описание библиотеки по ссылке. Посмотрите примеры использования. Совсем чут чуть поправить надо.
Странно. Пример эхосервер от этой библиотеки для платы леонардо скомпилировля без ошибок:Скетч использует 20 266 байт (70%) памяти устройства. Всего доступно 28 672 байт. Глобальные переменные используют 1 147 байт (44%) динамической памяти, оставляя 1 413 байт для локальных переменных. Максимум: 2 560 байт.
По поводу библиотеки, вот что Arduino выдаёт: Invalid version found: 1.04.
У меня тоже выдает такое сообщение. На любой скетч. К данной библиотеке отношения не имеет. У неё верся неизвестна. Нашёл только библиотеку Esplora c номером 1.04