マイコン工作実験日記

Microcontroller を用いての工作、実験記録

DTMFでLCD表示内容を変化させる

2008-10-12 16:17:27 | VoIP
W-SIMを使って発着信する機能を実装するのは、実際に電話がつながるので楽しいことは楽しいのですが、通信料金が発生してしまうのが痛いところです。端末をもう一台契約すれば通話料はタダにできますが、基本料金はかかってしまいます。そこで、SIPは使うけれども、W-SIMは使わないで遊んでみることにしました。X-Liteは、わたしの持っているYealinkのUSB電話機をサポートしているようなので、今回はこの電話機から操作をおこなっています。



以前、DTMFの検出実験をしましたが、その機能をチョコット強化して、DTMFを使ってLCDに表示するデータを変化させるようにしてみました。X-Liteからは、普通にSIPを使って発信するのですが、特別な番号(900)がダイアルされた場合には、VoIP GWが呼を終端してしまい、W-SIMへは中継しないようにします。そして、X-LiteからのDTMF信号によって、LCDに表示される情報を変化させるようにしてみました。実際に表示される情報は次のとおりです。

  • 自局のIPアドレスとDNSサーバアドレス(DTMF 0)
  • 日付と時刻 (DTMF 1)
  • 温度と明るさ(DTMF 2)




DTMFを検出すると、表示項目が切り替わります。日付時刻については、DTMF 1を検出した時点でSNTPを使って時刻を取得し、その後はSAM7のクロックでカウントしています。USB電話機側にも日付/時刻表示がありますが、こちらはPCの時計を使って表示しています。PCの設定時刻がずれているので、VoIP GWの時刻表示とズレが生じでしまいました。

温度と明るさはこの記事で書いたセンサーの値を表示しています。温度については摂氏での表示ですが、明るさはタイマー値をそのまま表示しているだけであり、ルクスへの変換はおこなっていません。温度センサLM60はAT91SAM7X256のADへ直結しているのですが、ADが10bitしかないこともあり、値がバタついています。OPアンプで2~3倍にしてやった方が良かったようです。

今回はDTMFでLCDの表示内容を変化させてみましたが、マイコン側にSSRとかつけてやれば、DTMFでコンセントの電源制御とかもできますね。ブラウザ経由で制御するよりも、電話機で制御できればリモコン並みに手軽に使えるんじゃないかとも思ったりしますが、X-Liteのようなソフトフォンに頼っていたのではPCが必要になってしまいます。ここは、手軽に使えるワイヤレスのSIP端末とか欲しいような気もしてきました。