このセッションでは、リアルタイムクロックモジュールDS1307をRaspberry PIとインターフェイスさせて、目覚まし時計を作成します。Raspberry Piには内部時計がありますが、インターネットに接続されていない場合、この内部時計は再起動するたびにリセットされます。したがって、インターネットに接続せずに正確な時刻を取得するには、RTCモジュールDS1307をRaspberryPiに接続する必要があります。RTCモジュールにはバックアップ用のボタン電池があるため、TIMEはリセットされません。また、ArduinoとATmega32AVRマイクロコントローラーを使用して目覚まし時計を作成しました。それらも確認してください。
このラズベリーパイデジタル時計では、16 * 2文字のLCDがリアルタイム、アラーム時間、アラームのステータス(ON / OFF)を表示します。プログラムがPiで実行を開始すると、モニターを切断し、このLCDと5つのボタンを使用してアラームを設定できます。
17個のGPIOピンのそれぞれは、最大15mAの電流を供給または引き出すことができます。したがって、Raspberry Piに電力を供給する前に、GPIOピンで遊んだり、接続を2回確認したりしないでください。GPIOピンとRaspberryPiとのインターフェースボタンの詳細については、こちらをご覧ください。また、RaspberryPiチュートリアルシリーズといくつかの優れたIoTプロジェクトも確認してください。
必要なコンポーネント:
ここでは 、Raspbian JessieOSでRaspberryPi2モデルBを使用しています。すべての基本的なハードウェアとソフトウェアの要件については前に説明しましたが、必要なものを除いて、RaspberryPiの概要とRaspberryPIのLEDの点滅で調べることができます。
- OSがプリインストールされたRaspberryPi
- バッテリー付きRTCモジュールDS1307
- 電源
- 1KΩ抵抗(6個)
- 5つのボタン
- 1000uFコンデンサ(2個)
- 16 * 2文字のLCD
- 2N2222トランジスタ
- ブザー
目覚まし時計用にRaspberryPiをセットアップします。
先に進む前に、Raspberry Piを少し構成し、RTCモジュールのライブラリファイルをインストールする必要があります。以下の手順に従ってください。
ステップ1: 最初にRaspberry Pi構成メニューに移動し、以下に示すようにI2Cオプションを有効にします。
ステップ2: Raspberry Piデスクトップ画面に新しいフォルダーを作成し、「目覚まし時計」という名前を付けます
ステップ3: 以下のリンクからRTCモジュールのヘッダーファイルをダウンロードします。
codeload.github.com/switchdoclabs/RTC_SDL_DS1307/zip/master
ステップ4: 前のステップで説明したように、ダウンロードしたzipファイルをDESKTOPで作成したフォルダー(目覚まし時計)に解凍します。
ステップ5: Raspberry Piでターミナルウィンドウを開き、以下のコマンドを入力して、Enterキーを押します。
sudo apt-get installi2c-tools
このコマンドは、RTCモジュールのインターフェースに必要なI2Cツールをインストールします。次に、「 sudoreboot」 コマンドを発行してRaspberrypiを再起動します。
ステップ6: RTCモジュールのI2Cアドレスを確認する必要があります。アドレスを確認する前に、下の回路図に示すように、まずRTCモジュールを接続します。
次に、ターミナルウィンドウに以下を入力します。
sudo i2cdetect -y0またはsudoi2cdetect -y 1
手順7: 上記のコマンドのいずれかが機能する場合は、次のように表示されます。
ステップ8: RTCモジュールが正しく接続されている場合、I2Cアドレス0x68が表示されます。値を記録します。
これにより、必要なすべての調整がRaspberryPi構成で行われます。
回路図と接続:
Raspberry PiとLCDの接続を以下の表に示します。
Raspberry Piと5つのボタンの間の接続も、各ボタンのそれぞれの機能とともに以下の表に示されています。
プログラムと作業の説明:
RTCモジュールには、前述のように電源バックアップ用のボタン電池があるため、バックアップがなくなるまで時刻が最新になり、RTCで正確な時刻が得られます。
次に、RTCモジュールDS1307から正確な時刻を取得するPythonプログラムを作成します。今回は16x2LCDに表示されます。その後、プログラムで目覚まし時計機能を記述します。 LCDの2行目にもアラーム時刻が表示され、その後にオンとオフのステータスが表示されます。アラーム時間は、上記の表に記載されているように、Raspberry Piに接続された5つのボタンで調整でき、アラームの設定は非常に簡単です。デモビデオをチェックして、このRaspberryPi目覚まし時計を操作することもできます。目覚まし時間のインクリメントとデクリメント用の2つのボタン、アラーム分時間のインクリメントとデクリメント用の2つのボタン、およびアラームのオンとオフ用の1つのボタンがあります。
Pythonプログラムは、アラーム時間とRTC時間を継続的に比較し、アラーム時間がRTC時間と一致すると、PIはブザーをトリガーします。ブザーは、NPNトランジスタ2N2222を介してRaspberryPiのGPIOピン22に接続されています。そのため、アラーム時刻に達すると、ブザーが鳴ります。
完全なプログラムは以下に与えられ、コメントを通してよく説明されています。疑問がある場合は、以下のコメントセクションで質問できます。