3.6.3 IoTアラームクロックの作成

 Raspberry Pi 3を使用して、IoTアラームクロックを作成しました。

1.作成時期
   2018/3〜2018/6

2.購入品について

   以下の部品を購入し、手持ちのユニバーサル基板やSW等を使用して、IoTアラームクロックを作成しました。

 1.購入品

   ・Raspberry Pi 3 Model B
     Raspberry Pi 3 Model B element14版/注文日(2018/3/11):秋月電子通商(\4,800(税込))

   ・スイッチングACアダプター
     スイッチングACアダプター(USB ACアダプター),5V3A/注文日(2018/3/11):秋月電子通商(\700(税込))

   ・Raspberry Pi B+用ヒートシンクセット
     Raspberry Pi B+用ヒートシンクセット/注文日(2018/3/11):秋月電子通商(\120(税込))

   ・microSDHCカード(16GB)
     TOSHIBA マイクロSDカード(microSDHC)EXCERIA 16GB 100MB/s/注文日(2018/3/11):秋月電子通商(\1,150(税込))

   ・ゴム足(丸)RF-018(4個入り)
     ゴム足(丸)RF-018(4個入り)/注文日(2018/3/11):秋月電子通商(\100(税込))

   ・3mmプラネジ(7mm)+六角スペーサー(14mm) セット
     3mmプラネジ(7mm):8個+六角スペーサー(14mm):4個 セット/注文日(2018/3/11):秋月電子通商(\50(税込) *2個)

   ・プラスチックケース
     タカチ TWN型難燃性プラスチックケース(TWN13-7-18W/注文日(2018/3/11):共立エレショップ(\799(税込))

   ・電子ブザー
     圧電ブザー, 直径:24mm, 厚さ:9mm, 動作電圧:DC 2〜20V, 消費電流:2.8mA(電源DC3V時), 5.0mA(電源DC5V時)
     /注文日(2018/3/11):秋月電子通商(\150(税込))

   ・キャラクタ液晶モジュール(16x2行)
     I2C定電圧キャラクタ液晶モジュール(16x2行)(I2C接続, コントローラIC:ST7032i)(注文番号:#27003)
     /注文日(2018/3/11):ストロベリー・リナックス(\1,200(税込))

   ・Raspberry Pi RTCモジュール -- "3.6.1 pi-top 開発環境の構築"で購入したものを使用
     I2C接続 DS3231使用 超高精度RTCモジュール/注文日(2018/1/2):Amazon(\890(税込))

  2 以下の写真について

    以下の1枚目の写真は、Raspberry Pi 3です。2枚目は、Raspberry PiのACアダプターです。
   3枚目は、Raspberry Pi B+用のヒートシンクセットです。4枚目は、microSDHCカード(16GB)です
   5枚目は、ゴム足です。6枚目は、プラネジとスペーサーです。7枚目は、プラスチックケースです。
   8枚目は、電子ブザーです。9枚目は、I2Cキャラクタ液晶モジュールです。
   10枚目は、"3.6.1 pi-top 開発環境の構築"で購入したI2C RTCモジュールです。

   

   

   

   

   


3.実験,作成
   1.部品,回路について

     部品,回路について、Raspberry Pi 3を使用している為、内臓のプルアップ,プルダウン抵抗を使用し、時刻合わせは、
    インターネットで自動的に行ない、アラーム時刻の設定は、パソコン,スマホのウェブブラウザで、設定します。
    又、部品は、I2C接続のLCDパネル,RTCと、消費電流の少ない電子ブザーを使用しました。
    又、WiFiでインターネットに接続する為、プラスチックケースを使用しました。
    尚、Raspberry Pi 3は、シャットダウンを行なわずに電源を切断すると、データが壊れる可能性がある為、
    シャットダウンボタンをつけました。シャットダウン後に、電源を切断する必要があります。

    ○参考書籍
     ・カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる(講談社)

     

   2.IoTアラームクロック 環境構築について

     "3.6.2 Raspberry Pi 3 開発環境の構築"と同様のRaspberry Pi 3の環境構築後、I2Cモジュールの
    設定を行ないました。

    @I2C toolsのインストール
      ・sudo apt-get install i2c-tools

    AI2C RTCモジュールの設定
      ・/boot/config.txt の最後に次の行を追加する。
        dtoverlay=i2c-rtc,ds3231
      ・ntpをntpdateに変更
        sudo apt-get purge fake-hwclock
        sudo apt-get purge ntp
        sudo apt-get install ntpdate
      ・/etc/default/hwclockの変更
        #HWCLOCKACCESS=yes → HWCLOCKACCESS=no
      ・cronの変更
       sudo crontab -e を実行して次の行を追加する。(12Hごとにntpdateする)
        # m h dom mon dow command
        0 0,12 * * * ntpdate ntp.nict.jp && hwclock -w
      ・/etc/rc.localの変更(起動時にRTCの時刻をシステム時刻を設定する)
       最後のexit 0 の行のすぐ上に下記を追加する。
        /sbin/hwclock -s
        sleep 20
        /usr/sbin/ntpdate -b ntp.nict.jp && /sbin/hwclock -w

    〇環境構築後のI2Cアドレス
     "3e"がLCDモジュール、"68"がRTCモジュールのI2Cアドレスです。

      

   3.IoTアラームクロックプログラムについて

     WebIOPiを使用して、パソコン,スマホのウェブブラウザで、IoTアラームクロックのアラーム時刻設定を行なう事にしました。
    又、IoTアラームクロック本体のプログラムはPython3で、アラーム時刻設定は、HTMLとJavaScriptで作成しました。
    インターネットや書籍のプログラムを参考にして、プログラムを作成しました。

     @IoTアラームクロック本体プログラムについて(script.py)
       初期処理で、設定ファイルの読み込みと、3つのマルチスレッド(LCD表示処理,アラーム処理,シャットダウン処理)を
      実行しています。又、IoTアラームクロック設定ページの設定ボタンが押されると、上下限チェックと、設定ファイルの
      書き込み処理が行なわれます。又、シャットダウンボタンを3秒以上押すと、LCDに"Shutdown !"が表示され、
      シャットダウン処理が開始されます。シャットダウンボタンを離すと、時刻表示に戻ります。LCDの時刻停止後、
      約10秒後にシャットダウン処理が完了します。尚、プログラム中のLCD制御関数は、参考書籍の
      "カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる(講談社)"のプログラムを
      流用しました。

     AIoTアラームクロック アラーム時刻設定プログラムについて(index.html)
       IoTアラームクロック本体プログラムのマクロ関数で、アラーム時刻(時),アラーム時刻(分),アラーム長(分)の
      読み込みを行ない、値の変更後、設定ボタンを押すと、設定ファイルの書き込み,上下限チェック,アラーム時刻の
      再読み込みを行ないます。

     BIoTアラームクロックWebIOPi設定について(config)
       WebIOPiのconfigファイルの変更箇所は、[SCRIPTS]セクションのmyscriptのパス名と、[HTTP]セクションの
      doc-rootのパス名です。

     ○IoTアラームクロックプログラム
       ・IoTアラームクロック本体プログラムリスト(/usr/share/webiopi/htdocs/iotalarmclock/script.py)
       ・IoTアラームクロック アラーム時刻設定プログラムリスト(/usr/share/webiopi/htdocs/iotalarmclock/index.html)
       ・IoTアラームクロックWebIOPi設定(/etc/webiopi/config)
       ・IoTアラームクロックプログラム(iotalarmclock:03060301P.zip)

   4.以下の写真について

     1枚目のパソコン画面は、WiFiでのリモートデスクトップのIoTアラームクロックのプログラミング環境です。2枚目のiPhoneの画面は、
    IoTアラームクロックのアラーム時刻の設定画面で、iPv6インターネット経由で接続しています。問題なく操作ができます。
    3〜6枚目の写真は、IoTアラームクロックのケース加工の状態です。7〜9枚目は、外部機器とRaspberry Pi 3を接続する基板です。
    10枚目は、ケースにRaspberry Pi 3,基板の取り付け、ケーブル配線を完了した状態です。11枚目はアラームSWがOFFのLCD表示で、
    12枚目はアラームSWがONのLCD表示です。13枚目はシャットダウンボタンを3秒以上押し続けて、シャットダウン処理が開始した
    LCD表示です。14〜15枚目は、IoTアラームクロックの外観です。16枚目は、iPhoneでIoTアラームクロックのアラーム時刻を
    設定中の状態です。

      

      

      

      

      

      

      

      

      


4.感想

   今回は、Raspberry Pi 3を使用して、IoTアラームクロックを作成しました。パソコン,スマホのウェブブラウザで、
  アラーム時刻設定ができるようにしました。Raspberry Pi 3を使用すれば、IoTマイコン装置が作成できます。
  今後もRaspberry Pi 3で、IoTマイコン装置を作成しようと思います。






トップページヘもどる