diff --git a/ds18b20.lua b/ds18b20.lua deleted file mode 100644 index fac19b4..0000000 --- a/ds18b20.lua +++ /dev/null @@ -1,138 +0,0 @@ --------------------------------------------------------------------------------- --- DS18B20 one wire module for NODEMCU --- NODEMCU TEAM --- LICENCE: http://opensource.org/licenses/MIT --- Vowstar --- 2015/02/14 sza2 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 = 0 -F = 1 -K = 2 -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(unit == nil or unit == C) then - t = t * 625 - elseif(unit == F) then - t = t * 1125 + 320000 - elseif(unit == K) then - t = t * 625 + 2731500 - else - return nil - end - t = t / 100 - -- print("Temperature="..t1.."."..t2.." Centigrade") - -- result = t1.."."..t2 - 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 diff --git a/mqtt.lua b/mqtt.lua index 4d054c2..ae95c87 100644 --- a/mqtt.lua +++ b/mqtt.lua @@ -38,32 +38,10 @@ function startMqtt() end) end -function readTemp() - if (t ~= nil) then - addrs=t.addrs() - -- Total DS18B20 numbers - sensors=table.getn(addrs) - local temp1=0 - if (sensors >= 1) then - temp1=t.read(addrs[1]) - end - return temp1 - else - return nil - end -end - function startMqttClient() if (mqttServer ~= nil and mqttPrefix ~= nil) then startMqtt() print "Started MQTT client" - if (file.open("ds18b20.lc")) then - t=require("ds18b20") - t.setup(2) -- GPIO4 - readTemp() -- read once, to setup chip - print "Setup temperature" - end - oldBrightness=0 oldTemp=0 tmr.alarm(5, 5001, 1 ,function() @@ -74,9 +52,6 @@ function startMqttClient() end if (oldBrightness ~= briPercent) then m:publish(mqttPrefix .. "/brightness", tostring(briPercent), 0, 0) - elseif (temp ~= nil and temp ~= oldTemp) then - oldTemp = temp - m:publish(mqttPrefix .. "/temp", tostring(temp), 0, 0) else m:publish(mqttPrefix .. "/heap", tostring(node.heap()), 0, 0) end