Laman » bagaimana untuk » Membina Petunjuk LED dengan Raspberry Pi (untuk E-mel, Cuaca atau Apa-apa)

    Membina Petunjuk LED dengan Raspberry Pi (untuk E-mel, Cuaca atau Apa-apa)

    Raspberry Pi menjadikan platform padat yang bagus untuk memasang lampu penunjuk untuk pelbagai jenis projek-pemberitahuan cuaca, e-mel baru, dan sebagainya. Membaca seperti yang kami menunjukkan kepada anda bagaimana untuk menyambungkan modul LED ke Pi anda dan menyediakan beberapa pemberitahuan asas.

    Kenapa Saya Mahu Lakukan Ini?

    Kerana itulah menyeronokkan. Tidak seperti kebanyakan tutorial kami di mana kami menyertakan sebidang kecil di atas yang menggariskan tepat manfaat apa yang akan anda hasilkan dari projek itu, blurb agak singkat dalam kes ini kerana manfaat hanya bersenang-senang.

    Raspberry Pi adalah peranti yang sempurna untuk bermain-main dengan, bereksperimen dengan elektronik, dan belajar beberapa pengaturcaraan. Tiada siapa keperluan penunjuk hujan ambien di dapur mereka, contohnya, tetapi bangunan satu adalah senaman yang menyenangkan dan peringatan yang hebat untuk membawa payung anda dengan anda pada hari-hari ribut berpotensi.

    Apa yang saya perlukan?

    Untuk mengikuti tutorial ini, anda memerlukan beberapa perkara. Pertama, kami menganggap bahawa anda telah mengikuti tutorial terdahulu kami: Panduan HTG untuk Bermula dengan Raspberry Pi (dan dengan itu mempunyai asas-asas yang dilindungi untuk memasang Rasbian di Raspberry Pi kami).

    Sekiranya anda ingin melakukan projek ini dengan belanjawan, kami yakin dapat memberitahu anda bahawa model Raspberry Pi terbaru adalah sangat berlebihan untuk tugas ini dan kami akan menggalakkan anda untuk meniup habuk dari Raspberry Pi lama yang telah anda dorong di dalam almari atau mengambil barang yang murah di eBay atau sejenisnya. Bajet bijak yang lama-dalam-gigi Raspberry Pi 1 Model A atau Model B terperangkap dari eBay untuk $ 10-15 adalah sesuai untuk projek ini untuk membeli jenama baru $ 35 generasi semasa.

    Selain memiliki unit Pi yang berfungsi dengan Raspbian dipasang di atasnya, anda memerlukan perkara berikut:

    • 1 modul LedBorg (~ $ 5.00 dengan penghantaran $ 4 dari UK ke AS, berfungsi dengan semua model Raspberry Pi).
    • 1 Kes Raspberry Pi Clear yang serasi dengan model Pi tertentu anda seperti kes Raspberry Pi 1 Model B ini.

    Catatan: Kes yang jelas / frosted Pi adalah sepenuhnya pilihan tetapi jika anda sedang menggunakan kes leg buron maka penunjuk LED anda akan tersembunyi di dalamnya. Anda sama ada perlu memotong lubang dalam kes anda untuk membiarkan cahaya keluar atau menggunakan kabel sambungan GPIO dengan kit pelarian-seperti ini dari Adafruit Industries-untuk menambatkan LedBorg ke Raspberry Pi anda. Semasa menggunakan kabel pelayaran menambah kira-kira $ 8 untuk perbelanjaan projek itu, ia menawarkan lebih banyak potensi untuk menyesuaikan produk akhir kerana anda dapat dengan mudah meletakkan LED di dalam sesuatu atau di bawah sesuatu yang anda ingin menerangi.

    Memasang LedBorg

    Walaupun anda pasti dapat membina penunjuk LED sepenuhnya dari awal (dan pertanyaan enjin carian akan muncul ramai orang yang melakukannya) organisasi Piborg menghasilkan modul LED padat dan murah, LedBorg, t menolak penggunaannya sebagai asas untuk projek penunjuk LED Raspberry Pi kami.

    Memasang modul adalah snap kerana ia direka untuk menyesuaikan secara langsung ke atas pin GPIO di Pi. Pertama, suruhlah Pi anda dan buka kes itu.

    Bahagian terpenting dalam proses pemasangan ialah anda mengarahkan modul itu supaya ikon LedBorg paling dekat dengan modul RCA di papan Raspberry Pi (dan oleh itu pinggir LedBorg adalah siram dengan tepi papan Pi dengan penutup bahagian LedBorg tergantung di atas papan Pi dan tidak di luar tepi). Lihat gambar di atas.

    Walaupun anda mempunyai papan Pi terbuka, kini akan menjadi masa yang sangat baik untuk menampung penunjuk LED di papan (bersebelahan dengan port USB), terutamanya jika anda menggunakan kes yang jelas. Anda tidak mahu ia mengelirukan untuk membaca penunjuk LedBorg anda kerana lampu penunjuk kuasa dan rangkaian sangat terang.

    Kami meliputi kami dengan lapisan pita elektrik putih. Ini meredupkannya cukup supaya kita dapat merujuk mereka tetapi mereka sangat redup daripada LedBorg yang tidak lagi mengganggu.

    Sebaik sahaja anda memasang dan mempunyai LedBorg, pilihannya, meliputi petunjuk LED Pi dengan pita elektrik, sudah tiba masanya untuk menutup kes itu. Butang Pi anda sebelum bergerak ke fasa seterusnya tutorial.

    Memasang Perisian LedBorg

    PiBorg menyediakan pakej perisian yang hebat untuk LedBorg yang merangkumi pengawal GUI serta pemandu untuk mengakses LedBorg dari baris arahan.

    Sebelum kita memulakan, anda perlu memastikan anda merebut pakej yang betul untuk versi Rasbian anda dan semakan # dari papan Raspberry Pi anda..

    Jika papan Raspberry Pi anda tidak mempunyai lubang pemasangan, itu adalah Semakan 1. Jika Raspberry Pi anda mempunyai lubang pemasangan (terletak dengan port USB dan antara port kuasa dan HDMI) maka itu adalah Semakan 2. Anda juga perlu mengetahui versi kernel pemasangan Rasbian anda. Buka terminal dan masukkan arahan berikut untuk memeriksa:

    uname -r

    Sebaik sahaja anda mempunyai nombor Semakan dan nombor kernel, anda boleh melawat bahagian Pakej di sini untuk merebut pautan untuk pakej anda. Dalam kes kami, kami menggunakan papan Semakan 1 dengan kekunci 3.6.11 supaya kami dapat merebut fail raspbian-2013-02-09-rev1.zip.

    Untuk memasang semua barang yang kita perlukan untuk membuka terminal di Pi. dan kemudian masukkan arahan berikut untuk memasang pakej LedBorg.

    Catatan: Anda mesti mengganti URL dalam perintah ketiga dengan URL pakej 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 ketika ini, anda kini mempunyai pembalut GUI untuk pemandu LedBorg dan pemandu sendiri dipasang. Di desktop Raspbian anda, anda akan melihat ikon untuk pembungkus GUI:

    Teruskan dan klik pada ikon LedBorg untuk melancarkan pembalut GUI. Anda akan dirawat dengan antara muka pemetik warna seperti:

    Sekarang adalah masa yang tepat untuk memastikan modul anda berfungsi. Pilih mana-mana warna, simpan untuk hitam, untuk mencubanya. Kami akan mengujinya dengan memilih beberapa warna:

    Nampak bagus! Ia cerah dan plastik frosted kes yang kami pesan untuk projek itu menawarkan penyebaran sederhana. Sekiranya anda mahu bermain dengan modul LED lebih banyak sebelum beralih, klik Mod Demo:

    Dalam mod demo, anda boleh mengikuti semua warna pada pelbagai kelajuan, periksa output tinggi / rendah, dan meletakkan modul LED melalui langkah.

    Di sini dalam seksyen Mode Demo, anda juga boleh menghidupkan LedBorg anda menjadi penunjuk pertama. Dengan memilih CPU di bahagian Warna LED akan mula berubah dari hijau ke kuning ke merah untuk menunjukkan beban pada pemproses ARM Raspberry Pi. Kami cadangkan menukar Speed ​​to Slow semasa anda berada di sana-Kemas kini cepat LED terlalu cepat dan menjadikan penunjuk CPU mengganggu bukan berguna.

    Selain menggunakan antara muka GUI untuk memilih warna, anda boleh memilih warna dari terminal menggunakan nilai RGB. Buka terminal dan masukkan arahan berikut untuk mematikan LED:

    echo "000"> / dev / ledborg

    Cara LedBorg mengendalikan nilai RGB ialah 0 bermakna saluran dimatikan, 1 bermakna saluran adalah separuh kuasa, dan 2 bermakna saluran itu kuasa penuh. Jadi sebagai contoh 001 akan menetapkan saluran Merah pada 0%, saluran Hijau pada 0% dan saluran Biru pada 50% kuasa.

    Tukar nilai kepada 002 dan keluaran LED kekal biru tetapi menjadi lebih cerah kerana saluran Biru kini pada output 100%. Tukar nilai kepada 202 dan Red dan Biru pada gabungan penuh untuk membuat warna magenta.

    Sekarang kita tahu bagaimana untuk memanipulasi LED secara manual, mari kita lihat menggunakan skrip untuk menjadikan LED kami dari cahaya mudah untuk penunjuk sebenar.

    Mengkonfigurasi LedBorg Anda sebagai Penunjuk Hujan

    Untuk bahagian tutorial ini, kami akan menyisir beberapa perkara bersama untuk mengubah modul LED LedBorg kami menjadi penunjuk 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 beralih dari LED ke biru terang untuk menunjukkan hujan yang diramalkan.

    Pertama, kita perlu mendapatkan kunci akses API untuk Bawah Tanah Cuaca. Untuk kegunaan peribadi dan projek pembangunan kecil, API adalah percuma. Lawati halaman pendaftaran API Cuaca di sini dan daftar untuk kunci API.

    Sebaik sahaja anda mempunyai kunci API anda, lawati Underground Cuaca dan cari bandar yang anda ingin pantau. Dalam kes kami, kami akan memantau San Fransisco, CA. URL bagi halaman ramalan San Fransisco ialah:

    http://www.wunderground.com/US/CA/San_Francisco.html

    Bahagian penting untuk tujuan kami ialah bahagian terakhir URL: /CA/San_Francisco.html. Kami akan menggunakannya untuk mengedit URL ramalan untuk alat API. URL asas ialah:

    http://api.wunderground.com/api/YOUR API KEY / ramalan / q / STATE / CITY.json

    Anda boleh menjana ramalan untuk mana-mana bandar AS dengan memasukkan kunci API anda, kod huruf dua huruf, dan nama bandar dari URL yang anda tarik dari hasil carian Bawah Cuaca anda.

    Sebaik sahaja anda mempunyai URL API dengan kunci API anda dan negeri / bandar dimasukkan, anda kemudian boleh mengedit skrip Python berikut dengan membuat dokumen teks baru pada Pi anda menggunakan Leafpad dan menyisipkan kod berikut ke dalamnya:

    dari urllib2 import urlopen
    import json

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

    # Berikut ialah nilai penyahpepijatan.
    # Edit hash dan perubahan
    # integer ke 0-100 untuk menguji
    # tindak balas LED.

    # pop = 0

    cetak 'Kesempatan semasa hujan ialah .' .format (pop)

    # Tetapan lalai adalah untuk menghidupkan LED
    # untuk sebarang peluang hujan melebihi 20%. Anda boleh menyesuaikan
    # nilai dalam "jika pop> 20:" seperti yang anda mahu.

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

    Simpan fail sebagai wunderground.py di direktori / home / pi /. Buka terminal dan ketik perintah berikut:

    python wunderground.py

    Sekiranya anda telah memasukkan kunci API dan kod negara / bandar anda dengan betul, ia sepatutnya menendang respons yang kelihatan seperti:

    Sekiranya hujan diramalkan untuk kawasan anda, output LedBorg anda sepatutnya seperti:

    Sekarang menunggu hari hujan untuk menguji dengan betul skrip akan membosankan. Sekiranya tidak ada peluang hujan di kawasan anda hari ini dan anda mahu melihat cahaya LED, edit skrip wunderground.py dan gantikan nilai passthrough "pop = pop" dalam baris 13 dengan nilai lebih besar daripada 20 seperti 60 bahawa ramalan kami kembali. Ingatlah untuk menukar baris kembali ke "pop = pop" apabila anda selesai.

    Langkah terakhir adalah untuk menubuhkan tugas cron untuk menjalankan skrip yang kami simpan secara berkala secara automatik untuk memastikan arus penunjuk LED. Oleh kerana tugas ini diperlukan untuk skrip ini dan penunjuk e-mel yang berikut, kami akan menutup penubuhan tugas cron setelah kami menunjukkan kepada anda cara menyiapkan skrip lain.

    Mengkonfigurasi LedBorg Anda sebagai Penunjuk Gmail

    Siapa yang tidak menyukai pembaikan dopamin yang datang dengan melihat e-mel baru dalam peti masuk mereka? Dalam bahagian tutorial ini, kami akan menunjukkan kepada anda cara menggunakan LedBorg sebagai penunjuk Gmail yang baru. Sama seperti kali terakhir, kita akan menggabungkan input luaran (dalam hal ini suapan Atom bukan API) dan skrip mudah untuk memacu LED kami.

    Kita perlu mengembangkan fungsinya pemasangan Python sedikit dengan memasang FeedParser, alat bacaan RSS / Atom Python. Buka terminal dan masukkan arahan berikut:

    sudo easy_install feedparser

    Apabila pemasangan selesai, kami dapat menetapkan untuk membuat skrip semak Gmail kami. Sekali lagi, menggunakan Leafpad, tampal teks berikut ke dalam editor. Tukar nama pengguna dan kata laluan agar sesuai dengan nama pengguna dan kata laluan akaun Gmail yang ingin anda semak.

    import feedparser

    # Masukkan nama pengguna Gmail anda
    # dan kata laluan. Jangan masukkan
    # bahagian @ gmail.com
    # nama pengguna anda.

    username = "username"
    kata laluan = "kata laluan"

    mail = int (feedparser.parse ("https: //" + username + ":" + password + "@ mail.google.com/gmail/feed/atom")["feed"]["fullcount"])

    # Berikut ialah nilai penyahpepijatan.
    # Edit hash dan perubahan
    # integer ke 0 atau 1 untuk menguji
    # tindak balas LED.

    # mail = 0

    jika mel> 0:
    LedBorg = terbuka ('/ dev / ledborg', 'w')
    LedBorg.write ('020')
    del LedBorg
    cetak ('Mel!')
    lain:
    LedBorg = terbuka ('/ dev / ledborg', 'w')
    LedBorg.write ('000')
    del LedBorg
    cetak ('Tiada mel!')

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

    python gmailcheck.py

    Sekiranya anda mempunyai e-mel yang duduk di dalam peti masuk Gmail, LED akan bertukar menjadi hijau dan anda akan mendapat respons seperti itu:

    Sekiranya anda mempunyai mel dalam peti masuk Gmail anda, LedBorg akan kelihatan seperti itu:

    Sama seperti skrip pemeriksaan hujan, kami telah menyertakan nilai debugging. Sekiranya anda tidak mempunyai sebarang e-mel baru, anda boleh menghantar sendiri e-mel untuk meningkatkan kiraan peti masuk anda kepada 1 atau anda boleh mengedit hash ulasan dan menukar baris debug ke "mail = 1" untuk menguji skrip. Ingat untuk memulihkan garis apabila anda selesai ujian.

    Terus ke bahagian seterusnya tutorial untuk menetapkan skrip Gmail anda untuk dijalankan pada jadual.

    Menetapkan Kerja Cron untuk Menjalankan Skrip Anda

    Sekarang bahawa kita mempunyai dua skrip untuk dimainkan, kita perlu menyediakan tugas cron untuk menjalankannya sepanjang hari untuk memastikan arus penunjuk LED.

    Perkara pertama yang kami mahu lakukan ialah mematikan LED jika ia sedang dijalankan dari eksperimen kami yang terdahulu. Pada jenis terminal:

    echo "000"> / dev / ledborg

    Semasa anda masih berada di baris arahan, anda boleh membuka editor cron. Sekiranya anda tidak pernah menubuhkan pekerjaan cron sebelum ini, kami akan mencadangkan untuk memeriksa panduan kami untuk menggunakannya di sini. Yang berkata, kami akan membimbing anda untuk menyediakan jadual asas di sini.

    Pada jenis terminal:

    sudo crontab -e

    Ini akan membuka jadual cron Raspbian dalam editor teks Nano. Gunakan kekunci anak panah untuk tatal ke bahagian paling bawah. Di sinilah kita akan menyediakan kerja cron berulang untuk skrip Python kami.

    Jika anda ingin menyediakan skrip hujan, masukkan baris berikut ke dalam jadual cron:

    * / 5 * * * * python /home/pi/wunderground.py

    Tekan CTRL + X untuk keluar; pilih ya untuk menyimpan dan menimpa jadual cron yang ada. Nilai yang kami masukkan dalam jadual cron "* / 5 * * * *" menetapkan skrip untuk dijalankan setiap 5 minit, selama-lamanya.

    Setiap 5 minit adalah jangka masa yang baik untuk skrip yang memeriksa hujan yang diramalkan-anda juga boleh menyoal ia agak agresif-tetapi jika anda cuba untuk mengekalkan e-mel anda, ia terlalu lama untuk tempoh pemberitahuan . Jika anda menyediakan jadual skrip pemberitahuan Gmail masukkan baris berikut dalam jadual cron:

    * / 1 * * * * python /home/pi/wunderground.py

    Kemasukan ini menjalankan skrip gmailcheck.py setiap minit untuk pemberitahuan kemas kini yang lebih pantas.


    Itu sahaja yang ada padanya! Anda boleh mencuba skrip Python anda sendiri dengan mengangkat kenyataan jika / lain dari kami dan mencuba mereka dengan pembolehubah baru. Sekiranya anda dapat mencari sumber input untuk data, anda boleh mengubahnya menjadi pembolehubah dalam purata pasaran skrip Python-stock, undian debunga, Twitter menyebutkan, jika ada API untuk itu, anda boleh mengubahnya menjadi penunjuk LED ambient.

    Akhirnya, saya ingin mengucapkan terima kasih kepada semua sumber yang saya gunakan untuk projek ini. Telah sedikit lebih sedekad sejak saya aktif menulis program dan mengambil beberapa kejutan untuk mendapatkan debu dan karat. Para penyumbang di / r / LearnPython membantu saya menghisap dalam output API untuk Underground Cuaca, mengkaji bagaimana Michael di Mitch Tech menangani suapan Gmail Atom yang membuatnya untuk memudahkan LedBorg, dan mengkaji modul pembelajaran Python di Code Academy adalah cara yang baik untuk mengambil sintaks dasar dan struktur bahasa yang tidak pernah saya gunakan sebelumnya.