1Aug

Bangun Indikator LED dengan Pi Raspberry( untuk Email, Cuaca, atau Apapun)

Raspberry Pi membuat platform kompak yang bagus untuk melampirkan lampu indikator ke segala jenis proyek-pemberitahuan cuaca, email baru, dll. Baca terus saat kami menunjukkan cara menghubungkan modul LED ke Pi Anda dan menyiapkan beberapa dasarpemberitahuan

Mengapa Saya Ingin Melakukannya?

Karena itu menyenangkan. Tidak seperti banyak tutorial kami, kami menyertakan sedikit uraian di bagian atas yang menjelaskan secara tepat manfaat apa yang akan Anda dapatkan dari proyek ini, uraiannya sangat singkat dalam kasus ini karena keuntungannya hanya bersenang-senang.

Raspberry Pi adalah perangkat yang sempurna untuk dimainkan bersama, bereksperimen dengan elektronik, dan belajar beberapa pemrograman. Tidak ada yang membutuhkan indikator hujan ambien di dapur mereka, misalnya, namun bangunannya adalah latihan yang menyenangkan dan pengingat yang bagus untuk membawa payung Anda ke berpotensi badai.

Apa yang Saya Butuhkan?

Untuk mengikuti dan 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 dibahas untuk menginstal Rasbian di Pi Raspberry kami).

Jika Anda ingin mengerjakan proyek ini dengan anggaran, dengan yakin kami dapat memberi tahu Anda bahwa model terbaru Raspberry Pi adalah kelebihan yang signifikan untuk pekerjaan itu dan kami akan mendorong Anda untuk meniup debu dari Pi Raspberry tua yang Anda miliki.mendorong di lemari atau mengambil yang murah digunakan dari eBay atau sejenisnya. Anggaran bijaksana long-in-the-tooth Model Raspberry Pi 1 A atau Model B yang tersangkut dari eBay seharga $ 10-15 sangat sesuai untuk proyek ini selama membeli merek baru $ 35 saat ini.

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

  • 1( ~ $ 5,00 dengan pengiriman $ 4 dari Inggris ke AS, berlaku untuk semua model Raspberry Pi).
  • 1 Kasus Raspberry Pi yang Jelas yang kompatibel dengan model Pi Anda seperti kasus Raspberry Pi 1 Model B ini.

Catatan: Kasus Pi yang jelas / buram sepenuhnya opsional, namun jika Anda saat ini menggunakan kotak buram maka indikator LED Anda akan disembunyikan di dalamnya. Anda perlu memotong lubang dalam kasus 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. Saat menggunakan kabel pelarian menambahkan sekitar $ 8 untuk mengorbankan proyek, hal itu menawarkan lebih banyak potensi untuk menyesuaikan produk akhir sehingga Anda dapat dengan mudah menempatkan LED di dalam benda atau di bawah sesuatu yang ingin Anda iluminasi.

Memasang LedBorg

Meskipun Anda pasti bisa membangun indikator LED yang benar-benar dari awal( dan penyelidikan mesin pencari akan menghasilkan banyak orang yang telah melakukannya), organisasi Piborg memproduksi modul LED kompak dan murah seperti itu, LedBorg, bahwa kami tidak dapat menolak menggunakannya sebagai dasar untuk proyek indikator LED Raspberry Pi kami.

Memasang modul sangat mudah karena dirancang agar sesuai dengan pin GPIO di Pi. Pertama, matikan Pi Anda dan bukalah kasusnya.

Bagian terpenting dari proses instalasi adalah Anda mengarahkan modul ini sehingga ikon LedBorg paling dekat dengan modul RCA pada papan Raspberry Pi( dan dengan demikian tepi LedBorg disiram dengan tepi papan Pi denganBagian yang menggantung dari LedBorg menggantung di atas papan Pi dan tidak di pinggirnya).Lihat foto di atas.

Sementara Anda memiliki papan Pi terbuka, sekarang akan menjadi saat yang tepat untuk meliput indikator LED on-board( di sebelah port USB), terutama jika Anda menggunakan kasus yang jelas. Anda tidak ingin membingungkan indikator LedBorg karena lampu indikator daya dan jaringan sangat terang.

Kami menutupi kita dengan lapisan pita listrik putih. Ini meredanya cukup sehingga kita masih bisa referensi mereka tapi mereka jauh lebih redup daripada LedBorg itu tidak lagi mengganggu.

Setelah Anda memasang LedBorg dan memiliki, secara opsional, meliput indikator LED Pi dengan pita listrik, saatnya untuk menutup kasus ini kembali. Boot Pi Anda sebelum beralih ke fase tutorial berikutnya.

Menginstal Perangkat Lunak LedBorg

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

Sebelum kita mulai, Anda perlu memastikan bahwa Anda meraih paket yang tepat untuk versi Rasbian Anda dan revisi # dari dewan Raspberry Pi Anda.

Jika papan Raspberry Pi Anda tidak memiliki lubang pemasangan, itu adalah Revisi 1. Jika Raspberry Pi Anda memiliki lubang pemasangan( terletak pada port USB dan antara port daya dan HDMI) maka itu adalah Revisi 2. Anda juga perlu mengetahui kernelversi 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 link untuk paket Anda. Dalam kasus kami, kami menggunakan papan Revisi 1 dengan kernel 3.6.11 jadi kami akan mengambil berkas raspbian-2013-02-09-rev1.zip.

Untuk menginstal semua barang yang perlu dibuka terminal di Pi.dan kemudian masukan 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
unzip setup.zip
chmod + x install.sh
. /install.sh

Pada titik ini Anda sekarang memiliki pembungkus GUI untuk driver LedBorg dan driver yang diinstal sendiri. Di desktop Raspbian Anda, Anda akan melihat ikon pembungkus GUI:

Silakan klik ikon LedBorg untuk meluncurkan pembungkus GUI.Anda akan disuguhi antarmuka pemetik warna seperti:

Sekarang adalah waktu yang tepat untuk memastikan modul Anda fungsional. Pilih warna apa saja, simpan untuk hitam, untuk mencobanya. Kita akan mengujinya dengan memilih beberapa warna:

Terlihat bagus! Cerdas dan plastik buram dari kasus yang kami pesan untuk proyek ini menawarkan difusi yang moderat. Jika Anda ingin bermain dengan modul LED lebih banyak sebelum melanjutkan, klik Demo Mode:

Dalam mode demo Anda dapat melewati semua warna pada berbagai kecepatan, lihat output tinggi / rendah, dan jika tidak, letakkan modul LED melalui langkah.

Ada di sini, di bagian Mode Demo, Anda juga bisa mengubah LedBorg menjadi indikator pertama dari banyak indikator. Dengan memilih CPU di bagian Warna LED akan mulai berubah dari hijau ke kuning menjadi merah untuk mengindikasikan beban pada prosesor ARM Raspberry Pi. Kami menyarankan untuk mengubah Kecepatan menjadi Lambat saat Anda menggunakannya. Cepat memperbarui LED terlalu cepat dan membuat indikator CPU mengganggu alih-alih bermanfaat.

Selain menggunakan antarmuka GUI untuk memilih warna Anda bisa memilih warna dari terminal menggunakan nilai RGB.Buka terminal dan masukkan perintah berikut untuk mematikan LED:

echo "000" & gt;/dev/ ledborg

Cara LedBorg menangani nilai RGB adalah 0 berarti saluran dimatikan, 1 berarti salurannya adalah setengah daya, dan 2 berarti saluran itu penuh daya. Jadi misalnya 001 akan mengatur saluran Merah pada 0%, saluran Hijau pada 0% dan saluran Biru dengan kekuatan 50%.

Mengubah nilainya menjadi 002 dan output LED tetap biru namun menjadi lebih cerah karena saluran biru sekarang berada pada output 100%.Ubah nilainya menjadi 202 dan Red and Blue dengan kekuatan penuh bergabung untuk membuat warna magenta.

Sekarang kita tahu bagaimana memanipulasi LED secara manual, mari kita lihat penggunaan skrip untuk mengubah LED kita dari cahaya sederhana menjadi indikator sebenarnya.

Mengkonfigurasi 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 perkiraan cuaca untuk lokasi kami. Kami akan menggunakan skrip Python untuk memanggil API cuaca yang pada gilirannya akan membacakan kesempatan hujan untuk hari itu, dan kemudian mengalihkan LED dari biru ke biru untuk menunjukkan hujan yang diperkirakan.

Pertama, kita perlu mendapatkan kunci akses API untuk Weather Underground. Untuk penggunaan pribadi dan proyek pengembangan kecil API gratis. Kunjungi halaman pendaftaran API Cuaca di sini dan masuk ke kunci API.

Begitu Anda memiliki kunci API Anda, kunjungi Weather Underground dan cari kota yang ingin Anda monitor. Dalam kasus kami, kami akan memantau San Fransisco, CA.URL untuk halaman ramalan 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 dasar adalah:

http: //api.wunderground.com/api/ API ANDA KUNCI /forecast/q/STATE/ CITY.json

Anda dapat membuat perkiraan untuk kota AS manapun dengan memasukkan kunci API Anda, kode negara dua huruf, dan nama kota dari URL yang Anda tarik dari Weather Anda. Hasil pencarian bawah tanahJika Anda memiliki URL API dengan kunci API dan negara bagian / kota yang disisipkan, Anda kemudian dapat mengedit skrip Python berikut dengan membuat dokumen teks baru pada 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 ['ramalan'] ['txt_forecast'] ['forecastday'][0] ['pop'])

# Berikut ini adalah nilai debugging.
# Edit hash dan ganti
# bilangan bulat ke 0-100 untuk menguji
# respons LED.

# pop = 0

print 'Saat ini presipitasi adalah{ }.' Format( pop)

# Pengaturan standarnya adalah menyalakan LED
# untuk kemungkinan hujan di atas 20%.Anda dapat menyesuaikan
# nilai dalam "jika pop & gt; 20:" sesuai keinginan.

jika pop & gt;20:
LedBorg = terbuka( '/dev/ ledborg', 'w')
LedBorg.write( '002')
del LedBorg
cetak( 'Hujan!')
yang lain:
LedBorg = terbuka( '/dev/ ledborg', 'w ')
LedBorg.write( ' 000 ')
del LedBorg
cetak( ' Tidak ada hujan! ')

Simpan file tersebut 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, seharusnya menendang kembali respons yang terlihat seperti:

Jika presipitasi diprediksi untuk area AndaOutput 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 lampu LED menyala, edit skrip wunderground.py dan ganti nilai passthrough "pop = pop" di baris 13 dengan nilai lebih besar dari 20 seperti 60bahwa ramalan kami kembali. Ingatlah untuk mengubah baris kembali ke "pop = pop" saat Anda selesai.

Langkah terakhir adalah menyiapkan tugas cron untuk menjalankan skrip secara otomatis yang baru saja kita simpan dalam interval reguler agar indikator LED tetap menyala. Karena tugas ini diperlukan untuk kedua skrip dan indikator email berikut, kita akan membahas pembuatan tugas cron setelah kami menunjukkan cara menyiapkan naskah lainnya.

Mengkonfigurasi LedBorg Anda sebagai Indikator Gmail

Siapa yang tidak menyukai 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 Atom feed bukan API) dan sebuah script sederhana untuk menggerakkan LED kita.

Kita perlu memperluas fungsionalitas instalasi Python kita sedikit dengan menginstal FeedParser, alat baca umpan Python RSS / Atom. Buka terminal dan masukkan perintah berikut:

sudo easy_install feedparser

Setelah penginstalan selesai, kita dapat mengatur untuk bekerja membuat skrip pemeriksaan Gmail kami. Sekali lagi, menggunakan Leafpad, sisipkan teks berikut ke editor. Ubah nama pengguna dan kata sandi agar sesuai dengan nama pengguna dan kata sandi akun Gmail yang ingin Anda periksa.

feedparser impor

# Masukkan nama pengguna Gmail
# dan kata sandi Anda. 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") ["umpan"] [" fullcount "])

# Berikut ini adalah nilai debugging.
# Edit hash dan ganti
# bilangan bulat ke 0 atau 1 untuk menguji
# respons LED.

# mail = 0

jika email & gt;0:
LedBorg = buka( '/dev/ ledborg', 'w')
LedBorg.write( '020')
del LedBorg
cetak( 'Mail!')
yang lain:
LedBorg = buka( '/dev/ ledborg', 'w ')
LedBorg.write( ' 000 ')
del LedBorg
cetak( ' Tidak ada surat! ')

Simpan skrip sebagai gmailcheck.py. Bukalah terminal dan ketik perintah berikut:

python gmailcheck.py

Jika Anda memiliki email yang duduk di kotak masuk Gmail, LED akan berubah menjadi hijau dan Anda akan mendapat respons seperti ini:

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

Sama seperti skrip pemeriksaan hujan, kami menyertakan nilai debugging. Jika Anda tidak memiliki email baru, Anda bisa mengirim email untuk menaikkan jumlah kotak masuk Anda menjadi 1 atau Anda dapat menghapus hash komentar dan mengubah baris debug menjadi "mail = 1" untuk menguji skrip. Ingatlah untuk mengembalikan garis saat Anda selesai melakukan pengujian.

Masuklah ke bagian tutorial berikutnya untuk mengatur skrip Gmail Anda agar berjalan sesuai jadwal.

Menyiapkan Pekerjaan Cron untuk Menjalankan Skrip Anda

Sekarang setelah kita memiliki dua skrip untuk dimainkan, kita perlu menyiapkan tugas cron untuk menjalankannya sepanjang hari untuk menjaga agar indikator LED tetap menyala.

Hal pertama yang ingin kita lakukan adalah mematikan LED jika saat ini aktif dari eksperimen sebelumnya. Pada tipe terminal:

echo "000" & gt;/dev/ ledborg

Saat Anda masih berada di garis komando, Anda bisa membuka editor cron. Jika Anda belum pernah menyiapkan tugas cron sebelumnya, kami akan sangat menyarankan untuk memeriksa panduan kami 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 bagian paling bawah. Di sinilah kita akan menyiapkan tugas cron berulang untuk skrip Python kita.

Jika Anda ingin mengatur naskah 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 * * * *" mengatur skrip untuk dijalankan setiap 5 menit, selamanya.

Setiap 5 menit adalah rentang waktu yang tepat untuk naskah yang memeriksa hujan yang diperkirakan-Anda bahkan bisa membantahnya agak terlalu agresif-tapi jika Anda mencoba tetap berada di atas email Anda, rentangnya terlalu panjang untuk jangka waktu tertentu.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 lebih cepatupdate notifikasi

Itu saja yang ada untuk itu! Anda dapat bereksperimen dengan skrip Python Anda sendiri dengan mengangkat pernyataan if / else dari kami dan mencoba mereka dengan variabel baru. Jika Anda dapat menemukan sumber input untuk data, Anda dapat mengubahnya menjadi variabel di rata-rata pasar naskah skrip Python Anda, jumlah serbuk sari, misalnya Twitter, jika ada API untuk itu, Anda dapat mengubahnya menjadi indikator LED sekitar.

Akhirnya, saya ingin mengucapkan terima kasih atas semua sumber daya yang saya gunakan untuk mengerjakan proyek ini. Sudah sedikit lebih dari satu dekade sejak saya secara aktif menulis program dan butuh beberapa pukulan untuk mengeluarkan debu dan karat. Kontributor di /r/ LearnPython membantu saya membuang-buang waktu dalam output API untuk Weather Underground, mempelajari bagaimana Michael di Mitch Tek menangani umpan Atom Atom yang membuat parsing untuk LedBorg dengan mudah, dan mempelajari modul pembelajaran Python di Code Academy adalah hebatcara untuk mengambil sintaks dan struktur dasar bahasa yang belum pernah saya gunakan sebelumnya.