Powiadomienia
Wyczyść wszystko

Stacja pogodowa

5 Wpisów
2 Użytkownicy
0 Reactions
1,916 Wyświetleń
(@scorch)
Wpisów: 3
Bywalec
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#1465]

Pytanko dotyczy czujnika BME680 i związków lotnych jakich wartości powinniśmy się tam spodziewać bo w moim przypadku cały czas pokazuje 0,5 co bym pod czujnik nie podsunął :/


 
Dodane : 24/01/2020 3:07 am
(@wenar)
Wpisów: 286
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

0.5 wartość domyślna

prawidłowo skonfigurowany podaje zmieniające się co chwilę wartości.


 
Dodane : 24/01/2020 8:42 am
(@scorch)
Wpisów: 3
Bywalec
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

ehh wszystkie inne wartości podaje prawidłowo tylko tam mu leży na 0.5 :/


 
Dodane : 24/01/2020 5:31 pm
(@wenar)
Wpisów: 286
Weteran
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Chyba że czujnik tego nie obsługuje albo wada wakas to też będzie wartość domyślna podawać.


 
Dodane : 24/01/2020 5:33 pm
(@scorch)
Wpisów: 3
Bywalec
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

więc tak jak podpinam go i wrzucam coś takiego:

--konfiguracja I2C
sda, scl = 2, 1
i2c.setup(0, sda, scl, i2c.SLOW) -- call i2c.setup() only once
--konfiguracja AP
cfg={}
cfg.ssid="Weather station"
wifi.ap.config(cfg)
counter=0
battery=0
--konfiguracja BME680
alt=167 -- altitude of the Mielec airport
sealevel=101325
bme680.setup() --T,P,H oversample, heater_temp, heat_time, IRR, cold_start
--cykliczny pomiar wartosci co 4-ry sek.
tmr.alarm(0, 4000, 1, function()
-- delay for heating (by Bosch: 121 ms), minimum working (empirical): 150 ms
bme680.startreadout()
-- measure all in one step an convert air pressure to sea level pressure
T, P, H,G, QNH = bme680.read(alt)
print(string.format("T=%d.%d", T/100, T%100))
print(string.format("humidity=%d.%d%%", H/1000, H%1000))
print(string.format("QFE=%d.%d", P/100, P%100))
print(string.format("QNH=%d.%d", QNH/100, QNH%100))
print(string.format("IAQ=%d", G))
-- convert to dewpoint (punkt rosy)
D = bme680.dewpoint(H, T)
print(string.format("dew_point=%d.%d", D/100, D%100))
-- altimeter function - calculate altitude from current sea level pressure (QNH) and measure pressure
curAlt = bme680.altitude(P, sealevel)
print(string.format("altitude=%d.%d", curAlt/100, curAlt%100))
battery=adc.read(0)*10
print("Battery voltage (mV):", battery)
counter=counter+4
end)
--lokalny serwer wyswietlajacy pomiary
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
majorVer, minorVer, devVer, chipid, flashid, flashsize, flashmode, flashspeed = node.info()
local buf
buf="HTTP/1.1 200 OK\nContent-Type: text/html\nRefresh: 10\n\n"
buf=buf.."<!DOCTYPE HTML>"
buf=buf.."<html><body>"
buf=buf.."<h1> BME680 environment station </h1>"
buf=buf.."temperature = " .. T/100 ..".".. (T%100)/10 .. " [&deg;C]<br>"
buf=buf.."humidity = " .. H/1000 .. "." .. (H%1000)/100 .." [%]<br>"
if(G)>100000 then buf=buf.."<font color=lime>"
elseif(G)>50000 then buf=buf.."<font color=green>"
elseif(G)>25000 then buf=buf.."<font color=olive>"
elseif(G)>10000 then buf=buf.."<font color=red>"
else buf=buf.."<font color=fuchsia>"
end
buf=buf.."air quality = " .. G .. " [Q]<br></font>"
buf=buf.."pressure = " .. P/100 .. " [hP]<br>"
buf=buf.."sea level pressure = " .. QNH/100 .. " [hP]<br>"
buf=buf.."altitude = " .. curAlt/100 .. "."..(curAlt%100)/10 .. " [mnpm]<br>"
buf=buf.."---- statistic ----<br>"
buf=buf.."battery voltage = " .. battery/1000 ..".".. (battery%1000)/100 .. " [V]<br>"
buf=buf.."online = " .. counter/60 .. " [min]<br>"
buf=buf.."node heap = " .. node.heap() .. " [B]<br>"
buf=buf.."NodeMCU "..majorVer.."."..minorVer.."."..devVer .."<br>"
buf=buf.."</html></body>"
conn:send(buf)
conn:on("sent",function(conn) conn:close()
collectgarbage()
end)
end)

 

niestety trzeba wrzucić stary firmaware, bo z nowym rozjeżdża się funkcja tmr.alarm(0, 4000, 1, function() tutaj wszystko działa poprawnie najbardziej zależy mi żeby było wyświetlane air quality niestety w ADF nie ma tej funkcji więc kombinuję jak ją wyciągnąć inaczej na razie zatrzymałem się na tym ze za cholerę nie mogę podłączyć esp do sieci po wi fi :/


 
Dodane : 24/01/2020 9:51 pm
Udostępnij: