2026-03-08 16:03:33 +04:00

44 lines
1.1 KiB
Lua

local t = require("DS1820")
local pin = 1
function adc_read()
local ao = adc.read(0)
print(ao)
end
local function readout(temp)
if t.sens then
print("Total number of DS18B20 sensors: ".. #t.sens)
for i, s in ipairs(t.sens) do
print(string.format(" sensor #%d address: %s%s", i, ('%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X'):format(s:byte(1,8)), s:byte(9) == 1 and " (parasite)" or ""))
end
end
for addr, temp in pairs(temp) do
--if tonumber(temp) < 20000 then
print(string.format("Sensor %s: %s °C", ('%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X'):format(addr:byte(1,8)), temp))
--end
end
-- Module can be released when it is no longer needed
--t = nil
--package.loaded["ds18b20"] = nil
end
local function read()
t:read_temp(readout, pin, t.C)
end
if adc.force_init_mode(adc.INIT_ADC)
then
node.restart()
return -- don't bother continuing, the restart is scheduled
end
timer = tmr.create()
timer:register(7000, tmr.ALARM_AUTO,read)
timer:start()
sensorstimer = tmr.create()
sensorstimer:register(5000, tmr.ALARM_AUTO, adc_read)
sensorstimer:start()