Daftar Isi:

SmartBin: 4 Langkah
SmartBin: 4 Langkah

Video: SmartBin: 4 Langkah

Video: SmartBin: 4 Langkah
Video: Bossard SmartBin FR - Smart Factory Logistics 2024, November
Anonim
Image
Image

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

Peralatan SmartBin
Peralatan SmartBin
Peralatan SmartBin
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

Pembuatan Kotak Raspberry dan Bilah LED
Pembuatan Kotak Raspberry dan Bilah LED
Pembuatan Kotak Raspberry dan Bilah LED
Pembuatan Kotak Raspberry dan Bilah LED
Pembuatan Kotak Raspberry dan Bilah LED
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

Bagian Tutupnya
Bagian Tutupnya
Bagian Tutupnya
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

Bagian Perangkat Lunak dan Akuisisi Data
Bagian Perangkat Lunak dan Akuisisi Data
Bagian Perangkat Lunak dan Akuisisi Data
Bagian Perangkat Lunak dan Akuisisi Data
Bagian Perangkat Lunak dan Akuisisi Data
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: