Weather Station
- Войдите на сайт для отправки комментариев
Пнд, 30/09/2013 - 21:50
Все доброго врмени суток.
Есть метеостанция реализованная по проекту описанному в данной статье.
В текущей модификации проект дополнен радиомодулем и радиодатчиком Oregon THGN132N.
Вся система прекрасно функционирует, данные в порт выводятся стабильно и с внутренних и с внешних датчиков.
Но столкнулся с проблемой, не могу решить проблему вывода информации с радиодатчика на генерируемую WEB-страницу.
Увы, опыт работы с данной платформой, не такой большой. Поэтому сам понять где ошибмаюсь не могу.
Может кто поможет,с кодом, как верно сделатьвывод в WEB?
А почему сразу на web-страницу? Выведите их куда-нибудь поближе: на сериал монитор, например...
Но столкнулся с проблемой, не могу решить проблему вывода информации с радиодатчика на генерируемую WEB-страницу.
И почитайте это Вставка программного кода в тему/комментарий.
Согласен, что изложил проблему несколько расплывчато.
Сделаю оговорку, на данный момент схема имеет внутренние датчики температуры, давления и влажности, а так же радио-модуль и подпрограмму позволяющую расшифровывать данные с датчика Oregon THGN132N, получаемые по радиоканалу (температуру и влажность).
В сериал монитор данные со всех датчиков прекрасно выводятся:
В начале идут данные с внешнего датчика, потом в внутренних.
На WEB-старницу выводятся данные только внутренних датчков:
//==============Вывод значений на web-страницу============================ client.println("<hr />");//линия===================================== client.println("Tемпература = "); //Температура с DHT 22 client.println(t_dth); client.println(" *C"); client.println("<br> "); //перенос на след. строчку client.println("Влажность = "); //Влажность с DHT 22 client.println(h_dth); client.println(" %\t"); client.println("<br> "); //перенос на след. строчку client.println("<hr />");//линия===================================== client.println("Давление = "); //давление с BMP 085 client.println(Pa); client.println(" mm.рт.ст."); client.println("<br> "); //перенос на след. строчку client.println("<hr />"); //линия===================================== client.println("Давление = "); //давление с BMP 085 client.println(Pa2); client.println(" in Hg"); client.println("<br> "); //перенос на след. строчку client.println("<hr />"); //линия===================================== client.println("Tемпература внутреняя = ");//температура с BMP 085 client.println(tdpa); client.println(" *C"); client.println("<br> "); //перенос на след. строчку client.println("<hr />"); //линия===================================== //==================================================================== client.println("</body></html>"); //очищаем строку для следующего считывания //==============Останавливаем web-client=============================== readString=""; client.stop(); //====================================================================Данные с внешнего датчика выводяться в сериал порт в данном отрывке:
#ifndef DISABLE_DEBUG Serial.print("[THGN132N,...] Id:"); Serial.print(data[3], HEX); Serial.print(", Channel:"); Serial.print(channel(data)); Serial.print(", temp:"); Serial.print(temperature(data)); Serial.print("С"); Serial.print(", hum:"); Serial.print(humidity(data)); Serial.print("%"); Serial.print(", bat:"); Serial.print(battery(data)); Serial.print("%"); Serial.println(); #endif if (channel(data) > 0 && channel(data) < 4){ t[channel(data)-1]=temperature(data); h[channel(data)-1]=humidity(data); b[channel(data)-1]=battery(data); } }При попытках вывести их на WEB-старницу, выполнение программы просто виснет и нет ни генерации старницы,ни данных в порт. Пытался делать так:
client.println("Tемпература внешняя = ");//температура с ОРЕГОН client.println(t_oregon); client.println(" *C"); client.println("<br> "); //перенос на след. строчку client.println("<hr />"); //линия=====================================Подскажите как правильно написать вывод данных внешнего датчика.Исходный общий код в первом посте.
Тут несколько вариантов: либо упираетесь в общий объем страницы, который больше буфера сетевого контроллера, либо тип данных некорректный. Попробуйте закомментировать только строку вывода самой переменной, и сохранив страницу - посмотреть ее объем в байтах.
Данный вариант расматривал.
С объемом данных норма. А вот с типом данных думаю проблема.
Но, увы,ее решения не вижу, не столько опыта работы с данной платформой.
Для начала выложите весь код ,но сверните его по сылке выше показано как это сделать.
Но, увы,ее решения не вижу, не столько опыта работы с данной платформой.
Закомментируйте строчки:
client.println(t_oregon);client.println(" *C");или замените их временно статическим текстом и проверьте работу... Платформа тут не при чем.
Ну и вот такие выкрутасы
client.println(" *C"); client.println("<br> "); //перенос на след. строчку client.println("<hr />"); //линия===================================== //====================================================================я бы сократил до одной строчки: client.println("oC <br> <hr />"); Браузер сам отрендерит строчки как надо.
Согласен, спасибо за подсказку.
Температура, в порт , выводиться вот так:
Но если написать вот так, для вывода на страницу, не идет:
Почему в порт так выводиться, а на страницу нет? Или я чтото упускаю?
agamemnen, а если так:
Хорошая идея
но:
а нельзя как то из порта выдрать данные в страницу?
agamemnen, ну это не из-за моего примера ))
Ищи ошибки в коде.
Только что попробовал тот код - компилится. А вот твой (из первого поста) нет - именно такие ошибки
а нельзя как то из порта выдрать данные в страницу?
отобразить, вывести..............
Может есть иные команды позволяющие это?
PS
В статье, там без внешнего датчка.
А тут в первом посте уже с ним.
Лог то в порт я получаю и компилиться все. А вот в WEB не отобразить.
Просто задумвалось как домашняя сетевая метео станция,а данных с внешнего датчика как раз и не получить. А выводить проводные датчики как то не сильно хочется.
Почему в порт так выводится, а на страницу нет? Или я чтото упускаю?
Вообще говоря, данные выводить в любом случае должно, правда там будет ахинея или псевдографика...
Не выводятся только переменные? Если вместо переменной вбить обычный (статический) текст - выводится нормально?