"Yah, sekali lagi, stasiun cuaca"? Tidak juga



Stasiun cuaca yang diusulkan didasarkan pada komputer PIDP11 buatan sendiri , yang terdiri dari raspberry dengan emulator PDP-11 dan casing dengan panel depan dengan LED dan sakelar aktif. Tetapi meskipun demikian, "raspberry" memiliki cukup GPIO kosong untuk menghubungkan juga sensor tekanan dan suhu.

Emulator menjalankan OS 2.11BSD, di mana perangkat lunak stasiun cuaca "berputar". Data adalah output ke dua terminal emulator. Salah satunya - cool-retro-term - menampilkan informasi teks dalam cetakan besar menggunakan seni ASCII. Yang kedua - emulator terminal grafis Tektronix 4010 dengan tabung penyimpanan - menampilkan kurva tekanan dan suhu.

Metode untuk menghubungkan sensor BME280 dijelaskan di sini :

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

Tampilan OLED yang ditunjukkan pada foto di bawah ini terhubung secara paralel dengan sensor, tetapi ditugaskan alamat yang berbeda pada bus I 2 C. Jika mau, Anda tidak perlu memasang layar sama sekali. Penulis juga mengatur tombol untuk mematikan OS dengan benar sebelum mematikan daya.



Untuk membuat perangkat berfungsi, pertama-tama Anda perlu menambahkan pengguna baru ke pengguna yang berjalan di emulator 2.11BSD seperti ini :

Masuk sebagai pengguna root. Masukkan perintah vipw untuk memulai editor vi dengan file / etc / passwd

Masukkan baris dalam file:

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

di mana nama depan dan nama lengkap adalah nama pengguna pendek dan lengkap.

Keluar dari editor, buat folder rumah pengguna:

 cd /home mkdir firstname chown firstname firstname 

Salin file .login dan .cshrc ke folder ini '

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

Ketik vi .login dan edit prompt baris perintah dengan mengubah baris yang sesuai ke:

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

Keluar dari editor. Logout dengan perintah logout, ubah kata sandi untuk pengguna baru dengan perintah passwd di bawah root, sekarang Anda dapat login menggunakan nama pengguna dan kata sandi pengguna baru.

Setelah ini, perlu untuk membuat tanggal dan waktu dalam sistem diatur secara otomatis saat boot, jadi (untuk informasi di bawah ini, penulis berterima kasih kepada Jason Vanick dan Johnny Billquist):

Pertama-tama konfigurasikan jaringan dan pastikan ping berfungsi. Kemudian, tepat sebelum baris ntpt di file /etc/rc.local, masukkan baris:

 ntp -sf pool.ntp.org 

Ubah baris terakhir dalam file /etc/ntp.conf ke:

 server pool.ntp.org 

Anda dapat memilih server NTP lainnya. Untuk mengatur zona waktu, periksa daftar zona di file / usr / share / zoneinfo dan temukan nama zona Anda di sana. Masuk sebagai pengguna root dan masukkan perintah:

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

Operasi selanjutnya adalah menginstal dan mengkonfigurasi program yang akan memungkinkan Anda untuk meneruskan baris perintah Raspbian yang berjalan di "malink" nyata ke baris perintah 2.11BSD yang berjalan di emulator, seperti ini :

Dalam Raspbian di bawah root, masukkan perintah:

 sudo apt-get install rsh-server 

Buat file .rhosts di folder beranda dengan konten berikut:

 bsd_ip_address bsd_user_name 

di mana bsd_ip_address adalah alamat IP mesin virtual dengan 2.11 BSD, dan bsd_user_name adalah nama pengguna di 2.11 BSD yang dapat menjalankan perintah pada "malink" nyata, misalnya:

 192.168.1.99 rene 

Tetapkan izin untuk file ini, jika tidak, tidak ada yang akan berfungsi:

 chmod 600 .rhosts 

Pergi ke emulator, masukkan 2.11 BSD sebagai pengguna root dan edit / etc / hosts - tambahkan baris:

 remote_ip_address remote_full_name remote_nick_name 

di mana remote_ip_address adalah alamat IP dari "raspberry" yang asli, dan remote_full_name dan remote_nick_name adalah nama domain dan aliasnya, misalnya:

 192.168.1.103 pizerow.home.lan pizerow 

Masuk menggunakan nama yang ditetapkan sebelumnya (bsd_user_name) dan periksa apakah semuanya bekerja:

 rsh remote_nick_name -l pi -n β€œls” 

Anda baru saja menjalankan perintah ls dari emulator di real malink. Jika, sebaliknya, formulir entri kata sandi muncul di depan Anda, itu berarti ada yang salah.

Sekarang coba sesuatu yang lebih rumit. Masukkan perintah:

 rsh remote_nick_name -l pi -n β€œcat /sys/class/thermal/thermal_zone0/temp” 

Di folder rtest repositori ini ada program C kecil yang menunjukkan cara menggunakan popen untuk mendapatkan informasi dari program tertentu dan memprosesnya sedemikian rupa untuk mendapatkan output yang dapat dibaca manusia di 2.11BSD:

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

Anda baru saja melihat di emulator suhu prosesor sebenarnya di mana emulator ini "berputar".

Unduh skrip Python dari folder weather / sensor repositori ini.

Pastikan skrip berfungsi dengan benar di pizerow jarak jauh dan letakkan di folder / home / pi / bin

Jalankan cool-retro-term dan emulator, masukkan 2.11BSD sebagai pengguna yang baru saja Anda buat dan masukkan perintah:

 mkdir weather cd weather 

Dalam satu atau lain cara (misalnya, menggunakan FileZilla) seret dan letakkan file dari folder weather / BSD dari repositori ke folder weather dari OS yang berjalan di emulator. Masukkan perintah cuaca, dan program akan mengekstrak data dari sensor dan menampilkannya dalam formulir ini:

  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$ 

Jika semuanya berfungsi, buat folder dats di folder ~ / weather, di mana weather2 dapat menyimpan log:

 cd cd weather mkdir data weather2 

Setiap hari, weather2 mulai membuat di folder ~ / weather / data dengan file dengan nama yang sesuai dengan tanggal, dan setiap menit menambahkan baris dengan data ke dalamnya. Dan di terminal itu akan terus menampilkan yang berikut, memperbarui layar juga satu menit sekali:



Nah, weather3 bekerja dengan cara yang sama, hanya menampilkan lebih banyak waktu dan tekanan. Ini menggunakan perpustakaan kutukan untuk memindahkan kursor.



Coba juga untuk menampilkan nilai suhu dan tekanan di hari-hari sebelumnya dengan cara yang sama, serta menulis skrip untuk mendapatkan ramalan cuaca berdasarkan data ini. Semoga beruntung

Lampiran 1 - instal dan konfigurasikan istilah keren-retro

Lampiran 2 - instalasi dan konfigurasi emulator terminal grafis Tektronix 4010

Source: https://habr.com/ru/post/id446370/


All Articles