0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SwitchBotの温湿度計のアドバタイズ

Last updated at Posted at 2024-09-26

ESP32が2Fのモジュールを1Fで受信できなかったので、PIC32MX+USBドングル(CSR)でbtstackを使って実装しなおしてみました。

ESP32は-80dBmより低くなると受信できないようです。

btstackはgoogle codeにあったころの昔のものです。

とりあえずgattのコードをベースにアドバタイズをダンプするプログラムを作ってみました。

* adv. event: evt-type 0, addr-type 1, addr XX:XX:XX:31:34:D8, 
rssi -90, length adv 18, data: 02 01 06 0E FF 69 09 D8 34 31 XX XX XX 90 03 04 9B 42 
* adv. event: evt-type 4, addr-type 1, addr XX:XX:XX:31:34:D8, 
rssi -88, length adv 10, data: 09 16 3D FD 54 00 E4 04 9B 42 

アドレスのダンプが逆になっています。

二つのイベントがあり、最初の方だけ飛んでくることもあります。

二つ目の方にはバッテリーの情報が含まれますが、一つ目は温度と湿度の情報だけが入っています。

10年位前にPIC32MXにポートしてあったancsのコードをいじって作ってみました。

二つ目のバッテリーの情報を取っておいて、一つ目のイベントでシリアル出力するようにしました。フォーマットはESP32のものと一緒にしました。

アドバタイズを受け取るとシリアル出力して、一時間に200回くらい受け取れてます。

実は当初USBドングルを3.3Vで動かしていたら、あまり調子が良くなく、5Vにしたら元気になりました。

btstackはgithubに引っ越してメンテされているようです。

古いコードを使っているので、ソースは公開しません。

一時間ごとのアドバタイズの受信回数を集計してみました。最後のフィールドが回数です。

2024-09-28|00:00:00|26.36|73.82|100.0|185.0
2024-09-28|01:00:00|27.76|69.92|100.0|197.0
2024-09-28|02:00:00|28.62|66.72|100.0|180.0
2024-09-28|03:00:00|29.11|64.55|100.0|190.0
2024-09-28|04:00:00|29.36|64.0|100.0|169.0
2024-09-28|05:00:00|29.19|62.05|100.0|179.0
2024-09-28|06:00:00|28.79|61.94|100.0|189.0
2024-09-28|07:00:00|28.21|62.47|100.0|200.0
2024-09-28|08:00:00|27.47|63.45|100.0|177.0
2024-09-28|09:00:00|26.79|65.0|100.0|170.0
2024-09-28|10:00:00|26.2|65.85|100.0|174.0
2024-09-28|11:00:00|25.72|66.6|100.0|175.0
2024-09-28|12:00:00|25.35|67.48|100.0|182.0
2024-09-28|13:00:00|25.08|68.3|100.0|181.0
2024-09-28|14:00:00|24.86|69.72|100.0|181.0
2024-09-28|15:00:00|24.65|70.8|100.0|177.0
2024-09-28|16:00:00|24.43|71.94|100.0|178.0
2024-09-28|17:00:00|24.22|72.0|100.0|173.0
2024-09-28|18:00:00|24.0|72.0|100.0|176.0
2024-09-28|19:00:00|23.84|72.03|100.0|173.0
2024-09-28|20:00:00|23.69|73.0|100.0|166.0
2024-09-28|21:00:00|23.61|73.69|100.0|172.0
2024-09-28|22:00:00|23.88|74.0|100.0|162.0
2024-09-28|23:00:00|24.14|73.33|100.0|166.0

ちょっとアンテナの位置を変えただけで、受信状態が大きく変化するようです。また時間ごとの変動もかなり大きいです。ビーコンなので瞬時に評価できないので、難しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?