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로 표현하면 setInterval
이 아닌 setTimeout
처럼 작동합니까?
폐쇄되었거나 더 이상 피드백이 필요합니까? –