横井?
11月9日 raspberry piの初期設定
2017年後期専門ゼミにて配布したraspberry piは「4.SSHの設定」まで終わってます。
- 必要なもの
・USBキーボード(任意)
・USBマウス(任意)
・新品またはフォーマット済のmicroSDカード8GB以上(必須)
・HDMIケーブル(任意)
・LCDモニタ(HDMI入力があるもの)(任意)
・ACアダプタ(必須)
・PC(必須)
・Raspberry pi 3 Model B(必須)
・LANケーブル(任意)
- Raspbianのダウンロード
・下記のリンクからOS(RASBIAN)をダウンロード
・OS(RASPBIAN)の配布元
・Raspbian Stretch with desktopの欄にあるDownload ZIPをクリックするとダウンロードが始まる。
・ダウンロード後解凍すると、Raspbianのディスクイメージファイルが入手できる。
- RaspbianをmicroSDに焼く
・今回は、DD for Windows を使う。下記のリンクから最新バージョンを選んでダウンロード&解凍
・DD for Windows の配布元
・DL&解凍後、DDWin.exeを右クリックより管理者権限で起動。
・ディスクの選択 → OSを焼くSDカードを選択。
・ファイルの選択 → OSイメージを選択(ファイルの種類をddi→ALL Filesに)
・<<書き込み<< をクリック
・しばらく待つと完了
- SSHの設定(他のパソコンから操作しないのであれば不要であるが、ディスプレイ無いなら必須)
・SDカードを開いて一番上の階層にsshという名前のファイルを作るだけ。(メモ帳などをリネームして拡張子を削る)
ここまでやって、raspberry piにmicroSDをいれると、起動できるようになる。
- 各種設定変更
・ターミナルで下記のコマンドを入力すると設定画面が開く
・sudo raspi-config
・Piユーザーのパスワードの変更
・・Chagen User Password より行う
・タイムゾーン&Wifiの設定
・・Localisation Options → Change Timezone からタイムゾーンの変更をする Asia → Tokyo
・・Localisation Options → Change Wi-fi Country から Wifiを使う国の選択 Japan
・SDカードの拡張
・・Advanced Options → Expand Filesystem
・・大容量のSDカードを使用しても、初期設定のままでは先頭の 2GB 程度のみの利用しかできなくなっているため、 Expand Filesystemを使い容量を拡張する。
・上記の設定を終えたらFinishを押し再起動する。
- Wifi接続方法
- ターミナルで下記のコマンドを入力する。SSIDとPASSPHRASEはそれぞれの環境に合わせて変更して実行する。
- sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'
- お節介でパスワードが生で記述されているので下記のコマンドを入力して削除する。
- vi /etc/wpa_supplicant/wpa_supplicant.conf
- 再起動後 ip addr コマンド等で無線LANのIPを確認する
IPを確認することでTera Term等を用いて、他のパソコンからSSH接続することができる。
- パッケージ情報を最新にする
- ターミナルで下記のコマンドを入力
- 次に、下記のコマンドを入力
- 続行しますか?[Y/n] と表示されます。「Y」を入力し、しばらく待ちましょう。
- その後下記のコマンドを入力し再起動
- ほかにノートパソコンにダウンロードしたもの
- 参考サイト
11月16日 温湿度センサ
- 下記にraspberry piと温湿度センサDHT11の接続方法を載せる。
- raspberry piのターミナルにて下記のコマンドを入力するとgithubからデータをダウンロードできるようになる。
- 次に、プログラムを入れたいフォルダに移動して、下記のコマンドを入力するとDHT11を動作させるプログラムを入手できる。
- 最後に、プログラムの入っているフォルダに移動して、ターミナルから下記のコマンドを入力する。
- sudo python dht11_example.py
- 下の画像のように温度と湿度の値が表示されれば完成。
- 参考サイト
11月30日 KY-038 KY-039
12月6日 Tera termから得られるデータを用いてPCから何かを制御(PC側はC++を使用)
- Tera termの使い方
・Tera termのダウンロード方法については、下記のサイトを参考にしてほしい。
・【ゼロからわかる】Teratermのインストールと使い方
・ダウンロードしたTera termを起動すると、下記のような画面が表示される。
・上の画像の、ホスト(T):の所にraspberry piのIPアドレスを入力し、OKをクリックする。
・すると、下記のような画面が表示されるので続行をクリックする。
・次に、下記のような画面が表示されるので、raspberry piのユーザー名とパスワードを入力する。
・初期設定であれば、ユーザー名はpi、パスワードはraspberryである。
・その後、OKをクリックするとraspberry piとSSH接続できる。
- Tera term マクロの作成と使用
・先ほど、ログイン方法を説明したばかりだが、自動でログインしてraspberry piのログをテキストファイルに書き込むマクロを作成する。
・まず下記のコードを入力した拡張子が.ttlのファイルを作る。
;接続先ホスト
HOSTADDR = '133.55.174.76'
;ユーザ名
USERNAME = 'pi'
;パスワード設定
PASSWORD = 'raspberry'
;接続コマンド作成
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
;接続
connect COMMAND
;================================================
;ログファイル保存
wait '$'
logopen "C:\raspberry\Project1\Debug\command.txt" 0 1
sendln ""
wait '$'
sendln "cd DHT11_Python"
wait '$'
sendln "python dht11_example.py"
wait '$'
logclose
;================================================
;マクロ終了
end
・133.55.174.76は、自分のraspberry piのIPアドレスに変える。
・piは、ユーザー名を変えたならそのユーザー名にする。
・raspberryは、パスワードを変えたならそのパスワードにする。
・C:\raspberry\Project1\Debug\command.txtの部分はログの保存場所なので、自分の保存したいところに変更する。
・cd DHT11_Pythonの部分は、raspberry pi内のdht11_example.pyが入っているフォルダに変更する。
・その後、Tera termを起動し上のコントロールをクリックしマクロをクリックする。
・すると、ファイルを選択する画面になるのでttlファイルを選択する。
・今回は、先程作成したttlファイルを選択する。
・すると、マクロが起動し、PC上に温湿度が取得できる。上のコードの場合は、command.txtにログが入力される。
- C++を用いて入力されたログの最終行を読み取る方法
・あまり理解していないがC++の下記のコードで読み取ることができる。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <windows.h>
#define STR_MAX 256
int main(void)
{
FILE *fp;
int str_max = STR_MAX;
char buf[STR_MAX];
int step, kk, n_line;
while (1) {
Sleep(3000);
fp = fopen("command.txt", "r");
if (fp == NULL) {
printf("can't open file\n");
return -1; /*abort();*/
}
n_line = 0;
while (fgets(buf, str_max, fp) != NULL) {
n_line++;
} //行数のカウント
fclose(fp);
fp = fopen("command.txt", "r");
for (kk = 0; kk < n_line - 1; kk++)//上からn_line-1行は読み飛ばす
{
fgets(buf, str_max, fp);
}
fscanf(fp, "%d\n", &step);
//printf("%d\n", step);
fclose(fp);
if (step >= 25) {
}
}
}
・このコードは、raspberry pi内のdht11_example.pyを温度の数字のみを表示するように変更すると使える。
・if文の中に、何か制御を入れると温度が25℃以上の時に実行される。