Raspberry PiPicoで侵入者アラームを作成する方法

マイクロコントローラーは、盗難警報機などの商用セキュリティ製品でよく使用されます。ただし、後者は非常に高額になる可能性があります。では、4ドルのRaspberry Pi Picoマイクロコントローラーを使用して自家製のアラームを作成してみませんか?

これは、多くの商用警報システムで使用されているPIR(パッシブ赤外線)センサーを使用して、侵入者の存在を検出します。部屋に忍び込んだり、机の周りを覗き見したりする人を捕まえたり、クッキーの隠し場所を保護したりするのに理想的です。 MicroPythonを使用すると、警告音と点滅するライトに反応するようにアラームをプログラムできます。

1.アラームの作成

アラームを作成するには、標準の電子部品を選択する必要があります。

必要なもの:

  • はんだ付けされたオスピンヘッダー付きのラズベリーパイピコ
  • ブレッドボード
  • LED(任意の色)
  • 330オームの抵抗器
  • アクティブ圧電ブザー
  • HC-SR501PIRセンサー
  • 4xオス-オス(M2M)ジャンパー線
  • 3xオス-メス(M2F)ジャンパー線

注:オスのピンヘッダーをRaspberry Pi Picoにはんだ付けしたくない場合は、ヘッダーが既に取り付けられているPicoを購入することができます。

関連:ラズベリーパイの最新のプチパワーハウス、ピコをのぞく

すべてを配線する前に、ピコの下側を見てピンラベルを確認してください。

ピコの上部には、マイクロUSBポートの左側から反時計回りに1から40までの物理的なピン番号がどのように機能するかを確認することもできます。

ブレッドボードで、ピコのオスピンヘッダーを一方の端の穴に挿入します。しっかりと押し下げて、接続が良好であることを確認します。ぴったりとはまるはずです。次に、メスからオスへのジャンパー線を使用してPIRセンサーを接続します。図に示すように、VCCピンはPicoの5V VBUSに、デジタルOUTはGP28に、GNDはGNDピン(ピン3など)に配線する必要があります。以下の配線図。

ブレッドボードのアースレールの1つ(青い線でマークされている)をPicoの別のGNDピン(たとえば、ここでは物理ピン23)に接続します。ライトが点滅する場合は、中央の仕切りの両側にあるブレッドボードにLEDを挿入します。

次に、短い方の脚(カソード)を同じアースレールに接続する必要があります。 LEDの長い方の脚(アノード)は、抵抗を介してGP15ピンに接続して、通過する電流の量を制限する必要があります。そうしないと、LEDまたはピコが損傷する可能性があります。

最後に、ブザーを鳴らして、アラームが鳴ったときにビープ音を鳴らします。ブレッドボードの中央の仕切りのいずれかの側に脚を置き、短い方の脚または黒いワイヤーをアースレールに接続し、長い方の脚(ブザーの上部に「+」でマークされている場合があります)または赤いワイヤーをGP14に接続します。

2.アラームのプログラミング

MicroPythonをPicoにインストールする必要があります。このプロセスには、次の4つの簡単なステップが含まれます。

  1. RaspberryPiのWebサイトからRaspberryPiPico用のMicroPythonをダウンロードします
  2. BOOTSELボタンを押しながら、マイクロUSBソケットを介してPicoをコンピューターに接続します
  3. Picoが外付けドライブとして表示されるのを待ちます
  4. .uf2MicroPythonファイルをドラッグアンドドロップしてPiPicoにコピーします。自動的に再起動します

MicroPythonでは多数のプログラミングIDE(統合開発環境)を利用できますが、ここではThonnyを使用します。すでにRaspberryPi OSにプリインストールされているか(Picoに接続されたRaspberry Piコンピューターを使用している場合)、右上隅のリンクをクリックして公式Webサイトから任意のコンピューターシステムにダウンロードできます。

ダウンロード: Thonny(無料)

Picoをコンピューターに接続した状態で、Thonnyを開きます。 Thonnyウィンドウの右下隅に、現在使用しているPythonのバージョンが表示されます。それをクリックして、 MicroPython(Raspberry Pi Pico)を選択します。

これで、Picoで侵入者アラームをプログラムする準備が整いました。 Thonnyのメインペインに次のコード行を追加します。

 import machine
import utime
pir = machine.Pin(28, machine.Pin.IN, machine.Pin.PULL_DOWN)
led = machine.Pin(15, machine.Pin.OUT)
buzzer = machine.Pin(14, machine.Pin.OUT)
def pir_handler(pin):
utime.sleep_ms(100)
if pin.value():
print("Motion detected. Intruder alert!")
for i in range(50):
led.toggle()
buzzer.toggle()
utime.sleep_ms(100)
pir.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler)

ここで、上部にあるマシンライブラリとutimeライブラリをインポートします。次に、PIR、LED、およびブザーのオブジェクトをセットアップします–それぞれGP28、GP15、およびGP14ピンに接続します。

PIRは、 machine.Pin.INを使用して入力として設定され、 machine.Pin.PULL-DOWNパラメーターを使用して、Picoピンの抵抗をプルダウンモードに設定することに注意してください。これは、トリガーされているPIRから電流が送られるまで、ゼロとして読み取られることを意味します。

関連: Raspberry PiPicoでMicroPythonを使い始める

コードの下部には、PIRセンサーからの入力ピン(GP28)で信号が検出されるとすぐに、 pir_handler関数をトリガーするようにIRQ(割り込み要求)が設定されています。

関数自体で、短時間内に繰り返しトリガーされるのを避けるために、ピン値を再度チェックする前に100msの遅延を追加し、ゼロ以外の場合はアラームをトリガーします。次に、LEDとブザーのオンとオフを切り替えて、ライトを点滅させ、ビープ音を鳴らします。

プログラムをalarm.pyなどの関連する名前でPicoに保存します。プログラムを実行すると、PIRセンサーに手をかざすと、ブザーが鳴り、LEDがすばやく点滅します。

3.センサー感度の調整

アラームが簡単に鳴る、またはまったく鳴らない場合は、PIRセンサーの感度を調整する必要があります。 HC-SR501には、設定を調整するために2つの小さなポテンショメータに取り付けられた2つのプラスチックネジ(通常はSxおよびTxのラベルが付いています)があります。

小さなドライバーを使用して、Sxネジを反時計回りに回して感度を上げることができます(またはその逆)。 Txネジを回すと、侵入者の検出後にトリガーされた信号が送信される時間の長さが変わります。最短の1秒の遅延で、完全に反時計回りに回すのが最善であることがわかりました。

デフォルトでは、PIRは周囲の360°の動きを感知します。検出範囲を制限したい場合は、トイレットペーパーから段ボールのインナーチューブの底に置き、カバーしたい方向に角度を付けてみてください。

独自のモバイル侵入者アラームを作成する

侵入者アラームが満足のいくように機能したら、コンピュータから遠ざけることをお勧めします。プログラムをmain.pyとして保存することで、プログラムをコンピューターから切断し、標準のモバイルパワーバンクをマイクロUSBポートに接続できます。

Picoは、電源が入るとすぐにmain.pyプログラムを自動的に実行します。おめでとうございます。これで、モバイル侵入者アラームをどこにでも配置できるようになりました。