0
我正在使用帶有已啓用BME280模塊的NodeMCU固件的ESP-12F(ESP8266)模塊。我通過手動查詢溫度和溼度來測試傳感器,一切都很好。爲什麼bme280.startreadout()只觸發一次?
現在,我想使用bme280.startreadout(...)
函數來定期將值發送到我的服務器(或者直接將它們打印到ESPlorer中的串行終端上)。下面的代碼不會拋出任何錯誤,但回調函數只能運行一次 - 有人可以告訴我爲什麼是這樣嗎?
bme280.init(7, 6, nil, nil, nil, 0)
bme280.startreadout(2000, function()
T = bme280.temp()
print(string.format("T=%d.%02d", T/100, T%100))
end)
當我將這個腳本發送到模塊並運行它時,正確的溫度在2秒後被寫出一次,就是這樣。
以下是有關固件的一些細節:
NodeMCU custom build by frightanic.com
branch: dev
commit: 79013ae79a85798cba470ac1168e75c755f58f42
SSL: true
modules: adc,adxl345,am2320,apa102,bme280,crypto,dht,file,gpio,hmc5883l,http,i2c,l3g4200d,mqtt,net,node,ow,pwm,spi,tmr,tsl2561,uart,websocket,wifi
build built on: 2016-12-05 17:30
powered by Lua 5.1.4 on SDK 1.5.4.1(39cb9a32)
更新:沒有想到的是前:是startreadout
意味着觸發回調函數只有一次?或者用JavaScript術語說明:它是否像setTimeout
而不是setInterval
那樣工作?
這是封閉的還是你需要更多的反饋? –