Isi kandungan:

Skala Pintar Raspberry Pi: 10 Langkah (dengan Gambar)
Skala Pintar Raspberry Pi: 10 Langkah (dengan Gambar)

Video: Skala Pintar Raspberry Pi: 10 Langkah (dengan Gambar)

Video: Skala Pintar Raspberry Pi: 10 Langkah (dengan Gambar)
Video: Hati2 bossku jika hendak cuci mobil. Pastikan pilih cuci steam yg model H agar lebih safety 🙏👍 2024, November
Anonim
Image
Image

Adakah anda bosan menatap skala bilik mandi berita buruk yang lama dan membosankan itu setiap pagi? Yang sering anda katakan "Saya benci kamu" kepada anda setiap kali anda memakainya. Mengapa tidak ada yang membuat skala yang sebenarnya menyenangkan atau memotivasi untuk digunakan? Sudah tiba masanya untuk membuat skala yang tidak hanya pintar tetapi mempunyai keperibadian yang sedikit lebih untuk mencerahkan hari anda. Kami akan membina skala bilik mandi pesanan teks yang dapat diretas, berat, dan dilengkapi dengan rasa humor terbina dalam.

Ini adalah projek yang menyeronokkan dan mudah yang menggabungkan papan keseimbangan Wii, Raspberry Pi, dan platform analisis data dalam talian untuk membuat skala bersambungan web yang dikendalikan oleh skrip Python yang boleh anda hack.

Tahap projek: Permulaan Masa anggaran untuk disiapkan: 20 minit Faktor suka: Tidak dapat diukur

Dalam tutorial langkah demi langkah ini, anda akan:

  • sambungkan papan keseimbangan Wii ke Raspberry Pi melalui bluetooth jalankan skrip Python yang mengukur berat badan anda ketika anda memijak papan keseimbangan
  • gunakan Raspberry Pi untuk mengalihkan berat badan anda ke perkhidmatan cloud (Status Permulaan)
  • sediakan pemberitahuan SMS setiap kali anda menimbang sendiri
  • bina papan pemuka penekanan berat yang boleh anda akses di penyemak imbas web anda

Langkah 1: Peralatan

Skala Papan Imbangan Wii
Skala Papan Imbangan Wii

Berikut adalah senarai semua peralatan yang akan kami gunakan dalam tutorial ini dengan pautan ke tempat anda boleh membeli setiap item.

  • Raspberry Pi 3 dengan kad SD dan Bekalan Kuasa (https://init.st/psuufmj)
  • Lembaga Imbangan Wii (https://init.st/qg4ynjl)
  • Pek Bateri Boleh Diisi Semula Wii Fit (https://init.st/iyypz2i)
  • 3/8 "Felt Pads (https://init.st/8gywmjj)
  • Pensil (Saya tidak memberi anda pautan ke tempat membeli pensil … anda semestinya memiliki salah satunya)

Catatan: Sekiranya anda mempunyai Raspberry Pi 1 atau 2, anda memerlukan penyesuai bluetooth (https://init.st/7y3bcoe)

Langkah 2: Skala Papan Imbangan Wii

Mengapa Lembaga Imbangan Wii? Ternyata ia adalah skala tahan lama yang sangat bagus yang mempunyai sambungan Bluetooth. Ini akan membolehkan kita menghubungkannya ke komputer papan tunggal (Raspberry Pi) untuk membaca berat badan anda dalam skrip Python dan menghantar pengukuran tersebut ke perkhidmatan data dalam talian untuk melakukan perkara yang menarik. Selain itu, ada kemungkinan besar anda atau seseorang yang anda kenal sudah memiliki satu yang hanya mengumpulkan habuk.

Kita perlu membuat sedikit pengubahsuaian pada Lembaga Imbangan Wii kami untuk menjadikan projek ini praktikal dan selesa.

Langkah 3: Persediaan Bluetooth

Raspberry Pi 3 dilengkapi dengan bluetooth yang terpasang, semua yang kita perlukan untuk berkomunikasi dengan Wii Balance Board. Sekiranya anda mempunyai Raspberry Pi 1 atau 2, kami harus menggunakan salah satu port USB kami untuk memasang penyesuai.

Nyalakan Pi anda (saya mengandaikan anda sudah memasang Raspbian dan boot) dan pergi ke tetingkap terminal Raspberry Pi anda. Anda dapat melihat alamat dongle bluetooth anda dengan arahan "hcitool dev":

$ hcitool devDevices: hci0 00: 1A: 7D: DA: 71: 13

Pasang modul bluetooth yang akan kami gunakan dalam skrip Python kami:

$ sudo apt-get install python-bluetooth

Setelah pemasangan selesai, kami bersedia untuk berhubung dan berkomunikasi dengan Wii Balance Board. Kami tidak akan memasangkan Papan kami secara kekal dengan Pi seperti yang kami lakukan dengan kebanyakan peranti bluetooth kami. Lembaga Imbangan Wii tidak pernah dimaksudkan untuk dipasangkan dengan apa pun selain Wii, dan pasangan tetap terbukti menjadi cabaran yang membingungkan. Berpasangan akan berlaku setiap kali kita menjalankan skrip Python kita.

Langkah 4: Membaca Skala

Sudah tiba masanya untuk menghubungkan Wii Balance Board kami ke Raspberry Pi kami. Kami akan melakukannya dengan mengubah versi skrip Gr8W8Upd8M8.py Stavros Korokithakis (https://github.com/skorokithakis/gr8w8upd8m8). Skrip python yang akan kita gunakan untuk langkah ini terletak di sini. Anda boleh menyalin kandungan fail ini ke fail yang anda buat di Raspberry Pi anda atau anda dapat mengklon semua fail python yang akan kami gunakan untuk keseluruhan projek ini. Mari buat yang terakhir. Ketik perintah berikut ke terminal pada Raspberry Pi anda:

$ cd ~ $ git clone $ git clone https: github.com/initialstate/smart-scale.git pengklonan menjadi 'smart-skala' … jarak jauh: Mengira objek: 14, selesai. jauh: Memampatkan objek: 100% (12/12), selesai. jauh: Jumlah 14 (delta 1), digunakan semula 8 (delta 0), pakaikan semula 0 Bongkar objek: 100% (14/14), selesai. Memeriksa sambungan … selesai.

pengklonan menjadi 'skala pintar' … jarak jauh: Membilang objek: 14, selesai. jauh: Memampatkan objek: 100% (12/12), selesai. jauh: Jumlah 14 (delta 1), digunakan semula 8 (delta 0), pakaikan semula 0 Bongkar objek: 100% (14/14), selesai. Memeriksa sambungan … selesai.

Anda akan melihat dua fail python dalam direktori skala pintar baru - smartscale.py dan wiiboard_test.py.

$ cd skala pintar $ lsREADME.md smartscale.py wiiboard_test.py

Jalankan skrip wiiboard_test.py untuk menguji komunikasi dan mengambil bacaan berat dari Lembaga Imbangan Wii:

$ sudo python wiiboard_test.py

Anda akan melihat tindak balas berikut:

Menemui papan … Tekan butang penyegerakan merah pada papan sekarang

Tanggalkan penutup bateri di bawah Papan untuk mencari butang penyegerakan merah. Pastikan anda menekan butang dalam beberapa saat setelah menjalankan skrip atau waktu tamat akan berlaku. Setelah berjaya, anda akan melihat sesuatu yang serupa dengan yang berikut:

Wiiboard dijumpai di alamat 00: 23: CC: 2E: E1: 44 Mencuba untuk menyambungkan… Disambungkan ke Wiiboard di alamat 00: 23: CC: 2E: E1: 44Wibiboard disambung kembali ke data tulis yang diterima84.9185297 lbs84.8826412 lbs84.9275927 lbs

Skrip wiiboard_test.py mengambil jumlah ukuran berat yang ditentukan pada baris 10 dan menghasilkan purata:

# --------- Tetapan Pengguna --------- WEIGHT_SAMPLES = 500 # ------------------------- --------

Anda boleh bermain dengan nombor ini dengan mengubah nilai dan menjalankan semula skrip untuk melihat variasi berat yang diukur dan masa yang diperlukan untuk setiap pengukuran. Timbang diri anda, timbang anjing anda, timbanglah apa sahaja dan lihat apakah ukuran itu masuk akal. Untuk menghentikan skrip, tekan CTRL + C.

Anda kini berjaya menukar Wii Balance Board anda menjadi skala yang disambungkan Raspberry Pi. Sekarang, jadikannya skala yang sejuk.

Langkah 5: Tweak Perkakasan

Tweak Perkakasan
Tweak Perkakasan

Nintendo menganggap anda akan sentiasa mengaktifkan Wii Balance Board dengan empat bateri AA dan tidak termasuk penyesuai kuasa AC. Memiliki hanya kuasa bateri akan menjadi tidak selesa kerana kita tidak dapat memasangkan Papan Wii kita ke Pi melalui bluetooth secara kekal. Kita perlu menyegerakkannya, kemudian membiarkannya tetap disegerakkan tanpa mengeringkan bateri sehingga kita hanya dapat memijak skala dan menimbang. Nasib baik, ada beberapa penyesuai pihak ketiga yang dibuat untuk Wii Balance Board yang dapat kita gunakan untuk memberikan kuasa berterusan dari stopkontak. Ganti bateri dengan pek bateri dan pasangkan penyesuai ac ke soket dinding.

Harus memasangkan Wii Balance Board dan Raspberry Pi setiap kali kami menjalankan skrip Python kami menimbulkan kesulitan lain kerana lokasi butang penyegerakan. Butang penyegerakan ada di bahagian bawah Papan Wii, yang bermaksud kita harus membalikkannya setiap kali kita perlu menyegerakkan. Kami dapat memperbaikinya dengan membuat tuas kecil menggunakan pensil dan tiga alas 3/8 "seperti yang ditunjukkan di atas. Pek bateri yang boleh dicas semula memaparkan butang penyegerakan ke permukaan bawah Papan. Pita pensil (atau sesuatu yang serupa) yang menjangkau dari butang penyegerakan ke bahagian depan luar Papan. Tumpukan tiga alas terasa 3/8 "(atau sesuatu yang serupa) di bahagian tengah pensil untuk membuat pangsi pegun. Berhati-hatilah untuk tidak mengeluarkan terlalu banyak pensil dari Dewan kerana anda tidak mahu seseorang mengeluarkannya secara tidak sengaja. Balikkan Papan ke atas dan anda boleh menekan butang penyegerakan dengan hanya menekan tuas ke bawah. Sedikit hack tetapi berkesan.

Bergantung pada cara anda menyimpan Papan Wii anda, anda mungkin ingin melepaskan pelekap getah dari kaki Papan (padnya hanyalah pelekat yang boleh anda lepaskan). Bantalan merasa 3/8 boleh diletakkan di kaki Papan agar mudah meluncur.

Langkah 6: Keadaan Awal

Keadaan awal
Keadaan awal

Kami ingin mengalirkan berat / data kami ke perkhidmatan cloud dan meminta perkhidmatan itu mengubah data kami menjadi papan pemuka yang bagus yang dapat kami akses dari komputer riba atau peranti mudah alih kami. Data kami memerlukan destinasi. Kami akan menggunakan Negeri Permulaan sebagai tujuan tersebut.

Langkah 1: Daftar untuk Akaun Negeri Permulaan Pergi ke https://iot.app.initialstate.com dan buat akaun baru.

Langkah 2: Pasang ISStreamerInstall modul Python State Initial ke Pi anda: Pada command prompt (jangan lupa SSH ke Pi anda terlebih dahulu), jalankan arahan berikut:

$ cd / home / pi / $ / curl -sSL https://get.initialstate.com/python -o - | sudo bash

Langkah 3: Buat beberapa Automagic Selepas Langkah 2 anda akan melihat sesuatu yang serupa dengan output berikut ke skrin:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bash Kata Laluan: Memulakan Pemasangan Mudah ISStreamer Python! Ini mungkin memerlukan beberapa minit untuk memasang, ambil kopi:) Tetapi jangan lupa untuk kembali, saya akan mempunyai soalan kemudian!

Find easy_install: setuptools 1.1.6

Pip yang dijumpai: pip 1.5.6 dari /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versi utama pip: 1 pip versi minor: 5 ISStreamer dijumpai, mengemas kini… Keperluan sudah terkini: ISStreamer di /Library/Python/2.7/site-packages Membersihkan… Adakah anda mahu mendapatkan skrip contoh secara automatik? [y / T]

(outputnya mungkin berbeza dan memakan masa lebih lama jika anda tidak pernah memasang modul streaming Initial State Python sebelum ini)

Apabila diminta untuk mendapatkan skrip contoh secara automatik, ketik y. Ini akan membuat skrip ujian yang dapat kita jalankan untuk memastikan bahawa kita dapat mengalirkan data ke Status Permulaan dari Pi kita. Anda akan diminta:

Di mana anda mahu menyimpan contohnya? [lalai:./is_example.py]:

Anda boleh menaip jalan tempatan khusus atau tekan enter untuk menerima lalai. Anda akan diminta untuk nama pengguna dan kata laluan yang baru anda buat semasa mendaftarkan akaun Negeri Permulaan anda. Masukkan keduanya dan pemasangan akan selesai.

Langkah 4: Kekunci Akses

Mari kita lihat contoh skrip yang telah dibuat.

$ nano is_example.py

Pada baris 15, anda akan melihat garis yang bermula dengan streamer = Streamer (bucket_…. Garis ini membuat baldi data baru bernama "Python Stream Contoh" dan dikaitkan dengan akaun anda. Perkaitan ini berlaku kerana access_key = "…" parameter pada baris yang sama. Huruf dan nombor yang panjang itu adalah kunci akses akaun Negeri Permulaan anda. Sekiranya anda pergi ke akaun Negeri Permulaan di penyemak imbas web anda, klik pada nama pengguna anda di kanan atas, kemudian pergi ke "Tetapan Saya", anda akan menemui kunci akses yang sama di bahagian bawah halaman di bawah "Kekunci Akses Streaming".

Setiap kali anda membuat aliran data, kunci akses itu akan mengarahkan aliran data tersebut ke akaun anda (jadi jangan bagikan kunci anda dengan siapa pun).

Langkah 5: Jalankan Contoh

Jalankan skrip ujian untuk memastikan kami dapat membuat aliran data ke akaun Negeri Permulaan anda. Jalankan perkara berikut:

$ python is_example.py

Langkah 6: Keuntungan

Kembali ke akaun Keadaan Awal anda di penyemak imbas web anda. Baldi data baru yang disebut "Contoh Python Stream" seharusnya muncul di sebelah kiri di rak log anda (anda mungkin perlu memuat semula halaman). Anda dapat melihat data di Tiles untuk melihat data yang sama dalam bentuk papan pemuka.

Langkah 7: Skrip Akhir

Dengan andaian anda menjalankan perintah "git clone https://github.com/InitialState/smart-scale.git" di Bahagian 2, skrip akhir yang menyatukan semuanya disebut smartscale.py dalam direktori skala ~ / pintar anda. (https://github.com/InitialState/smart-scale/blob/master/smartscale.py)

Beberapa tetapan perlu ditetapkan dalam skrip sebelum anda dapat menjalankannya. Buka smartscale.py di editor teks kegemaran anda seperti nano.

$ cd ~ $ cd skala pintar $ nano smartscale.py

Di bahagian atas fail ini, terdapat bahagian Tetapan Pengguna.

# --------- Tetapan Pengguna --------- BUCKET_NAME = ": apple: Sejarah Berat Saya" BUCKET_KEY = "weight11" ACCESS_KEY = "TEMPAT AKSES NEGERI INISIUM ANDA DI SINI" METRIK_UNITS = SalahWEIGHT_SAMPLES = 500THROWAWAY_SAMPLES = 100WEIGHT_HISTORY = 7 # ---------------------------------

  • BUCKET_NAME menetapkan nama baldi data Negeri Permulaan yang akan disalurkan oleh berat / data anda. Ini boleh ditetapkan di sini dan diubah kemudian di UI.
  • BUCKET_KEY adalah pengecam baldi unik yang menentukan tempat data anda akan dialirkan. Sekiranya anda ingin membuat baldi / papan pemuka yang berbeza, gunakan pengecam yang berbeza di sini (* perhatikan, jika anda mengarkibkan baldi, anda tidak boleh menggunakan semula kuncinya dalam baldi baru).
  • ACCESS_KEY adalah kunci akaun Negeri Permulaan anda. Sekiranya anda tidak memasukkan ACCESS_KEY dalam bidang ini, data anda tidak akan muncul di akaun anda.
  • METRIC_UNITS membolehkan anda menentukan berat badan anda dalam kg jika ditetapkan ke True atau lb jika ditetapkan ke False.
  • WEIGHT_SAMPLES menentukan berapa banyak ukuran yang diambil dan dirata-rata untuk mendapatkan berat sebenar anda. 500 pengukuran mengambil masa sekitar 4-5 saat dan memberikan hasil yang cukup tepat.
  • THROWAWAY_SAMPLES menentukan bilangan sampel yang dibuang ketika anda pertama kali melangkah ke papan. Ini menghalang langkah awal dan beralih daripada membuang pengukuran terakhir. Ini mestilah jauh lebih rendah daripada WEIGHT_SAMPLES.
  • WEIGHT_HISTORY menetapkan jumlah pengukuran yang diambil sebelum kemas kini tambahan dihantar. Hanya pengukuran yang diambil selama dua jam atau lebih yang berbeza-beza dalam sejarah.

Setelah anda menentukan setiap parameter di bahagian ini dan menyimpan perubahan anda, anda sudah bersedia untuk menjalankan skrip akhir. Sebelum kita menjalankan skrip, mari kita teliti apa yang akan dilakukannya.

  • Pada permulaan skrip, anda akan diminta untuk memasangkan Wii Balance Board anda dengan Raspberry Pi anda. Gunakan tuas yang anda peretas bersama di bahagian Bahagian 2: Tweaks Perkakasan untuk menekan butang penyegerakan apabila diminta.
  • Setelah skrip berjalan, pijak Papan Wii untuk mula mengukur berat badan anda. Selepas 4-5 saat, berat badan anda akan dihantar ke akaun Negeri Permulaan anda secara automatik.
  • Setelah kami menyediakan pemberitahuan SMS (dalam beberapa langkah), anda akan menerima pesanan teks segera setelah pengukuran anda.

Jalankan skrip untuk memulakan keajaiban.

$ sudo python smartscale.py

Langkah 8: Papan Pemuka

Papan Pemuka
Papan Pemuka

Pergi ke akaun Negeri Permulaan anda dan klik pada baldi data baru dengan nama yang sesuai dengan parameter BUCKET_NAME (iaitu Sejarah Berat Saya). Klik pada Tiles untuk melihat papan pemuka sejarah berat badan anda. Anda mesti melihat tiga jubin pada kali pertama anda melihat data anda di Jubin - Kemas kini, Tarikh Berat, dan Berat (lb). Anda boleh menyesuaikan papan pemuka anda dengan mengubah ukuran dan menggerakkan jubin serta menukar jenis pandangan dan bahkan menambahkan jubin. Papan pemuka ini memberi anda keupayaan untuk melihat sejarah berat badan anda sekilas. Ia mudah alih dan anda juga boleh berkongsi dengan orang lain.

Anda boleh menambahkan gambar latar ke papan pemuka untuk memberi data dan keperibadian anda lebih banyak konteks.

Langkah 9: SMS

SMS
SMS

Mari buat amaran SMS setiap kali skala mengambil ukuran berat. Pastikan baldi data sejarah berat anda dimuat.

  1. Klik pada tetapan baldi (di bawah namanya) di tetingkap baldi data.
  2. Klik pada tab Pencetus.
  3. Pilih aliran data untuk dicetuskan. Anda boleh menggunakan senarai drop-down untuk memilih dari aliran yang ada setelah baldi data dimuat atau anda boleh memasukkan nama / kunci aliran secara manual. Dalam tangkapan skrin contoh di atas, "Kemas kini" dipilih.
  4. Pilih pengendali bersyarat, dalam kes ini 'sepadan'.
  5. Pilih nilai Pencetus yang akan mencetuskan tindakan (taipkan nilai yang diinginkan secara manual). Taip lb jika anda tidak menggunakan unit metrik atau ketik kg jika anda menggunakan unit metrik. Setiap kali aliran "Kemas kini" mengandungi "lb" (atau "kg"), anda akan mendapat pemberitahuan pesanan teks.
  6. Klik butang '+' untuk menambah keadaan Pencetus.
  7. Masukkan alamat e-mel atau nombor telefon anda di medan "Kenalan untuk diberitahu".
  8. Klik butang '+' untuk menambahkan maklumat hubungan.
  9. Masukkan sebarang kod pengesahan jika menambahkan nombor telefon baru untuk menyelesaikan persediaan.
  10. Klik butang Selesai di bahagian bawah untuk kembali ke skrin utama. Pencetus anda kini aktif dan akan menyala apabila syarat dipenuhi.

Setelah persediaan selesai, anda akan mendapat SMS setiap kali anda menimbang berat badan anda, berapa banyak berat badan anda berubah sejak pengukuran terakhir, dan jenaka / penghinaan / pujian secara rawak.

Langkah 10: Kesimpulannya

Terdapat pilihan yang tidak terhad untuk anda membina apa yang anda buat sekarang. Berikut adalah beberapa idea untuk projek ini:

  • Anda boleh mengalirkan data dari sumber lain ke papan pemuka sejarah berat yang sama (maklumat) untuk membuat papan pemuka kesihatan peribadi anda sendiri.
  • Anda boleh menukar lelucon dalam fungsi messageWeighFirst, messageWeighLess, messageWeighMore, dan messageWeighSame mengikut rasa humor anda sendiri.
  • Anda boleh menukar jenaka menjadi mesej praktikal atau menghapusnya dan menggunakan kod skala untuk mengesan berat sesuatu yang lebih penting selain berat badan anda sendiri.
  • Anda boleh membuat peti sejuk bir / wain pintar anda sendiri menggunakan pendekatan yang sama. Sudah ada tutorial hebat yang dibuat untuk itu di sini.

Pergilah dan beritahu saya jika tutorial ini memberi inspirasi kepada anda untuk membuat sesuatu yang menakjubkan.

Disyorkan: