Isi kandungan:

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 projek ini adalah untuk membuat peranti elektronik yang menggunakan sekurang-kurangnya satu Raspberry Pi. Pasukan ini terdiri daripada 5 jurutera mekanikal masa depan dan satu jurutera automasi. Projek kami terdiri daripada membuat tong sampah yang terbuka dan ditutup secara automatik dipicu oleh pergerakan kaki di bawah alat pengesan gerakan yang terletak di tengah di bahagian depan tong sampah. Tongkat USB Wifi digunakan untuk mengirim data ke laman web. Tong sampah ini dipanggil "The SmartBin". Video lucu di atas memperkenalkan SmartBin inovatif kami.

Untuk melaksanakan projek ini dan SmartBin yang luar biasa ini, diperlukan beberapa alat:

  • Satu meter
  • Gam kuat
  • Pita pelekat
  • Gergaji kayu
  • Pemutar skru
  • Mesin gerudi
  • Pengapit
  • Pisau

Langkah 1: Peralatan SmartBin

Peralatan SmartBin
Peralatan SmartBin
Peralatan SmartBin
Peralatan SmartBin

SmartBin terdiri daripada lampu LED hijau, oren dan merah yang diletakkan di lekapan di sebelah kiri tong sampah yang akan menunjukkan betapa terisi itu. Lampu ini akan dapat dilihat dengan jelas dan akan memberi amaran kepada pengguna apabila perlu mengganti beg sampah. Bahasa pengaturcaraan yang digunakan adalah Python. Tahap pengisian tong sampah yang diukur dihantar ke laman web berikut:

Berikut adalah unsur-unsur yang telah digunakan tetapi anda boleh mencari penyelesaian alternatif dengan mudah:

  • 1 Bin (tong sampah "ayunan")
  • 1 Servomotor untuk membuka tong sampah
  • 1 Raspberry Pi 2
  • 2 Bekalan kuasa (pengecas telefon bimbit 5V dan bekalan kuasa 6V) untuk membekalkan Raspberry Pi dan servomotor
  • 1 Sensor ultrasonik untuk mengukur tahap pengisian tong sampah
  • Beberapa LED untuk menampilkan tahap pengisian (4 hijau, 2 oren dan 1 merah)
  • 1 Pengesan gerakan ultrasonik untuk mengesan pergerakan
  • 1 kad SD 16Gb
  • Perintang elektrik (10.000 Ohm, 2000 Ohm dan 1000 Ohm)
  • 1 WiFi usb stick untuk membolehkan penghantaran tanpa wayar ke laman web.
  • 1 Papan roti dan beberapa kabel Raspberry

Anggaran harga pembuatan ialah 80 €.

Langkah 2: Pembuatan Kotak Raspberry dan Bar LED

Pembuatan Kotak Raspberry dan Bar LED
Pembuatan Kotak Raspberry dan Bar LED
Pembuatan Kotak Raspberry dan Bar LED
Pembuatan Kotak Raspberry dan Bar LED
Pembuatan Kotak Raspberry dan Bar LED
Pembuatan Kotak Raspberry dan Bar LED

Untuk mengeluarkan kotak Raspberry, gunakan gergaji kayu. Kencangkan setiap sisi kotak dengan keling agar kelihatan bersih. Seperti namanya, kotak ini tidak hanya berisi Raspberry Pi tetapi juga menyertakan sensor gerakan yang akan anda letakkan di bahagian bawah. Setelah kotak dibina, cat dengan warna yang sama dengan tong sampah. Teknologi percetakan 3D dapat digunakan untuk membuat kotak ini.

Untuk pembuatan bar LED, gunakan saluran elektrik di mana anda menggerudi lubang untuk membolehkan lampu LED dipasang. Bar LED juga mesti dicat. Apabila semuanya sudah siap, pasang LED di saluran dan buat sambungan elektrik. Perhatikan dengan betul nombor setiap kabel LED dengan pita pelekat. Ini akan membantu anda mengenal pasti setiap LED semasa pendawaian.

Akhirnya, pasangkan kotak dan bar LED ke bahagian depan tong sampah anda.

Langkah 3: Bahagian Tudung

Bahagian Tudung
Bahagian Tudung
Bahagian Tudung
Bahagian Tudung

Mengenai penutup tong sampah, langkah pertama adalah melekatkan servomotor ke penutupnya. Perluasan leverage mesti dibuat sebelumnya. Tuas akan memukul stop yang sebelumnya dibuat dengan tangan. Pasang kotak skru ke penutup dan buat lubang di dalamnya untuk menahan sensor ultrasonik pada kedudukan yang betul. Pastikan anda memasang kabel pada penutup dengan pita dengan betul.

Langkah 4: Bahagian Perisian dan Perolehan Data

Bahagian Perisian dan Perolehan Data
Bahagian Perisian dan Perolehan Data
Bahagian Perisian dan Perolehan Data
Bahagian Perisian dan Perolehan Data
Bahagian Perisian dan Perolehan Data
Bahagian Perisian dan Perolehan Data

Mengenai bahagian perisian, kami menggunakan bahasa pengaturcaraan python. Program ini disimpan dalam kad SD yang akan dijalankan oleh Raspberry Pi apabila dihidupkan. Skema pendawaian terdapat di atas. Gambar pin Gpio tersedia untuk semua jenis raspberry pada pautan di bawah:

www.raspberrypi-spy.co.uk/2012/06/simple-g…

Anda boleh menggunakan sensor ultrasonik untuk menggantikan pengesan pergerakan, anda hanya perlu membuat "if loop" dalam kod.

Seperti disebutkan di atas, data mengenai tingkat tempat tong sampah diisi dikirim ke situs web yang dibuat di wix.com. Di laman web ini, anda dapat mencari tab yang berbeza yang mengumpulkan ahli pasukan, persembahan perkakasan dan perisian, … Tab yang menarik sebenarnya adalah tab "Pangkalan Data" yang mengumpulkan maklumat mengenai jumlah sampah langsung dari SmartBin dan membuat grafik dengan data. Grafik memaparkan evolusi tahap pengisian. Adalah mungkin untuk melihat atau memuat turun data dari laman web. Pautan di bawah adalah laman web yang kami gunakan dan akan menunjukkan kepada anda cara membaca dan menulis di helaian google dengan python:

www.makeuseof.com/tag/read-write-google-sh…

Mengenai "bahagian autorun" kod, tulis di terminal: sudo nano / etc / xdg / lxsession / LXDE-pi / autostart

Kemudian, di akhir skrip yang baru dibuka, tulis dua baris kod 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 kod terakhir: rebo sudo

Anda juga dapat memuat turun lampiran yang merupakan kod python penuh yang digunakan untuk projek tersebut. Kedua-dua kod dijalankan pada masa yang sama!

Inilah kod main.py:

import 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)

Trig = 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, Salah)

GPIO.output (Trig, Salah)

timeset = time.time ()

jarak = 100 memori = 0 masa. tidur (2) pwm. memulakan (12.5)

Walaupun Betul:

timetac = time.time () if 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) if timetac-timeset> 15 atau memory> 0.4: if memory> 0.4: pwm. ChangeDutyCycle (2.5) time.sleep (1) for x in range (0, 1): # GPIO.output (Trig, Betul) masa. Tidur (0,01) GPIO. Output (Trig, Salah)

manakala GPIO.input (Echo) == 0 dan timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()

sementara GPIO.input (Echo) == 1:

finImpulsion = time.time () if timetac-timeset <17: jarak1 = pusingan ((finImpulsion - debutImpulsion) * 340 * 100/2, 1) jarak2 = jarak jika (jarak1-jarak2) <1 dan (jarak2-jarak1) 0.4: dis = bulat ((60-jarak) * 5/6, 1) dengan terbuka ('capteur.csv', 'w') sebagai csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '% Y-% m-% d% H:% M:% S') mencetak ('Time: {0} Quantitee: {1}'. format (time_str, dis)) capteurwriter. writerow ([time_str, dis]) memori = -0.1 jika jarak <52.5: GPIO.output (5, True) lain: GPIO.output (5, False) jika jarak <45: GPIO.output (6, True) yang lain: GPIO.output (6, False) jika jarak <37.5: GPIO.output (13, True) lain: GPIO.output (13, False) jika jarak <30: GPIO.output (19, True) lain: GPIO.output (19, Salah) jika jarak <22.5: GPIO.output (20, True) lain: GPIO.output (20, False) jika jarak <15: GPIO.output (21, True) lain: GPIO.output (21, False) jika jarak <7.5: GPIO.output (26, Betul) yang lain: GPIO.output (26, Salah)

Inilah kod csvcontrol.py. Jangan lupa tampal fail ".json" yang dibuat di direktori main.py. yang sama. Fail ".json" dibuat dengan API Google. Tangkapan skrin tersedia dalam gambar.

import datetimeimport time import csv import gspread

dari oauth2client.service_account import ServiceAccountCredentials

dari masa import impak impak tidur

timec2 = 'lol'

manakala True: time.sleep (5) loc = ('capteur.csv') dengan open (loc) sebagai csvfile: readCSV = csv.reader (csvfile, delimiter = ',') untuk baris dalam readCSV: print (baris [0]) timec = baris [0] cetak (baris [1]) jarak = baris [1] jarak = terapung (str (jarak)) jika timec2! = timec: timec2 = timec print ('Time: {0} Quantitee: { 1} '. Format (timec, jarak))

SKOP = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ memandu "]

credentials = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (credentials) wks = gc.open ("grafik"). sheet1 wks = wks.append_row ((timec, jarak))

Disyorkan: