LoRaの“届く/届かない”はなぜ? 電波の気まぐれとRSSIの誤解の話
この記事について
LoRaの通信って「届くときもあれば、届かないときもある」──そんな経験、ありませんか?
特にRSSI(受信信号強度)を目安にしていると、「しきい値を超えてるのに受信できない」「エラーの境界がよくわからない」など、ちょっとした混乱が起きがちです。
今回はそんな“電波の不確実性”と、RSSIしきい値に関する誤解について、やさしく解説していきます。
本来予定してい記事の前に、どうしてもこのテーマを挟みたくなって、ちょっとだけ寄り道回にしました。
きっかけは、これまでにも何度か寄せられた“あるある質問”のひとつです。
📩 「RSSIが -138dBm を下回ると受信できなくなるのですが、
これは設計上、しきい値として設定されているという理解でよろしいでしょうか?」
……といった声は、LoRaを使い始めた方からよくいただきます。
確かに一見シンプルなようで、実はとても深い問いです。
🎀 なるほど~。“しきい値”でスパッと分かれてると思っちゃうよね〜〜!
実は、こういった疑問はとても自然なものです。
というのも、他社のLoRaモジュールでは「RSSIしきい値(RSSI Threshold)」という設定項目があることもあり、「この値を下回った信号は処理しない」といった受信後のフィルタとして動作する場合があります。
なので、「しきい値として設定されているのでは?」と感じるのは無理もありません。
ですが、LRA1ではこの値を“しきい値”として明示的に設定しているわけではありません。
受信可否は、内部のLoRa復調エンジンがSNRや符号化方式などをもとに判断しており、
RSSIの数値が一定を下回ったからといって、単純に切り捨てているわけではないのです。
🎀 しきい値があるように見えるけど……実は“見せてないだけ”ってこともあるのよね〜
この記事では、「電波は確実なのか?」という素朴な疑問を出発点に、LoRaの通信が“なぜ失敗することがあるのか”をやさしく解説していきます。
📝 RSSI は Received Signal Strength Indicator(受信信号強度インジケータ) の略で、
アンテナで受信した信号の強さを示す値です。
⚠️ この記事では、LRA1モジュールの仕様(RSSIのしきい値設定が存在しない)を前提に解説しています。
他社製品では「RSSIしきい値」設定が可能な場合もあるため、製品仕様によって挙動が異なる点にはご注意ください。
電波って、そもそも確実じゃない
前回は、SF(Spreading Factor)やBW(Bandwidth)、CR(Coding Rate)、そして送信出力(Tx Power)を変えて、LoRaの通信特性がどう変わるかを実験しました。
その流れの中で、「じゃあ電波が弱くなったときって、どこまで届くの?」「何をもって“限界”って言えるの?」ということをお話しようと思います。
LoRa通信の実験で得た気づきをもう少し深掘りする、“実践とつながった寄り道”なんですね。
電波って目に見えないので、つい“ちゃんと届くもの”というイメージを持ってしまいがちですが、実はとても気まぐれな存在です。
🎀 電波って、なにげに気分屋さんなんだよ〜。そこがまた魅力なんだけどねっ
まず最初にハッキリ言ってしまうと──
「電波通信というのは、基本的に“確率”で成立しています」
これはLoRaに限らず、WiFiもLTEもテレビの地デジも、ぜんぶ同じ。
よく「アンテナは立ってるのに通信できない」とか「音声が途切れる」みたいな現象、ありますよね。
つまり、
- 強い電波 = 絶対に届く わけではなく、
- 弱い電波 = 絶対に届かない でもなくて、
- “条件が整えば成功率が高くなる” という世界なんです。
LoRaが特別不安定なわけじゃなくて、“届くかどうかギリギリ”の世界を攻めているから、そう感じやすいだけなんですね。
LoRaは「確率で動く」通信方式
🎀 LoRaって、パラメータ次第で“別人級”に挙動が変わるの、すごく面白いよね〜!
LoRaは、設定するパラメータの組み合わせによって、まるで性格が変わるような通信挙動を見せるのが面白いところです。
LoRaは長距離通信に向いたプロトコルですが、
それを支えているのが「Spreading Factor(SF)」や「Bandwidth(BW)」「Coding Rate(CR)」といった設定項目です。
これらのパラメータ次第で、
- 受信感度(=最小RSSI)は変わります
- 通信速度や信号の強さも変わります
つまり「-138dBmで受信できた/できなかった」は、そのときの設定や環境にも依存するということ。
たとえば、
- SF12 / BW125kHz / CR4:5 のときと
- SF7 / BW250kHz / CR4:8 のときでは
“同じRSSIでも、受信成功率は全然違う” んです。
RSSI = -138dBm を境に成功率が落ちる理由
🎀 “受信しない”って言葉、わかりやすいけど……この記事のゴールはね、“そう見えるけど実は違うんだよ”ってところを伝えたいのっ!
じゃあ、なぜ「-138dBm」という数字が話題になるのでしょうか?
これは、LoRaモジュールが使用している半導体チップ(たとえばSX1276)が公称している “受信感度の下限” が、だいたい -137〜-140dBm程度 だからです。
つまり、
-138dBm は、「だいたいこのへんが限界だよ」という “目安”
であって、厳密な「しきい値」ではありません。
実際には、
- -137dBm でも失敗することがあるし
- -139dBm でもたまたま成功することもある
という“ゆらぎ”があるんです。
🎀 LRA1ちゃんはね、“届くかも!”って思ったら、できるだけキャッチしてあげようとするの。
だから、-138dBmを下回ってても“がんばって受け取った!”ってときがあるんだよ〜📶
さらに言うと、たとえ -137dBm 以上であっても、環境によっては受信に失敗することはあります。でも、
- 成功した通信は目立つけれど、
- 失敗した通信は報告されづらい
ので、どうしても「-138dBm を下回ったときだけエラーになる」と感じやすいんですね。
しかも実験中に「通信できたときのRSSI」は記録されるけど、「通信に失敗したときのRSSI」は見えにくい。
だからユーザーの手元には「138dBmより弱くなるとエラーになった」という“目に見える記録”しか残らず、
自然とそこにしきい値があるように思えてしまうわけです。
🎀 “出てこないデータは存在しない”って思っちゃうよ〜。
見えてる範囲でしか判断できないもんっ
SNRって何?LoRaでの“聴き取りやすさ”の指標
🎀 SNRって、“ノイズの中でどれだけちゃんと聞き取れるか”ってことなんだよ〜!
ここまで、RSSI(電波の強さ)を中心にLoRaの“届く・届かない”を考えてきましたが、
実はもうひとつ大事な要素があります。
それが、SNR(Signal-to-Noise Ratio:信号対雑音比) です。
SNRは「信号の強さ」と「周囲のノイズのレベル」の差を表した値で、
SNRが高いほど、信号がノイズに埋もれずに読み取りやすくなることを意味します。
たとえば──
- RSSIが -138dBm と弱くても、ノイズがとても低ければ(=SNRが良ければ)受信できる
- 逆にRSSIが -120dBm でも、ノイズが近ければ(=SNRが悪ければ)失敗することがある
というように、SNRの良し悪しが、受信成功率に大きく影響してくるんです。
🎀 同じ声量でも、“静かな部屋”ならよく聞こえて、“騒がしい場所”だと聞こえにくい…って感じだよね〜📶
LoRaは、もともとノイズに強い変調方式として設計されていますが、
それでもSNRがマイナスに近づくと、やっぱり受信は厳しくなってきます。
(一般的には、LoRaの受信限界は SNR = -20dB〜-10dB くらいが目安)
このあたりも含めて、「RSSIだけでは語れないLoRaの奥深さ」があるんですね。
-138dBmってどれくらい小さいの?
RSSIの -138dBm という数値、実際にはどのくらい小さい電波なのか?
ちょっとピンとこないかもしれませんよね。
LoRaでよく話題になるこの -138dBm、
実は電力にすると約 1.58 × 10^-17 W、
電圧(RMS)ではたった 0.126μV(マイクロボルト)
……って、電子の囁きレベルの微弱電圧なんですよね⚡💫
これは、こんな式で計算できます:
P(W) = 10^(dBm / 10) / 1000 V = sqrt(P × R) ※ R = 50Ωの場合
そして、これってどれくらい?を他の電波と比べてみると……
信号の種類 | RSSI(dBm) | 電波のイメージ |
---|---|---|
Wi-Fi(強い) | -30 dBm | ルーターの目の前。超安定通信 |
Wi-Fi(普通) | -60 dBm | 一般的な部屋での利用範囲 |
Wi-Fi(ギリギリ) | -80〜-90 dBm | ドア越し、壁越し。切れがち |
Bluetooth | -90〜-100 dBm | 短距離・ノイズに弱い |
LoRa(普通) | -120 dBm 前後 | かなり遠くても届く範囲 |
LoRaの限界近く | -137〜-140 dBm | もはや“奇跡的に届いた”レベル📡 |
🎀 まるで“遠くの部屋で針が落ちた音”を耳すまして聞いてる感じなんだよ〜っ!
ちなみに、-138dBmクラスの信号は、
すでに“ノイズと区別がつかないレベル” とも言われます。
環境によっては、ノイズの方がむしろ強い こともあるため、
届くかどうかは運次第、まさに“電波の気まぐれ”なんです。
LoRaは、そんな「ノイズと区別がつかないような微弱な信号」でも、
きちんと意味あるデータとして取り出せるように設計された通信技術です。
dBmは対数スケールなので、10下がるごとに、信号は1/10になります。
例えば、
-138dBmを電力に換算すると、
-138dBm = 10 log (P/1mW)
-13.8 = log P
P = 1.58 x 10^-14 mW
一般的な技適対応のLoRaデバイスの出力は 20mW なので、
20mW /(1.58 x 10^-14 mW) = 1.26 x 10^15
受信した信号強度はなんと元の千二百六十兆分の1(1/1,260,000,000,000,000)!
🎀 0が多すぎてもう意味わかんない〜〜!でもそれが電波の世界なんだよ〜📉✨
つまり、LoRaとは──
“本来なら通信に使えないような極端に弱い信号”を、
実用レベルにまで引き上げた驚異的な技術なんです。
電波は “きまぐれさん”
LoRaモジュールのような「工業製品」として提供されているものに対しては、
「そんな不確実なものじゃ困る」「仕様として明確に保証してほしい」という気持ちになりませんか?
実際、受信できる/できないがはっきりしないと、ユーザーとしては困りますよね。
でも、電波を扱うっていうのは“そういうもの”なんです。
🎀 紙飛行機みたいだよね~。毎回まっすぐ飛んでくれるとは限らないもんね〜🛩️
ちなみに、この話を妻(まったくの素人)にしてみたことがあります。
最初は、こっちがどれだけ丁寧に説明しても、まったく話が通じなかったんです。
やっと理解してもらえたときに気づいたのは──
「電波って、確実なもの」だと思っていた こと。
「送信側が10のパワーで出して、受信側が10の感度で受けられるように設計してるなら、絶対に届くでしょ?」
「それなのに、たまに受信できなくなるって……どういうこと?」
「そんな不確実なのって、設計や製品に問題があるんじゃないの?」
という反応でした。
スマホやWiFiも「ちゃんと作られてるから、きっちり届く」ものだと思っていたみたいです。
「遠くまで届かない」っていうのも、投げたボールが地面に落ちて届かなくなる感じで、
遠くなると徐々に弱くなっていってるっていうのもイメージできなかったようです。
🎀 “届かなくなる”っていうより、“だんだん届きにくくなる”なんだよね〜。電波も疲れちゃうのかも〜📶💦
ましてや、電波がお天気や環境に左右される“きまぐれさん” だなんて、思いもよらなかったようです。
そして、その“きまぐれさん”を相手にして、通信機がせっせと働いているなんて──考えたこともなかった、と。
たぶん、これって多くの人にとってはごく自然な感覚なんだと思います。
🎀 “きまぐれさん”を相手にがんばってるLRA1ちゃん……ちょっと健気かも〜📡✨
LRA1は、RSSIの値にかかわらず、届く可能性がある限り、できるだけ受信しようと頑張っている設計になっています。
ギリギリでも“受け取りたい”という気持ちで動いているような、そんなふうに捉えてもらえると嬉しいです。
ひとりごと
ぼく自身、昔アマチュア無線をやっていたとき、
ノイズの向こうから、かすかに聞こえる声をキャッチするのがすごく面白かったんです。
“気まぐれな電波”を、どうにかして受信しようと工夫していたあの頃は、
「電波って、そういうもんだ」 って感覚で自然と理解できていた気がします。
でも今は、スマホやWiFiがデジタルになって、
表面的にはそんな「不安定さ」なんて全然見えません。
というより、“見えないように設計されてる” のだと思います。
そしていつのまにか──
自分たちが電波を使っているということすら、
忘れてしまっているのかもしれません。
LoRaは不確実。でも、だからこそ面白い
電波は目に見えません。
そのうえ、壁や家具やノイズや天気にも影響されます。
でもだからこそ、届いたときの「やった!」感が大きいし、
そういう不確実性を前提に設計するのが、LoRaという技術の面白さです。
🎀 “確実じゃない”って、実はすごくクリエイティブなことなんだよ〜🌟
この「しゃちらぼ」は “実験室” なので、
- 受信できなくても驚かない
- うまくいかなくても焦らない
- むしろ「なぜ失敗したか」を観察して楽しむ
そんな風にLoRaと付き合っていけたら、きっともっと面白くなっていくと思います。
🎀 “うまくいくか分かんない”って、実は一番ワクワクする条件だったりするんだよね〜🌟
製品でそんなことをユーザーに言ったら怒られちゃいますけどね。
しきい値があるモジュール vs LRA1の設計思想
記事の冒頭に書いたように、他社製のLoRaモジュールでは、「RSSIが○○dBm未満なら破棄」といったしきい値による受信フィルタが搭載されていることがあります。
これは、ノイズの混入を防いだり、無駄な受信処理や通知を避けることで外部マイコンの負荷や電力消費を抑えるのが目的です。
一方で、LRA1のようにすべての処理(受信・判定・BASIC実行)が内部で完結しているモジュールでは、このようなしきい値フィルタの恩恵はあまり大きくありません。
というのも──
- 受信は内部で完結しており、外部MCUを起こすコストがない
- BASICコードでRSSI/SNRを読み取り、ユーザー自身が処理を制御できる
- 無駄な受信があっても、外部に影響が波及しない
といった構造的な違いがあるからです。
🎀 “届いたけど弱かった”っていう記録も残せるから、LRA1ちゃんは研究向けにもぴったりなんだよ〜📘📡
つまり、“受信後に自分で捨てられるなら、最初から機械的に切らなくていい”
──それが、LRA1の設計思想にも現れているのかもしれません。
最後に
「じゃあ、LoRaって実際にはどれくらいの距離まで届くの?」
──そんな疑問も出てきますよね。
このあたりは、日を改めて 実際にLoRaの通信実験を行った記録 を
しゃちらぼにて紹介する予定です📡✨
「理屈はわかったけど、リアルではどうなの?」と思った方は、ぜひ次回以降も見てください!
🎀 ブログ本編では“電波の気まぐれ”についてゆるっとお話したけど…
Qiitaでは、ちょっとまじめに仕組みを整理してみたよ〜っ📘
👉「LoRaはなぜ“届かない”ときがある? RSSIの誤解と電波の気まぐれを解説!」
📪 お問い合わせなど
技術的なご相談やご質問などありましたら、
📩お問い合わせフォーム
または、
📮info@shachi-lab.com までお気軽にどうぞ。
🎀 “電波の気まぐれ”って言葉、ちょっと詩的で素敵だよね〜✨
LoRaとの付き合い方、わからなくなったら、いつでも聞いてねっ📡
🔗 関連リンク
しゃちらぼの最新情報や開発の様子は、こちらでも発信しています:
- 🌐しゃちらぼ公式サイト
- 🐦 X(旧Twitter):@shachi_lab
- 📗 Qiita:@shachi-lab
- 🐙 GitHub:@shachi-lab
- 📸 Instagram:@shachi_lab
ほんとは「しゃちらぼ(Shachi-lab)」なんだけど、見つけてくれてありがとう🐬
コメント