Bangun 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 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, uraiannya cukup singkat dalam hal ini karena manfaatnya hanya untuk bersenang-senang.





Raspberry Pi adalah perangkat yang sempurna untuk bermain-main, bereksperimen dengan elektronik, dan mempelajari beberapa pemrograman. Bukan siapa-siapa kebutuhan indikator hujan sekitar di dapur mereka, misalnya, tetapi membangunnya 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, Anda memerlukan beberapa hal. Pertama, kami berasumsi bahwa Anda telah mengikuti tutorial kami sebelumnya: Panduan HTG untuk Memulai dengan Raspberry Pi (dan dengan demikian memiliki dasar-dasar yang tertutup 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 sangat berlebihan untuk pekerjaan itu dan kami mendorong Anda untuk menghilangkan debu dari Raspberry Pi lama yang telah Anda dorong. di lemari atau ambil barang bekas murah dari eBay atau sejenisnya. Dari segi anggaran, Raspberry Pi 1 Model A atau Model B yang lama dicuri dari eBay seharga -15 sangat cocok untuk proyek ini daripada membeli Pi generasi baru seharga saat ini.

Iklan

Selain memiliki unit Pi fungsional dengan Raspbian terpasang di dalamnya, Anda memerlukan hal-hal berikut:

Catatan: Kasing Pi yang jelas / buram sepenuhnya opsional tetapi jika saat ini Anda menggunakan kasing buram maka indikator LED Anda akan disembunyikan di dalamnya. Anda harus melubangi casing agar lampu padam atau menggunakan kabel ekstensi GPIO dengan kit breakout—seperti yang ini dari Adafruit Industries —untuk menambatkan LedBorg ke Raspberry Pi Anda. Saat menggunakan kabel breakout menambahkan sekitar untuk biaya proyek, ia menawarkan lebih banyak potensi untuk menyesuaikan produk akhir karena Anda dapat dengan lebih mudah menempatkan LED di dalam benda atau di bawah sesuatu yang ingin Anda iluminasi.

Memasang LedBorg

Meskipun Anda tentu saja dapat membuat sendiri indikator LED yang benar-benar dari awal (dan penyelidikan mesin pencari akan menghasilkan banyak orang yang telah melakukannya), organisasi Piborg memproduksi modul LED yang ringkas dan murah, LedBorg, sehingga kami tidak dapat melakukannya. t menolak menggunakannya sebagai dasar untuk proyek indikator LED Raspberry Pi kami.

Memasang modul sangat mudah karena dirancang agar pas langsung dengan pin GPIO pada Pi. Pertama, matikan Pi Anda dan buka casingnya.

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 bagian yang menjorok. bagian dari LedBorg tergantung di atas papan Pi dan tidak di tepi). Lihat foto di atas.

Meskipun Anda memiliki papan Pi terbuka, sekarang akan menjadi waktu yang tepat untuk menutupi indikator LED on-board (di sebelah port USB), terutama jika Anda menggunakan kasing yang jelas. Anda tidak ingin bingung membaca indikator LedBorg Anda karena lampu indikator daya dan jaringan sangat terang.

Iklan

Kami menutupi milik kami dengan lapisan pita listrik putih. Ini cukup meredupkan mereka sehingga kami masih bisa merujuknya tetapi mereka jauh lebih redup daripada LedBorg sehingga tidak lagi mengganggu.

Setelah Anda menginstal LedBorg dan, secara opsional, menutupi indikator LED Pi dengan pita listrik, saatnya untuk menutup kasing kembali. Boot Pi Anda sebelum pindah ke fase berikutnya dari tutorial.

Menginstal Perangkat Lunak LedBorg

PiBorg menyediakan paket perangkat lunak yang hebat untuk LedBorg yang mencakup pengontrol GUI serta driver untuk mengakses LedBorg dari baris perintah.

Sebelum memulai, Anda perlu memastikan bahwa Anda mengambil 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 port daya dan 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 dapat kunjungi bagian Paket di sini untuk mengambil tautan untuk 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.

Iklan

Untuk menginstal semua barang, kita perlu 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 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:

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! Ini cerah dan plastik buram dari kasing yang kami pesan untuk proyek ini menawarkan difusi sedang. Jika Anda ingin bermain dengan modul LED lebih banyak sebelum melanjutkan, klik Demo Mode:

Iklan

Dalam mode demo, Anda dapat menggilir semua warna pada berbagai kecepatan, memeriksa output tinggi/rendah, dan jika tidak, menempatkan modul LED secara bertahap.

Di sini, di bagian Mode Demo, Anda juga dapat mengubah LedBorg Anda menjadi indikator 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 menjadi Lambat saat Anda melakukannya—Memperbarui LED dengan cepat 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 cerah karena saluran Biru sekarang pada output 100%. Ubah nilainya menjadi 202 dan kombinasikan Merah dan Biru dengan kekuatan penuh 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, kami akan menggabungkan beberapa hal untuk mengubah modul LED LedBorg kami menjadi indikator hujan berdasarkan ramalan cuaca untuk lokasi kami. Kami akan menggunakan skrip Python untuk memanggil API cuaca yang pada gilirannya akan membaca peluang hujan untuk hari itu, dan kemudian mengaktifkan LED dari mati ke biru cerah untuk menunjukkan perkiraan hujan.

Iklan

Pertama, kita perlu mendapatkan kunci akses API untuk Weather Underground. Untuk penggunaan pribadi dan proyek pengembangan kecil, API ini gratis. Kunjungi halaman pendaftaran Weather API di sini dan mendaftar untuk mendapatkan 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/KUNCI API ANDA/forecast/q/STATE/CITY.json

Anda dapat membuat prakiraan untuk kota mana pun di AS dengan memasukkan kunci API, kode negara dua huruf, dan nama kota dari URL yang Anda ambil dari hasil penelusuran Weather Underground.

Setelah Anda memiliki URL API dengan kunci API dan negara bagian/kota yang dimasukkan, Anda kemudian dapat mengedit skrip Python berikut dengan membuat dokumen teks baru di Pi Anda menggunakan Leafpad dan menempelkan kode berikut ke dalamnya:

from urllib2 import urlopen
import json

req = urlopen('http://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json ')
parsed_json = json.load(req)
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 'Current chance of precipitation is {}.'.format(pop)

# The default setting is to turn on the LED
# for any chance of rain above 20%. You can adjust
# the value in 'if pop > 20:' as you wish.

if pop > 20:
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('002')
del LedBorg
print ('Rain!')
else:
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('000')
del LedBorg
print ('No rain!')

Iklan

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 mengembalikan respons yang terlihat seperti:

Jika curah hujan diprediksi untuk wilayah Anda, output LedBorg Anda akan terlihat seperti ini:

Sekarang menunggu hari hujan untuk menguji skrip 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 yang kita perkiraan kembali. Ingatlah untuk mengubah baris kembali menjadi pop = pop setelah selesai.

Langkah terakhir adalah mengatur pekerjaan cron untuk secara otomatis menjalankan skrip yang baru saja kita simpan secara berkala untuk menjaga indikator LED tetap terkini. Karena tugas ini diperlukan untuk skrip ini dan indikator email yang mengikutinya, kami akan membahas penyiapan tugas cron setelah kami menunjukkan kepada Anda cara menyiapkan skrip lainnya.

Mengonfigurasi 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 cara 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.

Iklan

Kami perlu sedikit memperluas fungsionalitas instalasi Python kami dengan menginstal FeedParser , alat membaca umpan RSS/Atom Python. Buka terminal dan masukkan perintah berikut:

sudo easy_install feedparser

Setelah instalasi selesai, kita dapat mulai bekerja membuat skrip pengecekan Gmail. Sekali lagi, menggunakan Leafpad, rekatkan teks berikut ke dalam editor. Ubah nama pengguna dan kata sandi agar sesuai dengan nama pengguna dan kata sandi akun Gmail yang ingin Anda periksa.

import feedparser

# Enter your Gmail username
# and password. Don't include
# the @gmail.com portion of
# your username.

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 menguji
# respons LED.

# surat = 0

if mail > 0 :
LedBorg = open('/dev/ledborg', 'w')
LedBorg.write('020')
del LedBorg
print ('Mail!')
else:
LedBorg = open('/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 mendapatkan respons seperti ini:

Jika Anda memiliki email di kotak masuk Gmail Anda, LedBorg Anda akan terlihat seperti ini:

Sama seperti skrip pemeriksaan hujan, kami telah menyertakan nilai debug. Jika Anda tidak memiliki email baru, Anda dapat mengirim email kepada diri sendiri untuk meningkatkan jumlah kotak masuk Anda menjadi 1 atau Anda dapat mengedit hash komentar dan mengubah baris debug menjadi mail = 1 untuk menguji skrip. Ingatlah untuk mengembalikan garis saat Anda selesai menguji.

Iklan

Masuk ke bagian berikutnya 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 tugas cron untuk menjalankannya sepanjang hari untuk menjaga indikator LED tetap terkini.

Hal pertama yang ingin kami lakukan adalah mematikan LED jika sedang menyala dari percobaan kami sebelumnya. Pada jenis terminal:

echo 000 > /dev/ledborg

Saat Anda masih berada di baris perintah, Anda dapat membuka editor cron. Jika Anda belum pernah mengatur pekerjaan cron sebelumnya, kami sangat menyarankan lihat panduan kami untuk menggunakannya di sini . Karena itu, kami akan memandu Anda menyiapkan jadwal dasar di sini.

Pada jenis terminal:

sudo crontab -e

Ini akan membuka tabel cron Raspbian di editor teks Nano. Gunakan tombol panah untuk menggulir ke bawah hingga paling bawah. Di sinilah kita akan mengatur pekerjaan 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

Iklan

Tekan CTRL+X untuk keluar; pilih yes untuk menyimpan dan menimpa tabel cron yang ada. Nilai yang kita masukkan di tabel cron */5 * * * * mengatur skrip untuk dijalankan setiap 5 menit, selamanya.

Setiap 5 menit adalah rentang waktu yang baik untuk sebuah skrip yang memeriksa perkiraan hujan—Anda bahkan dapat mengatakan bahwa itu agak terlalu agresif—tetapi jika Anda mencoba untuk tetap mengetahui 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 pemberitahuan pembaruan yang jauh lebih cepat.


Itu saja! Anda dapat bereksperimen dengan skrip Python Anda sendiri dengan menghapus pernyataan if/else dari kami dan mencobanya dengan variabel baru. Jika Anda dapat menemukan sumber input untuk data, Anda dapat mengubahnya menjadi variabel dalam skrip Python Anda—rata-rata pasar saham, jumlah serbuk sari, sebutan Twitter, jika ada API untuk itu, Anda dapat mengubahnya menjadi indikator LED ambient.

Akhirnya, saya ingin mengucapkan terima kasih kepada semua sumber daya hebat yang saya gunakan untuk mengerjakan proyek ini. Sudah lebih dari satu dekade sejak saya aktif menulis program dan butuh beberapa ketukan untuk menghilangkan debu dan karat. Para kontributor di /r/BelajarPython membantu saya mengotak-atik keluaran API untuk Weather Underground, mempelajari bagaimana Michael di Mitch Tech berurusan dengan feed Atom Gmail mempermudah penguraian untuk LedBorg, 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.

BACA BERIKUTNYA Foto Profil untuk Jason Fitzpatrick Jason Fitzpatrick
Jason Fitzpatrick adalah Pemimpin Redaksi LifeSavvy, situs saudara perempuan How-To Geek yang berfokus pada peretasan, tip, dan trik kehidupan. Dia memiliki lebih dari satu dekade pengalaman dalam penerbitan dan telah menulis ribuan artikel di Review Geek, How-To Geek, dan Lifehacker. Jason menjabat sebagai Editor Akhir Pekan Lifehacker sebelum bergabung dengan How-To Geek.
Baca Bio Lengkap

Artikel Menarik