Daftar Isi:

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

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

Video: Labu Pi Trick-or-Treat Tracker: 5 Langkah
Video: *UPDATED* Unlock the Horror Pumpkin Mask in GTA Online! (ALL Pumpkin Locations Guide) 2024, Juli
Anonim
Labu Pi Trick-or-Treat Tracker
Labu Pi Trick-or-Treat Tracker

Oleh elizabethnaIkuti Lainnya oleh penulis:

Cara Membuat Monitor Suhu Raspberry Pi
Cara Membuat Monitor Suhu Raspberry Pi
Cara Membuat Monitor Suhu Raspberry Pi
Cara Membuat Monitor Suhu Raspberry Pi
Streaming Data Dari Google Spreadsheet ke Dasbor
Streaming Data Dari Google Spreadsheet ke Dasbor
Streaming Data Dari Google Spreadsheet ke Dasbor
Streaming Data Dari Google Spreadsheet ke Dasbor
Jaringan Sensor Suhu
Jaringan Sensor Suhu
Jaringan Sensor Suhu
Jaringan Sensor Suhu

Mencari proyek Halloween cepat yang berguna dalam lebih dari satu cara? Ingin menggunakan Pi Zero WH itu dengan baik? Ingin menggunakan data untuk menentukan berapa banyak permen yang Anda perlukan untuk tahun depan?

Bersiaplah untuk membuat Labu Pi Trick-or-Treat Tracker! Menggandakan sebagai dekorasi dan pelacak orang, Pi-in-a-Labu ini berubah warna dan mengalir ketika gerakan terdeteksi. Mulai dari awal yang mutlak, proyek ini tidak akan memakan waktu lebih dari satu sore untuk Anda kumpulkan - tepat pada waktunya untuk Halloween!

Perlengkapan

  • Pi Nol WH dengan Kartu SD
  • Sensor Gerak PIR
  • LED RGB
  • Resistor 220 ohm
  • (3) Garis Tie (F/F, M/F, M/M)
  • Baterai Portabel
  • Labu Palsu

Langkah 1: Perakitan Perangkat Keras

Perakitan Perangkat Keras
Perakitan Perangkat Keras
Perakitan Perangkat Keras
Perakitan Perangkat Keras
Perakitan Perangkat Keras
Perakitan Perangkat Keras

Setelah Pi Anda aktif dan berjalan, kami perlu menghubungkan sensor gerak & LED. Pastikan Pi Anda tidak terhubung ke daya pada saat ini.

Sensor gerak kami mengharuskan kami menghubungkannya ke daya 3.3V, ground, dan pin data. Saya menghubungkan pin sensor 3.3V ke pin 1 Pi, pin sensor Ground ke pin 6 Pi, dan pin sensor Data ke pin 16 Pi. Gambar pertama menunjukkan koneksi penuh untuk Pi dan sensor gerak.

LED sedikit lebih rumit daripada sensor gerak karena memerlukan resistor agar dapat berjalan dengan benar tanpa merusaknya atau Pi. Saya menggunakan tiga resistor 220 ohm tetapi resistor 220 dan 330 ohm biasanya digunakan dengan LED.

Untuk menyambungkan semuanya, Anda dapat:

  • Solder kaki LED ke resistor dan kemudian jalankan kabel ke Pi
  • Gunakan papan tempat memotong roti dan garis dasi untuk menghubungkan semuanya
  • Gunakan garis dasi dan pita listrik untuk menghubungkan semuanya (seperti yang saya lakukan).

Kami akan menghubungkan LED kami ke pin 11, 13, dan 15. Ini sedikit lebih rumit daripada sensor gerak, karena kaki pada LED sesuai dengan warna tertentu! Kaki panjangnya adalah GND; dan, setidaknya pada LED saya, kaki-kakinya menjadi Merah, GND, Biru, Hijau. Saya menghubungkan Biru ke Pi pin 11, Hijau ke Pi pin 13, dan Merah ke Pi pin 15. Gambar kedua menunjukkan koneksi sirkuit akhir.

Langkah 2: Status Awal

Keadaan Awal
Keadaan Awal
Keadaan Awal
Keadaan Awal

Tentu kita bisa melihat saat gerakan terdeteksi dengan LED, tapi bagaimana kita akan melacak berapa banyak trick-or-treater yang mampir untuk mencuri permen kita?

Kami akan melakukan streaming ke dasbor setiap kali gerakan dimulai dan berhenti terdeteksi. Karena dasbor ini dapat diakses dari mana saja dengan koneksi internet, kita dapat memantau dari jarak jauh apakah ada orang yang mendekati pintu depan/mangkuk permen atau tidak.

Langkah 1: Daftar untuk Akun Negara Awal Buka https://iot.app.initialstate.com dan buat akun baru.

Langkah 2: Instal ISStreamer

Instal modul Initial State Python ke Raspberry Pi Anda. Pada prompt perintah (jangan lupa untuk SSH ke Pi Anda terlebih dahulu), jalankan perintah berikut:

$ cd /rumah/pi/

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

Langkah 3: Buat Automagic

Setelah Langkah 2 Anda akan melihat sesuatu yang mirip dengan output berikut ke layar:

pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

Password: Memulai Instalasi Mudah ISStreamer Python! Ini mungkin memerlukan beberapa menit untuk menginstal, ambil kopi:) Tapi jangan lupa untuk kembali, saya akan memiliki pertanyaan nanti! Ditemukan easy_install: setuptools 1.1.6 Ditemukan pip: pip 1.5.6 dari /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip versi utama: 1 pip versi minor: 5 ISStreamer ditemukan, memperbarui… Persyaratan sudah diperbarui: ISStreamer di /Library/Python/2.7/site-packages Membersihkan… Apakah Anda ingin mendapatkan contoh skrip secara otomatis? [y/T] Di mana Anda ingin menyimpan contoh? [default:./is_example.py] Silakan pilih aplikasi Status Awal yang Anda gunakan: 1. app.initialstate.com 2. [BARU!] iot.app.initialstate.com Masukkan pilihan 1 atau 2: Masukkan iot.app.initialstate.com nama pengguna: Masukkan kata sandi iot.app.initialstate.com:

Saat diminta untuk mendapatkan skrip contoh secara otomatis, ketik y. Ini akan membuat skrip pengujian yang dapat kita jalankan untuk memastikan bahwa kita dapat mengalirkan data ke Status Awal. Prompt berikutnya akan menanyakan di mana Anda ingin menyimpan file contoh. Anda dapat mengetikkan jalur lokal khusus atau menekan enter untuk menerima lokasi default. Terakhir, Anda akan ditanya aplikasi Status Awal mana yang Anda gunakan. Jika Anda baru saja membuat akun, pilih opsi 2, masukkan nama pengguna dan kata sandi Anda. Setelah itu instalasi akan selesai.

Langkah 4: Tombol Akses

Mari kita lihat contoh script yang telah dibuat. $ nano is_example.py Pada baris 15, Anda akan melihat baris yang dimulai dengan streamer = Streamer(bucket_ …. Baris ini membuat data bucket baru bernama “Python Stream Example” dan dikaitkan dengan akun Anda. Asosiasi ini terjadi karena access_key="…” parameter pada baris yang sama. Rangkaian huruf dan angka yang panjang itu adalah kunci akses akun Status Awal Anda. Jika Anda masuk ke akun Status Awal Anda di browser web, klik nama pengguna Anda di kanan atas, lalu buka ke "pengaturan saya", Anda akan menemukan kunci akses yang sama di bagian bawah halaman di bawah "Kunci Akses Streaming".

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

Langkah 5: Jalankan Contoh

Jalankan skrip pengujian untuk memastikan kami dapat membuat aliran data ke akun Status Awal Anda. Jalankan yang berikut ini:

$ python is_example.py

Langkah 6: Untung

Kembali ke akun Status Awal Anda di browser web Anda. Keranjang data baru yang disebut "Contoh Aliran Python" seharusnya muncul di sebelah kiri di rak log Anda (Anda mungkin harus menyegarkan halaman). Klik pada ember ini dan kemudian klik pada ikon Gelombang untuk melihat data pengujian.

Langkah 3: Skrip Python

Buat skrip dan buka editor teks dengan perintah berikut:

nano vistors.py

Salin dan tempel kode dari sini ke editor teks Anda.

Sebelum mencoba menjalankan apa pun, kita perlu melakukan beberapa pengeditan dan meninjau apa yang terjadi di skrip kita.

impor RPi. GPIO sebagai GPIO

from time import sleep from ISStreamer. Streamer import Streamer # Beri tahu Pi kita akan menggunakan sistem penomorannya GPIO.setmode(GPIO. BCM) # Pin yang D1 dan LED terhubung ke PIN = 23 BIRU = 17 HIJAU = 27 MERAH = 22 # Tentukan pin sensor gerak kita sebagai input GPIO.setup(PIN, GPIO. IN) # Tentukan pin LED kita sebagai output GPIO.setup(RED, GPIO. OUT) GPIO.output(RED, 0) GPIO.setup(GREEN, GPIO. OUT) GPIO.output(HIJAU, 0) GPIO.setup(BIRU, GPIO. OUT) GPIO.output(BIRU, 0)

Baris 1-21 adalah untuk inisialisasi. Pertama kita mengimpor antarmuka GPIO Pi dan cara untuk menidurkan skrip kita. Kemudian kita import initial state streamer yang sudah kita install di halaman sebelumnya.

GPIO.setmode menentukan sistem penomoran yang kita gunakan untuk pin. Daripada lokasi fisik, kami menggunakan sistem penomoran Pi. Seperti pada diagram kami sebelumnya, pin yang kami pilih adalah 23, 17, 27, dan 22. Kami kemudian mengatur pin gerak sebagai input dan pin LED sebagai output.

# Nama bucket Status Awal (ditampilkan)

BUCKET_NAME = ":jack_o_lantern: Trick or Treat Tracker" # Kunci bucket Status Awal (tersembunyi) BUCKET_KEY = "trickortreat" # Kunci akses Status Awal ACCESS_KEY = "Your_Access_Key" # Variabel yang memastikan kita tidak melakukan streaming yang ada atau tidak gerak dua kali berturut-turut # Ini menghemat peristiwa yang dikirim dan kekuatan pemrosesan sudahRecordedMotion = False beenRecordedNoMotion = Penghitung salah = 0 # Inisialisasi Status Awal Streamer streamer = Streamer(bucket_name=BUCKET_NAME, bucket_key=BUCKET_KEY, access_key=ACCESS_KEY) # Hidupkan dan atur LED menjadi kuning GPIO.output(MERAH, 1) GPIO.output(HIJAU, 1)

Baris 23-41 penting karena kita menginisialisasi streamer Status Awal dan mengatur LED menjadi kuning. Letakkan kunci akses Status Awal Anda di baris 28.

# Putar tanpa batas

while True: # Jika sensor gerak menarik tinggi (mendeteksi gerakan): if GPIO.input(PIN) == 1: print "Motion detect" # Jika kita belum streaming: jika belumRecordedMotion: counter = counter + 1 # Atur LED menjadi merah GPIO.output(RED, 1) GPIO.output(GREEN, 0) # Stream ke Status Awal streamer.log(":ghost: or:chocolate_bar:?", ":chocolate_bar: Time For Treats!") streamer.log(":permen: Manusia Lapar?:permen:", counter) streamer.flush() sudahRecordedMotion = Benar sudahRecordedNoMotion = Salah lain: # Jeda skrip selama 1 detik tidur(1) else: print "Tidak ada gerakan yang terdeteksi" # Jika kita belum melakukan streaming: jika belumRecordedNoMotion: # Atur LED menjadi kuning GPIO.output(RED, 1) GPIO.output(GREEN, 1) # Stream ke Initial State streamer.log(":ghost: or:chocolate_bar:?", ":no_pedestrians: No One Around") streamer.flush() sudahRecordedNoMotion = Benar sudahRecordedMotion = Salah lagi: # Jeda skrip selama 1 detik tidur(1)

Baris 43-77 adalah inti dari kode. Jika gerakan terdeteksi, skrip akan memeriksa untuk melihat apakah "Waktunya untuk Perlakukan!" sudah di streaming. Jika belum, itu dikirim ke Status Awal dan LED diatur ke merah; jika sudah, skrip menunggu 1 detik dan kemudian membaca dari sensor gerak lagi. Hal yang sama berlaku jika tidak ada gerakan yang terdeteksi.

Saatnya untuk menguji kode! Pastikan Anda telah menyimpan file yang diedit dengan kunci akses Anda ditambahkan pada baris 28, dan kemudian masuk ke terminal:

pengunjung python.py

Anda akan melihat LED menyala dan "Tidak ada gerakan yang terdeteksi" mulai mencetak ke baris perintah. Coba lambaikan tangan Anda di atas sensor gerak - Anda sekarang akan melihat lampu merah dan "Gerakan terdeteksi" mulai mencetak!

Sekarang untuk memverifikasi bahwa bacaan kita sedang dialirkan ke Keadaan Awal.

Langkah 4: Dasbor Trick-or-Treat

Dasbor Trick-or-Treat
Dasbor Trick-or-Treat

Pergilah ke Status Awal dan periksa dasbor Anda! Anda akan melihat ember yang disebut "?Trick or Treat Tracker". Lambaikan tangan Anda di dekat sensor gerak dan saksikan pembaruannya!

Dasbor saya terdiri dari 2 Ubin Ringkasan yang menampilkan nilai Terakhir dan Histogram jumlah peristiwa sehingga saya dapat melihat jam berapa sensor dipicu.

Berikut adalah beberapa hal yang perlu dipertimbangkan:

  • Anda mungkin ingin membagi jumlah "Manusia Lapar" dengan 2 untuk memperhitungkan fakta bahwa orang yang sama akan lewat di depan sensor gerak dua kali - dalam perjalanan ke pintu Anda dan dalam perjalanan kembali. Anda dapat melakukannya dengan Ekspresi Real-Time menggunakan persamaan "=math.round(([Manusia Lapar?]/2), 0)".
  • Anda dapat menguji seberapa sensitif sensor gerak Anda dan meletakkannya di trotoar Anda. Saya sarankan untuk menjaganya cukup jauh dari pintu sehingga tidak terpicu ketika seseorang berdiri di pintu.
  • Anda juga dapat mengatur peringatan teks untuk memberi tahu Anda bahwa seseorang sedang mendekat.
  • Pilih gambar latar belakang untuk memberi dasbor Anda kepribadian yang sedikit menyeramkan!

Direkomendasikan: