「さて、再び、気象ステーション」? そうでもない





提案された気象ステーションは、PDP-11エミュレーターを備えたラズベリーと、アクティブなLEDとスイッチを備えたフロントパネルを備えたケースで構成される、 自家製のPIDP11コンピューターに基づいています。 しかし、それにもかかわらず、「ラズベリー」には、圧力および温度センサーも接続するのに十分な空きGPIOがあります。



エミュレータはOS 2.11BSDを実行します。このステーションでは、気象ステーションソフトウェアが「回転」しています。 データは2つの端末エミュレーターに出力されます。 それらの1つ-cool-retro-term-は、ASCIIアートを使用してテキスト情報を大きな活字で表示します。 2つ目-ストレージチューブを備えたTektronix 4010グラフィックターミナルエミュレーター-圧力と温度の曲線を表示します。



BME280センサーの接続方法は次のとおりです



 |  | GPIO    | | Raspberry Pi  | | ------------+--------------+-------------- VCC | 3,3  | P1-01 GND |  | P1-06 SCL | SCL  I2C | P1-05 SDA | SDA  I2C | P1-03
      
      





下の写真に示されているOLEDディスプレイはセンサーと並列に接続されていますが、I 2 Cバス上の異なるアドレスが割り当てられています。 希望する場合は、ディスプレイをまったくインストールできません。 著者はまた、電源を切る前にOSを正しくシャットダウンするためのボタンを設定しました。







デバイスを動作させるには、まず、次のように2.11BSDエミュレーターで実行中のユーザーに新しいユーザーを追加する必要があります。



rootユーザーとしてログインします。 vipwコマンドを入力して、ファイル/ etc / passwdを使用してviエディターを開始します



ファイルに次の行を追加します。



 firstname::201:20:fullname:/home/firstname:/bin/tcsh
      
      





ここで、firstnameとfullnameは、短いユーザー名と完全なユーザー名です。



エディターを終了し、ユーザーのホームフォルダーを作成します。



 cd /home mkdir firstname chown firstname firstname
      
      





.loginファイルと.cshrcファイルをこのフォルダーにコピーします '



  cd /home/user cp .* /home/firstname cd /home/firstname chown firstname .*
      
      





vi .loginと入力し、対応する行を次のように変更してコマンドラインプロンプトを編集します。



 set prompt='%n@%m:%c$ '
      
      





エディターを終了します。 logoutコマンドでログアウトし、ルートの下のpasswdコマンドで新しいユーザーのパスワードを変更します。これで、新しいユーザーのユーザー名とパスワードを使用してログインできます。



その後、システムの日付と時刻をブート時に自動的に設定する必要があります(以下の情報については、著者はJason VanickとJohnny Billquistに感謝します)。



最初にネットワークを構成し、pingが機能していることを確認します。 次に、/ etc / rc.localファイルのntpt行の直前に、次の行を追加します。



 ntp -sf pool.ntp.org
      
      





/etc/ntp.confファイルの最後の行を次のように変更します。



 server pool.ntp.org
      
      





他のNTPサーバーを選択できます。 タイムゾーンを設定するには、ファイル/ usr / share / zoneinfo内のゾーンのリストを確認し、そこにあるゾーンの名前を見つけます。 rootユーザーとしてログインし、コマンドを入力します。



 cd /etc mv localtime localtime.old ln -s /usr/share/zoneinfo/timezone localtime
      
      





次の操作では、実際の「malink」で実行されているRaspbianコマンドラインをエミュレータで実行されている2.11BSDコマンドラインに転送できるようにするプログラムをインストールして構成します。



ルートの下のRaspbianで、次のコマンドを入力します。



 sudo apt-get install rsh-server
      
      





次の内容を含む.rhostsファイルをホームフォルダーに作成します。



 bsd_ip_address bsd_user_name
      
      





bsd_ip_addressは2.11 BSDを使用する仮想マシンのIPアドレスであり、bsd_user_nameは実際の「ラズベリー」でコマンドを実行できる2.11 BSDのユーザーの名前です。次に例を示します。



 192.168.1.99 rene
      
      





このファイルのアクセス許可を設定します。そうしないと、何も機能しません。



 chmod 600 .rhosts
      
      





エミュレータに移動し、rootユーザーとして2.11 BSDを入力し、/ etc / hostsを編集します-行を追加します:



 remote_ip_address remote_full_name remote_nick_name
      
      





ここで、remote_ip_addressは実際のラズベリーのIPアドレスであり、remote_full_nameとremote_nick_nameはそのドメイン名とエイリアスです。次に例を示します。



 192.168.1.103 pizerow.home.lan pizerow
      
      





以前に設定した名前(bsd_user_name)を使用してログインし、すべてが機能するかどうかを確認します。



 rsh remote_nick_name -l pi -n “ls”
      
      





実際のmalinkでエミュレータからlsコマンドを実行しました。 代わりに、パスワード入力フォームがあなたの前に現れた場合、それは何かがうまくいかなかったことを意味します。



もっと複雑なものを試してください。 次のコマンドを入力します。



 rsh remote_nick_name -l pi -n “cat /sys/class/thermal/thermal_zone0/temp”
      
      





このリポジトリのrtestフォルダーには、popenを使用して特定のプログラムから情報を取得し、2.11BSDで人間が読み取れる出力を取得するように処理する方法を示す小さなCプログラムがあります。



 rene@pdp11:rtest$ rtest **************************************************** * The CPU temperature on the pizerow is 42.2 deg C * **************************************************** rene@pdp11:rtest$
      
      





エミュレータで、このエミュレータが「回転」している実際のプロセッサの温度を確認しました。



このリポジトリのweather / sensorフォルダーからPythonスクリプトをダウンロードします。



スクリプトがリモートpizerowで正しく動作することを確認し、/ home / pi / binフォルダーに配置します



cool-retro-termとエミュレーターを実行し、作成したユーザーとして2.11BSDを入力し、コマンドを入力します。



 mkdir weather cd weather
      
      





何らかの方法(たとえば、FileZillaを使用)で、リポジトリのweather / BSDフォルダーからエミュレーターで実行されているOSのweatherフォルダーにファイルをドラッグアンドドロップします。 weatherコマンドを入力すると、プログラムはセンサーからデータを抽出し、次の形式で表示します。



  rene@pdp11:weather$ weather Contacting remote sensor... Data received, analyzing ... ************************************** The sensor reports the following data: Temperature 7.0 C Pressure 969.8 hPa Humidity 66.8 % ************************************** rene@pdp11:weather$
      
      





すべてが機能したら、weather2がログを保存できる〜/ weatherフォルダーにdatsフォルダーを作成します。



 cd cd weather mkdir data weather2
      
      





Weather2私は毎日、日付に対応する名前のファイルで〜/ weather / dataフォルダーに作成し、毎分データを含む行を追加し始めました。 また、端末では次のメッセージが継続的に表示され、画面も1分に1回更新されます。







さて、weather3も同じように機能し、より多くの時間とプレッシャーのみを表示します。 cursesライブラリを使用してカーソルを移動します。







同様に前日の気温と気圧の値を表示し、これらのデータに基づいて天気予報を取得するスクリプトを作成してください。 頑張って!



付録1 -cool-retro-termのインストールと構成



付録2 -Tektronix 4010グラフィックターミナルエミュレータのインストールと構成



All Articles