Jeffrey Cross
Jeffrey Cross

Idea Cerah: Menggunakan Raspberry Pi sebagai Pemasa Lampu

Berikut adalah petikan daripada Bermula dengan Raspberry Pi oleh Matt Richardson dan Shawn Wallace.

Katakan anda akan pergi bercuti panjang awal esok pagi dan anda mahu menangkis pencuri dari rumah anda. Pemasa lampu adalah penghalang yang baik, tetapi kedai-kedai perkakasan ditutup untuk malam dan anda tidak akan mempunyai masa untuk mendapatkan satu sebelum penerbangan anda pada waktu pagi. Walau bagaimanapun, kerana anda seorang penggemar Raspberry Pi, anda mempunyai beberapa bekalan yang terletak di sekitar, iaitu:

  • Papan Raspberry Pi
  • Breadboard
  • Jumper wayar, wanita-lelaki.
  • Penyampaian PowerSwitch Tail II
  • Kawat cangkuk

Dengan bekalan ini, anda boleh membuat timer pemasa anda boleh diprogramkan menggunakan dua alat Linux yang kuat:skrip shell dancron.

Perintah Scripting

Skrip shell adalah fail yang mengandungi satu siri arahan (sama seperti yang anda gunakan untuk mengawal dan membaca pin). Lihat skrip shell di bawah dan penjelasan garis kunci.

#! / bin / bash #

echo Mengeksport pin $ 1. #

echo $ 1> / sys / class / gpio / export #

echo Menetapkan arah ke luar. echo out> / sys / class / gpio / gpio $ 1 / direction #

echo Menetapkan pin tinggi. echo 1> / sys / class / gpio / gpio $ 1 / nilai

Garis ini diperlukan untuk semua skrip shell.

"$ 1" merujuk kepada argumen baris perintah pertama.

Daripada mengeksport nombor pin tertentu, skrip menggunakan hujah baris perintah pertama.

Perhatikan bahawa argumen baris perintah pertama menggantikan nombor pin di sini juga.

Simpan itu sebagai fail teks dipanggilon.sh dan menjadikannya dapat dilaksanakan dengan perintah chmod:

[email protected]: / home / pi # chmod + x on.sh

Catatan

Anda masih perlu melaksanakan arahan tesis sebagai root. Taipkansudo su jika anda mendapat ralat seperti "Kebenaran dinafikan."

Hujah arahan baris adalah cara untuk menyampaikan maklumat ke dalam program atau skrip dengan menaipkannya selepas nama arahan. Apabila anda menulis skrip shell, $ 1 merujuk kepada argumen baris perintah pertama, $ 2 merujuk kepada yang kedua, dan sebagainya. Dalam keson.shanda akan menaip nombor pin yang anda mahu eksport dan aktifkan. Sebaliknyapengekodan keras pin 25 ke dalam skrip shell, ia lebih universal dengan merujuk kepada pin yang telah ditaip pada baris arahan. Untuk mengeksport pin 25 dan menghidupkannya, kini anda boleh menaip:

[email dilindungi]: / home / pi / # ./on.sh 25

Mengeksport pin 25. Menetapkan arah ke luar. Menetapkan pin tinggi.

The "./" sebelum nama fail menunjukkan bahawa anda sedang melaksanakan skrip dalam direktori yang anda masuki.

Sekiranya anda masih mempunyai LED yang disambungkan ke pin 25 dari awal dalam bab ini, ia perlu dihidupkan. Mari buat skrip shell lain dipanggiloff.sh yang akan mematikan LED. Ia akan kelihatan seperti ini:

#! / bin / bash echo Menetapkan pin rendah. echo 0> / sys / class / gpio / gpio $ 1 / nilai echo Unexporting pin $ 1 echo $ 1> / sys / class / gpio / unexport

Sekarang mari kita laksanakan dan jalankan skrip:

[email protected]: / home / pi / temp # chmod + x off.sh [email protected]: / home / pi / temp # ./off.sh 25 Menetapkan pin rendah. Unexporting pin 25

Sekiranya semuanya berjalan, LED mestilah dimatikan.

Menyambungkan Lampu

Sudah tentu, LED kecil yang kecil tidak akan mengeluarkan cahaya yang mencukupi untuk menipu pencuri memikirkan bahawa anda berada di rumah, jadi mari memasang lampu untuk Raspberry Pi.

  1. Keluarkan LED disambungkan ke pin 25.
  2. Sambungkan dua helai wayar hookup ke papan roti, yang menghubungkan ke pin 25 Raspberry Pi dan yang lain ke bas bawah tanah.
  3. Tali wayar yang menghubungkan ke pin 25 harus disambungkan ke terminal "+ dalam" PowerSwitch Tail.
  4. Tali wayar yang menghubungkan ke tanah harus dihubungkan ke terminal "-in" dari PowerSwitch Tail. Bandingkan litar anda kepada Rajah 7, "Menyambung PowerSwitch Tail II ke Raspberry Pi".
  5. Pasangkan PowerSwitch Tail ke dinding dan pasang lampu ke PowerSwitch Tail. Pastikan suis lampu berada dalam kedudukan.
  6. Sekarang apabila anda melaksanakan./on.sh 25, lampu perlu dihidupkan dan jika anda melaksanakan./off.sh 25, lampu harus dimatikan!

Catatan

Di dalam PowerSwitch Tail ada beberapa komponen elektronik yang membantu anda mengawal peranti voltan tinggi seperti lampu atau blender dengan menggunakan isyarat voltan rendah seperti yang berasal dari Raspberry Pi. "Klik" yang anda dengar dari PowerSwitch Tail apabila ia dihidupkan atau dimatikan adalah relay, komponen utama litar di dalamnya. Relay bertindak seperti suis untuk peranti voltan tinggi yang boleh dihidupkan atau dimatikan bergantung sama ada isyarat kawalan voltan rendah dari Raspberry Pi sedang atau tidak aktif.

Rajah 7. Menyambungkan PowerSwitch Tail II kepada Raspberry Pi

Penjadualan Perintah dengan cron

Jadi sekarang anda telah mengemas beberapa perintah berbeza kepada dua perintah mudah yang boleh menghidupkan atau mematikan pin. Dan dengan lampu yang disambungkan ke Raspberry Pi melalui PowerSwitch Tail, anda boleh menghidupkan atau mematikan lampu dengan satu arahan. Sekarang anda boleh gunakancron untuk menjadualkan cahaya untuk menghidupkan dan mematikan pada waktu yang berbeza hari ini.cron adalah penjadual kerja Linux. Dengan itu, anda boleh menetapkan perintah untuk dilaksanakan pada waktu dan tarikh tertentu, atau anda mungkin mempunyai pekerjaan yang dijalankan pada tempoh tertentu (contohnya, sekali sejam). Anda akan menjadualkan dua pekerjaan; salah seorang daripada mereka akan menghidupkan cahaya pada pukul 8:00 malam dan yang lain akan mematikan cahaya pada jam 2:00 pagi.

Catatan

Seperti program lain yang bergantung pada masa, anda perlu memastikan anda telah menetapkan tarikh dan masa yang betul pada Raspberry Pi anda, seperti diterangkan dalam _.

Untuk menambah kerja ini, anda perlu mengedit jadual cron (senarai arahan yang dijalankan oleh Linux pada masa yang ditetapkan):

[email dilindungi]: / home / pi / # crontab -e

Ini akan melancarkan editor teks untuk menukar jadual cron root. Untuk menukar kepada jenis pengguna rootsudo su. Di bahagian atas fail, anda akan melihat beberapa maklumat mengenai cara mengubah suai jadual cron. Gunakan kekunci anak panah anda untuk sampai ke bahagian bawah fail dan tambahkan dua entri ini pada akhir fail.

0 20 * * * /home/pi/on.sh 25 0 2 * * * /home/pi/off.sh 25

Catatan

cron akan mengabaikan sebarang baris yang bermula dengan tanda hash. Sekiranya anda ingin melumpuhkan garis buat sementara tanpa memadam atau menambah komen pada fail itu, letakkan tanda hash di depan garisan.

TaipkanKawalan-X untuk keluar, jenisy untuk menyimpan fail apabila ia meminta anda, dan tekan enter untuk menerima nama fail lalai. Apabila fail disimpan dan anda kembali pada baris arahan, ia harus berkatamemasang crontab baru untuk menunjukkan bahawa perubahan yang telah anda buat akan dilaksanakan olehcron

Lagi Mengenai Cron

Cron akan membolehkan anda menjadualkan pekerjaan untuk tarikh dan masa tertentu atau pada selang waktu. Terdapat lima bidang masa (atau enam jika anda mahu menjadualkan mengikut tahun), masing-masing dipisahkan oleh ruang yang diikuti oleh ruang lain maka perintah untuk dilaksanakan. Asterisks menunjukkan bahawa tugas itu perlu dilaksanakan setiap tempoh. Sebagai contoh:

Jadual 1. Kemasukan Cron untuk Menghidupkan Cahaya pada pukul 8:00 malam Setiap Hari

0 20 * * * /home/pi/on.sh 25
Minit (: 00) Jam (8 malam) Setiap hari Setiap bulan Setiap Hari Minggu laluan ke arahan

Katakan anda hanya mahu lampu menyala setiap hari bekerja. Inilah yang akan kelihatan seperti crontab:

Jadual 2. Kemasukan Cron untuk Menghidupkan Cahaya pada pukul 8:00 malam Setiap Hari Minggu

0 20 * * 1-5 /home/pi/on.sh 25
Minit (: 00) Jam (8 malam) Setiap hari Setiap bulan Isnin hingga Jumaat laluan ke arahan

Katakan anda mempunyai skrip shell yang menyemak jika anda mempunyai mel baru dan e-mel anda jika anda melakukannya. Berikut adalah cara anda mendapatkan skrip itu untuk berjalan setiap lima minit:

Jadual 3. Kemasukan Cron untuk Mengecek Mail Setiap Lima Minit

*/5 * * * * /home/pi/checkMail.sh
Setiap lima minit Setiap jam Setiap hari Setiap bulan Setiap Hari Minggu laluan ke arahan

* / 5 menunjukkan tempoh setiap lima minit.

Seperti yang anda boleh lihat,cron adalah alat yang berkuasa yang boleh digunakan untuk penjadualan pekerjaan untuk tarikh atau masa tertentu dan kerja penjadualan berlaku pada selang tertentu.

Pergi lebih jauh

Halaman Rujukan Raspberry Pi GPIO eLinux
Ini adalah panduan rujukan paling komprehensif untuk pin GPIO Raspberry Pi.
Adafruit: MCP230xx GPIO Expander on Raspberry Pi
Jika anda tidak mempunyai cukup pin untuk bekerja, Adafruit menawarkan panduan ini untuk menggunakan cip MCP23008 untuk 8 pin GPIO tambahan dan MCP23017 untuk 16 PIN GPIO tambahan.

Kongsi

Meninggalkan Komen