はじめに
Step1
使用するマイコン
当たり前ですが、各センサーは制御するコンピューターがなければ稼働しません。さらにあまり大きなコンピューターはお金もかかるし嵩張ります。
なので、マイコンを使用することにします。
おいさんが知っているマイコンは、2つあり、1つは「raspberry pi」で、もう一つは「Arduino」になります。
使用する言語は、前者が「python」で後者が「C言語」になります。
今回は、理由はありませんが前者の「raspberry pi」を使用します。
画像は「raspberry pi Zero WH」という製品の写真になりますが、これを使用します。
また、本体の他にmicroSDカードと電源用のUSB(確か2A以上)も必要になりますので併せて購入する必要があります。
不安な方はスターターキットがありますので、それを購入された方が無難だと思います。
Step2
raspberry piのセットアップ
raspberry piは電源をいれても稼働しません。セットアップが必要になります。
まずは、microSDカードにraspberry pi用のOS?を書き込む必要があります。(microSDカード自体がraspberry piのハードになるので)
OSは、
公式サイト
でダウンロード出来ます。
サイトに移動したら、「ダウンロード」の表示があるのでこれをクリックします。
そうすると、ダウンロードが開始されます。
ダウンロードのフォルダ内に実行ファイルがありますので、これをダブルクリックしてインストールを開始します。
インストールが終わると、さっそく起動させます。画像は起動した画面になります。
このソフトで、microSDカードにOS?を書き込みます。
一番左の「デバイス選択」をクリックします。すると、書き込みたいOSを選択する画面に移ります。
「raspberry pi Zero」を選択します。
次に「osを選択」をクリックします。
今回は、rasberry pi Zero WHなので「Lite」を選択すれば十分だと思います。
Raspberry Pi OS(other)→Liteを選択します。
使用しているパソコンにmicroSDカードを差し込みます。
microSDカードをパソコンが認識したら、ソフトの「ストレージを選択」を押し、認識したmicroSDカードを選択し、次へボタンを押します。
昔は無かったのですが、画面のように確認画面が表示されるようになっているので、「設定を編集する」を押すようです。
設定画面が開きますので、まずは一般の内容を編集していきたいと思います。
編集内容は画像のとおりにしました。ここで、ホスト名はデフォルトのままにしています。ユーザー名とパスワードは自分で決めました。
また、Wi-Fi設定は、自分が使用しているWi-Fiのルータに記載している内容を入力する必要があるようです。
サービスメニューでは、「SSHを有効化する」を選択します。
これで編集は完了なので、保存ボタンを押して保存します。
microSDカードに書き込みを行いますので、「はい」ボタンを押します。
画像は書き込み中の画面になります。これが終了しますと、microSDカードにOSが書き込まれたことになります。
画像は、書き込みが完了したmicroSDカードの中身です。
ん?書き込み時に「設定を編集する」をしているのですが、その内容が反映されていません。
なぜ?
OSを「Lite」にしたからだろうか・・・・
致し方ないので、手動で書き込もうと思います。
boot直下のディレクトリで右クリックをし、「新規作成」→「テキストドキュメント」を選択します。
「ssh」(拡張子はなし)という名前を入力しファイルを作成します。(ファイルの中身は空のままです) これは「ssh接続をします」というサインのようなものらしいです。
次に、テキストエディタ(メモ帳等なんでもいいです)を開き下記のコードを入力します。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="ssid"
psk="pass"
}
ここで、"ssid"部には、wifiのssidを入力し、"pass"部には、wifiの暗号キーを入力します。
boot直下のディレクトリに、「名前を付けて保存」します。
ファイル名は、「wpa_supplicant.conf」とする必要があるようです。
これで、OSの設定は完了になります。
Step2
raspberry piを起動する
まず、自分が使用しているパソコンからraspberry piの画面を見るのに必要なソフトをインストールします。
ソフトは、
TeraTermのサイト
からダウンロード出来ます。
インストールが終了したら、パソコンからmicroSDカードを抜き、raspberry piに差します。
次に、電源のUSBを差します。そうすると、勝手にraspberry piが立ち上がります。
でも現段階ではその状況はみれません。
自分のパソコンに戻って、先ほどインストールした「Tera Term」を開きます。
すると、画像の画面が表示されます。
「ホスト」に「raspberrypi.local」と入力し、OKボタンをクリックします。
なにやら、良くわからない警告が表示されますが、無視して、「続行」ボタンを押します。
SSH認証画面というのが表示されます。ここでユーザ名とパスフレーズを入力する必要があります。
通常は、ユーザ名を「pi」、パスフレーズを「raspberry」とするのですが、何故かここは、OS書き込み時に
設定したユーザー名とパスワードが反映されます。(難しい・・・)
ユーザ名とパスフレーズを入力したら、「OK」ボタンを押します。
ついにraspberry piと接続が開始されます。 画面のような表示がでたら成功です。
Step3
OSの詳細設定
「Tera Term」を介してraspberry piのOSを操作できるようになりましたので、ここからは、OSの詳細設定をしていきます。
まず、raspberry piを最新の状態にする必要があるみたいです。
「Tera Term」で接続された状態で、「sudo apt-get update」と入力しenterキーを押します。
すると、何かが更新されます。
次に、「sudo apt-get upgrade」と入力しenterキーを押します。
途中で、これを実行してよいかY/Nで聞いてきますので、Yを押して下さい。
続いて、「sudo rpi-update」と入力しenterキーを押します。
ここも、途中で、これを実行してよいかY/Nで聞いてきますので、Yを押して下さい。
これで最新バージョンになっているみたいです。
ここからは、使用する言語を設定していきます。
「sudo raspi-config」と入力しenterキーを押します。
画像のような画面が表示されますので、その中の「5」を選択します。
「L1」を選択します。
すると言語を選ぶ画面になります。その中の「ja_JP・・」を探してスペースキーを押してください。
押し終わったらenterキーを押して次に進みます。
確認画面がでますので、再度enterキーを押します。
ここからは、時間設定のため地域設定をします。
また画像のような画面に戻っていると思いますので、再度「5」を選択します。
「L2」を選択します。
「Asia」を選択します。
「Tokyo」を選択します。
また画像のような画面に戻ります。
ここからは、ネット環境?のため地域設定をします。
「L4」を選択します。
「Japan」を選択します。
最後に「Finish」ボタンを押せば終了です。
これで、詳細設定はひととおり終わりになります。
Step4
raspberry piのIPを固定化
良くわからないタイトルですが、ネット環境では各パソコン等にIPアドレスが自動で振り分けられています。
raspberrypiも同様ですが、このIPアドレスは固定しないと変更される恐れがあります。
IPアドレスが変わると、raspberrypiにデータを送る際にその都度IPアドレスを調べる作業が出てきます。
それは面倒なので、ここからはIPアドレスを固定する作業をしていきます。
まず、現在のIPアドレスを調べます。
「Tera Term」を起動し、「ifconfig」と入力します。
すると画像の赤線部分に現在のIPアドレスが表示されます。(見づらいので他の文字は消しています。)
次に、現在使用していないIPアドレスを探します。
探す命令文は「ping」になります。
まずは、今使用しているIPアドレスの場合を見てみます。
画像がその結果の表示になります。なお、「ctrl + C」で止めないと永遠に表示しつづけます。
画像は使用されていない場合の表示になります。今回はこの「192.168.11.13」を使用することにします。
固定IPアドレスの設定の際に、デフォルトゲートウェイとDNSサーバーのIPアドレスも必要になるようです。(何やらわかりませんが・・・)
とりあえず、デフォルトゲートウェイとDNSサーバーのIPアドレスも調べる必要があるようです。
今度は、「route -n」と入力します。
すると、画像に示す内容が表示されます。
その中のゲートウェイのIPアドレスが表示されていますが、それがデフォルトゲートウェイで、今回は「192.168.11.1」 であることが
分かると思います。
また、デフォルトゲートウェイとDNSサーバーは、同じIPアドレスになるようです。
固定IPアドレスの設定は、ラズパイの標準エディタである「nano」で行います。
「sudo nano /etc/dhcpcd.conf」と入力します。
すると、画像ようにエディタが起動します。
ファイルを開いたら、一番下までスクロールし、画像の項目を追加します。
項目を入力したら、「ctrl + O」→「Enter」で保存します。
そして、「ctrl + X」で終了します。
設定を反映させるために再起動します。「sudo reboot」と入力します。これでIPアドレスの固定化が出来たことになります。
Step5
プログラムが書ける環境を構築
ここからは、raspberry piにプログラムが書ける環境を構築する作業をします。
まず、新しいフォルダを作ります。
「mkdir python_apps」と入力しenterキーを押します。
これで、python_appsというファルダが作成されます。
ここに、今後作成したpythonプログラムを保存することにします。
前に少し触れましたが、raspberry piはpython言語で制御可能なマイコンになります。
すなわち、python言語の実行環境が整っているので、その環境を利用して制御することになります。
結局のところ、python言語を書く必要があります。しかしながら、raspberrypiに直接書く環境構築がわからないので、
今回は、自分のパソコンで書いたコードをraspberrypiに転送できるようにしておきます。
SSHファイル転送に対応したソフトとして、オープン・ソース・ソフトウェアの「WinSCP」を使用します。
ソフトは、
WinSCPのサイト
からダウンロード出来ます。
インストール後ソフトを起動します。
そうすると、ログイン画面が立ち上がりますので、そこに、ホスト名(今回はIPアドレス)等を入力し、保存ボタンを押します。
その後ログインボタンを押します。
無視して「はい」を選択します。
画像の左が自分のパソコン、右がraspberrypiになります。
後は、この中でファイルのやりとりをすれば良いことになります。
Step6
その他の設定
「Tera Term」に戻り以下の内容を入力していきます。
もうここからは何をしているかわかりません。
とにかく、「cd python_apps」と入力しenterキーを押し、まず、python_appsのフォルダに移動します。
よくわからないけどインストールします。(多分gitとというコマンドを使えるようにするためだと思います。)
コードは、「sudo apt-get install git」になります。
pythonには2系と呼ばれる物と3系と呼ばれるものがあります。
なので、今回のOSにはどちらのタイプが用意されているか調べて見ます。
「python --version」を入力してenterを押します。
そうすると、「Python 3.9.2」という応答がありました。最初に3の文字があることから今回のpythonは3系であることわかりました。
これもよくわからないけどインストールします
コードは、「sudo apt-get -y install python3-dev」になります。
わからないけどアップデートします。 コードは、「sudo apt-get update」になります。
どうもpipというものをインストールしないといけないようです。 コードは、「sudo apt-get -y install python3-pip」になります。
raspberrypiについているピンのことを「GPIOピン」と呼ぶようです。
このGPIOピンから電流がでる仕組みになっており、それをON OFFすることによってセンサー等を制御したり電流値を読み取ったりするようです。
raspberrypiについているGPIOピンをプログラムで制御するために何やらわからないパッケージをインストールする必要があるようです。
それを先程インストールしたpipというコマンドでインストールします。
コードは、「sudo pip3 install rpi.gpio」になります。
これで今回のすべての作業が完了になります。ありがとうございました。
アクアポニックスは稼働している状況ですが、この状態の監視をしていきたいと思います。
例えば、水温や気温等のセンサーを配置し、そのデータをいつでも見れるようにしたいと思います。
この作業については、以前実践しているので、おさらいも兼ねて構築していきたいと思います。