สารบัญ:
- ขั้นตอนที่ 1: อุปกรณ์ SmartBin
- ขั้นตอนที่ 2: การผลิตกล่องราสเบอร์รี่และแถบ LED
- ขั้นตอนที่ 3: ส่วนฝา
- ขั้นตอนที่ 4: ส่วนซอฟต์แวร์และการได้มาซึ่งข้อมูล
วีดีโอ: SmartBin: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
วัตถุประสงค์หลักของโครงการนี้คือการสร้างอุปกรณ์อิเล็กทรอนิกส์ที่ใช้ Raspberry Pi อย่างน้อยหนึ่งตัว ทีมงานประกอบด้วยวิศวกรเครื่องกลในอนาคต 5 คน และวิศวกรระบบอัตโนมัติ 1 คน โครงการของเราประกอบด้วยการทำถังขยะที่เปิดและปิดโดยอัตโนมัติโดยการเคลื่อนไหวของเท้าภายใต้เครื่องตรวจจับความเคลื่อนไหวที่อยู่ตรงกลางด้านหน้าถังขยะ แท่ง USB Wifi ใช้สำหรับส่งข้อมูลไปยังเว็บไซต์ ถังนี้เรียกว่า "The SmartBin" วิดีโอตลกขบขันด้านบนแนะนำ SmartBin ที่เป็นนวัตกรรมของเรา
เพื่อดำเนินโครงการนี้และ SmartBin ที่น่าทึ่งนี้ จำเป็นต้องมีเครื่องมือหลายอย่าง:
- เมตร
- กาวที่แข็งแกร่ง
- เทปกาว
- เลื่อยไม้
- ไขควง
- เครื่องเจาะ
- ที่หนีบ
- มีด
ขั้นตอนที่ 1: อุปกรณ์ SmartBin
SmartBin ประกอบด้วยไฟ LED สีเขียว สีส้ม และสีแดง ซึ่งติดตั้งอยู่ที่ด้านซ้ายของถังขยะ ซึ่งจะระบุว่ามีการบรรจุมากแค่ไหน ไฟเหล่านี้จะมองเห็นได้ชัดเจน และจะเตือนผู้ใช้เมื่อจำเป็นต้องเปลี่ยนถุงขยะ ภาษาโปรแกรมที่ใช้คือ Python ระดับการบรรจุที่วัดได้ของถังขยะจะถูกส่งไปยังเว็บไซต์ต่อไปนี้:
นี่คือองค์ประกอบที่ใช้แล้ว แต่คุณสามารถหาวิธีแก้ปัญหาอื่นได้อย่างง่ายดาย:
- 1 ถังขยะ ("ฝาสวิง" bin)
- 1 เซอร์โวมอเตอร์เพื่อเปิดถัง
- 1 ราสเบอร์รี่ Pi 2
- 2 แหล่งจ่ายไฟ (เครื่องชาร์จโทรศัพท์มือถือ 5V และแหล่งจ่ายไฟ 6V) เพื่อจ่าย Raspberry Pi และเซอร์โวมอเตอร์
- 1 Ultrasonic sensor วัดระดับการเติมของถัง
- ไฟ LED บางดวงแสดงระดับการบรรจุ (4 สีเขียว 2 สีส้มและ 1 สีแดง)
- 1 เครื่องตรวจจับการเคลื่อนไหวแบบอัลตราโซนิกเพื่อตรวจจับการเคลื่อนไหว
- การ์ด SD 16Gb 1 ใบ
- ตัวต้านทานไฟฟ้า (10.000 โอห์ม 2000 โอห์ม และ 1,000 โอห์ม)
- 1 WiFi usb stick เพื่อเปิดใช้งานการส่งข้อมูลแบบไร้สายไปยังเว็บไซต์
- 1 เขียงหั่นขนมและสายราสเบอร์รี่ some
ราคาการผลิตโดยประมาณคือ 80 ยูโร
ขั้นตอนที่ 2: การผลิตกล่องราสเบอร์รี่และแถบ LED
ในการผลิตกล่องราสเบอร์รี่ ให้ใช้เลื่อยไม้ ยึดกล่องทุกด้านด้วยหมุดย้ำเพื่อให้ดูสะอาดตา ตามชื่อของมัน กล่องนี้จะไม่เพียงแต่ประกอบด้วย Raspberry Pi แต่ยังรวมถึงเซ็นเซอร์ตรวจจับความเคลื่อนไหวที่คุณจะวางไว้ที่ด้านล่าง เมื่อสร้างกล่องแล้ว ให้ทาสีด้วยสีเดียวกับถังขยะ เทคโนโลยีการพิมพ์ 3 มิติสามารถใช้สร้างกล่องนี้ได้
สำหรับการผลิตแถบ LED ให้ใช้ท่อไฟฟ้าที่คุณเจาะรูเพื่อให้สามารถติดตั้งไฟ LED ได้ แถบ LED ยังต้องทาสี เมื่อทุกอย่างพร้อม ให้ติดตั้งไฟ LED ในท่อและทำการเชื่อมต่อทางไฟฟ้า ใส่ใจกับหมายเลขสาย LED แต่ละสายด้วยเทปกาวอย่างถูกต้อง มันจะช่วยให้คุณระบุแต่ละ LED ระหว่างการเดินสาย
สุดท้าย ติดกล่องและแถบ LED ที่ด้านหน้าถังขยะของคุณ
ขั้นตอนที่ 3: ส่วนฝา
เกี่ยวกับฝาถัง ขั้นตอนแรกคือการติดเซอร์โวมอเตอร์กับฝา ต้องทำการขยายเลเวอเรจก่อนหน้านี้ คันโยกจะหยุดซึ่งเคยทำด้วยมือ ติดกล่องสกรูเข้ากับฝาแล้วเจาะรูเพื่อให้เซ็นเซอร์อัลตราโซนิกอยู่ในตำแหน่งที่ถูกต้อง ตรวจสอบให้แน่ใจว่าคุณติดสายบนฝาด้วยเทปอย่างถูกต้อง
ขั้นตอนที่ 4: ส่วนซอฟต์แวร์และการได้มาซึ่งข้อมูล
ในส่วนของซอฟต์แวร์ เราใช้ภาษาโปรแกรม python โปรแกรมจะถูกบันทึกไว้ในการ์ด SD ซึ่งจะเรียกใช้โดย Raspberry Pi เมื่อเปิดเครื่อง รูปแบบการเดินสายมีอยู่ด้านบน รูปภาพพิน Gpio มีให้สำหรับราสเบอร์รี่ทุกประเภทที่ลิงค์ด้านล่าง:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
คุณสามารถใช้เซ็นเซอร์อัลตราโซนิกเพื่อแทนที่เครื่องตรวจจับการเคลื่อนไหว คุณเพียงแค่สร้าง "if loop" ในโค้ด
ดังที่กล่าวไว้ข้างต้น ข้อมูลเกี่ยวกับระดับที่ถังบรรจุจะถูกส่งไปยังเว็บไซต์ที่สร้างบน wix.com ในเว็บไซต์นี้ คุณจะพบแท็บต่างๆ ที่รวบรวมสมาชิกในทีม การนำเสนอฮาร์ดแวร์และซอฟต์แวร์ … แท็บที่น่าสนใจจริงๆ แล้วคือแท็บ "ฐานข้อมูล" ซึ่งรวบรวมข้อมูลเกี่ยวกับปริมาณขยะโดยตรงจาก SmartBin และสร้างกราฟพร้อมข้อมูล. กราฟแสดงวิวัฒนาการของระดับการเติม สามารถดูหรือดาวน์โหลดข้อมูลจากเว็บไซต์ได้ ลิงค์ด้านล่างเป็นเว็บไซต์ที่เราใช้และจะแสดงวิธีการอ่านและเขียนบน Google ชีตด้วย python:
www.makeuseof.com/tag/read-write-google-sh…
เกี่ยวกับ "ส่วนการทำงานอัตโนมัติ" ของโค้ด ให้เขียนในเทอร์มินัล: sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
จากนั้น ในตอนท้ายของสคริปต์ที่เพิ่งเปิด ให้เขียนโค้ดสองบรรทัดนี้: python /home/pi/main.py & python /home/pi/csvcontrol.py &
หากต้องการบันทึก aurorun ให้กด: C trl + O จากนั้นกด: Enter จากนั้นกด: C trl + X
เขียนเป็นโค้ดบรรทัดสุดท้าย: sudo reboot
คุณยังสามารถดาวน์โหลดไฟล์แนบซึ่งเป็นรหัสหลามแบบเต็มที่ใช้สำหรับโครงการ รหัสทั้งสองทำงานพร้อมกัน !
นี่คือรหัส main.py:
นำเข้า RPi. GPIO เป็น GPIOนำเข้าวันที่และเวลานำเข้า นำเข้า csv
GPIO.setmode(GPIO. BCM)
GPIO.setwarnings(เท็จ)
capteurP = 7
เซอร์โว = 17
GPIO.setup (เซอร์โว, GPIO. OUT)
GPIO.setup (capteurP, GPIO. IN)
pwm=GPIO. PWM(17, 50)
GPIO.setup(5, GPIO.ออก)
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.ออก)
ตรีโกณ = 23
ก้อง = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (เสียงสะท้อน, GPIO. IN)
GPIO.setwarnings(เท็จ)
GPIO.output(5, เท็จ)
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, เท็จ)
ชุดเวลา = time.time()
ระยะทาง=100 หน่วยความจำ=0 time.sleep(2) pwm.start(12.5)
ในขณะที่จริง:
timetac = time.time() ถ้า GPIO.input(capteurP) และ timetac-timeset0.9: pwm. ChangeDutyCycle(2.5) หน่วยความจำ time.sleep(0.2)=-0.5 pwm. ChangeDutyCycle(0) timetac = time.time() time.sleep(0.5) ถ้า timetac-timeset>15 หรือ memory>0.4: if memory>0.4: pwm. ChangeDutyCycle(2.5) time.sleep(1) สำหรับ x ในช่วง(0, 1): # GPIO.output(Trig, จริง) time.sleep(0.01) GPIO.output(Trig, False)
ในขณะที่ GPIO.input(Echo)==0 และ timetac-timeset<17: timetac = time.time() debutImpulsion = time.time()
ในขณะที่ GPIO.input(Echo)==1:
finImpulsion = time.time() ถ้า timetac-timeset<17: distance1 = round((finImpulsion - debutImpulsion) * 340 * 100 / 2, 1) distance2=distance if (distance1-distance2)<1 and (distance2-distance1)0.4: dis=round((60-distance)*5/6, 1) with open('capteur.csv', 'w') เป็น 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)) ผู้เขียนบันทึก writerow([time_str, dis]) หน่วยความจำ=-0.1 ถ้าระยะทาง < 52.5: GPIO.output(5, True) อื่น: GPIO.output(5, False) ถ้าระยะทาง < 45: GPIO.output(6, True) อื่น: GPIO.output(6, False) ถ้าระยะทาง < 37.5: GPIO.output(13, True) อื่นๆ: GPIO.output(13, False) ถ้าระยะทาง < 30: GPIO.output(19, True) อื่นๆ: GPIO.output(19, เท็จ) หากระยะทาง < 22.5: GPIO.output (20, จริง) อื่น: GPIO.output (20, เท็จ) หากระยะทาง < 15: GPIO.output (21, จริง) อื่น: GPIO.output (21, เท็จ) ถ้าระยะทาง <7.5: GPIO.output(26, True) อื่น: GPIO.output(26, False)
นี่คือรหัส csvcontrol.py อย่าลืมวางไฟล์ ".json" ที่สร้างขึ้นในไดเร็กทอรีเดียวกันของ main.py ไฟล์ ".json" ถูกสร้างขึ้นด้วย google API ภาพหน้าจอมีอยู่ในรูปภาพ
นำเข้าวันที่เวลานำเข้าเวลานำเข้า csv นำเข้า gspread
จาก oauth2client.service_account นำเข้า ServiceAccountCredentials
จากเวลา นำเข้า sleep นำเข้า traceback
timec2='lol'
ในขณะที่ True: time.sleep(5) loc=('capteur.csv') โดยเปิด (loc) เป็น csvfile: readCSV = csv.reader(csvfile, delimiter=', ') สำหรับแถวใน 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}'.format(timec ระยะทาง))
ขอบเขต = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ ขับ"]
credentials = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', SCOPES) gc = gspread.authorize(credentials) wks= gc.open("graph".sheet1 wks= wks.append_row((timec, distance))
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
SmartBin: 8 ขั้นตอน
SmartBin: เอสเต é 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, ข้อมูลพื้นฐาน