Oracle Express Edition の基本的な使い方

コンテナデータベースは利用しないので正直使い方がぴんときません。
勉強のためにインストール直後からDOSでOracle Express Edition(Oracle XE)を利用するための基本的なコマンドのまとめになります。

参照:Oracle Express EditionをWindows10にインストール


1.プラガブルデータベース(XEPDB1)への接続切替

ひとまず管理者(SYS)で入ってプラガブルデータベース(XEPDB1)のセッションに変更します。

管理者ログイン:sqlplus sys/{インストーラで入力したパスワード}@XE as sysdba
※接続文字列「XE」はインストール時に作成されます。
※パスワード忘れた場合、OS認証を利用して「sqlplus / as sysdba」でも入れます。

セッション変更コマンド:alter session set container = XEPDB1;



2.XEPDB1でユーザーの作成

ここでのユーザーの作成は最低限のユーザーIDとパスワードのみとします。(表領域の指定などは省略)
勉強用として権限は制限なしでの利用を前提として DBA, resource, connect 権限を付与しておきます。

ユーザー作成コマンド:create user {作成するユーザーID} identified by {作成するユーザーIDで使用するパスワード}

権限付与するコマンド:grant {付与する権限名} to {権限付与されるユーザーID};



3.XEPDB1のユーザーでログイン

IPv4アドレスとホスト名でのログインを説明します。
IPアドレスは、「ipconfig」コマンドで表示される「IPv4アドレス」の値です。
ホスト名は、「hostname」コマンドで表示される値です。

IPv4アドレスでログインします。

ログインコマンド:sqlplus {ユーザーID}/{パスワード}@{IPアドレス}:{ポート番号}/{プラガブルDB名}
※インストールの説明でも記載していますが「localhost」は使用すると「リスナーがありません」とエラーになります。


ホスト名でログインします。
ログイン後のとおりテーブル作成やレコードの追加など利用可能になります。

ログインコマンド:sqlplus {ユーザーID}/{パスワード}@//{ホスト名}:{ポート番号}/{プラガブルDB名}


Oracle Express EditionをWindows10にインストール

Oracle(オラクル)無償版 Express Editionの18cをWindows10にインストールする手順をまとめます。

※インストーラをダウンロードするにはオラクルのアカウントを作成(無料)する必要があります。
※64bit OSが対象です。
※ネットワークがDHCPを利用する場合、インストール後にIPアドレスが変更されるとリスナーが機能しなくなります。
IP固定またはDHCPに対応した作業が必要になります。


プラガブルデータベースへの接続までの基本的な使い方は以下を参照してください。
参照:Oracle Express Edition の基本的な使い方

DHCP環境で勉強用として利用したいときは以下を参考にしてください。
参照:Oacle Express Edition 18c でIPアドレス変更(DHCP)に対応させる


1.Express Editionの制限

Oracleのサイトに記載される制限の内容は以下の通りです。

・CPUは2コアまで自動的に制限
・論理環境(VM、コンテナ、物理ホスト)ごとに1つのインストールのみに制限
・ユーザー・データの最大量は、12GBまで利用可能
・RAMの最大量は、2GBまでに制限

「出典元」Oracle Database XE インストレーション・ガイドfor Microsoft Windows 4 ライセンス制限


2.インストーラのダウンロード

Oracleのサイトよりインストーラをダウンロードします。
ダウンロードするには「Oracle Database 18c Express Edition for Windows x64 Download」のリンクをクリックします。

「出典元」Oracle Database Express Edition (XE) Release 18.4.0.0.0 (18c)


オラクルのアカウントを入力して「サインイン」をクリックするとインストーラがダウンロードされます。


3.インストール

ダウンロードしたZIPを解凍して「setup.exe」を実行します。
「次へ」ボタンをクリックします。

「次へ」ボタンをクリックします。

「次へ」ボタンをクリックします。

DBの管理者アカウント(SYS、SYSTEM、PDBADMIN)のパスワード(任意の値でOK、忘れずメモしてください。)を入力します。
「次へ」ボタンをクリックします。

「インストール」ボタンをクリックしてインストールします。

「アクセスを許可する」ボタンをクリックします。

「完了」ボタンをクリックします。
これでインストールは完了です。
注意! 自動的に作成されるリスナー名「LISTENER」は1521ポートでリスニングしていますが外部アドレスでリスニングしているために localhost(127.0.0.1)は利用できません。使用すると「リスナーがありません」とエラーになります。このせいでちょっとハマりました・・・つまり下図の記載は間違いです。

MySQLをWindows10にインストール

いろいろ説明があるのにハマりますね・・・私だけかもしれませんが・・・
MySQL(Version 8.0.19)インストーラのダウンロードからインストールまでの手順をハマらないように備忘録をとります。

確認を含め最初に使用することになるコマンドは以下を参考にしてください。

参照:MySQLの基本的なコマンドの使い方


1.インストーラのダウンロード

インストーラのダウンロードのときによく見るとx86-32bitとあるのに64bitが見当たらない・・・探しても見つからない・・・
実は、32bitだけしか記載してないのに64bitも入っています!!!
ここでは、mysql-installer-community-8.0.19.0.msi をダウンロードしますので「Download」ボタンをクリックします。

「出典元」Oracle MySQL Community Downloads

ログインしなくても「No thanks, just start my download.」のリンクからダウンロードできます。


2.インストール

ここでは、Developper Default でセットアップします。
「Next」ボタンをクリックします。

先に「Execute」ボタンをクリックします。
※「Next」ボタンを先に押すと先にで意味不明なエラーが発生します。
 「Execute」ボタンはインストールする依存関係で必要なものを先にダウンロードしてインストールするようです。

「ライセンス条項および使用条件に同意する」にチェックをつけて有効になった「インストール」ボタンを押します。

「I have read and accept the lisence terms.」にチェックをつけて有効になった「Install」ボタンを押します。

「Finish」ボタンを押します。

「Next」ボタンを押します。

プロダクトの条件を満たしてないものがある???と意味不明なメッセージが表示されます。
気にせずインストールをつづけるか?と聞かれてるので「Yes」ボタンを押します。
※インストールオプションでOfficeやVisual Studioなどが入っていないといけないプロダクトが含まれているからかと思いました。
 カスタムで調整したのに必ず表示されます・・・同様の手順で行ってる人もおり問題ないと判断しています。

「Execute」ボタンを押します。

全てのプロダクトのインストールが完了すると「Next」ボタンを押します。

「Next」ボタンを押します。

ここでは「Standalone MySQL Server / Classic MySQL Replication」を選択します。
「Next」ボタンを押します。

ネットワークの構成はこのままでいきます。
「Next」ボタンを押します。

ここでは「Use Strong Password Encryption for Authentication(RECOMMENDED)」を選択します。
「Next」ボタンを押します。

rootアカウントのパスワードを「MySQL Root Password」と「Request Password」に入力します。
「Next」ボタンを押します。

このままの設定で利用します。
「Next」ボタンを押します。

「Execute」ボタンを押します。

「Finish」ボタンを押します。

「Next」ボタンを押します。

「Finish」ボタンを押します。

「Next」ボタンを押します。

Passwordにrootアカウントのパスワードを入力します。
「Check」ボタンを押します。

「Next」ボタンを押します。

「Execute」ボタンを押します。

「Finish」ボタンを押します。

「Next」ボタンを押します。

セットアップ終了後に起動させたくないのでチェックは全て外しておきます。
「Finish」ボタンを押します。


3.MySQLにパスを通す

mysqlコマンドを実行したらないといわれました!
コマンドへのパスを通してくれないみたいなので設定します。
コントロールパネルにある「システムの詳細設定」をクリックします。

詳細設定タブの下の方にある「環境変数」ボタンをクリックします。

ユーザー環境変数にある「編集」ボタンをクリックします。

これがMySQLインストール直後の状態です。
「新規」ボタンをクリックしてmysqlコマンドのあるパス「C:\Program Files\MySQL\MySQL Server 8.0\bin\」を入力します。
「OK」ボタンをクリックします。
※OSを再起動してください。

これでmysqlコマンドが使えるようになりました。

アレクサと赤外線学習リモコン(Nature remo mini)連携で音声操作

音声操作で赤外線リモコンが使えたら家中の様々な電気器を制御しやすいですよね。
アレクサ(Amazon Alexa) のスキルで Nature Remo mini(赤外線学習リモコン)と連携させて定型アクションにて音声操作をします。

※IRKitでの赤外線送信もIFTTT連携は可能なようですがIFTTTだけでなく連携するアプリも含めサービスが使えなくなるリスクが高く感じたので使用するのをやめました。
 個人的な感想ですが有償製品のサービスなら簡単に無くならないようなので Nature Remo mini のスキルを利用することにしました。

ここでは、アレクサに「ただいま」と言うとアレクサが「おかえりなさい」と話した後にテレビをONにする音声操作を例にします。

※この手順を実施する前に、Nature remo mini をセットアップする必要があります。
参照:アレクサ対応 Nature remo mini 赤外線学習リモコンのセットアップ


1.アレクサの Nature Remo Smart Home Skill セットアップ

ここではセットアップによりアレクサと Nature Remo Smart Home Skill をリンクします。
アレクサの「スキル・ゲーム」メニューを選択して表示される画面右上の虫眼鏡アイコンを選択します。

Nature Remo Smart Home Skill を選択して「有効にして使用する」ボタンを押すと認証を求められます。
ここではGoogleのアカウントで認証します。
※ここでの認証は、Nature remo mini のセットアップが完了していないとエラー(ただエラーとしか表示しないのではまります。)になります。
「Sign in with Google」ボタンを選択します。

認証でGoogleのパスワードを入力するとログインボタンが表示するので押します。
続いて「許可」ボタンを選択するとアレクサと Nature Remo Smart Home Skill のリンクが完了します。


2.アレクサと Nature Remo mini を連携

「デバイスの追加」を選択します。

ここでは「テレビ」を選択します。
「デバイスを検出」ボタンを押すことで Nature Remo アプリに登録されている家電(赤外線学習リモコンに学習させたデータ)が検出されます。

検出されると画面に表示されます。
ここではデバイスグループへの追加はせずにスキップして早々に登録を完了させます。

検出したデバイスの内容を表示して確認します。


3.定型アクションで音声操作を定義

定義した定型アクションは音声で操作可能になります。
定型アクション名の横にある「+」を押して定型アクション名を入力します。

続いて実行条件の開始フレーズを指定します。

開始フレーズ(アレクサに話す言葉)には「ただいま」を指定します。
アクションを追加には、アレクサに「おかえりなさい」と返事してもらうように作成していきます。
※最初から作成すると並び順が実行とは逆順に追加されます。
※実行する順番は簡単に変更できます。

「おかえりなさい」を指定します。

次のアクションはテレビをONするように指定します。
スマートホームから Nature remo mini の赤外線学習リモコンを操作するよう指定します。

操作するデバイスのテレビと電源を指定します。

実行する順番は上からになるのでドラッグ(移動したいものを押したままスライド)して調整します。

デバイスはアクションを実行するアレクサを指定します。
(複数台ある場合、対象を指定する必要があります。)
指定したあとに「保存」を選択します。

メッセージは数秒で消えて右画面に遷移します。
作成した定型アクション名が表示されます。
再生ボタンを押すと定型アクションが実行されるので確認できます。
これでアレクサに話かけると定型アクションが実行されるようになります。

アレクサ対応 Nature remo mini 赤外線学習リモコンのセットアップ

IRKit後継機器のようでより便利になっていますね。
Amazon Alexa ともスキルで連携できる点が気に入りました。

「出典元」Nature スマートリモコン Nature Remo mini Remo-2W1

参考:IRKit(学習リモコン)の基本的な使い方

インストールはAndoridのアプリ「Natrue Remo」をダウンロードして Nature remo mini へ接続してセットアップします。


1.アカウントの登録

アカウント登録に使用するメールアドレスを「メール」に入力して「Remoをセットアップする」を選択します。


2.WiFiへの接続

Natrue remo mini を設置する場所から利用するWiFiを設定します。
Natrue remo mini が WiFiとしてのアクセスポイント(SSID:Remo-XXXXX)を持っているので先に接続します。

検出したアクセスポイントから Natrue remo mini のアクセスポイントを選択してパスワード「natureremo」を入力して接続します。
接続が完了するとNature remo mini から接続する WiFi のアクセスポイントを指定します。
SSIDとパスワードを入力して「次へ」ボタンを選択します。

Nature remo mini が使用するWiFiWへ接続できたら Nature remo mini の名前を入力して「保存」ボタンを選択します。


3.リモコンの学習

Natrue remo アプリを開いて画面右上の「+」を選択します。
画面下に表示される「新しい家電を追加する」を選択します。
新しい家電の種類を指定します。(ここではテレビを選択します。)

学習させたいリモコンの信号を Nature remo mini の機器に向けて送信します。
機種まで認識されると名前が表示されます。
検出された機器の名前を入力して「保存」ボタンを選択します。

追加した家電を選択して表示される画面を左にスライド(空きスペースがないので2ページ目に追加するため)します。
画面右上の「+」を選択します。

学習させたいリモコンの信号を Nature remo mini の機器に向けて送信します。
ボタンの名前を入力して「保存」ボタンを選択します。

Android Studioから実機へインストールしてデバッグ

PCのAndroid Studioから実機(スマホやタブレッド機器)にUSBで接続してインストール後にデバッグ実行します。

以下のサンプルプログラムで説明します。

サンプルプログラムの説明
 参照:IRKit赤外線送信サンプルアプリ(Android)

Android Studio の環境構築について
 参照:Andorid Studio インストール(Windows)(Android)
 参照:Android Studio で仮想デバイス(エミュレーター)の利用手順(Android)
  (仮想デバイスの追加以外の手順が必要です。)


1.実機のUSBデバック設定とPCへの接続

実機の設定で「開発者向けオプション」を選択します。
※USBデバッグの設定を有効にする方法はAndroid のバージョンによって設定方法が異なります。
 説明に使用した機器は、Android 7.1.1です。

「開発者向けオプション」をONにします。
つづいて「USB」デバッグをONにします。


2.実機とPCの接続

実機(Androidアプリをインストールしてデバッグ実行)とPC(Android Studio)をUSBケーブルで接続します。
※注意!USBケーブルはデータ転送用を使用します。充電用は使用できません。
接続後、メッセージが表示されるので実機のロックを解除して「OK」を選択します。

このメッセージも表示されますが、「はい」でも「キャンセル」でも動作に支障ありません。
また、メッセージの表示順は順不同です。


3.インストールとデバッグ実行

Android Studio に接続した実機のデバイス名が表示されるので選択します。
「ツール」の「デバッグ」メニューをクリックします。

実機に実行したアプリが表示されます。

これで実機にアプリがインストールされた状態になります。
USBケーブルを外してもアプリを終了してもアプリは実行可能で利用できます。

Android Studio で仮想デバイス(エミュレーター)の利用手順

Android Studioをインストールしてもエミュレーターでプログラムの動作を確認するまでいくつか必要な作業があります。
プログラムのプロジェクトを実行して動作を確認するのが目的なのでソースを読み込ませるところから説明します。

以下のサンプルプログラムで説明します。



参照:IRKit赤外線送信サンプルアプリ(Android)


1.プログラムのプロジェクトを開く

プログラムのプロジェクトを開くまでの手順になります。
Android Studio を起動して「既存の Android Studio プロジェクトを開く」をクリックします。

ソースを解凍したフォルダの「My Application5」プロジェクト(Android Studioアイコンのファイル)を選択して「OK」ボタンをクリックします。


2.パッケージの更新

プロジェクトを開いてしばらくすると画面右下に表示される「更新」リンクをクリックします。

「更新」ボタンをクリックします。


3.SDKのセットアップ

画面左にある「プロジェクト」タブをクリックします。
ツリーにあるソースファイルを開くと「モジュールSDKが定義されていません」と表示されるので「SDKのセットアップ」リンクをクリックします。

リストを選択して「OK」ボタンをクリックします。


4.仮想デバイスの追加

「ツール」の「AVDマネージャー」メニューをクリックします。

「仮想デバイスの作成」ボタンをクリックします。

このみのデバイスでよいのですがとりあえず選択して「次へ」ボタンをクリックします。

下イメージの選択されているシステム・イメージの「Download」リンクをクリックします。

とりあえず推奨の2GBを選択しています。
メモリを多く搭載している場合は多めに選択すると性能的によくなります。
「次へ」ボタンをクリックします。

インストールが終わったら「完了」ボタンをクリックします。

使用条件の次に進んだらコンポーネント・インストーラーでインストールしますが1GB以上ダウンロードするので結構時間がかかります。
終了したら「完了」ボタンをクリックします。

ようやく選択したシステム・イメージが利用可能になりますので「次へ」ボタンをクリックします。

「完了」ボタンをクリックします。

仮想デバイスの一覧に作成したデバイスが表示されますので画面を閉じます。

これで「ツール」の「デバック」メニューをクリックしてプログラムを実行することができます。

Andorid Studio インストール(Windows)

WindowsでAndorid Studio 3.6.1 をインストールする手順をまとめまています。
インストーラのウィザードを対して数が多いのでまとめておくことにしました。

システム要件(この条件を満たせない環境では利用できません。)
・Windows 8/10(64-bit)
・最低限4 GB システム メモリ8 GB 以上推奨
・2GB ハードディスク空き容量(最低限)、4GB推奨
・1280 x 800 以上の画面解像度
※CPU Core i5(Cereron対象外)以上、SSDでないと遅くて使えません。


1.英語版インストーラダウンロード

インストーラをダウンロードサイトより取得します。

「出典元」Google Developers Android Studio


2.英語版インストール

android-studio-ide-192.6241897-windows.exe を実行して「Next」ボタンをクリックします。
※ダウンロードしたファイル名は、2020年3月16日時点です。

「Next」ボタンをクリックします。

ディスク構成に合わせてインストールする場所を合わせます。
不要であればそのままでよいです。
「Next」ボタンをクリックします。

「Install」ボタンをクリックします。

インストール完了したら「Next」ボタンをクリックします。

「Finish」をクリックします。

まだ終わらずこの画面が表示されます。
新規インストールの説明なので「Do Not Import Settings」を選択して「OK」ボタンをクリックします。

お約束の匿名で利用情報の収集に協力してくれというメッセージですね。
任意のボタンをクリックします。

 送る  :「Send usage statistcs to Google」をクリックします。
 送らない:「Don't send」をクリックします。

ここからは初期設定となります。
「Next」ボタンをクリックします。

「Standard」を選択して「Next」ボタンをクリックします。

好みのデザインを選択して「Next」ボタンをクリックします。

「Finish」ボタンをクリックします。

設定の適用が完了すると「Finish」ボタンをクリックします。

これで初期設定完了になりメニューが英語で起動します。
このあと日本語化するので画面を閉じます。


3.日本語化プログラム(プラグイン)のダウンロード

インストーラをダウンロードサイトより取得します。

「出典元」MergeDoc Project


4.日本語化プログラム(プラグイン)適用

setup.exeを実行「選択」ボタンをクリックして「studio64.exe」の場所を指定します。
 場所:C:\Program Files\Android\Android Studio\bin\studio64.exe

「日本語化する」ボタンをクリックします。

適用完了し「終了」ボタンをクリックします。

英語でなく日本語の表示にかわります。

IRKit赤外線送信サンプルアプリ(Android)自己証明書などへの応用

HTTPSでの暗号化通信に使用するサーバー証明書は開発時に自己証明書などで検証したりします。
また、ローカルネットワークではわざわざHTTPSを使わずHTTPで利用したりします。
せっかくなので作成したサンプルアプリを利用して説明します。



サンプルソースの使い方や説明は以下を参考にしてください。

 参照:IRKit赤外線送信サンプルアプリ(Android)
 参考:Andorid Studio インストール(Windows)


1.HTTPSで自己証明書を利用したWEBサーバーへのアクセス

MyAsync.java の 50~52行のコードが自前で証明書確認を行うための処理になります。
※このコードは毎回実行する必要はなく1度実行すればOKです。(すみません、書く場所まちがえました。)
※HTTP通信を行うのに「HttpsURLConnection」ではなく「HttpURLConnection」を使用します。

どこにでもあるお約束のコードですが NonAuth.java で証明書の確認処理をオーバーライドでにぎりつぶしています。


2.HTTPでWEBサーバーへのアクセス

MyAsync.java の 50~52行のコードが不要になるので削除します。


例外は発生しなくなるので 84~89行のコードを削除します。

IRKit赤外線送信サンプルアプリ(Android)

アンドロイド用のIRKit赤外線送信アプリのサンプルを作成しました。
IRKit赤外線送信信号をアンドロイドアプリからIRKitサーバーへ送信する単純なプログラムになります。

アプリの利用イメージ

アプリの画面




サンプルプログラムは、Android Studio 3.6.1で作成して Android 7.1.1 のエミュレーターと実機で動作確認しています。

他に参考になりそうな内容を記載します。

 参考:IRKit赤外線送信サンプルアプリ(Android)自己証明書などへの応用
 参考:Andorid Studio インストール(Windows)


1.サンプルプログラムの使い方

プログラムの実行には環境以外で以下の用意が必要です。
MainActivity.javaソースコードの行37~39の箇所を書き換えます。

・トークンで取得したクライアントキー
・トークンで取得したデバイスID
・IRKitに送信する信号(ダブルコーテーションはエスケープします。)

書き換える内容の説明は以下のページに記載しています。

参照:IRKit(学習リモコン)コマンド送信(API利用した屋外からのアクセス)

 

(1)ソースコード修正

クライアントキー、デバイスID、送信信号をソースに記述します。

 

(2)ソースコード実行

Android Studio の「実行」の「デバッグ」メニューをクリックします。

エミュレーターでアプリが起動されて送信ボタンが利用可能になります。

 

2.サンプルプログラムの説明

サンプルプログラムの特徴を処理の流れにそって説明します。

(1)権限

インターネットのアクセス権限を AndroidManifest.xml の 5行目で付与してます。
権限:<uses-permission android:name="android.permission.INTERNET" />

(2)デザイン

画面のデザインは、送信ボタンと処理結果を表示するラベルと単純な構成です。


項目の情報は以下の通りです。

コントロール ID text
TextView @+id/label1 Hello World!
Button @+id/button1 送信

(3)コード

MainActivity.java では送信ボタン押した時には、「リクエスト実行中...」とラベルに表示します。
その後、バッググランドの別スレッドでリクエストを実行して送信完了となり結果を表示します。

MyAsync.java ではバックグランドスレッドでリクエストを実行して処理終了後に結果をラベルに表示します。

以下の通りHTTPSリクエストでPOSTしておりお約束なコードとなっています。

屋内のアドレスのIRKitへ直接送る場合は、HttpsURLConnectionではなくHttpURLConnectionを使用します。