日常生活の物理|身近で体験できる科学のブログ

日常に関すること、何でもつぶやきます。物理的な視点を加えることが多いかも。

温湿度計作り (3) : Raspberry Piへのリモート接続

前回記事を書いてから、どうしてここまで更新があいてしまったのか。。
Raspberry Piの開発自体は楽しくて、裏で着々と進め、前回の状態から大分更新されています。ただブログ更新を完全に止めてました。。備忘録も兼ねて、更新内容を順に書きたいと思います。

 

まずリモート接続について、最初は普通にSSHでログインするところから。raspberry piIPアドレスは、wifiの文字の上にカーソルを合わせることで確認できます。IPアドレスに続く「/24」は無視して構わないようで、TCPポートは、raspberry piではデフォルトで「22」になっています。
ポート番号を変更するには、
>> sudo nano /etc/ssh/sshd_config
として、設定ファイルを開き、「# Port 22」とある部分の付近に「Port XXXXX」を追記します。sudo rebootで再起動して、設定を反映します。あとはTeratermを使ってログインできます。
コマンドプロンプトsshログインするなら、
>> ssh [username]@[ip] -p [port]
でログインできます。
参考URL:https://lotti.info/raspi-ssh/

 

…っと、ここまでパスワード認証方式でリモート接続したのですが、SSHで誰でもログインできる状態は不用心すぎやしないかと思い、下記サイトを参考に公開鍵認証方式に変えることにしました。

参考URL:https://monoist.atmarkit.co.jp/mn/articles/1912/11/news022_3.html

 

>>> ssh-keygen -t rsa
として、秘密鍵と公開鍵のキーペアを作成します。保存先のフォルダはデフォルトでよいです。途中で「Enter passphrase (empty for no passphrase):」が表示されるため、ここでは、秘密鍵を解くための新規パスフレーズを入力します。秘密鍵(id_rsa)と公開鍵(id_rsa.pub)の2つのファイルが「/home/newpiuser/.ssh」に作成されます。
Raspbianの初期状態では、公開鍵は「~/.ssh/authorized_keys」に配置変更し、authorized_keysファイルのパーミッションも下記のように設定するとのこと。
>>> cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
>>> chmod 600 ~/.ssh/authorized_keys
さらに、authorized_keysに書き込みしたので、不要となったid_rsa.pubを削除。
>>> rm ~/.ssh/id_rsa.pub
続いて、teratermの「ファイル」→「SSH SCP」を選択して、下段の「From:」へ「.ssh/id_rsa」と入力し、保存先をデスクトップに指定。「Receive」ボタンを押し、秘密鍵(id_rsa)ファイルをPCにダウンロードします。※「From:」には"~/"とか入れなくても".ssh/id_rsa"でOKです。
一度、Tera Termの接続を切断し、再度接続します。この時「RSA/DSA/ECDSA/ED25519鍵を使う」をチェックし、「秘密鍵」ボタンを押して、先ほどダウンロードした秘密鍵(id_rsa)ファイルを指定します。「ユーザー名」を入力し、「パスフレーズ」には先ほどキーペアを作成する時に指定したパスフレーズを入力します。秘密鍵のPASSにはデスクトップ上の「id_rsa」を選択。これで公開鍵認証方式で接続できることを確認します。
最後に、パスワード認証方式でのSSH接続を無効化します。「/etc/ssh/sshd_config」設定ファイルをテキストエディタで編集します。
>>> sudo nano /etc/ssh/sshd_config
ターミナルで設定ファイルの編集を行う「PasswordAuthentication no」を1行追加します。
>> sudo reboot
で再起動すれば、設定は反映されます。teratermでパスワード認証ではログインできないことを確認できればOKです。パスワード認証で、ユーザー名、パスフレーズを入れると、認証に失敗しました、となるはず。

 

ご参考までに、Teratermではなく、コマンドプロンプトから公開鍵認証方式でログインするときには、下記コマンドでログインできます。
>>> ssh -i C:\Users\User\Desktop\id_rsa [user]@[ip] -p [port]
パスフレーズを聞かれるので、入力します。

raspberry pi側のデスクトップを、丸ごとPC側にコピーしたいときは、scpコマンドを使います。開発途中でよく使いましたので、下記します。
>>> scp -i C:\Users\User\Desktop\id_rsa -p [port] -r [user]@[ip]:\home\username\Desktop\ C:\Users\User\Desktop\

 

リモートで開発できるようになると、USBハブやモニターも不要になります。前回までと比較すると、大分スッキリとした開発環境になりました。次回以降、センサデータを外部出力する方法をまとめていきます。

f:id:dailyphysics:20201129225252j:plain

温湿度計作り (2) : Raspberry Piの開発環境

昨日のRaspberry Pi記事の開発環境を、もう少し詳細に書きたいと思います。開発環境は、ざっと以下のような状態です。

f:id:dailyphysics:20200913180046p:plain

 

今回は少し気合を入れて、モニターまで購入しました。全てPCからリモートで実装することもできるのですが、今回触るのが初めてだったことと、長らくマイコンlinux等に触れていなかったので、開発環境を整えたいと思い、モニターまで揃えました。USBハブもあると、キーボードやマウスもすぐに繋げられるので便利です。この他に、HDMIケーブルやアダプターやSDカード等もあり、ゼロから立ち上げるとそれなりに物を揃える必要がありました。

 

上の写真から分かるとおり、周辺機器を全て繋げるとゴチャゴチャします。全てリモート接続にすれば、Raspberry pi+温湿度センサ+アダプター1個だけになるので、大分コンパクトになります。次回の記事で、リモート接続関連について書きたいと思います。

温湿度計作り (1) : Raspberry Pi Zeroを使ったPythonでのセンサデータ出力

家庭で使える実用的なものを、何か1つ作ってみたいな~という思いが以前からあり、温湿度計作りに挑戦してみました。

 

温湿度計とは言っても、センサや制御は購入品です。使った部品は、以下のとおりです。

シングルボードコンピュータRaspberry Pi Zero

・温湿度センサ:DHT22

 

簡単ですが、コードも記載しておきます↓

*****************

import Adafruit_DHT as DHT

SENSOR_TYPE = DHT.DHT22

DHT_GPIO = 22

h,t = DHT.read_retry(SENSOR_TYPE, DHT_GPIO)

print("Temp= {0:0.1f} deg C" . format(t))
print("Humidity= {0:0.1f} %" . format(h))

*****************

 

【出力結果】

Temp= 27.1 deg C
Humidity= 67.8 %

 

自宅の温湿度計を確認したところ、温度27.3℃、湿度69%だったので、概ね正しく計測できていそうですね。

Raspberry Piを使い始めたのはつい最近なのですが、センサの動作テストが本当に簡単で、あっという間にデータ出力まで辿り着けました。今後はパソコン等と通信してデータ出力させていきたいと思います。温湿度計作りはまた記事にしたいと思います。

マッチ箱

先日、妻が外食した際に、なぜか粗品でマッチ箱を貰ってきました。

 

f:id:dailyphysics:20200912161634j:plain

粗品のマッチ箱

え、なんで??と言ったのですが、妻も理由は分からないとか。

最近マッチって全然使わなくなったので、用途が思いつかないです。

 

粗品という割には、結構な本数が入っているし。。

そのうち理科の実験でも始めようかな。。

「東大生が教えるビジュアル数学」の復活

以前の記事で話していたサイトを再開しました。

相互リンク先が古いページもありましたが、一通り更新できたかと思います。

visualmath.php.xdomain.jp

PC内に残っていたデータをアップロードしたので、ひょっとすると、いくつかのページは消えているのかも。。もし指摘があれば更新したいと思います。せっかくなので、こちらの数学ページも、久々に追加していきたいですね。

家電さがし

今日は妻と新宿まで家電選びに来ました。

 

コロナの影響で、新宿に来るのは半年ぶりぐらいだったのですが、、、見渡すと街の人が少ない・・・!第二波も収まりつつありますし、人混みを想像していたのですが、アルタ前に群がっている人もいなくて驚きでした。午前中に到着したので、夜は人も多いのかな。

 

ヨドバシとヤマダの店内も、コロナ禍前と比較すると、どことなく少ない感じでした。今回の目的は、PCとハンドブレンダーです。PCは今のパソコンが7年前くらいに購入したSONYのPCなのですが、バッテリーの充電がすぐに切れるのと、Skypeで私のPCだけ画質が悪く、映像が切れたりといった感じだったので、重い腰を上げて動き始めました。

 

ネットである程度の目星をつけていたのですが、いざ店頭で見比べると悩みますね。。Surfaceが並んでいる光景にはどうしても惹かれてしまう。。結局、今回はセール等もなさそうなので、一旦帰ってからゆっくり考えることにしました。(大きな買い物は、大体いつも持ち帰ってしまいます…笑)

 

ハンドブレンダーは妻が以前から考えてくれていたので、店頭でもすんなり決まりました。今回購入したのはBraunのハンドブレンダー。店頭の説明員の方が、自宅で使っているブレンダーのノウハウだとかを色々と教えてくれたりして、非常に有難かったです。ブレンダーの刃の掃除が面倒そうだなぁと思っていたのですが、一回ぬるま湯につけて、回転させてから洗うと良いとか。試してみようと思います。

風の絵

身内ネタなのですが、私が人生で初めて描いた絵(3歳くらい)は、こんな感じだったらしいです↓

         f:id:dailyphysics:20200829174711p:plain

・・・これはなにか、と当時の母親が尋ねたところ、笑顔で次のように答えたそうです。

 

「かぜ!」

 

と。

 

抽象画ですね。初めて画用紙とクレヨンを手にしたときに、チョイスした題材が、なぜか目に見えないものを描こうとしたようです。出来栄えに自信があったようで、沢山描いて、家の壁に貼りまくったそうです。最近、家族で集う機会があり、久々にいじられたので、ブログネタにしてみました。

 

ただの過去エピソードなのですが、ところで風の絵って何でクルッとした線を描くのでしょうね。前回に引き続き、流体の話になるのですが、こうした流れの軌跡を示す線は、流線と言います。

 

流体の流れは大きく分けて、層流と乱流と言われる2種類があります。層流とは流線が層状に規則正しく並んだ綺麗な流れのことで、乱流とはその名のとおり、乱れた複雑な流れです。絵をみると分かりやすいです↓

      f:id:dailyphysics:20200829180423p:plain

                        https://www.cradle.co.jp/media/column/a293

蛇口の水の勢いが強くなると、層流から乱流になります。空気も流体ですので、空気にも層流、乱流があります↓

                     層流と乱流

       http://taisaku.birukaze.com/article/16180166.html

たばこや線香の煙は室内では綺麗な筋を作ります(= 層流)が、屋外の煙突の煙や、手持ち花火の煙など、複雑な動きになりますよね (= 乱流)。直感的にもわかると思いますが、風が強く、流れが速いほど、乱流と呼ばれる動きになります。

 

ここまで見て頂いてわかるとおり、乱流になるか否かは、流体の速さに依存するんですね。実はもう1つ依存するパラメータがあって、粘性にも依存することが知られています。こうした流体の特性から、層流になるか、乱流になるかの基準にRe(レイノルズ数)と呼ばれる物理パラメータがあり、次のような式で表せます。

 

(式) Re = 流速 / 粘性

   (= ρvl/μ:  ρは流体密度, vは代表流速, lは代表長さ, μは粘性係数)

 

明確な基準はないのですが、Reが2000程度を超える流れを乱流といいます。これまでにお見せした乱流の例では、流速が速く、上式の分子(流速)が速いために、Reが大きくなっていた、ということですね。

 

最初にお見せした風の絵でクルッとした線を描いていたのは、「空気の流れが速く、乱流であるから」ってことになります。もし↓のような絵だったとすると、層流になるので間違いです。・・・改めて考察してみると、正しい絵を描けてたってことになりますね。。

         f:id:dailyphysics:20200829184008p:plain