Refactoring of the code into files
This commit is contained in:
parent
2e53e158cf
commit
05d4799d7f
4 changed files with 161 additions and 51 deletions
2
credentials.lua.example
Normal file
2
credentials.lua.example
Normal file
|
@ -0,0 +1,2 @@
|
|||
SSID = "MyWifi"
|
||||
PASSWORD = "mypasswd"
|
53
dallas.lua
53
dallas.lua
|
@ -1,51 +1,6 @@
|
|||
function bxor(a,b)
|
||||
local r = 0
|
||||
for i = 0, 31 do
|
||||
if ( a % 2 + b % 2 == 1 ) then
|
||||
r = r + 2^i
|
||||
end
|
||||
a = a / 2
|
||||
b = b / 2
|
||||
end
|
||||
return r
|
||||
end
|
||||
|
||||
function getTemp()
|
||||
addr = ow.reset_search(pin)
|
||||
repeat
|
||||
tmr.wdclr()
|
||||
|
||||
if (addr ~= nil) then
|
||||
crc = ow.crc8(string.sub(addr,1,7))
|
||||
if (crc == addr:byte(8)) then
|
||||
if ((addr:byte(1) == 0x10) or (addr:byte(1) == 0x28)) then
|
||||
ow.reset(pin)
|
||||
ow.select(pin, addr)
|
||||
ow.write(pin, 0x44, 1)
|
||||
tmr.delay(1000000)
|
||||
present = ow.reset(pin)
|
||||
ow.select(pin, addr)
|
||||
ow.write(pin,0xBE, 1)
|
||||
data = nil
|
||||
data = string.char(ow.read(pin))
|
||||
for i = 1, 8 do
|
||||
data = data .. string.char(ow.read(pin))
|
||||
end
|
||||
crc = ow.crc8(string.sub(data,1,8))
|
||||
if (crc == data:byte(9)) then
|
||||
t = (data:byte(1) + data:byte(2) * 256)
|
||||
if (t > 32768) then
|
||||
t = (bxor(t, 0xffff)) + 1
|
||||
t = (-1) * t
|
||||
end
|
||||
t = t * 625
|
||||
lasttemp = t
|
||||
print("Last temp: " .. lasttemp)
|
||||
end
|
||||
tmr.wdclr()
|
||||
end
|
||||
end
|
||||
end
|
||||
addr = ow.search(pin)
|
||||
until(addr == nil)
|
||||
t = require("ds18b20")
|
||||
t.setup(9)
|
||||
addrs = t.addrs()
|
||||
lasttemp = t.read(nil,t.C)
|
||||
end
|
||||
|
|
143
ds18b20.lua
Normal file
143
ds18b20.lua
Normal file
|
@ -0,0 +1,143 @@
|
|||
--------------------------------------------------------------------------------
|
||||
-- DS18B20 one wire module for NODEMCU
|
||||
-- NODEMCU TEAM
|
||||
-- LICENCE: http://opensource.org/licenses/MIT
|
||||
-- Vowstar <vowstar@nodemcu.com>
|
||||
-- 2015/02/14 sza2 <sza2trash@gmail.com> Fix for negative values
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
-- Set module name as parameter of require
|
||||
local modname = ...
|
||||
local M = {}
|
||||
_G[modname] = M
|
||||
--------------------------------------------------------------------------------
|
||||
-- Local used variables
|
||||
--------------------------------------------------------------------------------
|
||||
-- DS18B20 dq pin
|
||||
local pin = nil
|
||||
-- DS18B20 default pin
|
||||
local defaultPin = 9
|
||||
--------------------------------------------------------------------------------
|
||||
-- Local used modules
|
||||
--------------------------------------------------------------------------------
|
||||
-- Table module
|
||||
local table = table
|
||||
-- String module
|
||||
local string = string
|
||||
-- One wire module
|
||||
local ow = ow
|
||||
-- Timer module
|
||||
local tmr = tmr
|
||||
-- Limited to local environment
|
||||
setfenv(1,M)
|
||||
--------------------------------------------------------------------------------
|
||||
-- Implementation
|
||||
--------------------------------------------------------------------------------
|
||||
C = 'C'
|
||||
F = 'F'
|
||||
K = 'K'
|
||||
function setup(dq)
|
||||
pin = dq
|
||||
if(pin == nil) then
|
||||
pin = defaultPin
|
||||
end
|
||||
ow.setup(pin)
|
||||
end
|
||||
|
||||
function addrs()
|
||||
setup(pin)
|
||||
tbl = {}
|
||||
ow.reset_search(pin)
|
||||
repeat
|
||||
addr = ow.search(pin)
|
||||
if(addr ~= nil) then
|
||||
table.insert(tbl, addr)
|
||||
end
|
||||
tmr.wdclr()
|
||||
until (addr == nil)
|
||||
ow.reset_search(pin)
|
||||
return tbl
|
||||
end
|
||||
|
||||
function readNumber(addr, unit)
|
||||
result = nil
|
||||
setup(pin)
|
||||
flag = false
|
||||
if(addr == nil) then
|
||||
ow.reset_search(pin)
|
||||
count = 0
|
||||
repeat
|
||||
count = count + 1
|
||||
addr = ow.search(pin)
|
||||
tmr.wdclr()
|
||||
until((addr ~= nil) or (count > 100))
|
||||
ow.reset_search(pin)
|
||||
end
|
||||
if(addr == nil) then
|
||||
return result
|
||||
end
|
||||
crc = ow.crc8(string.sub(addr,1,7))
|
||||
if (crc == addr:byte(8)) then
|
||||
if ((addr:byte(1) == 0x10) or (addr:byte(1) == 0x28)) then
|
||||
-- print("Device is a DS18S20 family device.")
|
||||
ow.reset(pin)
|
||||
ow.select(pin, addr)
|
||||
ow.write(pin, 0x44, 1)
|
||||
-- tmr.delay(1000000)
|
||||
present = ow.reset(pin)
|
||||
ow.select(pin, addr)
|
||||
ow.write(pin,0xBE,1)
|
||||
-- print("P="..present)
|
||||
data = nil
|
||||
data = string.char(ow.read(pin))
|
||||
for i = 1, 8 do
|
||||
data = data .. string.char(ow.read(pin))
|
||||
end
|
||||
-- print(data:byte(1,9))
|
||||
crc = ow.crc8(string.sub(data,1,8))
|
||||
-- print("CRC="..crc)
|
||||
if (crc == data:byte(9)) then
|
||||
t = (data:byte(1) + data:byte(2) * 256)
|
||||
if (t > 32767) then
|
||||
t = t - 65536
|
||||
end
|
||||
|
||||
if (addr:byte(1) == 0x28) then
|
||||
t = t * 625 -- DS18B20, 4 fractional bits
|
||||
else
|
||||
t = t * 5000 -- DS18S20, 1 fractional bit
|
||||
end
|
||||
|
||||
if(unit == nil or unit == 'C') then
|
||||
-- do nothing
|
||||
elseif(unit == 'F') then
|
||||
t = t * 1.8 + 320000
|
||||
elseif(unit == 'K') then
|
||||
t = t + 2731500
|
||||
else
|
||||
return nil
|
||||
end
|
||||
t = t / 10000
|
||||
return t
|
||||
end
|
||||
tmr.wdclr()
|
||||
else
|
||||
-- print("Device family is not recognized.")
|
||||
end
|
||||
else
|
||||
-- print("CRC is not valid!")
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
function read(addr, unit)
|
||||
t = readNumber(addr, unit)
|
||||
if (t == nil) then
|
||||
return nil
|
||||
else
|
||||
return t
|
||||
end
|
||||
end
|
||||
|
||||
-- Return module table
|
||||
return M
|
14
server.lua
14
server.lua
|
@ -1,3 +1,9 @@
|
|||
temp = -999
|
||||
|
||||
t = require("ds18b20")
|
||||
t.setup(4)
|
||||
addrs = t.addrs()
|
||||
|
||||
mycounter=0
|
||||
srv=net.createServer(net.TCP)
|
||||
srv:listen(80, function(conn)
|
||||
|
@ -9,9 +15,13 @@ srv:listen(80, function(conn)
|
|||
m=""
|
||||
end
|
||||
|
||||
getTemp()
|
||||
_temp = t.read(nil,t.C)
|
||||
|
||||
conn:send("<h1> Hello, this is Jeenas ESP8266.</h1><p>How are you today.<br> Count=" .. mycounter .. m .. "<br>Heap=" .. node.heap() .. "<br>Temp=" .. lasttemp)
|
||||
if _temp ~= nil then
|
||||
temp = _temp
|
||||
end
|
||||
|
||||
conn:send("<h1> Hello, this is Jeenas ESP8266.</h1><p>How are you today.<br> Count=" .. mycounter .. m .. "<br>Heap=" .. node.heap() .. "<br>Temp=" .. temp)
|
||||
end)
|
||||
conn:on("sent", function(conn) conn:close() end)
|
||||
end)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue