2017年
1月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2017-01-23 IoTで温度、湿度、気圧を記録

_ BME280とESP8266

esp8266を使って温度のログを取っていたが、ようやく温度、湿度、気圧の記録を取れるようになった。BME280からI2Cを使ってデータを取得して、それをwifiでuploadする、と書くと簡単そうだが、BME280を扱うのに、それなりに苦労した。途中で一つeps8266を殺してしまった。

I2Cの通信自体は、それほど難しく無いが、ピン番号を間違えていて、しばらく苦戦してしまった。次に苦労したのが、BME280から取得したデータの変換だ。BME280の中に、校正するためのパラメーターが入っていて、これらを用いて複雑な計算をすると、温度などの値が得られる。これらを内部であらかじめやってくれていると楽なのにと思うのだが、計算が大変だからか、自分で計算しないといけない。パラメータの格納の順序が、私の書いたサブルーチンと相性が悪く、その変換のために、プログラムが汚くなってしまった。また、32bitや64bitのsignedやunsignedの変数をいろいろと使った式で、かなり複雑な計算をする必要がある。最初は32bitの変数としてlongを使っていたが、おそらくこれが32bitでは無いようで、signedのときに変な挙動をした。あからさまにint32_tなどと書かないと負の数のときに、値が変になってしまう。

これらの苦労を経て、なんとか記録を開始することができた。今後、これらのデータを使って、いろいろと検討することができるだろう。