4章 自由に工作しよう 4-1 「自宅警備員」を作ってみよう Arduinoで侵入者を検知 外出中に、 「自分の部屋に誰 かが入ってきているのではな いか」と、ふと気になったこと はありませんか? 部屋に誰か が侵入してきたことを知らせ てくれる警備員がいてくれた らいいのに、と思ったことは ありませんか? そんな時には Arduino に警備員になっても らいましょう。 図 4-1-1 自宅警備員完成 自宅警備員の構成を考える 自宅警備員にどのような機能を持たせればいいのか、製作するにはどんなものが必 要になるかを考えてみましょう。 部屋に誰かが入ってきたかどうかを検知するには、モーションセンサーが便利です。 3 章でモーションセンサーを使った人は、その高性能ぶりを体感できたかと思います。 モーションセンサーで検知した結果を、どこにいても見られるようにしたいと思い ませんか。どのような方法があるでしょうか。いつでもどこでもとなれば、やはりイ ンターネットを使うのが一番です。インターネット上のサービスで手軽に書き込める といえば、やはり Twitter でしょう。となれば、Arduino に Ethernet シールドを組み 合わせて使う必要があります。 どうやら自宅警備員の機能は、Arduino、Ethernet シールド、モーションセンサー の組み合わせで実現できそうです。それでは、この 3 つを組み合わせた回路を考えて みます。この回路図は、図 4-1-2 のようにしましょう。 機能のわりには、とてもシンプルな回路になりました。 298 4-1 「自宅警備員」を作ってみよう GND OUT 1 底面視図 AMN31111 の ピンアサイン Arduino 7 6 5 4 3 2 1 0 SCK MISO MOSI SS 2 +5V AMN31111 Ethernetシールド Vdd SD̲CS WP DETECT RESET OUT 最初の一歩 Arduino Analog 0 1 2 3 4 5 Power IOREF RESET 3.3V 5V GND GND VIN Digital +5V SCL SDA AREF GND 13 12 11 10 9 8 のしくみ Arduino Vdd 100k GND 基本のテクニック 3 図 4-1-2 自宅警備員の回路図 自宅警備員のスケッチを考える 次にスケッチを考えましょう。モーション で、3 章のモーションセンサーのスケッチと モーションセンサーで 侵入者を検知 Twitter のスケッチを組み合わせればできあが 4 自由に工作しよう START センサーが検知したら Twitter に書き込むの りそうです。加えて、侵入した時刻がわかれ ばなお便利です。そこで Twitter に書き込む を取得するのは NTP サーバにアクセスするこ とで実現できます。 侵入したことを知らせる メッセージを書き込む これらのことを整理すると、図 4-1-3 のよ 5 アンドロイドにつなげよう NTPサーバで 侵入時刻を取得 メッセージに日付と時間を追加します。時間 うな処理の流れになります。 299 付録 図 4-1-3 自宅警備員の処理の流れ 4章 自由に工作しよう 3 章で紹介した NTP サーバのスケッチでは、時刻の表示を行いました。今回は日付 の表示も追加しましょう。Arduino には NTP サーバの情報から、簡単に日付を取得 することができるライブラリも用意されています。このライブラリは Time ライブラ リといい、以下のホームページからダウンロードすることができます(図 4-1-4)。 http://www.arduino.cc/playground/Code/Time 図4-1-4 Timeライブラリダウンロードページ このページの「The download」というリンクをクリックするとファイルのダウン ロードが始まります。ダウンロードしたファイルを任意のフォルダに保存して解凍し 「Time」フォルダ、 「DS1307RTC」 てください。解凍すると「TimeAlarms」フォルダ、 フォルダが作られます。このうち「Time」フォルダを、Arduino をインストールした フォルダ内の「libraries」フォルダの中にコピーします。なお、解凍の仕方によっては 「Time」フォルダの中に上記の 3 つのフォルダが作られる場合があります。 コピーが終了したら Arduino IDE を起動します。もし、コピー中に Arduino IDE が起動していた場合は、一度すべてのウィンドウをとじて、改めて Arduino IDE を起 動してください。「Sketch」メニューから「Import Library...」を選択した時に「Time」 300 4-1 「自宅警備員」を作ってみよう がリストに出ていれば、ライブラリのインストールは成功です。 Time ライブラリに含まれている関数は表 4-1-1 のとおりです。 1 関 数 内 容 時刻を初期設定します。 getTimeFunction に時 刻を取得する関数を指定します。 setSyncInterval(interval) 時刻を同期するための時間間隔を秒数で指定します。 timeStatus() 時刻が設定されたか、同期をとったかなどのステー タスを返します。ステータスには、以下のものが あります。 timeNotSet:時刻がまだ設定されていません。 timeNeedsSync:時刻の同期が必要です。 timeSet:時刻が設定または同期されました。 year() 西暦で年を返します。 month() 月を返します。 day() 日を返します。 hour() 時間を返します。 minute() 分を返します。 second() 秒を返します。 2 最初の一歩 Arduino setSyncProvider(getTimeFunction) のしくみ Arduino 表4-1-1 Timeライブラリの関数(抜粋) 基本のテクニック 3 スケッチを作る Time ライブラリのインストールが確認できたら、いよいよスケッチ 4-1-1 を作成し 自由に工作しよう 4 ます。3 章で作ったスケッチをもとに組み合わせます。MAC アドレスと Twitter のトー クンの設定を忘れずに行ってください。 アンドロイドにつなげよう 5 スケッチ 4-1-1 自宅警備員 // 自宅警備員 // ネットワーク接続に必要なライブラリをインクルード 付録 #include <SPI.h> #include <Ethernet.h> #include <EthernetUdp.h> // Twitter ライブラリをインクルード #include <Twitter.h> 次頁へ続く 301
© Copyright 2024 Paperzz