Module for usage of 18b20 one wire temperature sensor. Temperature can be read directly or event handler may be used
Temp18b20 = require "18b20"
pin = 3
thermometer = Temp18b20(pin)
thermometer:init()
print ("core ready")
network_message = require "network_message"
pin = 3
Temp18b20 = require "18b20"
thermometer = Temp18b20(pin)
thermometer:init()
Temp18b20_handler = require "18b20_handler"
thermometer_handle = Temp18b20_handler(thermometer, true)
svr = net.createUDPSocket()
svr:on('receive', function(socket, message)
message = network_message.decodeMessage(message)
thermometer_handle:handle(socket, message)
end)
svr:listen(PORT)
Handler responds to event temperature.current. Sample message:
{
"node": "computer",
"protocol": "iot:1",
"targets": ["ALL"],
"chip_id": "d45656b45afb58b1f0a46",
"event": "temperature.current",
"parameters": {}
}
In parameter you may define rounding:
"parameters": {"round": true}
Sample response:
{
"chip_id":194799,
"protocol":"iot:1",
"node":"node-40x4",
"targets":["ALL"],
"event":"",
"response":26
}
network_message = require "network_message"
server_listener = require "server_listener"
Temp18b20 = require "18b20"
Temp18b20_handler = require "18b20_handler"
-- setup 18b20
pin = 3
thermometer = Temp18b20(pin)
thermometer:init()
-- atach 18b20 to handler
thermometer_handle = Temp18b20_handler(thermometer, true)
-- add handler to listener
server_listener.add("thermometer", thermometer_handle)
-- run server
server_listener.start(PORT)
Handler has a callback:
cb = function(event)
print("event :"..event)
end
thermometer_handle = Temp18b20_handler(thermometer, true, cb)