2022年9月25日日曜日

数年前作成したグループウエアをGCEでためしてみた。

 古いシステムを動かしてみた。けっこう大変だった。

・JavaのバージョンをJava8にしないとだめだった。Tomcat9は使えたが。

・Mysqlの仕様変更があり、SSH上では、rootが作成できず、適当なユーザー名を作って、それに権限を与えることでなんとか動かせた。

やはり、一筋縄ではいなかようだが、時間かければなんとかなるということ。

gce インスタンスでTeraterm使えず

鍵生成をいろいろな方法で試してみたり(ユーザー名、鍵の形式、GCEの権限内容等々) 

いろいろ試行錯誤してだめだった。困っていたところ、

こちらの情報によると、インスタンス内のOSがSSHに厳しくなっているのが原因らしい。サイトの情報をもとに設定したら、使えるようになった。

2022年9月24日土曜日

GCEでWinSCPを使う

 GCEのインスタンスにファイルを転送するためWinSCPを使えるようにしてみた。秘密鍵、公開鍵の扱いに不慣れなので、いろいろ勉強になった。

はまったところ:
・秘密鍵を作成したときに、ローカルPCでのユーザー名がファイルの中に情報として入ってしまうようで、WinSCPでリモートにアクセスする際のユーザー名は、リモートのユーザー名ではなく、あくまでローカルPCでのユーザー名にしないとだめだった。基本的なことのようだが、今まで知らないでいた。
・WinPCは、直接秘密鍵が利用できず、.ppkなる拡張子のファイルに変換する必要があった。
・ポートは、セキュリティ上のこともあり外部からのアクセスでは標準の22を使わないことにした。インスタンスの中のsshサーバの設定には、
 port 22
 port 任意のポート番号(/etc/ssh/sshd_config)
のように2つ並べて置き、リモートからは22以外のほうを使うことにした。ルータとインスタンスのファイアーウオールの設定もそれにあわせて追加する必要がある。

いろいろなサイトを参考にさせていただいた。

・Dos Promptからもsshコマンドを使って手軽に確認もできるようだ。(秘密鍵生成などもできたり)
 ssh サーバアドレス(ホスト.ドメイン名もok) -i 秘密鍵ファイル名 -p 任意のポート番号

いろいろと手間はかかるようです。

2022年9月23日金曜日

GCEのインスタンスをつくってみた

 Herokuクラウドの無料枠もなくなったので、まだ無料枠が残っているGCEを使ってみた。

インスタンスの使い方がわからず、とまどったが、ネット上の情報に助けられる。まず、プロジェクトを作成する必要がある。ここで、適当に北米など選んでしまい、あとで、東京もあることに気づき、やり直すことに。ドメインは、すでに持っていたものを使い、DNSの設定なども必要に、TXT,Aレコードなどを追加していった。これに、今後はさらに、SSL化のために、証明書の発行なども必要になってきたり、Tomcatを使う予定なので、ポートの変換など、いろいろ手間がかかりそうだ。

 プロジェクトのあとは、インスタンスを作成、これがDockerのような仮想サーバなのだろう。OSや、CPUも選べるし、柔軟なカスタマイズができそう。そのぶん、設定項目が多くなってしまうが。

 つぎに、ターミナルがブラウザで表示なるので、てっきりここで、インスタンスの中を覗けるものだとだと勘違いしていた。何度か、SSHやApacheの設定を挑戦しても、外からアクセスできなかったので、おかしいなと、ルータのパケットフィルターやら、サーバのファイアーウオールやら、Apacheのポート変更やら、試行錯誤繰り返した。それでもうまくいかない。

 それもそのはず、インスタンスは、すぐ下のターミナルで操作するのでなく、「SSL」という小さなボタンをクリックすることで、それぞれのインスタンスの中をSSLで覗くことになるのだった。これに気づくまで、だいぶ時間がかかってしまう。ようやく、外からHTTPにアクセスできるようになる。

2022年9月22日木曜日

タッチセンサー+Arduino Uno+Dfplayer  シリアル通信で動かしみた


タッチセンサ 音楽プレーヤを作ってみました。

使い方:
①Mp3ファイルの準備
01~05のフォルダにそれぞれ、001.mp3~003.mp3の曲を入れておく
98のフォルダには、001.mp3に「音を小さくしました」、002.mp3に「音を大きくしました」という音声をいれておく。
99のフォルダには、001.mp3に「1番目のフォルダに切り替えました」のような音声を入れておく。これを5番まで作成。
②ボタンを押すと、フォルダが切り替わる。タッチセンサ3つに、3曲割り当てられる。
タッチセンサを押さないと、フォルダ切り替えはできないようにしてある。
③ボタンを押しながら、左側のタッチセンサに触ると、音量を下げられる。右側のタッチセンサに触ると、音量を上げられる。

arduinoのスケッチ

#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
//void printDetail(uint8_t type, int value);
  const int SENSOR4 = 4;
  const int SENSOR5 = 5;
  const int SENSOR6 = 6;
  const int DIN_PIN = 7;
  int foldernumber=1;
  bool cflg=false;
void setup()
{  
  pinMode( DIN_PIN, INPUT_PULLUP );
  pinMode(SENSOR4, INPUT);
    pinMode(SENSOR5, INPUT);
      pinMode(SENSOR6, INPUT);
  delay(1000);
  mySoftwareSerial.begin(9600);
   if (!myDFPlayer.begin(mySoftwareSerial)) { 
    while(true);
 }
  myDFPlayer.setTimeOut(500); 
  myDFPlayer.volume(15); 
  myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
   myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
}

void loop()
{
  if (digitalRead(SENSOR4)==HIGH) {
   myDFPlayer.playFolder(foldernumber,1 );  
    cflg=false;
  } 
  if (digitalRead(SENSOR5)==HIGH) {
   myDFPlayer.playFolder(foldernumber,2 );  
    cflg=false;
  } 
  if (digitalRead(SENSOR6)==HIGH) {
   myDFPlayer.playFolder(foldernumber,3 );  
    cflg=false;
  } 
   delay(1);

  if(digitalRead(DIN_PIN)==LOW ){
   if (digitalRead(SENSOR4)==HIGH) {  
      myDFPlayer.volumeUp(); 
      myDFPlayer.playFolder(98,2 );  //ageru saisei
      cflg=false;
   }else if(digitalRead(SENSOR6)==HIGH){
      myDFPlayer.volumeDown(); //Volume down
      myDFPlayer.playFolder(98,1 );  //sageru saisei 
      cflg=false;
   }else if(!cflg){        
     foldernumber=rand() % 5 + 1;
     myDFPlayer.playFolder(99,foldernumber ); //foldernumber onsei saisei
     cflg=true;
   }
  }

}

2022年9月21日水曜日

Dfplayerをarudunoのserial通信で制御

 Arduino Unoだと、上手く制御できそうなことは、わかったが、実際の組み上げにはいくつか、注意が必要だった。IOTの慣例?みたいなものがあるかも。知っている人にとってはどうということないことなのかもしれないが。

・電源は、Unoを経由せず、5v電源に繋がないと、安定しなかった。

・USB経由のserial通信は、pcと繋がないなら不要なので、コードから削除した。

・Delay関数で、dfplayerとの、通信は、立ち上げ後、1secしてから、開始させてみた。

・Net上のライブラリを使ったが、フォルダとmp3ファイルどちらも、0を先頭につけ桁数を揃える必要がある。(フォルダ、ファイル指定して再生する場合)

シリアルだと、2つのボタン押しに機能を持たせたり、カスタマイズの幅が広がり、なかなかいい。

Win11で慣れるまで少し時間がかかったこと

 Win11になり、よく使うメニューが変更になりとまどう。
 ファイル名の変更がわからず、「その他のオプション表示」から探していたが、よく考えたら、けっこう使用頻度が高いはずなんだけど面倒だなと不思議に思っていた。調べてみたら、コピペ同様、小さなアイコンで操作するといいということがわかった。他にも、F2キーを使う等の方法もあるようだ。
 ほかに、慣れる必要あるものとして
・コントロールパネルの出し方は、スタートボタンから検索Boxにconなどと入力すると出てくる。このへんは、Linuxっぽくなってきた感じがする。
・スタートボタンは、左クリックのメニューもよく使う。コンピュータの管理、ディスクの管理。結局、Winxpや7のときから使っていたようなものの場所が、win10,win11と変わるたびに変更されていくので、そのたびに、メニューをさがすのに時間がかかるようになってしまい、非効率。なんらかの法則的なものがあるとか、メニューの新たな探し方を追加で入れてもらうにはいいのだけど、変更は、やはりきつい。できれば、あまり変えないでほしいというのが、素直な感想。
・Linuxなども、ネットワークの設定コマンドがバージョンにより変わってきたりもするが、基本的なCUIコマンドが変わることはほとんどない。CUIも覚えるのは大変だが、いったん覚えれば、いつまでも使えるので、WinとLinuxそれぞれ一長一短があるといったところか。

 技術というのは、できれば、古い形式にも対応できるようにしながら、新しいものを追加していければ理想なのだろうけど。
 地デジへの移行の際も、いきなり古いアナログTVは使えませんではなくて、古いTVでも対応できる新しい電波形式にするとか(アナログからデジタルに一気に変更でなく、アナログにデジタルを追加したようなものを考えるとか)してもらえば、利用者に優しいものになったのだろうけど。。。
 たしか、FM放送は最初モノラル電波で、途中からステレオ電波になったはずです。そのとき、古いモノラルのラジオでも、ステレオの電波をモノラルで受信できるような形式に工夫されていたはず。。