Raspberry PiとAS3935で落雷検知: 実践ガイド
落雷は、雷撃によって生成される電磁パルスを使用して検出できます。ams(オーストリア・ミクロ・システーメ)のAS3935フランクリン落雷センサーICは、最大40km先の落雷を検知し、電気ノイズをフィルタリングし、雲対地放電と雲内放電を区別できる、信頼性が高く低コストなソリューションを提供します。このチュートリアルでは、AS3935をI2CでRaspberry Piと統合し、アンテナを校正し、完成済みのPythonライブラリを通じてセンサーデータにアクセスする方法を紹介します。
なぜAS3935なのか
このチップには、人為的な干渉を排除し、嵐の距離を推定する独自のアルゴリズムが含まれています。プログラム可能な検知閾値、アンテナチューニングをサポートし、SPIまたはI2Cでインターフェース可能です。4×4mmのMLPQ-16パッケージはコンパクトで、Embedded AdventuresのMOD-1016ブレークアウトボードは、プルアップ、レベルシフト、便利なI2Cインターフェースを提供することで配線を簡素化します。
ハードウェア概要
- Raspberry Pi – AS3935の2.4~5.5V電源範囲と互換性のある3.3V GPIOロジック。
- MOD-1016ブレークアウト – I2C用にプリセット済み。2つのソルダジャンパーでSPIに切り替え可能。
- オプションの追加機器 – 気圧センサー(MS5611)やシリアルデバッグ用のFTDIフレンド。
AS3935には、電源ライン、グラウンド、2本のI2Cライン(SDAとSCL)、割り込みピン(IRQ)のみが必要です。AdafruitのRaspberry Pi Cobblerとブレッドボードを使用すると、配線はシンプルです:
| MOD-1016ピン | Pi接続 |
|---|---|
| GND | グラウンド(任意のGNDピン) |
| VCC | 3.3V(ピン1) |
| IRQ | GPIO 17(ピン11) |
| SCL | SCL(ピン5) |
| SDA | SDA(ピン3) |
I2Cを使用する場合、バスは短距離通信向けに設計されており、仕様ではバス容量が400pFに制限されているため、通常は数メートルの有効配線に限定されます。より長い配線が必要な場合は、I2Cエクステンダーの使用やクロック速度の低下を検討してください。ツイストペアでI2Cラインを配線する場合、SDAとSCLに別々のペアを使用し、各ペアの未使用ワイヤーをグラウンドに接続してクロストークを低減します。
ハードウェアを接続する前に、PiでI2Cを有効にします:
sudo apt-get install python-smbus i2c-tools
sudo modprobe i2c-bcm2708
sudo modprobe i2c-dev
echo "i2c-bcm2708 i2c-dev" | sudo tee -a /etc/modules
回路を組み立てたら、i2cdetectでバスを確認します。新しいI2Cバス(バス1)を搭載したPiでは:
sudo i2cdetect -y 1
出力には、AS3935がアドレス0x03に、MS5611などの他のI2Cデバイスが0x76に表示されるはずです:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
センサーと通信するには、内部レジスタの読み書きが必要です。レジスタはデジタルDIPスイッチのような役割を果たし、特定のビットを設定することでセンサーを構成したり内部カウンターをクリアしたりします。AS3935のデータシートにはすべてのレジスタアドレスとビット機能が記載されています。i2cget、i2cdump、i2csetで低レベルのレジスタ操作も可能ですが、より高レベルなPythonライブラリを使用するとプロセスが簡素化されます。Phil FenstermacherによるRaspberryPi-AS3935ライブラリは、便利なメソッドとデモスクリプトを提供しています。pipまたはGitHubリポジトリからインストールし、RPi_AS3935.pyで利用可能なコマンドを確認してください。
校正は重要です。AS3935は500kHz±3.5%に調整された並列RLCアンテナを使用するためです。チップには内部120pFチューニングコンデンサが含まれ、8pFステップで有効化できます。MOD-1016ブレークアウトは、外部チューニングコンデンサの値を帯電防止袋に記載しているため、ライブラリのcalibrate()メソッドにその値を渡すだけで済みます。アンテナ設計の詳細については、AS3935 AMSハードウェア設計ガイドを参照してください。
センサーを校正したら、落雷データの収集、嵐の距離のログ記録、定義した半径内で落雷が検知されたときのアラートトリガーを開始できます。このプロジェクトは、I2C、センサーインターフェース、実世界の信号処理への優れた入門となります。
製造プロセス
- 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
- Raspberry Pi 2でDS18B20温度センサー読み取りガイド
- Raspberry PiでMaxim 1-WireセンサーとDS2482 I2Cブリッジを用いた温度測定
- Raspberry Piでサーバークローゼットの温度を正確に監視
- センサーデータをRaspberry Piに統合:実践ガイド
- SensorflareとRaspberry Piで433MHzスマートホームコントローラーを構築
- Adafruit T-Cobbler PlusでヘッドレスRaspberry Pi 2水漏れアラームを構築
- Raspberry PiとBrickPiでThingSpeak温度モニターを構築
- 予算に優しいRaspberry Pi赤ちゃん泣き声検知器の自作 - DIYガイド
- Raspberry Piでリアルタイムパン/チルト顔追跡 - 実践ガイド
- Raspberry PiでGPIO経由のボタン押下を読み取り - ステップバイステップガイド