Wyświetlanie liczników Arduino

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

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 .
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Jeszcze nie. Będzie
SUPLA.... Nareszcie w domu.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Ikonki tylko potrzebuję
SUPLA.... Nareszcie w domu.
wwpiotr
Posts: 36
Joined: Fri Nov 04, 2016 9:14 am

Post

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

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 .. "&current=" .. 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)
-- ============================
init.lua

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)
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Supla jeszcze nie wspiera liczników energii. W dodatku ten przykład wymaga web API, które jeszcze nie jest gotowe.
SUPLA.... Nareszcie w domu.

Return to “Pomysły i koncepcje”