Mục lục:
- Bước 1: Thiết bị SmartBin
- Bước 2: Sản xuất Hộp mâm xôi và Thanh đèn LED
- Bước 3: Phần nắp
- Bước 4: Phần Phần mềm và Thu thập Dữ liệu
Video: SmartBin: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Mục đích chính của dự án này là tạo ra một thiết bị điện tử sử dụng ít nhất một Raspberry Pi. Đội gồm 5 kỹ sư cơ khí tương lai và một kỹ sư tự động hóa. Dự án của chúng tôi bao gồm việc chế tạo một thùng rác có thể đóng mở tự động được kích hoạt bằng chuyển động của chân dưới máy dò chuyển động nằm ở trung tâm phía trước thùng rác. Thanh USB Wifi được sử dụng để gửi dữ liệu lên một trang web. Thùng rác này được gọi là "SmartBin". Video hài hước ở trên giới thiệu SmartBin sáng tạo của chúng tôi.
Để thực hiện dự án và SmartBin đáng chú ý này, một số công cụ là cần thiết:
- Một mét
- Keo mạnh
- Một băng dính
- Cưa gỗ
- Tuốc nơ vít
- Một máy khoan
- Một cái kẹp
- Một con dao
Bước 1: Thiết bị SmartBin
SmartBin bao gồm các đèn LED màu xanh lá cây, cam và đỏ được đặt trên một vật cố định ở phía bên trái của thùng sẽ cho biết mức độ đầy của thùng. Các đèn này sẽ hiển thị rõ ràng và sẽ cảnh báo cho người dùng khi cần thay túi rác. Ngôn ngữ lập trình được sử dụng là Python. Mức đổ đầy đo được của thùng được truyền tới trang web sau:
Dưới đây là các yếu tố đã được sử dụng nhưng bạn có thể dễ dàng tìm thấy một giải pháp thay thế:
- 1 Thùng (thùng "nắp xoay")
- 1 Servomotor để mở thùng rác
- 1 Raspberry Pi 2
- 2 Nguồn điện (bộ sạc điện thoại di động 5V và nguồn điện 6V) để cung cấp cho Raspberry Pi và động cơ servo
- 1 Cảm biến siêu âm để đo mức độ đầy của thùng
- Một số đèn LED để hiển thị mức độ lấp đầy (4 màu xanh lá cây, 2 màu cam và 1 màu đỏ)
- 1 Máy dò chuyển động siêu âm để phát hiện chuyển động
- 1 thẻ SD 16Gb
- Điện trở (10.000 Ohms, 2000 Ohms và 1000 Ohms)
- 1 USB WiFi để có thể truyền không dây vào trang web.
- 1 Breadboard và một số cáp Raspberry
Giá sản xuất ước tính là 80 €.
Bước 2: Sản xuất Hộp mâm xôi và Thanh đèn LED
Để sản xuất hộp Raspberry, hãy sử dụng cưa gỗ. Dùng đinh tán buộc chặt mọi mặt của hộp để làm cho hộp trông sạch sẽ. Như tên gọi của nó, hộp này không chỉ chứa Raspberry Pi mà còn bao gồm cảm biến chuyển động mà bạn sẽ đặt ở dưới cùng. Sau khi đóng hộp, hãy sơn nó cùng màu với thùng. Công nghệ in 3D có thể được sử dụng để tạo ra hộp này.
Để sản xuất thanh LED, hãy sử dụng một ống dẫn điện trong đó bạn khoan lỗ để cho phép lắp đặt đèn LED. Thanh LED cũng phải được sơn. Khi mọi thứ đã sẵn sàng, hãy lắp đèn LED vào ống dẫn và thực hiện kết nối điện. Chú ý đánh số đúng từng sợi cáp LED bằng băng dính. Nó sẽ giúp bạn xác định từng đèn LED trong quá trình đấu dây.
Cuối cùng, gắn hộp và thanh đèn LED vào phía trước thùng của bạn.
Bước 3: Phần nắp
Liên quan đến nắp thùng, bước đầu tiên là dán động cơ servo vào nắp thùng. Việc mở rộng đòn bẩy phải được thực hiện trước đó. Cần gạt sẽ chạm điểm dừng mà trước đây được làm thủ công. Gắn hộp vít vào nắp và tạo một lỗ trên đó để giữ cảm biến siêu âm ở đúng vị trí. Đảm bảo rằng bạn đã gắn các dây cáp trên nắp một cách chính xác bằng băng dính.
Bước 4: Phần Phần mềm và Thu thập Dữ liệu
Liên quan đến phần phần mềm, chúng tôi đã sử dụng ngôn ngữ lập trình python. Chương trình được lưu trong thẻ SD sẽ được Raspberry Pi chạy khi nó được bật. Sơ đồ đấu dây có sẵn ở trên. Hình ảnh ghim Gpio có sẵn cho tất cả các loại mâm xôi ở liên kết bên dưới:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Có thể sử dụng cảm biến siêu âm để thay thế máy dò chuyển động, bạn chỉ cần tạo "vòng lặp nếu" trong mã.
Như đã đề cập ở trên, dữ liệu liên quan đến mức độ mà thùng được lấp đầy sẽ được truyền đến một trang web được tạo trên wix.com. Trên trang web này, bạn có thể tìm thấy các tab khác nhau tập hợp các thành viên trong nhóm, trình bày phần cứng và phần mềm,… Tab thú vị thực sự là tab "Cơ sở dữ liệu" thu thập thông tin liên quan đến lượng rác trực tiếp từ SmartBin và tạo biểu đồ với dữ liệu. Biểu đồ hiển thị sự phát triển của mức độ lấp đầy. Có thể xem hoặc tải xuống dữ liệu từ trang web. Liên kết dưới đây là trang web chúng tôi đã sử dụng và sẽ hướng dẫn bạn cách đọc và viết trên google sheet bằng python:
www.makeuseof.com/tag/read-write-google-sh…
Liên quan đến "phần tự động chạy" của mã, hãy viết trong terminal: sudo nano / etc / xdg / lxsession / LXDE-pi / autostart
Sau đó, ở phần cuối của tập lệnh vừa mở, hãy viết hai dòng mã sau: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Để lưu cực quang, hãy nhấn: C trl + O Sau đó, nhấn: Enter Sau đó, nhấn: C trl + X
Viết dưới dạng dòng mã cuối cùng: sudo khởi động lại
Bạn cũng có thể tải xuống tệp đính kèm là mã python đầy đủ được sử dụng cho dự án. Cả hai mã được chạy cùng một lúc!
Đây là mã main.py:
nhập RPi. GPIO dưới dạng GPIO nhập ngày giờ nhập thời gian nhập csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (Sai)
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
Echo = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Echo, GPIO. IN)
GPIO.setwarnings (Sai)
GPIO.output (5, Sai)
GPIO.output (6, Sai) GPIO.output (13, Sai) GPIO.output (19, Sai) GPIO.output (20, Sai) GPIO.output (21, Sai) GPIO.output (26, Sai)
GPIO.output (Trig, False)
timeset = time.time ()
khoảng cách = 100 bộ nhớ = 0 time.sleep (2) pwm.start (12,5)
trong khi Đúng:
timetac = time.time () nếu GPIO.input (capteurP) và timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) memory = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0,5) nếu timetac-timeset> 15 hoặc bộ nhớ> 0,4: nếu bộ nhớ> 0,4: pwm. ChangeDutyCycle (2,5) time.sleep (1) cho x trong phạm vi (0, 1): # GPIO.output (Trig, Đúng) time.sleep (0,01) GPIO.output (Gấp, Sai)
trong khi GPIO.input (Echo) == 0 và timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
trong khi GPIO.input (Echo) == 1:
finImpulsion = time.time () nếu timetac-timeset <17: distance1 = round ((finImpulsion - debutImpulsion) * 340 * 100/2, 1) distance2 = distance nếu (distance1-distance2) <1 và (distance2-distance1) 0.4: dis = round ((60-distance) * 5/6, 1) với open ('capteur.csv', 'w') dưới dạng csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '% Y-% m-% d% H:% M:% S') print ('Time: {0} Quantitee: {1}'. format (time_str, dis)) capteurwriter. writerow ([time_str, dis]) memory = -0,1 nếu khoảng cách <52,5: GPIO.output (5, True) else: GPIO.output (5, False) nếu khoảng cách <45: GPIO.output (6, True) khác: GPIO.output (6, Sai) nếu khoảng cách <37,5: GPIO.output (13, Đúng) khác: GPIO.output (13, Sai) nếu khoảng cách <30: GPIO.output (19, Đúng) khác: GPIO.output (19, Sai) nếu khoảng cách <22,5: GPIO.output (20, Đúng) khác: GPIO.output (20, Sai) nếu khoảng cách <15: GPIO.output (21, Đúng) khác: GPIO.output (21, Sai) nếu khoảng cách <7,5: GPIO.output (26, Đúng) khác: GPIO.output (26, Sai)
Đây là mã csvcontrol.py. Đừng quên dán tệp ".json" đã tạo vào cùng thư mục của main.py. Tệp ".json" được tạo bằng API của Google. Một ảnh chụp màn hình có sẵn trong hình ảnh.
nhập ngày giờ nhập thời gian nhập csv nhập gspread
từ oauth2client.service_account nhập ServiceAccountCredentials
từ thời gian nhập theo dõi giấc ngủ nhập
timec2 = 'lol'
trong khi True: time.sleep (5) loc = ('capteur.csv') với open (loc) là csvfile: readCSV = csv.reader (csvfile, delimiter = ',') cho hàng trong readCSV: print (row [0]) timec = row [0] print (row [1]) distance = row [1] distance = float (str (distance)) if timec2! = timec: timec2 = timec print ('Time: {0} Quantitee: { 1} '. Định dạng (timec, khoảng cách))
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ lái xe"]
thông tin đăng nhập = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (thông tin đăng nhập) wks = gc.open ("graph"). sheet1 wks = wks.append_row ((timec, khoảng cách))
Đề xuất:
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: Trong phần Hướng dẫn nhanh này, chúng tôi sẽ tạo một bộ điều khiển động cơ bước đơn giản bằng cách sử dụng động cơ bước. Dự án này không yêu cầu mạch phức tạp hoặc vi điều khiển. Vì vậy, không cần thêm ado, chúng ta hãy bắt đầu
Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh)
Động cơ bước được điều khiển bằng động cơ bước Không cần vi điều khiển (V2): Trong một trong những Hướng dẫn trước đây của tôi, tôi đã chỉ cho bạn cách điều khiển động cơ bước bằng cách sử dụng động cơ bước mà không cần vi điều khiển. Đó là một dự án nhanh chóng và thú vị nhưng nó đi kèm với hai vấn đề sẽ được giải quyết trong Có thể hướng dẫn này. Vì vậy, hóm hỉnh
Đầu máy mô hình điều khiển động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Đầu máy mô hình điều khiển động cơ bước | Động cơ bước làm bộ mã hóa quay: Trong một trong những phần Hướng dẫn trước, chúng ta đã học cách sử dụng động cơ bước làm bộ mã hóa quay. Trong dự án này, bây giờ chúng ta sẽ sử dụng bộ mã hóa quay động cơ bước đó để điều khiển đầu máy mô hình bằng vi điều khiển Arduino. Vì vậy, không có fu
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy
SmartBin: 8 bước
SmartBin: Este é um projeto para um Sistema inteligente de coletas, no got os caminh õ es de lixo collectbem dados das lixeiras, Idificando a quantidade de lixo presente em cada uma delas, e uma rota de coleta tra ç ada, com base nas Informa