Witam, czy w obecnej wersji Supla Arduino jest możliwość wyświetlenia wartości np liczników w aplikacji na smartfonie.
Chciałbym wyświetlać wartości liczników prądu i wody .
Wyświetlanie liczników Arduino
-
wwpiotr
- Posts: 36
- Joined: Fri Nov 04, 2016 9:14 am
pzygmunt wielka prośba o analizę i informację czy dałbyś rade zaimplementować kod supli do współpracy z Witty cluoud - urządzenie jest o tyle ciekawe że można usytuować wlutowany do urządzenia fotorezystor na wprost pulsującej diody w liczniku energii i wysyłać dane do supla cloud lub naszego serwera. Kod z NT testowałem, impulsy zbiera prawidłowo ale przy próbie wysłania danych do serwera wyrzuca błąd.
Podejmiesz wyzwanie ??
energy.lua
init.lua
Podejmiesz wyzwanie ??
energy.lua
Code: Select all
-- =========Zmienne===========
licznik=0
stan = 0
wyslano = 0
wyslij = 0
wspolczynnik = 0.001
zuzycieImp = 0
zuzycieKwh = 0
czas = tmr.now()
odstep = 0
-- ============================
-- =========NETTEMP===========
NettempIP="192.168.100.6"
NettempKey = "________"
SensorType = "elec"
SensorIp = "192.168.100.51"
-- ============================
-- ========Obsługa Analogu============================
function Dioda()
--print("Funkcja dioda")
--print(adc.read(0))
--print("")
if (adc.read(0)>1000) then
stan = 1
end
end
function DiodaTest ()
if (adc.read(0)<1000 and stan==1) then
licznik=round(licznik+(1*wspolczynnik),4)
print("Zaliczylem impuls nr: " .. licznik*1000)
odstep = round(((tmr.now()-czas)/1000000),4) -- tmr.now podaje czas w mikrosekundach
print ("Odstep miedzy mrugnieciami = " .. odstep .. " sekund")
czas = tmr.now()
stan=0
else
end
end
-- ===================================================
function round(what, precision)
return math.floor(what*math.pow(10,precision)+0.5) /
math.pow(10,precision)
end
function Zuzycie()
zuzycieImp = licznik - zuzycieImp
if zuzycieImp>0 then zuzycieKwh = round(((1/odstep)*3.6),4) end
print ("Zuzycie na podstawie czasu: " .. zuzycieKwh )
zuzycieKwh = round((zuzycieImp * 120),4) -- 120 ponieważ wywołujemy funkcje co 15 sekund
print ("Licznik = " .. licznik)
print ("Zuzycie Impulsy = " .. zuzycieImp)
print ("Zuzycie Kwh = " .. zuzycieKwh)
zuzycieImp = licznik
end
function Wydruk ()
print ("Licznik= " .. licznik)
print ("ZuzycieKwh= " .. zuzycieKwh)
print ("ZuzycieImp= " .. zuzycieImp)
end
-- ========Obsługa wysyłki========
function Wysylka()
print ("Wyslij= " .. wyslij)
print ("ZuzycieKwh= " .. zuzycieKwh)
print ("ZuzycieImp= " .. zuzycieImp)
conn=net.createConnection(net.TCP, 0)
conn:connect(80,NettempIP)
wyslij = licznik - wyslano
conn:send("GET /receiver.php?key=".. NettempKey .. "&type=".. SensorType .. "&value=" .. wyslij .. "&ip=" .. SensorIp .. "¤t=" .. zuzycieKwh .. "&device=" .. "wireless"
.. " HTTP/1.1\r\nHost: NettempIP\r\n"
.."Connection: ke ep-alive\r\nAccept: */*\r\n\r\n")
print("Sending Temp linia testowa do wyrzucenia .... ")
conn:on("receive", function(conn, payload) print(payload)
if string.find(payload,"ok") ~= nil then
wyslano = wyslano + wyslij
print("Wysylka powiodla sie")
else
wyslano = wyslano
print("Wysylka nie powiodla sie")
end
end)
end
-- ============================
-- ==========PROGRAM===========
tmr.alarm(0, 20, tmr.ALARM_AUTO, function() Dioda() end)
tmr.alarm(1,25, tmr.ALARM_AUTO, function() DiodaTest() end)
tmr.alarm(2,1000, 1, function() Wydruk() end)
tmr.alarm(3, 60010,1, function() Wysylka() end)
tmr.alarm(4,30000, tmr.ALARM_AUTO, function() Zuzycie() end)
-- ============================Code: Select all
--Connecting to network
wifi.setmode(wifi.STATION)
wifi.sta.config("Internet24_wp","23355566wp")
ip = wifi.sta.getip()
print(ip)
tmr.alarm(0, 1000, 1, function()
if (wifi.sta.getip() == nil) then
print("Connecting to Network...")
else
tmr.stop(0)
print("Connected (ip: ".. wifi.sta.getip() ..")")
dofile("energy.lua")
end
end)