Прошу помощи новичку по датчику DHT11
- Войдите на сайт для отправки комментариев
Втр, 25/03/2014 - 22:08
Добрый день всем! Решил попробовать подключить датчик DHT11 к Ардуино и передать с него данные с помощью Ethernet шилда на комп, но вот беда - не получилось, поэтому обращаюсь с просьбой помочь "Новичку".
Попробую объяснить где застрял: Датчик подключил, скетч залил, в мониторе порта получил строку следующего вида: GET dht/dhts.php?h=48&t=24 далее куча вопросов: Что такое IP адрес сервера который будет собирать статистику, где его взять (в сетях не разбераюсь)? Я правильно понимаю, если у меня стоит Apache, то это 127.0.0.1? Далее в папке www создал папку с именем dht, через браузер захожу в нее так: localhost/dht В этой папке лежит файл dhts.php следующего содержания:
<?php if (isset($_GET['t'])) {$thermometerid=$_GET['t'];} if (isset($_GET['h'])) {$value=$_GET['h'];} if (!isset($thermometerid) && !isset($value)) { echo "Переменные не существуют"; } echo $thermometerid; echo $value; ?>
Когда его запускаю localhost/dht/dhts.php то получаю строку "Переменные не существуют".
Вот не могу понять, GET запрос формируется, как видно в мониторе портов, но в php файл не передается.
Помогите пожалуйста разобраться
Скетч:
#include <DHT.h> #include <Ethernet.h> #include <SPI.h> #include <string.h> #include <Wire.h> //************************************************************ byte mac[] = { 0x50, 0xA2, 0xDA, 0x00, 0x5C, 0xFB }; byte ip[] = { 192, 168, 0, 103 }; //IP адрес сервера который будет собирать статистику byte server[] = { 127, 0, 0, 1 }; char buffer[256]; EthernetClient client; //************************ DHT22 **************************** //Контакт к которому подключен датчик температуры и влажности #define DHTPIN 13 #define DHTTYPE DHT11 // для DHT 11 DHT dht(DHTPIN, DHTTYPE); int volt=12; //*********************************************************** void setup() { Ethernet.begin(mac, ip); Serial.begin(9600); pinMode(volt, OUTPUT); digitalWrite(volt, HIGH); dht.begin(); delay(1000); } void loop() { //************************ DHT22 **************************** int h = dht.readHumidity(); int t = dht.readTemperature(); //*********************************************************** Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C"); String msg = "GET dht/dhts.php?h="+ String(h) + "&t="+String(t); // Для отладки включим отправку данных в COM порт Serial.println(msg); EthernetClient connect(); if (client.connect(server, 80)) { Serial.println("connected"); client.println(msg); client.println(); } else { Serial.println("connection failed"); } rclient.stop(); //Данные будут отправляться каждые 5сек. delay (5000); }
Да, еще в мониторе портов появляется строка "connection failed", тоесть нет подключения client.connect(server, 80).
Помогите пожалуйста разобраться...
Я бы запускал на стороне ардуины не клиента, а сервер, который по запросу скрипта на php от компа отдавал бы строку. На компе линух с лампом. Скрипт запускается компом по крону с необходимой периодичностью, скрипт складывает в мискл. На компе работает апач, который в любой браузер отдает страницу, сформированную традиционно с применением данных из мискла.
Я совсем новичек, немного знаю html, php и mysql, пытаюсь разобраться с Arduino. Да, правда, читал что именно так наиболее правильно, но не нашел примеров на которые смог бы опереться, если есть возможность поэтапно разъяснить, буду очень благодарен. А пока пытаюсь протестировать что нашел и де ошибка - непонятно
По рекомендациям в cmd запустил команду ipconfig получил:
Ipv4 192168.0.100
Маска 255.255.255.0
Основной шлюз 192.168.0.1 (это роутер)
Такие настройки у меня забиты в свойствах сетевой.
Поэтому зизменил IP сервера с 127.0.0.1 на 192.168.0.100 но ничего не изменилось, строка "connection failed" в мониторе порта не пропала
Как я понимаю проблема в общей логике.
Арда, как клиент пытается приконнектиться к апачу, по предположим правильному ip на 80 порт. А апач слушает этот порт? И если слушает, то что делает в ответ на поступающие в случае коннекта данные?
Что делает php скрипт, и от какого ip пытается получить данные непонятно.
Как я понимаю проблема в общей логике.
Полностью согласен.
Именно с этим и пытаюсь разобраться, реализовуя небольшие примеры. Пример взят отсюда http://smartliving.ru/forum/viewtopic.php?f=8&t=1412&start=10
Здесь данны записываются в базу, но я пока хочу их увидеть, поэтому изменил php и вставил строки вывода данных:
а по поводу Цитата: А апач слушает этот порт?
А как это узнать, слушает или нет? Я установил Open Server и никаких настроек в апаче не менял
Не, ну а как можно "писать клиент-серверное решение" и при этом предварительно не разобравшись "что такое IP" и т.п.
Ну ну понятно, что написать "помогите новичку" и "в сетях не разбираюсь" - это проще. Не разбираетесь, так разберитесь. Хотя-бы поверхностно. ЧТо такое сервер, что такое клиент, что такое IP, как такое протокол http, заголовки,DNS,MAC и т.п. Благо в интернете мануалов и учебников - навалом. Откуда, как вы думаете "те кто знают" что-то знают? А вот так: гуглили, искали, читали разбирались.
Тем более что тут не нужные глубокие "сетевые знания". Достаточно поверхностно-домашне-админские.
Извинете, это больше похоже не на "помогите мне", а "сделайте для меня".
Ну не поверю, что гугл не дает узнать что такое localhost и 127.0.0.1
Кстати непонимание этого и есть причина ваших проблем. Как по вашему ардуина должна узнать на какой именно компьютер нужно слать данные? И в интернете миллиарды... На каком компьютере крутится ваш апач с dhts.php?
Попробуйте, для начала, достучатся браузером до свогое dhts.php, только с ДРУГОГО компьютера. Не с того где у вас апач.
Кстати, попробуйте за одно узнать что это за магическая цифра 80-ть в client.connect(server, 80). Почему 80-т, а не 95?
Почему "GET dht/.....", а не скажем "SEND dht/..."?
Вообщем без хотя-бы самых базовых понятий о том как устроены TCP/IP сети, и протокол HTTP - не возможно, ни вопрос задать, ни ответ понять. Хотя-бы понятия разобрать, "словарик предметной области".
Иначе можно дать ответ: напишите правильный адресс сервера куда вы шлете данные.... как минимум. возможно и другие причины. Но чем вам такой ответ поможет?
Вначале разберитесь что у вас всё реботает без ардуины - вдруг там фаервол или роутер отключил обмен между портами, или апач только локальный адрес слушает.
Не, ну а как можно "писать клиент-серверное решение" и при этом предварительно не разобравшись "что такое IP" и т.п.
Ну ну понятно, что написать "помогите новичку" и "в сетях не разбираюсь" - это проще. Не разбираетесь, так разберитесь. Хотя-бы поверхностно. ЧТо такое сервер, что такое клиент, что такое IP, как такое протокол http, заголовки,DNS,MAC и т.п. Благо в интернете мануалов и учебников - навалом. Откуда, как вы думаете "те кто знают" что-то знают? А вот так: гуглили, искали, читали разбирались.
Тем более что тут не нужные глубокие "сетевые знания". Достаточно поверхностно-домашне-админские.
Извинете, это больше похоже не на "помогите мне", а "сделайте для меня".
Ну не поверю, что гугл не дает узнать что такое localhost и 127.0.0.1
Кстати непонимание этого и есть причина ваших проблем. Как по вашему ардуина должна узнать на какой именно компьютер нужно слать данные? И в интернете миллиарды... На каком компьютере крутится ваш апач с dhts.php?
Попробуйте, для начала, достучатся браузером до свогое dhts.php, только с ДРУГОГО компьютера. Не с того где у вас апач.
Кстати, попробуйте за одно узнать что это за магическая цифра 80-ть в client.connect(server, 80). Почему 80-т, а не 95?
Почему "GET dht/.....", а не скажем "SEND dht/..."?
Вообщем без хотя-бы самых базовых понятий о том как устроены TCP/IP сети, и протокол HTTP - не возможно, ни вопрос задать, ни ответ понять. Хотя-бы понятия разобрать, "словарик предметной области".
Иначе можно дать ответ: напишите правильный адресс сервера куда вы шлете данные.... как минимум. возможно и другие причины. Но чем вам такой ответ поможет?
С некоторыми высказываниями согласен, но неполностью, почему 80 порт я понимаю, потому как в httpd.config прописан именно он и с методами GET и POST знаком и IP 127.0.0.1 это на самом деле практически одно и тоже что и IP компа, localhost - это витруальный хост IP 127.0.0.1. Базовые понятия есть, на php написал не один сайт (средней сложности). Но вот с внешними устройствами не работал, вот в этом и проблема.
И действительно с другого компа в этойже сети (ноут по wifi) я открыть в браузере свой php не могу, ну не могу я понять как к нему достучаться.
И прежде чем просить помощи на форуме я пвтался, да и пытаюсь решить проблему самостоятельно с помощью гугла. Нет желания помочь, я ведь не требую...
Вот как можно поднять web сервер на арде http://www.freeduino.ru/arduino/sample_WEB.html там все очень подробно и с комментами.
теперь осталось только обращаться к нему не браузером, а пхп-скриптом, аналогичным к примеру скрипту, читающему онлайновую инфу для Вашего сайла с другого сайта, например погодного...
если не сможете скрипт осилить, я через пару дней кину пример скрипта, ловящего строку из подобного мк-web-server.
Если осилите кидайте сюда, посмотрим.
>, почему 80 порт я понимаю, потому как в httpd.config прописан именно
А почему прописан именно он? Почему не 8080?
Я вот, когда в браузере набираю какой-то адресс, вроде никаких цифр типа 80-ть, не набираю и при этом все работает.
IP 127.0.0.1 это на самом деле практически одно и тоже что и IP компа,
Ну так ключевой вопрос КАКОГО КОМПЬЮТЕРА? Вашего, моего? Стационарного? Настольного?
Предположим у вас дома есть три компьютера:
1. Компьютер А.
2. Компьютер Б.
3. Компьютер С.
Теперь, на компьтере Б. мы делаем, с помощью браузера запрос на http://127.0.0.1/some.php
На какой компьютер отправится этот запрос? Кто дожен его обработать?
Гыыы ... Уполномоченная организация обнаружила по ip 127.0.0.1 море запрещенной информации и подала в соответствующие органы требование заблокировать это по ip...
Гыыы ... Уполномоченная организация обнаружила по ip 127.0.0.1 море запрещенной информации и подала в соответствующие органы требование заблокировать это по ip...
Вообщем-то по этому поводу был очень старый анекдот:
ОНО: народ, я новый нюк нашел, ща всех поубиваю!!!
ОНО: дайте ай-пи какого-нить лоха!!!
Кто-то: 127.0.0.1
ОНО: пасиба!
ОНО: щас он подохнет
* ОНО вышло из чата
>, почему 80 порт я понимаю, потому как в httpd.config прописан именно
А почему прописан именно он? Почему не 8080?
Я вот, когда в браузере набираю какой-то адресс, вроде никаких цифр типа 80-ть, не набираю и при этом все работает.
IP 127.0.0.1 это на самом деле практически одно и тоже что и IP компа,
Ну так ключевой вопрос КАКОГО КОМПЬЮТЕРА? Вашего, моего? Стационарного? Настольного?
Предположим у вас дома есть три компьютера:
1. Компьютер А.
2. Компьютер Б.
3. Компьютер С.
Теперь, на компьтере Б. мы делаем, с помощью браузера запрос на http://127.0.0.1/some.php
На какой компьютер отправится этот запрос? Кто дожен его обработать?
127.0.0.1 - это другими словами IP текущего компа
Да, этого я не понимаю!( поэтому и написал что в сетях не разбираюсь. Порт вроде нужен чтобы зайти на комп из вне, если я не ошибаюсь
На компе А IP 192.168.0.100 На компе Б в браузере и пытаюсь достучаться к php, который на компе А, таким способом: 192.168.0.100:80/dht/dhts.php , но ничего не выходит. Получается что-то блокирует? Брендмаузер выключил, Avast остановил, остается только роутер?
Достучаться можно к серверу, который на своём внешнем (не локалхост) ip адресе слушает порт.
К php скрипту , однократно запускаемому в интерпретаторе достучаться нельзя, достучаться куда-либо можно им.
На компе А IP 192.168.0.100 На компе Б в браузере и пытаюсь достучаться к php, который на компе А, таким способом: 192.168.0.100:80/dht/dhts.php
Ну вот это больше похоже на правду.... единственно что :80, добавлять не обязательно. так как это стандартный порт для http. Если вы его не указали, то браузер сам его "додумает". И именно 80. Потому что так прописано в стандартах.
А вот когда вы пишите код на ардуино, то тут уже "помошника" в виде браузера нет. Поэтому нужно самому озаботитися и указать нужный порт (то есть 80).
Ладно, это теоретическое отступление.
Теперь осталось выяснить, почему вы решили что ваш компьютер А, имеет адресс 192.168.0.100
Особенно, в свете того что фраза "Поэтому зизменил IP сервера с 127.0.0.1 на 192.168.0.100" выглядит очень подозрительно.
Если перевести ее "бытовой язык", то она звучит: я сменил адресс своей квартиры с ЭТА-КВАРТИРА (127.0.0.1) на арресс Улица XXX, кв. YYY (при этом физически вы остались там же где и были).
Любой компьютер имет адресс 127.0.0.1, это синоним слова ЭТОТ компьютер. Используется когда вам нужно обратится с комьютера на него же самого. Поэтому как вы смогли это поменять - существенная загадка.
Кстати, а у вас интернет, после этого, на этом компе нормально работает?
Ладно. Возвращаемся, к баранам. Где и как вы "сменили IP сервера"?
Далее, запускаем cmd. И набираем
ping 192.168.0.100
Делаем это и на компе A и на компе Б. Сообщаем результаты.
P.S. Заодно гуглим что такое ping, что такое traceroute. Читаем хелм по ним. Пытаемся играть с параметрами...
P.S. Так же гуглим и читаем "как узнать ip компьютера в сети". Можно первую же ссылку.
К php скрипту , однократно запускаемому в интерпретаторе достучаться нельзя, достучаться куда-либо можно им.
Выше писалось, что имеется апач. И через localhost достучатся к скрипту получается.
получается На компе Б нельзя в браузере открыть php файл?
Проверил на сайте http://2ip.ru 80-й порт - пишет закрыт. Это значит, что этот порт не доступен, тоесть его что-то блокирует?
Выражение изменил IP сервера означает изменил IP сервера в скетче для ардуино
комп А 192.168.0.100
комп Б 192.168.0.101
пингуются оба и с компа А и с компа Б
ipconfig на компе А показывает:
Ipv4 192.168.0.100
Маска 255.255.255.0
Основной шлюз 192.168.0.1 (это роутер)
Именно такие настройки статически забиты в свойствах сетевой на компе А.
На компе Б все один в один только IP 192.168.0.101
На компе А установлен Open server с Apache, php и mysql
На компе Б отдельно поднимал Apache, php и mysql
получается На компе Б нельзя в браузере открыть php файл?
php-файл - конечно нет. Когда вы даете в браузере даете "запрос". То апач его принимает, находит php файл, ЗАПУСКАЕТ его. И РЕЗУЛЬТАТ его работы отдает браузеру. Сам файл, его исходный код, естественно никому за пределами компьютера не виден (и не должен быть виден).
Проверил на сайте http://2ip.ru 80-й порт - пишет закрыт.
И слава богу. Это вы узнали ВНЕШНИЙ адресс своего роутера. Он вам потребуется если будете пытатся достучатся арудиной находящийся в оффисе на домашний комп.
А вам нужно узнать "внутрений адресс".
Тут аналогия примерно такая: Есть ведомственная АТС. У нее есть общий городской номер (это внешний IP). Позвонив на него вы попадаете на злобную телефонистку (роутер), которая старается послать вас нафиг (если вашего звонка не ждут). А есть внутрени телефонные номера. И абоненты внутри здания могут звонить друг-другу, просто зная внутрений номер. К ним телефонистка - лояльна. Соединяет без вопросов. Просто говоришь "кто тебе нужен". Но опять-таки лояльная она только для звонков поступивших "с внутрених адресов".
"На глаз", внутрении адреса опознаются просто: Если адресс начинается на 192.168 - это внутрений.
Если на что-то другое - это внешний.
Вам нужен внутрений.
Кстати я вам говорил, что читать желательно первую ссылку, а вы взяли вторую :) . Как узнать ip адрес компьютера - Программистан - Narod.ru
Выражение изменил IP сервера означает изменил IP сервера в скетче для ардуино
Вы простите, я не занудствую, но не могли бы показать измененную строчку? Просто что-бы убедится что поменяли там где нужно.
комп А 192.168.0.100
комп Б 192.168.0.101
пингуются оба и с компа А и с компа Б
ipconfig на компе А показывает:
Ipv4 192.168.0.100
Маска 255.255.255.0
Основной шлюз 192.168.0.1 (это роутер)
Именно такие настройки статически забиты в свойствах сетевой на компе А.
На компе Б все один в один только IP 192.168.0.101
На компе А установлен Open server с Apache, php и mysql
На компе Б отдельно поднимал Apache, php и mysql
Чудно, исчерпывающие и на первый глаз правильно.
Теперь давайте убедимся, что правильно вас понял.
На компе A, ссылка http://localhost/dht/dhts.php открывается нормально, а на компе Б, ссылка http://192.168.0.100/dht/dhts.php не открывается. Верно?
И еще, такое подозрение возникло.
Когда с компа Б, вы проверяете доступность скрипта.
Вы сразу http://192.168.0.100/dhts/dhts.php открываете, или вначале пытаетесь открыть папку http://192.168.0.100/dhts и потом надеятесь найти файлы dhts.php и ткнуть в него?
1. По поводу занудства, я наоборот благодарен за помощь.
2. По поводу где изменил IP: в скетче для Arduino была строка "
byte
server[] = { 127, 0, 0, 1 };
" я ее изменил на "byte
server[] = { 192, 168, 0, 100 };
"3. По поводу открытия скрипта, все верно - На компе A, ссылка http://localhost/dht/dhts.php открывается нормально, а на компе Б, ссылкаhttp://192.168.0.100/dht/dhts.php не открывается
И еще, такое подозрение возникло.
Когда с компа Б, вы проверяете доступность скрипта.
Вы сразу http://192.168.0.100/dhts/dhts.php открываете, или вначале пытаетесь открыть папку http://192.168.0.100/dhts и потом надеятесь найти файлы dhts.php и ткнуть в него?
Я напрямую обращаюсь к dhts.php дабы увидеть результат его выполнения. Вот так: http://192.168.0.100/dhts/dhts.php
3. По поводу открытия скрипта, все верно - На компе A, ссылка http://localhost/dht/dhts.php открывается нормально, а на компе Б, ссылкаhttp://192.168.0.100/dht/dhts.php не открывается
Тут редактор немного портит ссылки. Убедитесь, что во второй ссылке, котора 192.168.0.100/dht/dhts.php
Не потерялось имя папки dht. А то при редактировании ее видно, а как запостишь - исчезает.
Потом проверте, как работает эта же ссылка, 192.168.... с компа А. На котором через localhost работает.
Я напрямую обращаюсь к dhts.php дабы увидеть результат его выполнения. Вот так: http://192.168.0.100/dhts/dhts.php
Ага. Чудно. А если открыть эту ссылку на компе A?
2. По поводу где изменил IP: в скетче для Arduino была строка "
byte
server[] = { 127, 0, 0, 1 };
" я ее изменил на "byte
server[] = { 192, 168, 0, 100 };
"Да, вроде все верно. Но пока мы не смогли достучатся "с компа на комп", мучать арудину особо смысла нет.
На компе А где IP 192.168.0.100
ссылка localhost/dht/dhts.php работает, а вот
192.168.0.100/dht/dhts.ph не работает
мне самому кажется, что какаято фигня происходит, по идее все правильно делаю, но ничего не работает, склоняюсь к мысли что что-то гдето блокирует
набираю localhost - получаю стартовую страницу "Добро пожаловать в Open server", а набираю 192.168.0.100 показывает что Google Chrome не может открыть данную страницу
набираю localhost - получаю стартовую страницу "Добро пожаловать в Open server", а набираю 192.168.0.100 показывает что Google Chrome не может открыть данную страницу
Это на компе A? Верно? У которого Ipconfig конфиг говорит что он 192.168.0.100 правильно?
Перепроверте, еще раз, что вы на ЭТОМ компе действительно отключили файервол....
все верно. Брендмаузер - вообще вырубил службу и аваст отключил
Видимо Open server кривой, пересел за комп Б на нем Apache поднимал вручную, он работает по wifi, его IP 192.168.0.101
Итак на нем: localhost/dht/dhts.php - работает
192.168.0.101/dht/dhts.php - работает
И с компа А набираю 192.168.0.101/dht/dhts.php - работает
тоесть удаленно с компа А захожу на комп Б
И еще, ищите в настройках свого Open Server адресс сервера. Там должно быть что-то типа DropDown и в нем будет ваш 192.168.0.100
Вообщем ему самуму еще нужно сказать "обращение к какому IP-шнику нужно слушать". В доке
http://open-server.ru/docs.html
Косвенно упоминается, что такая настройка существует:
"убедитесь что IP адрес, заданный в настройках, существует (кроме [*]). Так же убедитесь что все другие настройки программы корректны."
Вообщем найдите эту настройку, и впришите туда свой IP. Или зведочку попробуйте. Подозреваю что там сейчас стоит старый IP, который был при установке.
Ну значит у вас есть два варианта:
1. Донастраивать Open Server
2. Забить на компьютер А, и мучать апач на комьютере Б.
Что выбираете?
с Open server разберусь позже, Будем мучать комп Б
с Open server разберусь позже,
Кстати скайп может пакостить. Если стартовал раньше сервера, может захватить 80-тый порт. У него в настройках можно снять галку "использовать 80 и 443 порты".
Будем мучать комп Б
Ну тогда скопируйте на него свой .php скрипт.
Не забудете, в скетче опять сменить IP-шник сервера.
Если не заработает. то поменяйте
На
P.S. Сорри, я на сегодня наверное уже все. Домашние уже шипят :)
ок, попробую, отпишусь. Огромное спасибо за помощь!
Пока дело не в формированиее GET запроса, я сделал проверку подключения к серверу
И вот попробовал и получил фразу "connection failed"
А если выкинуть все что отностися к DHT? И програмну и особенно, железную часть?
Arduino - Ethernet
Arduino communicates with the shield using the SPI bus. This is on digital pins 11, 12, and 13
выкинул, вот что оставил:
Получил "connection failed"
Есть, получил фразу "connected". В предыдущем коде раскомментировал //EthernetClient connect(); Видать да, DHT на 12 и 13 пинах мешал.
Еще раз огромное спасибо
Переподключил DHT на другие пины и в мониторе портов получил строки:
GET /dht/dhts.php?h=48&t=24
connected
Тоесть есть соединение с сервером и есть сформированный GET запрос, но php его не видит, попытка прочитать значения переменных при запуске localhost/dht/dhts.php привела к фразе "Переменные не существуют"
Скрипт dhts.php
я что-то не понял, вы вроде с апачем разбирались сначала - разобрались? без всякой ардуины с другого компьютера запрос вида xxx.xxx.xxx.xxx/dht/dhts.php работает?
я что-то не понял, вы вроде с апачем разбирались сначала - разобрались? без всякой ардуины с другого компьютера запрос вида xxx.xxx.xxx.xxx/dht/dhts.php работает?
да, если запустить скрипт 192.168.0.101/dht/dhts.php выводится строка "Переменные не существуют". Тоесть никакие переменные не передаются. Хотя в мониторе портов ардуино есть сформирован GET запрос вида "GET dht/dhts.php?h=48&t=24" и есть подтверждение соединения с сервером. Если скопировать dht/dhts.php?h=48&t=24 ивставить после 192.168.0.101/ - выводятся значения 48 и 24, тоесть если переменные передаются, то php работает
мухи отдельно, котлеты отдельно.
есть сервер, который обрабатывает GET-запросы (апач, к примеру). и серверу абсолютно пофиг, кто этот запрос сформировал - хоть ардуина, хоть соседний компьютер, хоть сотовый телефон через браузер. то есть если у вас с соседнего компьютера выводится строка ПЕРЕМЕННЫЕ НЕ СУЩЕСТВУЮТ, то ардуина не причем.
восстановите состояние, когда было вот так
Видимо Open server кривой, пересел за комп Б на нем Apache поднимал вручную, он работает по wifi, его IP 192.168.0.101
Итак на нем: localhost/dht/dhts.php - работает
192.168.0.101/dht/dhts.php - работает
И с компа А набираю 192.168.0.101/dht/dhts.php - работает
тоесть удаленно с компа А захожу на комп Б
и тогда, и только тогда, когда вы будете видеть правильный ответ сервера, а это будет означать, что апач умеет обрабатывать запросы и выдавать правильные ответы, пытайтесь в качестве клиента использовать ардуино.
что-то я запутался.
а зачем вы вызываете 192.168.0.101/dht/dhts.php без параметров?
Насколько я понимаю, вы пытаетесь передать параметры (переменные) с ардуины скрипту php - у вас это получается... Ну или почти получается (не видев всего кода ардуины сложно судить), а потом пытаетесь обратиться с компа к этому скрипту но уже без параметров, полагая что он выведет вам значения переданных переменных с ардуино (надеюсь, я неправильно понял)? Тогда конечно - переменных уже не будет существовать.
Для того чтоб оценить дошли ли данные с ардуино, если вы используете код из этого поста (хотя, опять-таки, код не полный - нет передачи вообще - есть соединение, но передачи нет) добавьте в строку №30 код:
192.168.0.101/dht/dhts отрабатывает как на текущем компе, так и с соседнего, который в одной сети
что-то я запутался.
а зачем вы вызываете 192.168.0.101/dht/dhts.php без параметров?
Вот в этом и загвоздка, не могу понять мой php просто выводит в браузер значения параметров из запроса, переданного ардуинкой. Так куда обращаться браузером, чтобы увидеть эти значения в нем?
Вот полный скет с передачей GET запроса:
...Так куда обращаться браузером, чтобы увидеть эти значения в нем?
... Я понял правильно :(
Никуда! Переменная будет доступна только во время выполнения скрипта (читай - формирования страницы).
Обратились с браузера, передав параметрами h=48&t=24 - эти две переменные $thermometerid и $value будут доступны только до строчки
При обращении с ардуино - нужно передавать свои параметры заново - в этом и есть смысл php - формировать html-страницу. Все. После сформированной и отданной страницы скрипт прекращает свой жизненный цикл и память отведенная под переменные очищается.
Попробуйте вот этот код - он выведет ответ от скрипта php в терминал:
P.S. Вот здесь, надеюсь понятно в очень общих чертах про жизнь переменных. Вдумчиво читать последний абзац!
Тоесть правильно ли я тебя понял: если я в этом php скрипте допишу код записи значений этих переменных в mysql, то с заданной в ардуине задержкой ардуина формирует запрос к скрипту, который в свою очередь будет писать данные в базу? И только другим php скриптом я могу вытаскивать данные с базы и выводить их в браузер. Так?