Raspberry Pi membuat platform kompak yang bagus untuk memasang lampu indikator untuk semua jenis proyek — pemberitahuan cuaca, email baru, dll. Baca terus selagi kami tunjukkan cara menghubungkan modul LED ke Pi Anda dan mengatur beberapa pemberitahuan dasar .
Mengapa Saya Ingin Melakukan Ini?
Karena itu menyenangkan. Tidak seperti banyak tutorial kami di mana kami menyertakan sedikit uraian di bagian atas yang menguraikan dengan tepat manfaat apa yang akan Anda peroleh dari proyek ini, uraian singkat dalam hal ini cukup singkat karena manfaatnya hanyalah bersenang-senang.
Raspberry Pi adalah perangkat yang sempurna untuk bermain-main, bereksperimen dengan elektronik, dan mempelajari beberapa pemrograman. Tak seorangpun kebutuhan indikator hujan ambien di dapur mereka, misalnya, tetapi membangun satu adalah latihan yang menyenangkan dan pengingat yang bagus untuk membawa payung Anda pada hari-hari yang berpotensi badai.
Apa yang Saya Butuhkan?
Untuk mengikuti tutorial ini, Anda memerlukan beberapa hal. Pertama, kami berasumsi bahwa Anda telah mengikuti tutorial kami sebelumnya: Panduan HTG untuk Memulai Raspberry Pi (dan dengan demikian memiliki dasar-dasar yang ditutupi untuk menginstal Raspbian di Raspberry Pi kami).
Jika Anda ingin melakukan proyek ini dengan anggaran terbatas, kami yakin dapat memberi tahu Anda bahwa model terbaru Raspberry Pi sangat berlebihan untuk pekerjaan itu dan kami akan mendorong Anda untuk meniup debu dari Raspberry Pi lama yang telah Anda dorong. di lemari atau mengambil yang bekas murah dari eBay atau sejenisnya. Anggaran bijaksana, Raspberry Pi 1 Model A atau Model B yang tersangkut di eBay seharga $ 10-15 sangat cocok untuk proyek ini daripada membeli baru $ 35 Pi generasi saat ini.
Selain memiliki unit Pi fungsional dengan Raspbian yang diinstal di dalamnya, Anda memerlukan hal-hal berikut:
- 1 Modul LedBorg (~ $ 5,00 dengan pengiriman $ 4 dari Inggris ke AS, bekerja dengan semua model Raspberry Pi).
- 1 Clear Raspberry Pi Case kompatibel dengan model Pi khusus Anda seperti kasus Raspberry Pi 1 Model B. .
catatan: Casing Pi bening / buram sepenuhnya opsional tetapi jika Anda saat ini menggunakan kasing buram, indikator LED Anda akan disembunyikan di dalamnya. Anda perlu membuat lubang di casing untuk membiarkan cahaya keluar atau menggunakan kabel ekstensi GPIO dengan perlengkapan breakout — seperti yang ini dari Adafruit Industries —Untuk menambatkan LedBorg ke Raspberry Pi Anda. Meskipun menggunakan kabel breakout menambahkan sekitar $ 8 untuk biaya proyek, ia menawarkan lebih banyak potensi untuk menyesuaikan produk akhir karena Anda dapat lebih mudah menempatkan LED di dalam benda atau di bawah sesuatu yang ingin Anda nyalakan.
Menginstal LedBorg
Meskipun Anda pasti dapat membuat sendiri indikator LED yang benar-benar dari awal (dan permintaan mesin pencari akan memunculkan banyak orang yang telah melakukannya) organisasi Piborg memproduksi modul LED yang ringkas dan murah, LedBorg, yang tidak dapat kami lakukan. t menolak menggunakannya sebagai dasar untuk proyek indikator LED Raspberry Pi kami.
Memasang modul sangat mudah karena dirancang agar pas langsung di atas pin GPIO di Pi. Pertama, matikan Pi Anda dan buka casing.
Bagian terpenting dari proses instalasi adalah Anda mengarahkan modul sehingga ikon LedBorg paling dekat dengan modul RCA pada papan Raspberry Pi (dan dengan demikian tepi LedBorg rata dengan tepi papan Pi dengan tepi yang menjorok bagian dari LedBorg yang menggantung di atas papan Pi dan bukan di tepi). Lihat foto di atas.
Meskipun Anda membuka papan Pi, sekarang adalah waktu yang tepat untuk menutupi indikator LED on-board (di sebelah port USB), terutama jika Anda menggunakan casing bening. Anda tentu tidak ingin bingung membaca indikator LedBorg Anda karena lampu indikator daya dan jaringan sangat terang.
Kami menutupi milik kami dengan selapis pita listrik putih. Ini cukup meredupkan mereka sehingga kami masih dapat mereferensikannya tetapi mereka jauh lebih redup daripada LedBorg sehingga tidak lagi mengganggu.
Setelah Anda memasang LedBorg dan, secara opsional, menutupi indikator LED Pi dengan pita listrik, sekarang saatnya untuk menutup casing kembali. Boot Pi Anda sebelum melanjutkan ke fase tutorial selanjutnya.
Menginstal Perangkat Lunak LedBorg
PiBorg menyediakan paket perangkat lunak yang bagus untuk LedBorg yang menyertakan kontroler GUI serta driver untuk mengakses LedBorg dari baris perintah.
Sebelum kita mulai, Anda perlu memastikan bahwa Anda mendapatkan paket yang tepat untuk versi Rasbian Anda dan # revisi papan Raspberry Pi Anda.
Jika papan Raspberry Pi Anda tidak memiliki lubang pemasangan, itu adalah Revisi 1. Jika Raspberry Pi Anda memiliki lubang pemasangan (terletak di dekat port USB dan di antara daya dan port HDMI) maka itu adalah Revisi 2. Anda juga perlu mengetahui versi kernel dari instalasi Rasbian Anda. Buka terminal dan masukkan perintah berikut untuk memeriksa:
uname -r
Setelah Anda memiliki nomor Revisi dan nomor kernel, Anda bisa kunjungi bagian Paket di sini untuk mengambil tautan paket Anda. Dalam kasus kami, kami menggunakan papan Revisi 1 dengan kernel 3.6.11 sehingga kami akan mengambil file raspbian-2013-02-09-rev1.zip.
Untuk menginstal semua barang yang kita butuhkan untuk membuka terminal di Pi. dan kemudian masukkan perintah berikut untuk menginstal paket LedBorg.
catatan: Anda harus mengganti URL pada perintah ketiga dengan URL paket untuk kombinasi papan / kernel Anda.
mkdir ~ / ledborg-setup
cd ~ / ledborg-setup
wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
buka zip setup.zip
chmod + x install.sh
./install.sh
Pada titik ini Anda sekarang memiliki pembungkus GUI untuk driver LedBorg dan driver itu sendiri telah diinstal. Di desktop Raspbian Anda, Anda akan melihat ikon untuk pembungkus GUI:
Silakan dan klik ikon LedBorg untuk meluncurkan pembungkus GUI. Anda akan disuguhi antarmuka pemilih warna seperti ini:
Sekarang adalah waktu yang tepat untuk memastikan modul Anda berfungsi. Pilih warna apa saja, kecuali hitam, untuk mencobanya. Kami akan mengujinya dengan memilih beberapa warna:
Kelihatan bagus! Cerah dan plastik buram dari casing yang kami pesan untuk proyek menawarkan difusi sedang. Jika Anda ingin lebih banyak bermain dengan modul LED sebelum melanjutkan, klik Mode Demo:
Dalam mode demo, Anda dapat menggilir semua warna dengan berbagai kecepatan, memeriksa output tinggi / rendah, dan jika tidak, letakkan modul LED melalui langkah.
Di sini, di bagian Mode Demo, Anda juga dapat mengubah LedBorg menjadi yang pertama dari banyak indikator. Dengan memilih CPU di bagian Warna, LED akan mulai berubah dari hijau menjadi kuning menjadi merah untuk menunjukkan beban pada prosesor ARM Raspberry Pi. Kami menyarankan untuk mengubah Kecepatan ke Lambat saat Anda melakukannya — Pembaruan cepat pada LED terlalu cepat dan membuat indikator CPU mengganggu alih-alih berguna.
Selain menggunakan antarmuka GUI untuk memilih warna, Anda dapat memilih warna dari terminal menggunakan nilai RGB. Buka terminal dan masukkan perintah berikut untuk mematikan LED:
echo "000"> / dev / ledborg
Cara LedBorg menangani nilai RGB adalah 0 berarti saluran mati, 1 berarti saluran setengah daya, dan 2 berarti saluran daya penuh. Jadi misalnya 001 akan mengatur saluran Merah pada 0%, saluran Hijau pada 0% dan saluran Biru pada daya 50%.
Ubah nilainya menjadi 002 dan output LED tetap biru tetapi menjadi lebih terang karena saluran Biru sekarang berada pada output 100%. Ubah nilainya menjadi 202 dan Merah dan Biru dengan kekuatan penuh digabungkan untuk membuat warna magenta.
Sekarang kita tahu cara memanipulasi LED secara manual, mari kita lihat menggunakan skrip untuk mengubah LED kita dari lampu sederhana menjadi indikator sebenarnya.
Mengonfigurasi LedBorg Anda sebagai Indikator Hujan
Untuk bagian tutorial ini, kita akan menyisir beberapa hal bersama-sama untuk mengubah modul LED LedBorg menjadi indikator hujan berdasarkan ramalan cuaca di lokasi kita. Kami akan menggunakan skrip Python untuk memanggil API cuaca yang pada gilirannya akan membaca kemungkinan hujan untuk hari itu, dan kemudian mengalihkan LED dari mati menjadi biru cerah untuk menunjukkan perkiraan hujan.
Pertama, kita perlu mendapatkan kunci akses API untuk Weather Underground. Untuk penggunaan pribadi dan proyek pengembangan kecil, API ini gratis. Kunjungi halaman pendaftaran API Cuaca di sini dan mendaftar kunci API.
Setelah Anda memiliki kunci API, kunjungi Weather Underground dan cari kota yang ingin Anda pantau. Dalam kasus kami, kami akan memantau San Fransisco, CA. URL untuk halaman prakiraan San Fransisco adalah:
http://www.wunderground.com/US/CA/San_Francisco.html
Bagian penting untuk tujuan kita adalah bagian terakhir dari URL: /CA/San_Francisco.html. Kami akan menggunakannya untuk mengedit URL perkiraan untuk alat API. URL dasarnya adalah:
http://api.wunderground.com/api/YOUR API KEY / forecast / q / STATE / CITY.json
Anda dapat membuat prakiraan untuk kota AS mana pun dengan memasukkan kunci API, kode negara bagian dua huruf, dan nama kota dari URL yang Anda tarik dari hasil penelusuran Weather Underground.
Setelah Anda memiliki URL API dengan kunci API dan negara bagian / kota Anda dimasukkan, Anda kemudian dapat mengedit skrip Python berikut dengan membuat dokumen teks baru pada Pi Anda menggunakan Leafpad dan menempelkan kode berikut ke dalamnya:
dari urllib2 import urlopen
import json
req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / forecast / q / STATE / CITY.json ')
parsed_json = json.load (permintaan)
pop = int (parsed_json['forecast']['txt_forecast']['forecastday'][0]['pop'])# Berikut ini adalah nilai debugging.
# Edit hash dan ubah
# bilangan bulat ke 0-100 untuk diuji
# respons LED.# pop = 0
print 'Peluang presipitasi saat ini adalah {}.'. format (pop)
# Pengaturan default adalah menyalakan LED
# untuk kemungkinan hujan di atas 20%. Anda bisa menyesuaikan
# nilai dalam "if pop> 20:" sesuai keinginan.
jika pop> 20:
LedBorg = terbuka ('/ dev / ledborg', 'w')
LedBorg.write ('002')
oleh LedBorg
cetak ('Hujan!')
lain:
LedBorg = terbuka ('/ dev / ledborg', 'w')
LedBorg.write ('000')
oleh LedBorg
print ('Tidak ada hujan!')
Simpan file sebagai wunderground.py di direktori / home / pi /. Buka terminal dan ketik perintah berikut:
python wunderground.py
Jika Anda telah memasukkan kunci API dan kode negara bagian / kota Anda dengan benar, itu akan membalas respons yang terlihat seperti:
Jika curah hujan diperkirakan untuk wilayah Anda, keluaran LedBorg Anda akan terlihat seperti ini:
Sekarang menunggu hari hujan untuk menguji naskah dengan benar akan membosankan. Jika tidak ada kemungkinan hujan di daerah Anda hari ini dan Anda ingin melihat LED menyala, edit skrip wunderground.py dan ganti nilai passthrough “pop = pop” di baris 13 dengan nilai lebih besar dari 20 seperti 60 bahwa perkiraan kami kembali. Ingatlah untuk mengubah baris kembali menjadi "pop = pop" setelah Anda selesai.
Langkah terakhir adalah mengatur pekerjaan cron untuk secara otomatis menjalankan skrip yang baru saja kita simpan pada interval reguler agar indikator LED tetap terkini. Karena tugas ini diperlukan untuk skrip ini dan indikator email yang mengikuti, kami akan membahas penyiapan tugas cron setelah kami menunjukkan kepada Anda cara menyiapkan skrip lain.
Mengonfigurasi LedBorg Anda sebagai Indikator Gmail
Siapa yang tidak menyukai pengobatan dopamin yang datang dengan melihat email baru di kotak masuk mereka? Di bagian tutorial ini kami akan menunjukkan kepada Anda bagaimana menggunakan LedBorg sebagai indikator Gmail baru. Sama seperti terakhir kali, kita akan menggabungkan input eksternal (dalam hal ini feed Atom, bukan API) dan skrip sederhana untuk menggerakkan LED kita.
Kita perlu memperluas fungsionalitas instalasi Python kita sedikit dengan menginstal FeedParser , alat membaca umpan RSS / Atom Python. Buka terminal dan masukkan perintah berikut:
sudo easy_install feedparser
Setelah penginstalan selesai, kita dapat mulai bekerja membuat skrip pemeriksaan Gmail. Sekali lagi, menggunakan Leafpad, tempel teks berikut ke editor. Ubah username dan password agar sesuai dengan username dan password akun Gmail yang ingin Anda periksa.
impor feedparser
# Masukkan nama pengguna Gmail Anda
# dan kata sandi. Jangan sertakan
# bagian @ gmail.com dari
# nama pengguna Anda.
username = "username"
password = "password"
mail = int (feedparser.parse ("https: //" + username + ":" + password + "@ mail.google.com/gmail/feed/atom")["feed"]["fullcount"])# Berikut ini adalah nilai debugging.
# Edit hash dan ubah
# bilangan bulat ke 0 atau 1 untuk diuji
# respons LED.# mail = 0
jika surat> 0:
LedBorg = terbuka ('/ dev / ledborg', 'w')
LedBorg.write ('020')
oleh LedBorg
cetak ('Mail!')
lain:
LedBorg = terbuka ('/ dev / ledborg', 'w')
LedBorg.write ('000')
oleh LedBorg
print ('Tidak ada email!')
Simpan skrip sebagai gmailcheck.py. Buka terminal dan ketik perintah berikut:
python gmailcheck.py
Jika Anda memiliki email yang ada di kotak masuk Gmail Anda, LED akan berubah menjadi hijau dan Anda akan mendapatkan respons seperti:
Jika Anda memiliki surat di kotak masuk Gmail Anda, LedBorg Anda akan terlihat seperti ini:
Sama seperti skrip pemeriksaan hujan, kami telah menyertakan nilai debugging. Jika Anda tidak memiliki email baru, Anda dapat mengirimkan email kepada diri Anda sendiri untuk meningkatkan jumlah kotak masuk Anda menjadi 1 atau Anda dapat mengedit hash komentar dan mengubah baris debugging menjadi "mail = 1" untuk menguji skrip. Ingatlah untuk mengembalikan garis setelah Anda selesai menguji.
Masuk ke bagian selanjutnya dari tutorial untuk mengatur skrip Gmail Anda agar berjalan sesuai jadwal.
Menyiapkan Cron Job untuk Menjalankan Skrip Anda
Sekarang kita memiliki dua skrip untuk dimainkan, kita perlu menyiapkan tugas cron untuk menjalankannya sepanjang hari untuk menjaga indikator LED tetap terkini.
Hal pertama yang ingin kami lakukan adalah mematikan LED jika saat ini menyala dari percobaan sebelumnya. Di tipe terminal:
echo “000”> / dev / ledborg
Saat Anda masih di baris perintah, Anda dapat membuka editor cron. Jika Anda belum pernah menyiapkan tugas cron sebelumnya, kami sangat menyarankan lihat panduan kami untuk menggunakannya di sini . Karena itu, kami akan memandu Anda dalam menyiapkan jadwal dasar di sini.
Di tipe terminal:
sudo crontab –e
Ini akan membuka tabel cron Raspbian di editor teks Nano. Gunakan tombol panah untuk menggulir ke bawah ke bagian paling bawah. Di sinilah kita akan menyiapkan tugas cron berulang untuk skrip Python kita.
Jika Anda ingin mengatur skrip hujan, masukkan baris berikut ke dalam tabel cron:
* / 5 * * * * python /home/pi/wunderground.py
Tekan CTRL + X untuk keluar; pilih ya untuk menyimpan dan menimpa tabel cron yang ada. Nilai yang kita masukkan di tabel cron “* / 5 * * * *” menyetel skrip untuk dijalankan setiap 5 menit, selamanya.
Setiap 5 menit adalah rentang waktu yang bagus untuk skrip yang memeriksa prakiraan hujan — Anda bahkan dapat membantah bahwa ini agak terlalu agresif — tetapi jika Anda mencoba untuk tetap mengetahui email Anda, rentang waktu itu terlalu lama untuk pemberitahuan . Jika Anda menyiapkan jadwal untuk skrip notifikasi Gmail, masukkan baris berikut di tabel cron:
* / 1 * * * * python /home/pi/wunderground.py
Entri ini menjalankan skrip gmailcheck.py setiap menit untuk pemberitahuan pembaruan yang jauh lebih cepat.
Itu saja! Anda dapat bereksperimen dengan skrip Python Anda sendiri dengan mengangkat pernyataan if / else dari kami dan mencobanya dengan variabel baru. Jika Anda dapat menemukan sumber masukan untuk data, Anda dapat mengubahnya menjadi variabel dalam skrip Python Anda — rata-rata pasar saham, jumlah serbuk sari, Twitter menyebutkan, jika ada API untuk itu, Anda dapat mengubahnya menjadi indikator LED ambient.
Akhirnya, saya ingin mengucapkan terima kasih kepada semua sumber daya yang saya gunakan untuk mengerjakan proyek ini. Sudah lebih dari satu dekade sejak saya secara aktif menulis program dan butuh beberapa ketukan untuk menghilangkan debu dan karatnya. Kontributor di / r / LearnPython membantu saya membuang-buang hasil API untuk Weather Underground, mempelajari bagaimana Michael di Mitch Tech ditangani dengan umpan Atom Gmail membuat parsing untuk LedBorg menjadi mudah, dan mempelajari modul pembelajaran Python di Code Academy adalah cara yang bagus untuk mempelajari sintaks dan struktur dasar bahasa yang belum pernah saya gunakan sebelumnya.