If-Koubou

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

Bangun Indikator LED dengan Raspberry Pi (untuk Email, Cuaca, atau Apa Saja) (Bagaimana caranya)

Raspberry Pi membuat platform ringkas yang bagus untuk memasang lampu indikator untuk semua jenis proyek-notifikasi cuaca, email baru, dll. Baca terus karena kami menunjukkan cara menghubungkan modul LED ke Pi Anda dan menyiapkan beberapa pemberitahuan dasar .

Mengapa Saya Ingin Melakukan Ini?

Karena itu menyenangkan. Tidak seperti banyak dari tutorial kami di mana kami menyertakan sedikit uraian di bagian atas yang menguraikan dengan tepat manfaat apa yang akan Anda peroleh dari proyek, uraian cukup pendek dalam kasus ini karena manfaatnya hanya bersenang-senang.

Raspberry Pi adalah perangkat yang sempurna untuk bermain-main dengan, bereksperimen dengan elektronik, dan mempelajari beberapa pemrograman. Tak seorangpun kebutuhan indikator hujan ambient di dapur mereka, misalnya, tetapi membangun satu adalah latihan yang menyenangkan dan pengingat yang bagus untuk membawa payung Anda bersama Anda pada hari-hari berpotensi badai.

Apa yang Saya Butuhkan?

Untuk mengikuti tutorial ini, Anda akan 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 tercakup untuk menginstal Rasbian di Raspberry Pi kami).

Jika Anda ingin melakukan proyek ini dengan anggaran, kami dapat dengan yakin memberi tahu Anda bahwa model terbaru Raspberry Pi adalah berlebihan yang signifikan untuk pekerjaan itu dan kami akan mendorong Anda untuk membuang debu dari Raspberry Pi lama yang telah Anda dorong di lemari atau mengambil yang murah digunakan dari eBay atau sejenisnya. Anggaran bijaksana yang lama-gigi-a Raspberry Pi 1 Model A atau Model B tersangkut eBay untuk $ 10-15 adalah sangat cocok untuk proyek ini lebih dari pembelian merek baru $ 35 Pi generasi saat ini.

Selain memiliki unit Pi fungsional dengan Raspbian diinstal di dalamnya Anda akan memerlukan hal-hal berikut:

  • 1 modul LedBorg (~ $ 5.00 dengan $ 4 pengiriman dari Inggris ke AS, bekerja dengan semua model Raspberry Pi).
  • 1 Hapus Raspberry Pi Case yang kompatibel dengan model Pi Anda seperti kasus Raspberry Pi 1 Model B ini.

catatan: Kasus Pi yang jelas / buram sepenuhnya opsional tetapi jika Anda saat ini menggunakan kasus buram maka indikator LED Anda akan tersembunyi di dalam. Anda akan perlu memotong lubang dalam kasus Anda untuk membiarkan cahaya keluar atau menggunakan kabel ekstensi GPIO dengan kit pelarian seperti ini dari Adafruit Industries-untuk menambatkan LedBorg ke Raspberry Pi Anda. Sementara menggunakan kabel breakout menambahkan sekitar $ 8 untuk biaya proyek itu memang menawarkan lebih potensial untuk menyesuaikan produk akhir di mana Anda dapat lebih mudah menempatkan LED di dalam sesuatu atau di bawah sesuatu yang ingin Anda iluminasi.

Memasang LedBorg

Meskipun Anda tentu saja dapat membangun indikator LED yang benar-benar dari awal (dan permintaan mesin pencari akan mendatangkan banyak orang yang telah melakukannya) organisasi Piborg menghasilkan 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 sesuai langsung di atas pin GPIO pada Pi. Pertama, nyalakan 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 menyiram dengan tepi papan Pi dengan menjorok ke atas bagian dari LedBorg yang tergantung di atas papan Pi dan bukan dari tepi). Lihat foto di atas.

Saat Anda membuka papan Pi, sekarang akan menjadi waktu yang tepat untuk menutupi indikator LED on-board (di sebelah port USB), terutama jika Anda menggunakan casing yang jelas. Anda tidak ingin 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 cukup sehingga kami masih bisa mereferensikan mereka tetapi mereka jauh lebih redup daripada LedBorg, itu tidak lagi mengganggu.

Setelah Anda menginstal LedBorg dan memiliki, secara opsional, menutupi indikator LED Pi dengan pita listrik, saatnya untuk menutup kembali casing. Boot Pi Anda sebelum pindah ke tahap selanjutnya dari tutorial.

Memasang Perangkat Lunak LedBorg

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

Sebelum memulai, Anda perlu memastikan bahwa Anda meraih 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 port USB dan antara 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 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 pada Pi. dan kemudian masukkan perintah berikut untuk menginstal paket LedBorg.

catatan: Anda harus mengganti URL di 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 untuk pembungkus GUI:

Lanjutkan dan klik ikon LedBorg untuk meluncurkan pembungkus GUI. Anda akan disuguhi antarmuka color picker seperti:

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

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

Dalam mode demo Anda dapat menggilir semua warna dengan berbagai kecepatan, memeriksa output tinggi / rendah, dan meletakkan modul LED melalui langkah.

Ini di sini di bagian Mode Demo yang Anda juga dapat mengubah LedBorg Anda menjadi yang pertama dari banyak indikator. Dengan memilih CPU di bagian Warna LED akan mulai berubah dari hijau ke kuning ke merah untuk menunjukkan beban pada prosesor ARM Raspberry Pi. Sebaiknya ubah Kecepatan menjadi Lambat saat Anda melakukannya. Cepat memutakhirkan LED terlalu cepat dan membuat indikator CPU mengalihkan perhatian dan bukannya bermanfaat.

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 salurannya setengah daya, dan 2 berarti salurannya berkekuatan 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 Blue 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 aktual.

Mengkonfigurasi LedBorg Anda sebagai Indikator Hujan

Untuk bagian tutorial ini kita akan menyisir beberapa hal bersama-sama untuk mengubah modul LedBorg LED kita menjadi indikator hujan berdasarkan ramalan cuaca untuk lokasi kita. Kami akan menggunakan skrip Python untuk memanggil API cuaca yang pada gilirannya akan membaca peluang hujan untuk hari itu, dan kemudian beralih LED dari mati menjadi biru cerah 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 daftar untuk 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 kami 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 / prakiraan / q / STATE / CITY.json

Anda dapat membuat perkiraan untuk kota AS dengan memasukkan kunci API Anda, kode negara dua huruf, dan nama kota dari URL yang Anda tarik dari hasil pencarian Cuaca Bawah Tanah Anda.

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

dari urlopen impor urllib2
mengimpor json

req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / prakiraan / q / STATE / CITY.json')
parsed_json = json.load (req)
pop = int (parsed_json ['forecast'] ['txt_forecast'] ['forecastday'] [0] ['pop'])

# Berikut ini adalah nilai debugging.
# Mengedit hash dan berubah
# integer ke 0-100 untuk diuji
# tanggapan LED.

# pop = 0

print 'Kemungkinan presipitasi saat ini adalah .' format (pop)

# Pengaturan standar adalah untuk menyalakan LED
# untuk kemungkinan hujan di atas 20%. Anda dapat menyesuaikan
# nilai dalam "jika pop> 20:" seperti yang Anda inginkan.

jika pop> 20:
LedBorg = buka ('/ dev / ledborg', 'w')
LedBorg.write ('002')
del LedBorg
mencetak ('Hujan!')
lain:
LedBorg = buka ('/ dev / ledborg', 'w')
LedBorg.write ('000')
del LedBorg
print ('No rain!')

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 menendang balasan yang terlihat seperti:

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

Sekarang menunggu hari hujan untuk benar menguji skrip akan membosankan. Jika tidak ada peluang hujan di daerah Anda hari ini dan Anda ingin melihat lampu LED menyala, edit skrip wunderground.py dan ganti nilai pop-pop “pop = pop” di baris 13 dengan nilai lebih dari 20 seperti 60 bahwa perkiraan kami kembali. Ingatlah untuk mengubah garis kembali menjadi "pop = pop" setelah selesai.

Langkah terakhir adalah mengatur tugas cron untuk menjalankan skrip secara otomatis yang baru saja kita simpan pada interval reguler untuk menjaga agar indikator LED tetap aktif. Karena tugas ini diperlukan untuk skrip ini dan indikator email yang mengikuti, kita akan membahas pengaturan tugas cron setelah kami menunjukkan Anda bagaimana mengatur skrip lainnya.

Mengkonfigurasi LedBorg Anda sebagai Indikator Gmail

Siapa yang tidak suka dengan perbaikan dopamin yang hadir 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 bukannya API) dan skrip sederhana untuk mendorong LED kami.

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

sudo easy_install feedparser

Setelah instalasi selesai kami dapat mengatur untuk bekerja membuat skrip pemeriksaan Gmail kami. Sekali lagi, gunakan Leafpad, tempel teks berikut ke dalam editor. Ubah nama pengguna dan kata sandi untuk mencocokkan nama pengguna dan kata sandi dari 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"
kata sandi = "kata sandi"

mail = int (feedparser.parse ("https: //" + nama pengguna + ":" + kata sandi + "@ mail.google.com/gmail/feed/atom")["feed"]["fullcount"])

# Berikut ini adalah nilai debugging.
# Mengedit hash dan berubah
# integer ke 0 atau 1 untuk menguji
# tanggapan LED.

# mail = 0

jika email> 0:
LedBorg = buka ('/ dev / ledborg', 'w')
LedBorg.write ('020')
del LedBorg
print ('Mail!')
lain:
LedBorg = buka ('/ 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 jawaban seperti itu:

Jika Anda memiliki surat di kotak masuk Gmail, 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 sendiri email untuk menaikkan jumlah inbox Anda ke 1 atau Anda dapat mengedit hash komentar dan mengubah baris debug ke “mail = 1” untuk menguji skrip. Ingatlah untuk mengembalikan garis saat Anda selesai menguji.

Naiklah 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 tugas cron untuk menjalankannya sepanjang hari untuk menjaga indikator LED saat ini.

Hal pertama yang kami ingin lakukan adalah mematikan LED jika saat ini dari percobaan kami sebelumnya. Pada 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 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 bagian paling bawah. Di sinilah kita akan men-setup tugas 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 kami masukkan di tabel cron “* / 5 * * * *” menyetel skrip untuk berjalan setiap 5 menit, selamanya.

Setiap 5 menit adalah rentang waktu yang baik untuk skrip yang memeriksa hujan yang diperkirakan - Anda bahkan dapat membantahnya agak terlalu agresif - tetapi jika Anda mencoba untuk tetap di atas email Anda, itu terlalu lama untuk pemberitahuan . Jika Anda menyiapkan jadwal untuk skrip pemberitahuan 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 lebih cepat.

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

Akhirnya, saya ingin berterima 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 pukulan untuk mendapatkan debu dan karat. Kontributor di / r / LearnPython membantu saya mengelabui dalam output API untuk Weather Underground, mempelajari bagaimana Michael di Mitch Tech berurusan dengan feed Atom Gmail membuat parsing untuk LedBorg menjadi mudah, dan mempelajari modul pembelajaran Python di Code Academy adalah cara yang bagus untuk memahami sintaks dasar dan struktur bahasa yang belum pernah saya gunakan sebelumnya.