Daftar Isi:
- Langkah 1: Peralatan SmartBin
- Langkah 2: Pembuatan Kotak Raspberry dan Bilah LED
- Langkah 3: Bagian Tutupnya
- Langkah 4: Bagian Perangkat Lunak dan Akuisisi Data
Video: SmartBin: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Tujuan utama dari proyek ini adalah untuk membuat perangkat elektronik yang menggunakan setidaknya satu Raspberry Pi. Tim ini terdiri dari 5 insinyur mesin masa depan dan satu insinyur otomasi. Proyek kami terdiri dari membuat tempat sampah yang membuka dan menutup secara otomatis dipicu oleh gerakan kaki di bawah detektor gerakan yang terletak di tengah di bagian depan tempat sampah. Stik USB Wifi digunakan untuk mengirim data ke situs web. Tempat sampah ini disebut "The SmartBin". Video lucu di atas memperkenalkan SmartBin kami yang inovatif.
Untuk melaksanakan proyek ini dan SmartBin yang luar biasa ini, beberapa alat diperlukan:
- satu meter
- lem yang kuat
- Pita perekat
- Sebuah gergaji kayu
- Sebuah obeng
- Sebuah mesin bor
- Sebuah penjepit
- Sebuah pisau
Langkah 1: Peralatan SmartBin
SmartBin terdiri dari lampu LED hijau, oranye dan merah yang ditempatkan pada perlengkapan di sisi kiri tempat sampah yang akan menunjukkan seberapa terisinya. Lampu-lampu ini akan terlihat jelas dan akan mengingatkan pengguna bila perlu mengganti kantong sampah. Bahasa pemrograman yang digunakan adalah Python. Tingkat pengisian tong sampah yang diukur dikirimkan ke situs web berikut:
Berikut adalah elemen yang telah digunakan tetapi Anda dapat dengan mudah menemukan solusi alternatif:
- 1 Tempat Sampah (tempat "penutup ayun")
- 1 Servomotor untuk membuka tempat sampah
- 1 Raspberry Pi 2
- 2 Catu daya (pengisi daya ponsel 5V dan catu daya 6V) untuk memasok Raspberry Pi dan servomotor
- 1 Sensor ultrasonik untuk mengukur tingkat pengisian tempat sampah
- Beberapa LED untuk menampilkan tingkat pengisian (4 hijau, 2 oranye dan 1 merah)
- 1 Detektor gerakan ultrasonik untuk mendeteksi gerakan
- 1 kartu SD 16Gb
- Resistor listrik (10.000 Ohm, 2000 Ohm dan 1000 Ohm)
- 1 USB USB stick untuk mengaktifkan transmisi nirkabel ke situs web.
- 1 Breadboard dan beberapa kabel Raspberry
Perkiraan harga produksi adalah € 80.
Langkah 2: Pembuatan Kotak Raspberry dan Bilah LED
Untuk pembuatan kotak Raspberry, gunakan gergaji kayu. Kencangkan setiap sisi kotak dengan paku keling agar terlihat bersih. Seperti namanya, kotak ini tidak hanya berisi Raspberry Pi tetapi juga akan menyertakan sensor gerak yang akan Anda tempatkan di bagian bawah. Setelah kotak dibuat, cat dengan warna yang sama dengan tempat sampah. Teknologi pencetakan 3D dapat digunakan untuk membuat kotak ini.
Untuk pembuatan batang LED, gunakan saluran listrik di mana Anda mengebor lubang untuk memungkinkan lampu LED dipasang. Bilah LED juga harus dicat. Setelah semuanya siap, pasang LED di saluran dan buat sambungan listrik. Perhatikan dengan benar nomor setiap kabel LED dengan pita perekat. Ini akan membantu Anda mengidentifikasi setiap LED selama pemasangan kabel.
Terakhir, pasang kotak dan bilah LED ke bagian depan tempat sampah Anda.
Langkah 3: Bagian Tutupnya
Mengenai tutup tempat sampah, langkah pertama adalah merekatkan servomotor ke tutupnya. Perpanjangan leverage harus dibuat sebelumnya. Tuas akan mencapai pemberhentian yang sebelumnya dibuat dengan tangan. Pasang kotak sekrup ke tutupnya dan buat lubang di dalamnya untuk menahan sensor ultrasonik di posisi yang tepat. Pastikan Anda memasang kabel dengan benar pada tutupnya dengan selotip.
Langkah 4: Bagian Perangkat Lunak dan Akuisisi Data
Untuk bagian software, kami menggunakan bahasa pemrograman python. Program disimpan dalam kartu SD yang akan dijalankan oleh Raspberry Pi saat dihidupkan. Skema pengkabelan tersedia di atas. Gambar pin Gpio tersedia untuk semua jenis raspberry pada link di bawah ini:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Dimungkinkan untuk menggunakan sensor ultrasonik untuk menggantikan detektor gerakan, Anda hanya perlu membuat "if loop" dalam kode.
Seperti disebutkan di atas, data mengenai tingkat pengisian bin ditransmisikan ke situs web yang dibuat di wix.com. Di situs web ini, Anda dapat menemukan tab berbeda yang mengumpulkan anggota tim, presentasi perangkat keras dan perangkat lunak, … Tab yang menarik sebenarnya adalah tab "Database" yang mengumpulkan informasi mengenai jumlah sampah langsung dari SmartBin dan membuat grafik dengan data. Grafik menampilkan evolusi tingkat pengisian. Dimungkinkan untuk melihat atau mengunduh data dari situs web. Tautan di bawah ini adalah situs web yang kami gunakan dan akan menunjukkan kepada Anda cara membaca dan menulis di google sheets dengan python:
www.makeuseof.com/tag/read-write-google-sh…
Mengenai "bagian autorun" dari kode, tulis di terminal: Sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Kemudian, di akhir skrip yang baru saja dibuka, tulis dua baris kode ini: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Untuk menyimpan aurorun, tekan: C trl + O Kemudian, tekan: Enter Kemudian, tekan: C trl + X
Tulis sebagai baris kode terakhir: sudo reboot
Anda juga dapat mengunduh lampiran yang merupakan kode python lengkap yang digunakan untuk proyek tersebut. Kedua kode dijalankan secara bersamaan!
Berikut adalah kode main.py:
impor RPi. GPIO sebagai GPIOimport datetime import time import csv
GPIO.setmode(GPIO. BCM)
GPIO.setwarnings(Salah)
capteurP = 7
servo = 17
GPIO.setup(servo, GPIO. OUT)
GPIO.setup(capteurP, GPIO. IN)
pwm=GPIO. PWM(17, 50)
GPIO.setup(5, GPIO. OUT)
GPIO.setup(6, GPIO. OUT) GPIO.setup(13, GPIO. OUT) GPIO.setup(19, GPIO. OUT) GPIO.setup(20, GPIO. OUT) GPIO.setup(21, GPIO. OUT) GPIO.setup(26, GPIO. OUT)
Trigonometri = 23
gema = 24
GPIO.setup(Trig, GPIO. OUT)
GPIO.setup(Echo, GPIO. IN)
GPIO.setwarnings(Salah)
GPIO.output(5, Salah)
GPIO.output(6, False) GPIO.output(13, False) GPIO.output(19, False) GPIO.output(20, False) GPIO.output(21, False) GPIO.output(26, False)
GPIO.output(Trig, Salah)
waktu = waktu.waktu()
jarak=100 memori=0 waktu.tidur(2) pwm.start(12.5)
sementara Benar:
timetac = time.time() jika GPIO.input(capteurP) dan timetac-timeset0.9: pwm. ChangeDutyCycle(2.5) time.sleep(0.2) memory=-0,5 pwm. ChangeDutyCycle(0) timetac = time.time() time.sleep(0.5) jika timetac-timeset>15 atau memori>0.4: jika memori>0.4: pwm. ChangeDutyCycle(2.5) time.sleep(1) untuk x dalam rentang (0, 1): # GPIO.output(Trig, Benar) time.sleep(0.01) GPIO.output(Trig, False)
sementara GPIO.input(Echo)==0 dan timetac-timeset<17: timetac = time.time() debutImpulsion = time.time()
sementara GPIO.input(Echo)==1:
finImpulsion = time.time() jika timetac-timeset<17: distance1 = round((finImpulsion - debutImpulsion) * 340 * 100 / 2, 1) distance2=jarak jika (jarak1-jarak2)<1 dan (jarak2-jarak1)0,4: dis=round((60-distance)*5/6, 1) dengan open('capteur.csv', 'w') sebagai csvfile: capteurwriter= csv.writer(csvfile) time_str= datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S') print('Waktu:{0} Jumlah:{1}'.format(time_str, dis)) capteurwriter. writerow([time_str, dis]) memory=-0.1 jika jarak < 52.5: GPIO.output(5, True) else: GPIO.output(5, False) jika jarak < 45: GPIO.output(6, True) else: GPIO.output(6, False) jika jarak < 37.5: GPIO.output(13, True) else: GPIO.output(13, False) jika jarak < 30: GPIO.output(19, True) else: GPIO.output(19, False) jika jarak < 22.5: GPIO.output(20, True) else: GPIO.output(20, False) jika jarak < 15: GPIO.output(21, True) else: GPIO.output(21, False) jika jarak < 7,5: GPIO.output(26, True) else: GPIO.output(26, False)
Berikut adalah kode csvcontrol.py. Jangan lupa untuk menempelkan file ".json" yang telah dibuat di direktori yang sama dengan main.py. File ".json" dibuat dengan google API. Tangkapan layar tersedia di gambar.
impor datetimeimport waktu impor csv impor gspread
dari oauth2client.service_account impor ServiceAccountCredentials
dari waktu impor sleep import traceback
waktuc2 = 'lol'
while True: time.sleep(5) loc=('capteur.csv') dengan open(loc) sebagai csvfile: readCSV = csv.reader(csvfile, delimiter=', ') untuk baris dalam readCSV: print(row[0]) timec=row[0] print(row[1]) distance=row[1] distance=float(str(distance)) if timec2!=timec: timec2=timec print('Waktu:{0} Jumlah:{ 1}'.format(waktu, jarak))
LINGKUP = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ menyetir"]
kredensial = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', SCOPES) gc = gspread.authorize(credentials) wks= gc.open("graph").sheet1 wks= wks.append_row((timec, distance))
Direkomendasikan:
Sistem Peringatan Parkir Terbalik Mobil Arduino - Langkah demi Langkah: 4 Langkah
Sistem Peringatan Parkir Mundur Mobil Arduino | Langkah demi Langkah: Pada proyek kali ini, saya akan merancang Rangkaian Sensor Parkir Mundur Mobil Arduino sederhana menggunakan Sensor Ultrasonik Arduino UNO dan HC-SR04. Sistem peringatan mundur mobil berbasis Arduino ini dapat digunakan untuk Navigasi Otonom, Jarak Robot, dan r
Langkah demi Langkah Membangun PC: 9 Langkah
Langkah demi Langkah Membangun PC: Perlengkapan: Perangkat Keras: MotherboardCPU & Pendingin CPUPSU (Unit catu daya)Penyimpanan (HDD/SSD)RAMGPU (tidak diperlukan)Kasing Alat: Obeng Gelang ESD/pasta matstermal dengan aplikator
Tiga Sirkuit Loudspeaker -- Tutorial Langkah-demi-Langkah: 3 Langkah
Tiga Sirkuit Loudspeaker || Tutorial Langkah-demi-Langkah: Sirkuit Loudspeaker memperkuat sinyal audio yang diterima dari lingkungan ke MIC dan mengirimkannya ke Speaker dari mana audio yang diperkuat diproduksi. Di sini, saya akan menunjukkan kepada Anda tiga cara berbeda untuk membuat Sirkuit Loudspeaker ini menggunakan:
Levitasi Akustik Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): 8 Langkah
Akustik Levitation Dengan Arduino Uno Langkah-demi-Langkah (8-langkah): transduser suara ultrasonik L298N Dc female adapter power supply dengan pin dc laki-laki Arduino UNOBreadboardCara kerjanya: Pertama, Anda mengunggah kode ke Arduino Uno (ini adalah mikrokontroler yang dilengkapi dengan digital dan port analog untuk mengonversi kode (C++)
SmartBin: 8 Langkah
SmartBin: Este é um projeto para um sistema inteligente de coletas, no qual os caminhões de lixo recebem dados das lixeiras, identificando a quantidade de lixo presente em cada uma delas, e uma rota de coleta traçada, com base nas informa