NodeMCUのサンプルをそのまま実行すると以下となる(I2CのPINだけ変更)。
http://nodemcu.readthedocs.io/en/dev/en/modules/bme280/#example
これだと液晶画面からあふれるので、、以下となるようにソースを修正
QFE=1006.364
QNH=1012.351
T=23.41
dew_point=9.31
altitude=50.09
print(string.format("T:%d.%02d/%d.%02d%%",T/100,T%100,H/1000,(H%1000)/10))
print(string.format("QFE:%d.%01d/QNH:%d.%01d", P/1000, (P%1000)/100,QNH/1000, (QNH%1000)/100))
T:23.41/40.696%
QFE:1006.3/QNH:1012.3
横が16文字なので、、以下で実装
表示させた結果
lcd.cls()
lcd.puts(0,string.format("T:%d.%02d/%d.%02d%%",T/100,T%100,H/1000,(H%1000)/10))
lcd.puts(40,string.format("%d.%01d/%d.%01d", P/1000, (P%1000)/100,QNH/1000, (QNH%1000)/100))
文字だけなので芸も華もないですが、CGRAM領域にビットマップデータを流し込むと、℃とか、お天気マークとかも出せるのかも。。面倒なのでそこまで調べる気はないですが。。
現状でinit.luaの設定
-- -- init.lua -- require("lcd") lcd.setup() lcd.cls() lcd.puts(0,"Hello") alt=50 -- altitude of the measurement place PIN_SDA = 6 -- I2C Data Signal GPIO:12(ID:6) PIN_SCK = 5 -- I2C Clock Signal GPIO:14(ID:5) bme280.init(PIN_SDA, PIN_SCK) tmr.delay(300000) P, T = bme280.baro() QNH = bme280.qfe2qnh(P, alt) H, T = bme280.humi() D = bme280.dewpoint(H, T) P = bme280.baro() curAlt = bme280.altitude(P, QNH) lcd.cls() lcd.puts(0,string.format("T:%d.%02d/%d.%02d%%",T/100,T%100,H/1000,(H%1000)/10)) lcd.puts(40,string.format("%d.%01d/%d.%01d", P/1000, (P%1000)/100,QNH/1000, (QNH%1000)/100))
ESP8266のFlashに書き込むのがちょっと面倒ですが、さらに使いやすいIDEがあったのでこれを使ってみる。
ESPlorerというIDEツール。Flashへの書き込み以外に、FlashのフォーマットやNodeMCUの再起動等も可能
http://esp8266.ru/esplorer/