1. ホーム
  2. 自由研究


  1. 1、ネットワークLCD表示機
  2. 2、メール自動送信通知
  3. 3、まとめ
  4. 4、H8開発環境覚書

1、H8/3069F ネットワークLCD表示機

  WEBサーバーとLANで接続されたAKI-H8/3069FLANボード。AKI-H8/3069FLANボードに接続されたLCD表示器に、WEBブラウザから文字を送り表示させます。いわゆるネットワークLCD表示機です。
AKI-H8/3069FLANボードを使いました。かなり前のタイプですが、使いやすいので使ってみました。H8/OSは進化しているようですので新しいもの(MES)を使用したほうがよさそうです。UDPを使うだけならば古いままでいいのですが、TCPクライアントプログラムを作る場合は MES2.3以上 がいいとどこかのサイトにかかれてました。ここでは古いH8/OSを用いてRAMに転送してデバック確認しましたが、MESはRAM DISKがサポートされているようです。

H8-3069 mes LANボード H8-3069 mes LANボード

・WebサーバーはLinuxで、Webブラウザから本ホームページの問い合わせ掲示板に書き込むと、Webサーバーに送られた書き込み内容が(今のところタイトルだけ)LAN経由でH8マイコンに送られます。H8マイコンとLCDは専用のインターフェースで直結されており、送り込まれた文字列を表示する。なおWEBサーバーとH8マイコンのデータ転送はUDPを用いている。問い合わせ掲示板はperl/CGIで書かれており、CGIの中からperlで書かれたUDPプログラム(Socket.pm使用)を起動し、H8マイコンと通信している。  

・Socket.pmのパスpathの指定、設定

 perlでSocketモジュールのパスが通っていないときは、プログラムの中で直接パスを設定できます。たとえば
 
BEGIN{
 push (@INC,"/mnt/disk1/usr/local/lib/perl5/5.8.8/armv5tejl-linux");  #Socket.pm
  push (@INC,"/mnt/disk1/usr/local/lib/perl5/5.8.8"); #Carp.pm 
  }
  と記述します。
 

・2007年12月16日(書き始め)

下記文献を参考にしましたが、WebサーバーにLCDの制御をさせるのではなく、LCD表示器制御用マイコン別に設けました。
参考文献
(1)藤代巌 ネットワーク電光掲示板の製作 トランジスタ技術2002年8月号 pp208-217
(2)三岩幸夫他 LAN経由の制御に適したマイコン・ボード トランジスタ技術2002年12月号

2、H8/3069F メール自動送信通知

登録先へメールで自動通知します

AKI-H8/3069FLANボードのH8マイコンからのアラーム(イベント)はLAN経由で接続されたWEBサーバーへ伝えられ、WEBサーバーは登録されたメールアドレスへメール送信を行います。イベントとしては、H8マイコンに接続されたセンサーや、スイッチなどが考えられます。とりあえずアプリケーションとしては子供の帰宅を携帯電話へメールで通知することを考えて見ます。子供の帰宅時に、H8のスイッチを入れてもらうと、メールで携帯電話に通知されます。

H8-3069 mes LANボード

(1)メール送信機能(smtp.cgi)
通常のSocketプログラムです。

(2)H8からWebサーバーへの通知機能
この通知をさせるのにWebサーバーを使いました。Webサーバーにはメール送信するcgiファイル(smtp.cgi)を作っておきます。H8からsmtp.cgiを呼び出すことで登録先にメールの送信を行います。

(3)smtp.cgiファイルの呼び出し
MES2.3をインストールして、H8マイコンからTCPで呼び出し起動させます。このTCPクライアントは古いH8/OSよりMESを使ったほうがいいですね。MESのサンプルソフトtcpsend.cを参考に作ります。
ポイントは
HTTPリクエスト時のGETメソッドでしょうか  


	char	buf[]="GET /cgi-bin/smtp.cgi HTTP/1.1 \r\n Host:192.168.1.40 \r\n Connection: Close \r\n \r\n";
	argv[1]="192.168.1.40";		
	ip = strtoipno(argv[1], &err);
	port=80;
	
	sk = tcp_socket(0);
	target.sin_addr = ip;
	target.sin_port = port;
	ret = tcp_connect(sk, &target);
	tcp_write(sk, buf, strlen(buf));
	tcp_free(sk);    

  スイッチのパラメータ渡しが必要なときは「URL?パラメータ」 で行います。今回パラメータaとbを区別して渡す場合
	char	bufa[]="GET /cgi-bin/smtp.cgi?a HTTP/1.1 \r\n Host:192.168.1.40 \r\n Connection: Close \r\n \r\n";
	char	bufb[]="GET /cgi-bin/smtp.cgi?b HTTP/1.1 \r\n Host:192.168.1.40 \r\n Connection: Close \r\n \r\n";
 のようにbufa,bufbを用意して、プログラムの中で切り替えて使用します。

  
MESを使う場合の注意点は
・Vistaではうまくインストールできませんでした。CBarが動きません、gccのパスが通らないようです。仕方なくXPで動作させました。ハイパーターミナルを使うことも考えるとViataでの動作ををあきらめました。
・TFTPサーバーの動作:ウィルスソフト(ウィルスバスター)が入っていると動作しませんでした。ウィルスバスターを停止させての動作です。
・MESの使い方は、やまねこさんのサイトめんどりさんのサイトやその他いろいろを参考にさせていただきました。感謝します。

 

・2008年1月4日(書始め)

3、まとめ、ネットワークLCD表示とメール自動送信通知

これまでの実験を1つにまとめます。上の写真のようになります。

ここまでくると、LCD表示とメール自動送信を1つにまとめたくなりました。LCD表示内容は本ホームページのホームにある管理人宛メッセージを表示します。メッセージを表示すると同時にLEDが点灯しメール受信を知らせます。
メール自動送信のイベント(タイミング)としては、スイッチを4つ用意しました。子供の帰宅(外出)通知用に3つ、父さん母さんを呼び出し用スイッチ1つ、これらのスイッチを入れてもらうと、スイッチの状態がメールで携帯電話に通知されます。

・2008年3月8日(書始め)

4、H8開発環境覚え書き

今回のH8の開発環境、手順をメモっておきます。

Windows XPを使います。Vistaでは動きませんでした。開発環境は先に述べたサイトを参照します。PCのウィルスソフトを外します。

(1)RAMに転送デバック
・TFTP Serverを起動します。tftpのDirectoryは転送したい実行ファイルelfファイルが入っているところを指定します。今回は robo です。
PC画面にはPCのIPアドレスが表示されてます。 ハイパーターミナル画面が立ち上がって、H8モニター状態で次のように入力する。
MES>ifconfig ne0 192.168.1.45 255.255.255.0
MES> tftp robo.elf 192.168.1.2
(robo.elfは実行したいファイル) MES>robo.elf(リターンで実行される)

(2)ROM化
ROMに書き込み後、動作モードにswitchを切り替え電源再投入でプログラムが起動。このときRAMに転送されて実行されているようです。起動までに時間がかかります。

・開発ツールとしてインストールしたDisktoolを使いROMイメージファイルを作ります。
・CPUはH8-306xFを選定。
・System Fileはmes2.motを選定(警告は無視して進める)
・DiskLoadボタンをクリックしシステムファイルのフォルダを指定する。システムフォルダにはconfig.sys,shell.elf(この2つはMESのサイトからダウンロードしたファイル、robo.elf,autoexec.batを含めます)
  autoexec.batは
   ifconfig ne0 192.168.1.45 255.255.255.0
   gateway 192.168.1.1
   robo.elf(改行をすること)
Disktoolを終了させると、システムフォルダを同じ名前で.motファイルが作られます。この.motファイルをFlush writerで書き込んで終了。
ここで、robo.elf,autoexec.batファイルを指定しなければモニター(システム)だけになります。

・Flush writer
H8は書き込みモード(ブートモード)、232Cケーブルで接続。Flush writerを起動してH8の選定、comポート、232Cの速度を設定してひとまずquitする。その後先ほどの.motファイルをFlush writerのアイコン上にドラックドロップすれば書き込み始めます。
(3)Cbar開発統合環境
 コンパイルするファイルを選択(フォーカス)しておくのがよいようです。