Temat: Komunikacja terminalowa ze stacja pogody
Witam wszystkich i przepraszam ze moje pierwsze chwile na waszym forum i zaraz pytania ale potrzebna mi pomoc.
Sprawa wyglada tak ze mam zbudowana mini stacje pogody ktora mierzy tylko temperature , cisnienie i wilgotnosc i oparte jest to o adruino ktory po rs232 wysyla to do tp-linka ktory jest na open-wrt a to idzie w swiat a dokladniej na serwer APRS i wszystko dziala jak nalezy ale wpadla mi w rece stacja pogody ktora w prosty sposob mozna odpytac o pomiary jakie wykonuje i sprawa wyglada tak ze chcialem zamianic arduino na ta moja stacje pogody.
Aktualnie to wyglada tak:
rserial=io.open("/dev/ttyATH0","r")
while true do
chaine = nil
while chaine==nil do
--to get and to lose the flush
chaine=rserial:read();rserial:flush()
outstr=os.date("%Y-%m-%d %X", os.time()).." "..string.gsub(chaine,"Sensors: ","Sensors: ")
-- the record file
f = assert(io.open("/tmp/wx.txt", "a"))
f:write(string.gsub(outstr,"Sensors: ","").."\n");
f:close()
end
end
Tu pewnie trzeba pozmianiac tak by po rs232 wyslac komende i poczekac na odpowiedz.
Podstawowa komenda E0<CR> po ktorej mamy zwrot E0;Ta+024.9C;Tp+012.2C;Tw+026.8C;Hr+045.0P;Pa+0980.6H;
Sa+005.1M;Da+156.6D;Ra+00042.24M;Rt+060N;Ri+002.6M;
tutaj opis co jest czym:
E0<CR> Temperature in °C Ta C (Channel 100)
Dew point temperature in °C Tp C (Channel 110)
Wind chill temperature in °C Tw C (Channel 111)
Relative humidity in % Hr P (Channel 200)
Relative air pressure in hPa Pa H (Channel 305)
Wind speed in m/s Sa M (Channel 400)
Wind direction in ° Da D (Channel 500)
Precipitation quantity in mm Ra M (Channel 620)
Precipitation type Rt N (Channel 700)
Precipitation intensity in mm/h Ri M (Channel 820)
a druga czesc troche bardziej skomplikowana bo z pliku wx.txt trzeba wyciagna zmienne.
i do tego trzeba by dodac parametr taki jak opady bo teraz tego nie ma do tego bez wiatru bo stacja tego nie posiada :-( Plus typ opadu bo stacja umie rozpoznac czy pada sneg czy deszcz ale to mozna by dodac do pola comment
Tak to mniej wiecej wyglada.
Pomoze ktos ??
Pozdrawiam.