Buat Indikator LED dengan Raspberry Pi (untuk Email, Cuaca, atau Apa Pun)
Raspberry Pi membuat platform ringkas yang bagus untuk memasang lampu indikator untuk semua jenis proyek-pemberitahuan cuaca, email baru, dll. Baca terus saat kami menunjukkan kepada Anda 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 atas yang menguraikan persis apa manfaat yang akan Anda peroleh dari proyek, uraian ini cukup singkat dalam hal ini karena manfaatnya hanya 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 baik untuk membawa payung Anda bersamamu pada hari-hari yang berpotensi badai.
Apa Yang Saya Butuhkan??
Untuk mengikuti tutorial ini, Anda perlu beberapa hal. Pertama, kami berasumsi bahwa Anda telah mengikuti tutorial kami sebelumnya: Panduan HTG untuk Memulai dengan Raspberry Pi (dan karenanya memiliki dasar-dasar yang tercakup untuk menginstal Rasbian di Raspberry Pi kami).
Jika Anda ingin melakukan proyek ini dengan anggaran terbatas, kami dapat dengan yakin memberi tahu Anda bahwa model terbaru Raspberry Pi adalah pekerjaan berat yang signifikan untuk pekerjaan itu dan kami mendorong Anda untuk meniup debu dari Raspberry Pi lama yang Anda dorong. di lemari atau mengambil yang bekas murah dari eBay atau sejenisnya. Dari segi anggaran, raspberry Pi 1 Model A atau Model B yang lama tersangkut di eBay seharga $ 10-15 adalah sangat cocok untuk proyek ini daripada membeli Pi Pi generasi sekarang yang seharga $ 35 saat ini..
Selain memiliki unit Pi fungsional dengan Raspbian terpasang di dalamnya Anda akan memerlukan hal-hal berikut:
- 1 modul LedBorg (~ $ 5,00 dengan pengiriman $ 4 dari Inggris ke AS, bekerja dengan semua model Raspberry Pi).
- 1 Kasing Raspberry Pi yang jelas kompatibel dengan model Pi khusus Anda seperti kasing Raspberry Pi 1 Model B ini.
catatan: Kasing pi jernih / buram sepenuhnya opsional tetapi jika Anda saat ini menggunakan kasing buram maka indikator LED Anda akan disembunyikan di dalamnya. Anda harus memotong lubang di case Anda untuk membiarkan lampu keluar atau menggunakan kabel ekstensi GPIO dengan kit pelarian - seperti yang ini dari Adafruit Industries - untuk menambatkan LedBorg ke Raspberry Pi Anda. Sementara menggunakan kabel breakout menambah sekitar $ 8 untuk biaya proyek ini memang menawarkan lebih banyak potensi untuk menyesuaikan produk akhir di mana Anda dapat lebih mudah menempatkan LED di dalam barang-barang atau di bawah sesuatu yang Anda ingin menerangi.
Menginstal LedBorg
Meskipun Anda tentu bisa membuat sendiri indikator LED yang sepenuhnya dari awal (dan permintaan mesin pencari akan muncul banyak orang yang telah melakukannya) organisasi Piborg menghasilkan modul LED yang kompak dan murah, LedBorg, yang kami tidak bisa t menolak menggunakannya sebagai dasar untuk proyek indikator Raspberry Pi LED kami.
Memasang modul sangat mudah karena dirancang agar pas langsung dengan pin GPIO pada Pi. Pertama, matikan Pi Anda dan buka kasingnya.
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 menggantungnya) bagian dari LedBorg tergantung di atas papan Pi dan bukan dari tepi). Lihat foto di atas.
Meskipun papan Pi Anda terbuka, sekarang akan menjadi saat yang tepat untuk membahas indikator LED terpasang (di sebelah port USB), terutama jika Anda menggunakan kasing yang jelas. Anda tidak ingin itu membingungkan untuk membaca indikator LedBorg Anda karena lampu indikator daya dan jaringan sangat terang.
Kami menutupi kami dengan lapisan pita listrik putih. Ini meredupkan mereka sehingga kita masih bisa referensi mereka tetapi mereka jauh lebih redup daripada LedBorg itu tidak lagi mengganggu.
Setelah LedBorg dipasang dan, secara opsional, menutupi indikator LED Pi dengan pita listrik, sekarang saatnya untuk menutup kasing. Boot Pi Anda sebelum pindah ke fase tutorial selanjutnya.
Menginstal Perangkat Lunak LedBorg
PiBorg menyediakan paket perangkat lunak yang bagus untuk LedBorg yang mencakup pengontrol GUI serta driver untuk mengakses LedBorg dari baris perintah.
Sebelum kita mulai, Anda perlu memastikan Anda mengambil paket yang tepat untuk versi Rasbian Anda dan revisi # dari 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 port USB dan di antara port daya dan port HDMI) maka itu adalah Revisi 2. Anda juga perlu mengetahui versi kernel instalasi Rasbian Anda. Buka terminal dan masukkan perintah berikut untuk memeriksa:
uname -r
Setelah Anda memiliki nomor Revisi dan nomor kernel, Anda dapat mengunjungi bagian Paket di sini untuk mengambil tautan untuk paket Anda. Dalam kasus kami, kami menggunakan papan Revision 1 dengan kernel 3.6.11 sehingga kami akan mengambil file raspbian-2013-02-09-rev1.zip.
Untuk menginstal semua barang, kita perlu membuka terminal pada Pi. dan kemudian masukkan perintah berikut untuk menginstal paket LedBorg.
catatan: Anda harus mengganti URL di perintah ketiga dengan URL paket untuk kombinasi board / kernel Anda.
mkdir ~ / ledborg-setup
cd ~ / ledborg-setup
wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
unzip setup.zip
chmod + x install.sh
./install.sh
Pada titik ini Anda sekarang memiliki pembungkus GUI untuk driver LedBorg dan driver itu sendiri diinstal. Di desktop Raspbian Anda, Anda akan melihat ikon untuk pembungkus GUI:
Silakan dan klik pada ikon LedBorg untuk meluncurkan pembungkus GUI. Anda akan disuguhi antarmuka pemilih warna seperti:
Sekarang adalah waktu yang tepat untuk memastikan modul Anda berfungsi. Pilih warna apa saja, simpan untuk warna hitam, untuk mencobanya. Kami akan mengujinya dengan memilih beberapa warna:
Kelihatan bagus! Ini cerah dan plastik buram dari case yang kami pesan untuk proyek ini 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 sebaliknya menempatkan modul LED melalui langkah.
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 ke kuning menjadi merah untuk menunjukkan beban pada prosesor ARM Raspberry Pi. Kami menyarankan untuk mengubah Kecepatan ke Lambat saat Anda sedang melakukannya - Cepat memperbarui LED terlalu cepat dan membuat indikator CPU mengganggu, bukannya 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:
gema "000"> / dev / ledborg
Cara LedBorg menangani nilai RGB adalah 0 berarti saluran mati, 1 berarti saluran setengah daya, dan 2 berarti saluran adalah 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 cerah karena saluran Biru sekarang pada output 100%. Ubah nilainya menjadi 202 dan Merah dan Biru dengan kekuatan penuh bergabung untuk membuat warna magenta.
Sekarang kita tahu cara memanipulasi LED secara manual, mari kita lihat menggunakan skrip untuk mengubah LED kita dari cahaya sederhana menjadi indikator yang sebenarnya.
Mengkonfigurasi LedBorg Anda sebagai Indikator Hujan
Untuk bagian tutorial ini, kami akan menyatukan beberapa hal bersama untuk mengubah modul LedBorg kami menjadi indikator hujan berdasarkan perkiraan cuaca untuk lokasi kami. Kami akan menggunakan skrip Python untuk memanggil API cuaca yang pada gilirannya akan membaca kemungkinan hujan untuk hari itu, dan kemudian beralih LED dari off ke 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 mendaftar API Cuaca di sini dan daftarkan 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 perkiraan 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 KUNCI / perkiraan / q / NEGARA / CITY.json
Anda dapat membuat perkiraan untuk kota AS mana pun dengan memasukkan kunci API, kode negara dua huruf, dan nama kota dari URL yang Anda tarik dari hasil pencarian Weather Underground Anda.
Setelah URL API dengan kunci API dan negara bagian / kota dimasukkan, Anda 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
impor json
req = urlopen ('http://api.wunderground.com/api/KUNCI API KAMI / perkiraan / q / STATE / CITY.json')
parsed_json = json.load (req)
pop = int (parsed_json ['ramalan'] ['txt_forecast'] ['ramalan hari'] [0] ['pop'])# Berikut ini adalah nilai debugging.
# Edit hash dan ubah
# integer ke 0-100 untuk diuji
# respons LED.# pop = 0
cetak 'Peluang curah hujan saat ini adalah format .' (pop)
# Pengaturan standar adalah untuk menghidupkan LED
# untuk kemungkinan hujan di atas 20%. Anda bisa menyesuaikan
# nilai dalam "jika pop> 20:" seperti yang Anda inginkan.
jika pop> 20:
LedBorg = terbuka ('/ dev / ledborg', 'w')
LedBorg.write ('002')
del LedBorg
print ('Rain!')
lain:
LedBorg = terbuka ('/ dev / ledborg', 'w')
LedBorg.write ('000')
del LedBorg
print ('Tidak 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 / kota Anda dengan benar, maka akan muncul respons yang terlihat seperti:
Jika curah hujan diprediksi untuk wilayah Anda, output LedBorg Anda akan terlihat seperti ini:
Sekarang menunggu hari hujan untuk menguji script 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 ke "pop = pop" ketika Anda selesai.
Langkah terakhir adalah mengatur pekerjaan cron untuk secara otomatis menjalankan skrip yang baru saja kita simpan pada interval reguler untuk menjaga agar indikator LED tetap terkini. Karena tugas ini diperlukan untuk skrip ini dan indikator email yang mengikuti, kami akan membahas pengaturan pekerjaan cron setelah kami menunjukkan kepada Anda cara mengatur skrip lainnya..
Mengkonfigurasi LedBorg Anda sebagai Indikator Gmail
Siapa yang tidak suka perbaikan 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 mengarahkan LED kami.
Kita perlu sedikit memperluas fungsionalitas instalasi Python kita dengan menginstal FeedParser, alat pembaca feed Python RSS / Atom. Buka terminal dan masukkan perintah berikut:
sudo easy_install feedparser
Setelah instalasi selesai, kita dapat mulai bekerja membuat skrip pemeriksaan Gmail. Sekali lagi, menggunakan Leafpad, rekatkan teks berikut ke dalam editor. Ubah nama pengguna dan kata sandi agar cocok dengan nama pengguna dan kata sandi akun Gmail yang ingin Anda periksa.
import feedparser
# Masukkan nama pengguna Gmail Anda
# dan kata sandi. Jangan termasuk
# bagian @ gmail.com dari
# nama pengguna Anda.
username = "username"
kata sandi = "kata sandi"
mail = int (feedparser.parse ("https: //" + username + ":" + password + "@ mail.google.com/gmail/feed/atom")["feed"[["fullcount"])
# Berikut ini adalah nilai debugging.
# Edit hash dan ubah
# integer ke 0 atau 1 untuk diuji
# respons LED.# mail = 0
jika email> 0:
LedBorg = terbuka ('/ dev / ledborg', 'w')
LedBorg.write ('020')
del LedBorg
print ('Mail!')
lain:
LedBorg = terbuka ('/ dev / ledborg', 'w')
LedBorg.write ('000')
del LedBorg
print ('No mail!')
Simpan skrip sebagai gmailcheck.py. Buka terminal dan ketik perintah berikut:
python gmailcheck.py
Jika Anda memiliki email yang tersimpan di kotak masuk Gmail Anda, LED akan berubah menjadi hijau dan Anda akan mendapat respons seperti:
Jika Anda memiliki surat di kotak masuk Gmail Anda, LedBorg Anda akan terlihat seperti ini:
Sama seperti skrip pemeriksaan hujan, kami telah memasukkan nilai debugging. Jika Anda tidak memiliki email baru, Anda bisa mengirim sendiri email untuk menaikkan jumlah kotak masuk Anda menjadi 1 atau Anda dapat mengedit hash komentar dan mengubah baris debug ke "mail = 1" untuk menguji skrip. Ingatlah untuk mengembalikan garis ketika Anda selesai pengujian.
Masuk ke bagian selanjutnya dari tutorial untuk mengatur skrip Gmail Anda agar berjalan sesuai jadwal.
Menyiapkan Pekerjaan Cron untuk Menjalankan Skrip Anda
Sekarang kita memiliki dua skrip untuk dimainkan, kita perlu mengatur pekerjaan cron untuk menjalankannya sepanjang hari untuk menjaga indikator LED tetap terkini.
Hal pertama yang ingin kita lakukan adalah mematikan LED jika saat ini dinyalakan dari percobaan sebelumnya. Pada tipe terminal:
gema "000"> / dev / ledborg
Saat Anda masih di baris perintah, Anda dapat membuka editor cron. Jika Anda belum pernah membuat pekerjaan cron sebelumnya, kami sangat menyarankan untuk memeriksa panduan kami untuk menggunakannya di sini. Yang mengatakan, kami akan memandu Anda melalui pengaturan jadwal dasar di sini.
Pada 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 mengatur pekerjaan cron berulang untuk skrip Python kami.
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 dalam tabel cron “* / 5 * * * *” mengatur script untuk dijalankan setiap 5 menit, selamanya.
Setiap 5 menit adalah rentang waktu yang baik untuk skrip yang memeriksa prakiraan hujan - Anda bahkan bisa berargumen bahwa itu agak terlalu agresif - tetapi jika Anda mencoba untuk tetap di atas email Anda, itu adalah rentang waktu yang terlalu lama untuk pemberitahuan . Jika Anda mengatur 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 notifikasi pembaruan yang jauh lebih cepat.
Hanya itu yang ada di sana! 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 input untuk data, Anda dapat mengubahnya menjadi variabel di rata-rata pasar saham skrip Python, jumlah serbuk sari, Twitter menyebutkan, jika ada API untuk itu, Anda dapat mengubahnya menjadi indikator LED sekitar..
Akhirnya, saya ingin berterima kasih kepada semua sumber daya hebat yang saya gunakan untuk mengerjakan proyek ini. Sudah sedikit lebih dari satu dekade sejak saya aktif menulis program dan butuh beberapa ketukan untuk menghilangkan debu dan karat. Kontributor di / r / LearnPython membantu saya muck tentang output API untuk Weather Underground, mempelajari bagaimana Michael di Mitch Tech berurusan dengan feed Gmail Atom membuat penguraiannya untuk LedBorg dengan mudah, dan mempelajari modul pembelajaran Python di Code Academy adalah cara yang bagus untuk mengambil sintaksis dasar dan struktur bahasa yang belum pernah saya gunakan sebelumnya.