Isi kandungan:

Pumpkin Pi Trick-or-Treat Tracker: 5 Langkah
Pumpkin Pi Trick-or-Treat Tracker: 5 Langkah

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 Langkah

Video: Pumpkin Pi Trick-or-Treat Tracker: 5 Langkah
Video: Pumpkin With Moving Eyes! | Servo Arduino Raspberry Pi | Halloween Projects 2024, Julai
Anonim
Penjejak Labu Pi Trick-or-Treat
Penjejak Labu Pi Trick-or-Treat

Oleh elizabethna Ikuti Lagi oleh pengarang:

Cara Membina Monitor Suhu Raspberry Pi
Cara Membina Monitor Suhu Raspberry Pi
Cara Membina Monitor Suhu Raspberry Pi
Cara Membina Monitor Suhu Raspberry Pi
Alirkan Data Dari Helaian Google ke Papan Pemuka
Alirkan Data Dari Helaian Google ke Papan Pemuka
Alirkan Data Dari Helaian Google ke Papan Pemuka
Alirkan Data Dari Helaian Google ke Papan Pemuka
Rangkaian Sensor Suhu
Rangkaian Sensor Suhu
Rangkaian Sensor Suhu
Rangkaian Sensor Suhu

Mencari projek Halloween cepat yang berguna dalam lebih banyak cara daripada satu? Ingin meletakkan Pi Zero WH itu dengan baik? Rasa ingin menggunakan data untuk menentukan berapa banyak gula-gula yang anda perlukan untuk tahun depan?

Bersedialah untuk membina Tracker Pumpkin Trick-or-Treat! Berganda sebagai hiasan dan pelacak orang, Labu Pi-in-a-Pumpkin ini berubah warna dan mengalir ketika gerakan dikesan. Bermula dari awal, projek ini tidak akan membawa anda lebih dari satu petang untuk disatukan - tepat pada masanya untuk Halloween!

Bekalan

  • Pi Zero WH dengan Kad SD
  • Sensor Gerakan PIR
  • LED RGB
  • 220 ohm Perintang
  • (3) Garisan Dasi (F / F, M / F, M / M)
  • Bateri mudah alih
  • Labu Palsu

Langkah 1: Pemasangan Perkakasan

Pemasangan Perkakasan
Pemasangan Perkakasan
Pemasangan Perkakasan
Pemasangan Perkakasan
Pemasangan Perkakasan
Pemasangan Perkakasan

Setelah Pi anda berfungsi, anda perlu menyambungkan sensor gerakan & LED. Pastikan anda Pi tidak tersambung ke kuasa pada ketika ini.

Sensor gerakan kami menghendaki kami menyambungkannya ke kuasa, voltan, dan pin data 3.3V. Saya menyambungkan pin sensor 3.3V ke pin 1 dari Pi, pin sensor Ground ke pin 6 dari Pi, dan pin sensor Data ke pin 16 dari Pi. Gambar pertama menunjukkan sambungan penuh untuk Pi dan sensor gerakan.

LED sedikit lebih sukar daripada sensor gerakan kerana mereka memerlukan perintang agar dapat berjalan dengan betul tanpa merosakkannya atau Pi. Saya menggunakan tiga perintang 220 ohm tetapi perintang 220 dan 330 ohm biasanya digunakan dengan LED.

Untuk menyambung semuanya, anda boleh:

  • Pateri kaki LED ke perintang dan kemudian masukkan wayar ke Pi
  • Gunakan papan roti dan tali leher untuk menghubungkan semuanya
  • Gunakan tali leher dan pita elektrik untuk menyambungkan semuanya (seperti yang saya lakukan).

Kami akan menghubungkan LED kami ke pin 11, 13, dan 15. Ini sedikit lebih sukar daripada sensor gerakan, kerana kaki pada LED sesuai dengan warna tertentu! Kaki panjang adalah GND; dan, pada LED saya sekurang-kurangnya, kaki menjadi Merah, GND, Biru, Hijau. Saya menyambungkan Blue ke Pi pin 11, Green ke Pi pin 13, dan Red ke Pi pin 15. Gambar kedua menunjukkan sambungan litar akhir.

Langkah 2: Keadaan Awal

Keadaan awal
Keadaan awal
Keadaan awal
Keadaan awal

Tentu kita dapat melihat ketika gerakan dikesan dengan LED, tetapi bagaimana kita akan mengesan berapa banyak tipu daya atau penolong yang diturunkan untuk mencuri gula-gula kita?

Kami akan melakukan streaming ke papan pemuka setiap kali gerakan bermula dan berhenti dikesan. Oleh kerana papan pemuka ini dapat diakses dari mana saja dengan sambungan internet, kami dapat memantau dari jauh apakah seseorang menghampiri pintu depan / mangkuk gula-gula atau tidak.

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

Langkah 2: Pasang ISStreamer

Pasang modul Initial State Python ke Raspberry Pi anda. Pada prompt arahan (jangan lupa SSH ke Pi anda terlebih dahulu), jalankan arahan berikut:

$ cd / rumah / pi /

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

Langkah 3: Buat beberapa Automagik

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! Found easy_install: setuptools 1.1.6 Found pip: pip 1.5.6 from /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versi utama pip: 1 pip versi kecil: 5 ISStreamer dijumpai, dikemas kini … Keperluan sudah dikemas kini: ISStreamer di /Library/Python/2.7/site-packages Membersihkan… Adakah anda ingin mendapatkan skrip contoh secara automatik? [y / N] Di mana anda mahu menyimpan contohnya? [lalai:./is_example.py] Sila pilih aplikasi Status Permulaan yang anda gunakan: 1. app.initialstate.com 2. [BARU!] iot.app.initialstate.com Masukkan pilihan 1 atau 2: Masukkan iot.app nama pengguna.initialstate.com: Masukkan kata laluan iot.app.initialstate.com:

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 Keadaan Awal. Permintaan seterusnya akan bertanya di mana anda mahu menyimpan fail contoh. Anda boleh menaip jalan tempatan khusus atau tekan enter untuk menerima lokasi lalai. Akhirnya, anda akan ditanya aplikasi Negeri Permulaan yang anda gunakan. Sekiranya anda baru-baru ini membuat akaun, pilih pilihan 2, masukkan nama pengguna dan kata laluan anda. Selepas itu 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 parameter akses_key = "…" pada baris yang sama. Siri 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). Klik pada baldi ini dan kemudian klik pada ikon Gelombang untuk melihat data ujian.

Langkah 3: Skrip Python

Buat skrip dan buka editor teks dengan arahan berikut:

nano vistors.py

Salin dan lalui kod dari sini ke penyunting teks anda.

Sebelum kita berusaha menjalankan apa-apa, kita perlu membuat beberapa suntingan dan mengkaji semula apa yang berlaku dalam skrip kita.

import RPi. GPIO sebagai GPIO

dari masa tidur import dari ISStreamer. Streamer import Streamer # Beritahu Pi kita akan menggunakan sistem penomborannya GPIO.setmode (GPIO. BCM) # Pin yang D1 dan LED disambungkan ke PIN = 23 BLUE = 17 HIJAU = 27 MERAH = 22 # Tentukan pin sensor gerakan kami sebagai input GPIO.setup (PIN, GPIO. IN) # Tentukan pin LED kami sebagai output GPIO.setup (MERAH, GPIO. OUT) GPIO.output (RED, 0) GPIO.setup (HIJAU, GPIO. OUT) GPIO.output (HIJAU, 0) GPIO.setup (BLUE, GPIO. OUT) GPIO.output (BLUE, 0)

Garis 1-21 adalah untuk permulaan. Mula-mula kita mengimport antara muka Piio GPIO dan cara untuk mematikan skrip kita. Kemudian kami mengimport streamer Status Permulaan yang kami pasangkan pada halaman sebelumnya.

GPIO.setmode menentukan sistem penomboran yang kita gunakan untuk pin. Daripada lokasi fizikal, kami menggunakan sistem penomboran Pi. Seperti dalam rajah kami sebelumnya, pin yang kami pilih adalah 23, 17, 27, dan 22. Kami kemudian menetapkan pin gerakan sebagai input dan pin LED sebagai output.

# Nama baldi Negeri Permulaan (dipaparkan)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # Key Bucket State Permulaan (tersembunyi) BUCKET_KEY = "trickortreat" # Kekunci akses Negeri Permulaan ACCESS_KEY = "Your_Access_Key" # Pemboleh ubah yang memastikan kami tidak mengalirkan yang ada atau tidak gerakan dua kali berturut-turut # Ini menjimatkan peristiwa yang dihantar dan kuasa pemprosesan sudahRecordedMotion = False sudahRecordedNoMotion = False counter = 0 # Initialize the Initial State Streamer streamer = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) # Hidupkan LED ke output GPIO kuning (MERAH, 1) output GPIO (HIJAU, 1)

Garis 23-41 penting kerana kami menginisialisasi streamer State Initial dan menetapkan LED menjadi kuning. Masukkan kunci akses Negeri Permulaan anda pada baris 28.

# Gelung selama-lamanya

sementara Benar: # Jika sensor gerakan menarik tinggi (mengesan gerakan): jika GPIO.input (PIN) == 1: cetak "Gerak dikesan" # Sekiranya kita belum melakukan streaming: jika belum sudahRecordedMotion: counter = counter + 1 # Tetapkan LED ke GPIO.output merah (MERAH, 1) GPIO.output (HIJAU, 0) # Strim ke keadaan Awal streamer.log (": Ghost: or: chocolate_bar:?", ": chocolate_bar: Time For Treats!") streamer.log (": candy: Hungry Humans?: candy:", counter) streamer.flush () sudahRecordedMotion = Benar sudahRecordedNoMotion = Salah lain: # Jeda skrip untuk tidur 1 saat (1) yang lain: cetak "Tiada pergerakan dikesan" # Sekiranya kita belum melakukan streaming: jika belum direkodkanNoMotion: # Tetapkan LED ke GPIO.output kuning (MERAH, 1) GPIO.output (HIJAU, 1) # Alirkan ke Status Permulaan streamer.log (": hantu: atau: coklat_bar:? ",": no_pedestrians: No One Around ") streamer.flush () sudahRecordedNoMotion = Benar sudahRecordedMotion = Salah lain: # Jeda skrip untuk tidur 1 saat (1)

Garis 43-77 adalah daging kod. Sekiranya gerakan dikesan, skrip akan memeriksa untuk melihat apakah "Time For Treats!" telah disiarkan. Sekiranya belum, ia dihantar ke Status Permulaan dan LED diatur menjadi merah; jika ada, skrip menunggu 1 saat dan kemudian membaca dari sensor gerakan sekali lagi. Perkara yang sama berlaku sekiranya tiada pergerakan dikesan.

Sudah tiba masanya untuk menguji kodnya! Pastikan anda menyimpan fail yang diedit dengan kunci akses anda ditambahkan pada baris 28, dan kemudian masukkan ke terminal:

pengunjung python.py

Anda harus melihat LED menyala dan "Tiada gerakan dikesan" mula mencetak ke baris arahan. Cubalah melambaikan tangan ke atas sensor gerakan - kini anda akan melihat lampu merah dan "Gerak dikesan" mula dicetak!

Sekarang untuk mengesahkan bahawa bacaan kami sedang dialirkan ke Keadaan Awal.

Langkah 4: Papan Pemuka Trick-or-Treat

Papan Pemuka Trick-or-Treat
Papan Pemuka Trick-or-Treat

Pergi ke Keadaan Awal dan periksa papan pemuka anda! Anda mesti melihat baldi yang disebut "? Trick or Treat Tracker". Letakkan tangan anda di dekat sensor gerakan dan tonton kemas kini!

Papan pemuka saya terdiri daripada 2 Ubin Ringkasan yang memaparkan nilai Terakhir dan Histogram jumlah peristiwa sehingga saya dapat melihat berapa kali sensor itu dipicu.

Berikut adalah beberapa perkara yang perlu dipertimbangkan:

  • Anda mungkin mahu membahagikan jumlah "Manusia Lapar" dengan 2 untuk menjelaskan bahawa orang yang sama akan melintas di hadapan sensor gerakan dua kali - dalam perjalanan ke pintu anda dan dalam perjalanan pulang. Anda boleh melakukannya dengan Ekspresi Masa Nyata menggunakan persamaan "= math.round (([Hungry Humans?] / 2), 0)".
  • Anda boleh menguji betapa sensitifnya sensor gerakan anda dan meletakkannya di trotoar anda dengan sewajarnya. Saya cadangkan menjauhkannya dari pintu sehingga tidak mencetuskan ketika seseorang berdiri di pintu.
  • Anda juga boleh menetapkan amaran teks untuk memberitahu anda bahawa seseorang mendekat.
  • Pilih gambar latar untuk memberikan keperibadian menyeramkan pada papan pemuka anda!

Disyorkan: