BOSCHの温湿度・気圧センサーBME280を搭載したボードとESP8266をI2Cで接続、luaに組み込まれたi2cモジュールを使ってIDレジスタ(address:0xD0)をReadしてみた。。期待値は0x60だけど読めた値は0、、、、はぁこれではだめだ。オシロで調べると原因を特定できると思うけど、GPIOのピン番号を間違っているか、デバイスアドレスを間違っているか。。
以下がソース、i2c.setupで、I2C_Data:GPIO6、I2C_CLK:GPIO05を指定、デバイスアドレス:0x76の番地:0x0D(ID Register)をリードする例 (node mcu サンプルより引用してるので、開発側の意図そのまま)
> i2c.setup(0,6,5,i2c.SLOW)
> i2c.start(0)
> i2c.address(0,0x76,i2c.TRANSMITTER)
> i2c.write(0,0xd0)
> i2c.stop(0)
> i2c.start(0)
> i2c.address(0,0x76,i2c.RECEIVER)
> c = i2c.read(0,1)
> i2c.stop(0)
> print(string.byte(c))
0

とよく見ると、センサーボードに電源が正しく繋げられてなかった。ブレッドボードの溝を誤解していた(ブレッドボードの縦の溝にはジャンパ飛んでないのに)。なんたる初歩的なミス。。
再度スクリプトを実行。
それらしい値が返っている。meadow上のemacs lispでHEX変換してみる。。
前半省略
> print(string.byte(c))
96
というわけで、、ESP8266とセンサーボードまでのI2Cによる疎通はOK
(format "%x" 96)
"60"
SDKとCでスクラッチからコードを書くのもいいけど、スクリプトで周辺IOを叩くと実行してすぐにOK/NGが判明するのでTurn Around Timeが非常に短くていい。組み込み入門もまずはluaでLチカしたらいいのでは?とも思えた。
レジスタが読めたので、あとはソフトだけの世界(あぁ楽だ)。。センサデータの変換サンプルコードはC言語版やPython版で公開されているので、変換アルゴリズムをLuaに書き換えれば、気温・気圧・湿度がセンシングできるはず。ESP8266上のLuaも安定しているので、Lua言語にどっぷりはまってみる予定でございます。
■追記(160325)
Luaを学ぶべく解説本を買った。Luaの全てが載っているということだけど、、bit演算とか書かれていないような。。

Programming in Lua プログラミング言語Lua公式解説書
- 作者: Roberto Ierusalimschy,新丈径
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2009/08/28
- メディア: 大型本
- 購入: 5人 クリック: 78回
- この商品を含むブログ (18件) を見る
■追記(160417)
なんと、NodeMCUのライブラリ群にすでにBME280用のAPIが用意されていた。言うなれば、、これまでの取り組みは徒労だ。。まぁ勉強になったのでいいけど。
http://nodemcu.readthedocs.org/en/dev/en/modules/bme280/#bme280-module
■ご参考URL
I2Cモジュールサンプルコード
http://nodemcu.readthedocs.org/en/dev/en/modules/i2c/#example
I2Cは制御方法がシンプルで分かりやすい。。
ピン番号リスト
http://nodemcu.readthedocs.org/en/dev/en/modules/gpio/#gpio-module
BME280の変換ソース(SwitchScience様提供)
https://github.com/SWITCHSCIENCE/BME280
Chrome上で動作するLua Web IDE
https://chrome.google.com/webstore/detail/lua-web-ide/imcadgiofccfolmogolfjnahpphaepfe?hl=ja
ブレークやステップ等は提供されないので、シリアルコンソールでの作業とほとんど変わらないけど、コードをESP8266(NodeMCU)にアップロードしてくれるのでちょっとだけ楽
lua manual(5.3)
http://www.lua.org/manual/5.3/
http://lua.tips/index.php?LuaTips
I2C仕様書
http://www.nxp.com/documents/user_manual/UM10204_JA.pdf
I2C解説ページ(電子工作の実験室 様)
http://www.picfun.com/c15.html