ArduinoとLSM303コンパスで作るリュックアラーム:傾き検知で盗難防止
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino UNO | 1 | |
| Adafruit LSM303DLHC トリプルアクシス加速度+磁気センサー | 1 | |
| 大型ピエゾブザー(3kHz) | 1 | |
| 9V電池 | 1 | |
| 6.35mmオーディオジャック(スイッチ付き) | 1 | 任意:キー操作用 |
| 6.35mmオーディオプラグ | 1 | 任意:キー用 |
| ジャンパーワイヤー(オス/メス) | 1セット | |
| 9V電池スナップ(DCジャック用) | 1 |
使用ツール
プロジェクト概要
公共の場でリュックを置いて離れる際、盗難が心配になったことはありませんか? LSM303コンパス/加速度センサーを使い、リュックが動かされた(向きが変わった)ことを検知して大音量アラームを鳴らす防犯デバイスを作ります。磁気センサーで方位を監視し、10度以上の変化でアラーム作動。
ステップ1:配線
LSM303接続(I2C)
- SDA → Arduino SDA(A4)
- SCL → Arduino SCL(A5)
- VIN → 5V
- GND → GND
ピエゾブザー接続
- + → デジタルピン13
- - → GND

ステップ2:ライブラリインストール
- Adafruit_LSM303DLHC と Adafruit_Sensor をZIPダウンロード
- Arduino IDEで「スケッチ」→「ライブラリをインクルード」→「.ZIP形式のライブラリをインストール」で両方追加

ステップ3:プログラム書き込み
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM303_U.h>
#include <Adafruit_LSM303.h>
const int sens = 10; // 感度(度):小さいほど敏感
Adafruit_LSM303_Mag_Unified mag = Adafruit_LSM303_Mag_Unified(12345);
void setup() {
pinMode(13, OUTPUT);
if (!mag.begin()) {
// センサー未検出時:LED点滅でエラー表示
for (int i = 0; i < 4; i++) {
digitalWrite(13, HIGH); delay(500);
digitalWrite(13, LOW); delay(500);
}
while (1); // 停止
}
delay(5000); // 起動後5秒待機(設置時間確保)
digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); // 起動完了ビープ
}
int getDeg() {
sensors_event_t event;
mag.getEvent(&event);
float heading = int((atan2(event.magnetic.y, event.magnetic.x) * 180) / PI);
if (heading < 0) heading += 360;
return heading;
}
void loop() {
int oldDeg = getDeg();
delay(1000);
int newDeg = getDeg();
if (newDeg < (oldDeg - sens) && oldDeg != 0 && newDeg != 0) {
digitalWrite(13, HIGH); // アラームON
} else if (newDeg > (oldDeg + sens) && oldDeg != 0 && newDeg != 0) {
digitalWrite(13, HIGH); // アラームON
}
// シリアルデバッグ用コードはコメントアウト済み
}
ステップ4:動作テスト
リセットボタン押下後、短いビープ3回→3秒無音→長いビープ1回で起動完了。LSM303を傾けるとアラームが鳴ります。感度調整はsens変数で(小さいほど敏感)。起動時に長いビープ2回なら配線不良。動作不安定なら強い磁場(スピーカー、モーター等)から離れ、センサーを水平に設置してください。
ステップ5:キー(アーム/ディアーム)スイッチ追加
電池の抜き差しは面倒なので、6.35mmオーディオジャックをキー代わりに使用(3.5mmより一般的でなくセキュリティ向上)。電池とDCジャックの間にスイッチを挿入します。

リードスイッチ+磁石、RFID、スマホアプリ連携等、アイデア次第で多彩な「キー」が実現可能。
ステップ6:リュックへの搭載



ブザー用とキー用の穴を開け、結束バンド等で固定。センサーは地面と平行に、ブザー穴は塞がれない位置に。
発展アイデア
リュック以外にも、ドア、クッキージャー、冷蔵庫、貴重品ケース等、動かされたら困るもの全般に応用可能。アイデア次第で用途無限大!
回路図
コンパス接続:青-SDA、黄-SCL、黒-GND、赤-VIN

製造プロセス
- Home Assistant on Raspberry Piで安全なホーム監視 – モーション、アラーム、ビデオ撮影
- Adafruit T-Cobbler PlusでヘッドレスRaspberry Pi 2水漏れアラームを構築
- JavaとReactive Blocksでモーション検知アラームシステム - Raspberry Piに展開しSMS送信
- ローリングアラームロボット:Raspberry Pi と Google カレンダーで動くスマートモバイル目覚ましシステム
- スマート渇きアラート植物アラーム – 最適な水やりタイミングを知らせるDIYセンサー
- SERENA:Arduino Mega 2560とTFT LCDタッチスクリーン搭載カスタムアラームシステム
- ArduinoとRFモジュールでアラームシステムのセキュリティを評価する
- Arduino超音波距離・温度モニター:LCD表示とアラーム機能付き水位監視システム
- DS1302 RTCとArduino UNOで作る信頼性の高い目覚まし時計
- Arduinoセキュリティ&アラームシステムの自作:ステップバイステップチュートリアル
- 安全性と信頼性のためのフェイルセーフ制御システム設計