Запрос get в еsp8266
Запрос get в еsp8266
Здравствуйте пытаюсь сделать монитор холодильника на esr8266 встпал в тупик скрипт отправляющийся данные да thingspeak.com работает отлично меняю в нём на свой сайт и не чего не приходит например мне нужно отправить Гёт запрос на мой сайт параметра два номер холодильника nh и температура temp .http://citoin.tk/adddat.php?nh=1&temp=100 соответственно холодильник один температура 100. Если открыть в браузере все сработает и добавиьтся посмотреть citoin.tk
Это фрагмент чужого рабочего кода который и работает у меня
Как его исправить что б запрос был на мой сайт
gpio = 6
require('ds18b20')
ds18b20.setup(gpio)
function sendData()
t=ds18b20.read()
print("Temp:"..t.." C\n")
-- conection to thingspeak.com
print("Sending data to thingspeak.com")
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end)
-- api.thingspeak.com 184.106.153.149
conn:connect(80,'184.106.153.149')
conn:send("GET /update?key=YOURAPIKEY&field1="..t.." HTTP/1.1\r\n")
conn:send("Host: api.thingspeak.com\r\n")
conn:send("Accept: */*\r\n")
conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n")
conn:send("\r\n")
conn:on("sent",function(conn)
print("Closing connection")
conn:close()
end)
conn:on("disconnection", function(conn)
print("Got disconnection...")
end)
end
-- send data every 60000 ms to thing speak
tmr.alarm(0, 60000, 1, function() sendData() end )
Сразу хочу сказать кто хочет поиздеваться я любитель, это я делаю не за деньги! Не подрячжался сделать дешего что стоит дорого, выгоды С этого и то сомнительно получу я ввиду возможного дополнительного покоя на работе, работодателю это ненадо наверное и он об моём маленьком мониторе холодильников и в курсе не будет
Это фрагмент чужого рабочего кода который и работает у меня
Как его исправить что б запрос был на мой сайт
gpio = 6
require('ds18b20')
ds18b20.setup(gpio)
function sendData()
t=ds18b20.read()
print("Temp:"..t.." C\n")
-- conection to thingspeak.com
print("Sending data to thingspeak.com")
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end)
-- api.thingspeak.com 184.106.153.149
conn:connect(80,'184.106.153.149')
conn:send("GET /update?key=YOURAPIKEY&field1="..t.." HTTP/1.1\r\n")
conn:send("Host: api.thingspeak.com\r\n")
conn:send("Accept: */*\r\n")
conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n")
conn:send("\r\n")
conn:on("sent",function(conn)
print("Closing connection")
conn:close()
end)
conn:on("disconnection", function(conn)
print("Got disconnection...")
end)
end
-- send data every 60000 ms to thing speak
tmr.alarm(0, 60000, 1, function() sendData() end )
Сразу хочу сказать кто хочет поиздеваться я любитель, это я делаю не за деньги! Не подрячжался сделать дешего что стоит дорого, выгоды С этого и то сомнительно получу я ввиду возможного дополнительного покоя на работе, работодателю это ненадо наверное и он об моём маленьком мониторе холодильников и в курсе не будет
- Реклама
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Запрос get в еsp8266
Вам бы, для начала, Русский язык выучить, а потом уже садиться за языки программирования.
Сдаётся, что у Вас в программах такой же бардак, от чего они и не работают...

Сдаётся, что у Вас в программах такой же бардак, от чего они и не работают...
Re: Запрос get в еsp8266
Не флейма ради
Спойлер
А че, нормальный поток сознания в духе незабвенного В.ЧерномырдинаАlex писал(а):Вам бы, для начала, Русский язык выучить, а потом уже садиться за языки программирования.
Врач, излечися сам... ( Старинное изречение )такой же бардак, отчего они и не работают...
Re: Запрос get в еsp8266
Жаль я думал, то это форум посвященный электронике, а не русофильству.
А по делу хотел узнать про указания адреса в get запросе, там указывается и домен и ip адрес домен известен а вот ip у бесплатного хостинга динамический как с этим быть какой указывать или можно без него?
А по делу хотел узнать про указания адреса в get запросе, там указывается и домен и ip адрес домен известен а вот ip у бесплатного хостинга динамический как с этим быть какой указывать или можно без него?
Re: Запрос get в еsp8266
У вас разве с электроникой проблемы ? Вроде проблемы с API какой то вот этой штуки thingspeak.com Общаться с ней просто с компа пробовали ? У кого динамический IP ? api.thingspeak.com у меня резолвится не в такой IP как в вашем коде
Попробуйте для начала на vbs
test.vbs
только с api_key внимательнее - вставьте свой похожий, там два дают, нужен верхний - Write API Key
по ip тоже работает, но я реальный взял, а не из примера (184.106.153.149 этот вроде тоже работает)
ссылка на канал https://thingspeak.com/channels/77017
Попробуйте для начала на vbs
test.vbs
Код: Выделить всё
Dim oXMLHTTP
Dim oStream
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
oXMLHTTP.Open "GET", "http://api.thingspeak.com/update?api_key=J8US41BZ0OM5OZOO&field1=4.00", False
oXMLHTTP.Send
по ip тоже работает, но я реальный взял, а не из примера (184.106.153.149 этот вроде тоже работает)
Код: Выделить всё
Dim oXMLHTTP
Dim oStream
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
oXMLHTTP.Open "GET", "http://144.212.80.11/update?api_key=J8US41BZ0OM5OZOO&field1=5.00", False
oXMLHTTP.Send
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
- Реклама
Re: Запрос get в еsp8266
Спасибо, но как раз с thingspeak проблем нет, все работает, проблема с отправкой на свой сайт get
Re: Запрос get в еsp8266
а так тамошний lua не понимает ?
conn:connect(80,'citoin.tk')
conn:send("GET /adddat.php?nh=1&temp=100 HTTP/1.1\r\n")
conn:connect(80,'citoin.tk')
conn:send("GET /adddat.php?nh=1&temp=100 HTTP/1.1\r\n")
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Re: Запрос get в еsp8266
Луа понимает и выполняет , но ничего не приходит я уже 3 ночи голову ломаю.
Везде примеры только с thingspeak но там соединение по ip у меня выделеного ip на хостинге нет, то есть соединение возможно через домен. Браузер строку гет которую я в первом посте выкладывал отрабатывает, а микроконтроллер не хочет и не понятно то ли по домену не соединяется, то ли фигню непонятную пхп скрипту отсылает
Везде примеры только с thingspeak но там соединение по ip у меня выделеного ip на хостинге нет, то есть соединение возможно через домен. Браузер строку гет которую я в первом посте выкладывал отрабатывает, а микроконтроллер не хочет и не понятно то ли по домену не соединяется, то ли фигню непонятную пхп скрипту отсылает
Re: Запрос get в еsp8266
Проблема решена! коннектится надо к IP домена посмотреть можно в админке, если изменить название сайта и параметры на свои подойдет скорее всего для всех сайтов на hostingere
рабочий код
print("Sending data to citoin")
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end)
conn:connect(80,'31.170.164.55')
conn:send("GET /adddat.php?nh=1&temp="..t1.." HTTP/1.1\r\n")
conn:send("Host: citoin.tk\r\n")
conn:send("Accept: */*\r\n")
conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n")
conn:send("\r\n")
conn:on("sent",function(conn)
print("Closing connection")
conn:close()
end)
рабочий код
print("Sending data to citoin")
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end)
conn:connect(80,'31.170.164.55')
conn:send("GET /adddat.php?nh=1&temp="..t1.." HTTP/1.1\r\n")
conn:send("Host: citoin.tk\r\n")
conn:send("Accept: */*\r\n")
conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n")
conn:send("\r\n")
conn:on("sent",function(conn)
print("Closing connection")
conn:close()
end)
Re: Запрос get в еsp8266
А разве в функции connect() нельзя указать сразу DNS-имя сайта? То же самое имя, которое передаешь в строке "Host".Kwiki писал(а):коннектится надо к IP домена посмотреть можно в админке,...
....
conn:connect(80,'31.170.164.55')
Всё равно туда IP-шник в виде строки уходит - это "ж-ж-ж" не спроста!
Re: Запрос get в еsp8266
Вот и я в примерах видел такое. А "ip домена" сегодня один, завтра другой, для того и сервис имен придумали. Возможно какая то проблема с dns в самом модуле / параметрах сети и он не может резолвить имена ? Смотреть в админке необязательно, достаточно ping citoin.tk в командной строке набрать.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Re: Запрос get в еsp8266
Самое смешное то, что у меня как раз открыт Еклипс с UDK и я изучаю именно ESP8266.Morroc писал(а):Возможно какая то проблема с dns в самом модуле
Есть там DNS, он и в китайской SDK описан, и в lwIP присутствует.
В теории, может быть вот:
"4. espconn_dns_setserver
....
Note:
Only if ESP8266 DHCP client is disabled (wifi_station_dhcpc_stop), this API can be used."



