Easyelectronics.ru

Электроника для всех
Текущее время: 23 сен 2020, 09:33

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Проблемы с работой локального веб сервера.
СообщениеДобавлено: 31 мар 2016, 22:38 
Только пришел

Зарегистрирован: 31 мар 2016, 13:44
Сообщения: 20
Скрипт на LUA для модуля ESP8266 читает и отправляет температуру с термодатчика на локальный веб сервер:
Код:
--чтение темп.
gpio = 4
require('ds18b20')
ds18b20.setup(gpio)
function sendData()
t=ds18b20.read()
print("Temp:"..t.." C\n")
-- connection to SERVER
wifi.setmode(wifi.STATION)
wifi.sta.config("VB","EG4P5BMHTQ")
print(wifi.sta.getip())
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive",function(conn,payload)
print(payload)
-- conn:send("<h1> test_2 </h1>")
conn:send("<h1>Температура: "..t.." </h1>")
conn:close()
end)
end)
end
-- send data every 60000 ms to thing speak
tmr.alarm(0, 10000, 1, function() sendData() end )

В этом коде проблемы с веб браузером. При подключении к IP-адресу часто вместо температуры вижу в окне браузера сообщение: "Попытка соединения не удалась" или - "Время ожидания истекло". Если нажимать кнопку браузера ОБНОВИТЬ, то температура иногда выводится, иногда - нет.
Вписал вывод информации о температуре в другой скрипт. Тут по одному каналу - управление нагрузкой (светодиод -вкл/выкл), а на другом - вывод температуры:
Show

Если скрипт управления светодиодом работает устойчиво, то при добавлении второго канала с чтением температуры - те же проблемы, что и в первом скрипте. Кроме того, не могу понять - с началом отправки на сервер инфы о температуре, гаснет включенный в другом канале светодиод, состояние которого, естественно, задается другой переменной.
Как стабилизировать работу локального сервера? Помогите найти ошибки в коде. Или, как вариант, помогите написать команду, связанную с чтением и отправкой информации о температуре по нажатию кнопки в окне браузера. Предполагаю, что корень зла в - таймере, который задает период чтения температуры -
Код:
tmr.alarm(0, 10000, 1, function() sendData() end )


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB