ds18b20-web.lua 1010 B

12345678910111213141516171819202122232425262728293031323334353637
  1. local t = require('ds18b20')
  2. local port = 80
  3. local pin = 3 -- gpio0 = 3, gpio2 = 4
  4. local gconn = {} -- local variable for connection
  5. local function readout(temps)
  6. local resp = "HTTP/1.1 200 OK\nContent-Type: text/html\nRefresh: 5\n\n" ..
  7. "<!DOCTYPE HTML>" ..
  8. "<html><body>" ..
  9. "<b>ESP8266</b></br>"
  10. for addr, temp in pairs(temps) do
  11. resp = resp .. string.format("Sensor %s: %s &#8451</br>",
  12. ('%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X '):format(addr:byte(1,8)), temp)
  13. end
  14. resp = resp ..
  15. "Node ChipID: " .. node.chipid() .. "<br>" ..
  16. "Node MAC: " .. wifi.sta.getmac() .. "<br>" ..
  17. "Node Heap: " .. node.heap() .. "<br>" ..
  18. "Timer Ticks: " .. tmr.now() .. "<br>" ..
  19. "</html></body>"
  20. gconn:send(resp)
  21. gconn:on("sent",function(conn) conn:close() end)
  22. end
  23. do
  24. local srv = net.createServer(net.TCP)
  25. srv:listen(port,
  26. function(conn)
  27. gconn = conn
  28. -- t:read_temp(readout) -- default pin value is 3
  29. t:read_temp(readout, pin)
  30. end)
  31. end