W5100 + php сервер.
- Войдите на сайт для отправки комментариев
Вс, 14/06/2015 - 17:18
Добрый день, пришли мне шилды W5100, но вот что то не как понять не могу как с ними работать нормально
Необходимо следущее, что бы ардуина в сеть посылала данные с датчиков, так же могла принять данные из сети для включения реле.
В сети находится сервер php который читает данные и их кторого отправляются данные.
И так пытаюсь сделать на примере UDPSendReceiveString в результате ардуина принимает данные по краине мере в мониторе пишет это, но сервер не может ответ прочитать
ардуина
#include <SPI.h> // needed for Arduino versions later than 0018 #include <Ethernet.h> #include <EthernetUdp.h> // UDP library from: bjoern@cs.stanford.edu 12/30/2008 // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network: byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 0, 7); unsigned int localPort = 8888; // local port to listen on // buffers for receiving and sending data char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet, char ReplyBuffer[] = "acknowledged"; // a string to send back // An EthernetUDP instance to let us send and receive packets over UDP EthernetUDP Udp; void setup() { // start the Ethernet and UDP: Ethernet.begin(mac, ip); Udp.begin(localPort); Serial.begin(9600); } void loop() { // if there's data available, read a packet int packetSize = Udp.parsePacket(); if (packetSize) { Serial.print("Received packet of size "); Serial.println(packetSize); Serial.print("From "); IPAddress remote = Udp.remoteIP(); for (int i = 0; i < 4; i++) { Serial.print(remote[i], DEC); if (i < 3) { Serial.print("."); } } Serial.print(", port "); Serial.println(Udp.remotePort()); // read the packet into packetBufffer Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE); Serial.println("Contents:"); Serial.println(packetBuffer); // send a reply, to the IP address and port that sent us the packet we received Udp.beginPacket(Udp.remoteIP(), Udp.remotePort()); Udp.write(ReplyBuffer); Udp.endPacket(); } delay(10); }
php сервер
<?php if($fp = fsockopen("udp://192.168.0.7", 8888, $errno, $errstr, 1)) { fwrite($fp, '3'); $bufft = fgets($fp); fclose($fp); } echo "$bufft";
может кто в курсе как реальзовать подобное?
серьезно? тоесть прошлая дискусия ничему не научила? поиск на форуме так и не освоили?
Вы про что? поиском искал, увы не чего подобного нет.
Вы про что? поиском искал, увы не чего подобного нет.
а если найду?
плюсик вам тогда ))
плюсик вам тогда ))
Найдено результатов: примерно 163 (за 0,26 сек.)
и что толку покажите хоть одну тему с таким заданием?
и что толку покажите хоть одну тему с таким заданием?
Да они все с таким заданием... про GET и POST...
Но это не UDP а через web какой смысл использовать webserver на шилде если мне не нужно отображение данных с шилда.
Но это не UDP а через web какой смысл использовать webserver на шилде если мне не нужно отображение данных с шилда.
какой веб сервер на шильде? я вообще уже тихо косею... в библиотеке в примерах есть пример клиента!
он прекрасно работает с чем угодно хоть с базой данных напрямую...
клиента чего?
вебсервер на шилде так же есть в примерах, и практически все в поиске именно про этот вебсервер, то есть в браузере отображается страничка с шилда там же и кнопочки управления. Мне же нужно что бы на отдельном сервер на php мог получать данные с шилда и отправлять их туда.
клиента чего?
вебсервер на шилде так же есть в примерах, и практически все в поиске именно про этот вебсервер, то есть в браузере отображается страничка с шилда там же и кнопочки управления. Мне же нужно что бы на отдельном сервер на php мог получать данные с шилда и отправлять их туда.
серьезно?
уже даже искать не умеют... большой белый полярный лис...
http://arduino.ru/forum/programmirovanie/udalennoe-upravlenie-arduinkoi-...
И что там? там одна теория, в принципе такая же как я изложил в первом сообщение.
Мне то нужна практика
И что там? там одна теория, в принципе такая же как я изложил в первом сообщение.
Мне то нужна практика
Мда... может задать в поиске UDP?
Ну я же писал, что искал
Ну я же писал, что искал
И у всех работает, а у вас нет? Действительно странно.
Странно, что вы заявляете что у всех работает, но в то же время кроме теории показать конкретные примеры не можете.
Странно, что вы заявляете что у всех работает, но в то же время кроме теории показать конкретные примеры не можете.
Странно что вы хотите от меня готовое решение, а я принципиально не раздаю готовые решения. Ибо дибо человек начнет думать, либо впадет в истерику и на этой ноте мв растанемся.
я вам уже написал выше, большинство пользуется методами get и post.
А какие пакеты вы птхаете в бедную ардуино то вообще тайна. У ней может тупо памяти не хватает.
А зачем вы в обще начали, если изначально у вас намеренье не помогать, а "постебатся"
А зачем вы в обще начали, если изначально у вас намеренье не помогать, а "постебатся"
Начал что? Где именно вы увидели стеб? Вам может действительно к доктору? Таблетки успокоительные попить ?
Вам предложил несколько вариантов. Но если вам нужно готовое решение, может вам в ищю исполнителя?
Кто доктора звал? Тут я.
Диагноз:
Знание пхп -0
знание протоколов - 0
Рекомендуемое лечение: Курить мануалы.
Подпись: неразборчива.
клиента чего?
вебсервер на шилде так же есть в примерах, и практически все в поиске именно про этот вебсервер, то есть в браузере отображается страничка с шилда там же и кнопочки управления. Мне же нужно что бы на отдельном сервер на php мог получать данные с шилда и отправлять их туда.
А что мешает вместо странички с кнопочками управления выдавать данные с показаниями датчиков ?
Например, сериализованный по правилам PHP массив с показаниями датчиков.
И в PHP скрипте, с помощью метода unserialize() получаете готовый массив с данными.
P.S. Кстати, пример странички с кнопками - очень информативный пример:
1. он учит получать данные
2. раз есть кнопки, значит есть и данные отправляемые, т.е. учит и принимать данные
А что мешает вместо странички с кнопочками управления выдавать данные с показаниями датчиков ?
Например, сериализованный по правилам PHP массив с показаниями датчиков.
И в PHP скрипте, с помощью метода unserialize() получаете готовый массив с данными.
Мне и нужно выдавать данные с датчиков, вернее я не могу понять как мне с помощью php сервера по LAN их получить и так же с помощью php отправить на ардуину.
А уже полученные данные на сервер, страничку то сделаю, вернее она уже есть но данные берет с usb вот нужно переделать через шилд
Да же так уже как бы сделал через пример скетча вебсервера получаю данные с ардуина помощью
$html = file_get_contents('http://192.168.0.7');
но вот как отправить на ардуину данные понять не могу
Возник такой вотпрос как ардуиной обработать GET запрос?
ну вот к примеру http://192.168.0.7/d=11
дает
server is at 192.168.0.7
new client
GET /d=11 HTTP/1.1
Host: 192.168.0.7
Но вот как его обработь то есть что бы понять что приходит
разбейте "с" как Вам надо и все.
Кто доктора звал? Тут я.
Диагноз:
Знание пхп -0
знание протоколов - 0
Рекомендуемое лечение: Курить мануалы.
Подпись: неразборчива.
Во блин, и даже не напишешь готовый скеч?
Да ты доктор-троль. :)
разбейте "с" как Вам надо и все.
Можно плиз пример как это сделать?
Приветсвую всех .
Прошу помочь разобраться где косяк, при компиляции кода ошибок нет
Решил повторить опыт описанный на хабре по этой ссылке https://m.geektimes.com/post/255546/
Все заработало за исключением кнопки включения светодиода через отправку запроса.
Насколько я понимаю не работате обработка запроса на стороне ардуино или он не приходит от php сервера
При изменнии положения включателя на сайте логирование в файлах отрабатывает корректно
Уже несколько дней борюсь но никак не могу сообразить в чем причина
Скетч для ардуино вот такой