İçindekiler:
- Adım 1: SmartBin Ekipmanı
- Adım 2: Ahududu Kutusu ve LED Barın İmalatı
- Adım 3: Kapak Parçası
- 4. Adım: Yazılım Bölümü ve Veri Toplama
Video: SmartBin: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu projenin temel amacı, en az bir adet Raspberry Pi kullanan elektronik bir cihaz oluşturmaktır. Ekip, geleceğin 5 makine mühendisi ve bir otomasyon mühendisinden oluşuyor. Projemiz, çöp kutusunun ön tarafında ortada bulunan hareket dedektörü altında ayak hareketi ile otomatik olarak açılıp kapanan bir çöp kovası yapmaktan ibarettir. Bir web sitesine veri göndermek için bir Wifi USB çubuğu kullanılır. Bu kutuya "SmartBin" denir. Yukarıdaki komik video, yenilikçi SmartBin'imizi tanıtıyor.
Bu projeyi ve bu olağanüstü SmartBin'i gerçekleştirmek için birkaç araç gerekliydi:
- Bir metre
- Güçlü yapıştırıcı
- bir yapışkan bant
- Bir ağaç testeresi
- Bir tornavida
- Bir matkap makinesi
- bir kelepçe
- Bir bıçak
Adım 1: SmartBin Ekipmanı
SmartBin, kutunun ne kadar dolu olduğunu gösteren, kutunun sol tarafındaki bir armatür üzerine yerleştirilmiş yeşil, turuncu ve kırmızı LED ışıklardan oluşur. Bu ışıklar net bir şekilde görünecek ve çöp poşetinin değiştirilmesi gerektiğinde kullanıcıyı uyaracaktır. Kullanılan programlama dili Python'dur. Deponun ölçülen doluluk seviyesi aşağıdaki web sitesine iletilir:
İşte kullanılmış olan ancak kolayca alternatif bir çözüm bulabileceğiniz unsurlar:
- 1 Kutu ("döner kapaklı" kutu)
- Hazneyi açmak için 1 servo motor
- 1 Ahududu Pi 2
- Raspberry Pi ve servo motoru beslemek için 2 güç kaynağı (5V cep telefonu şarj cihazı ve 6V güç kaynağı)
- 1 Kutunun dolum seviyesini ölçmek için ultrasonik sensör
- Bazı LED'ler dolum seviyesini gösterir (4 yeşil, 2 turuncu ve 1 kırmızı)
- Bir hareketi algılamak için 1 Ultrasonik hareket dedektörü
- 1 16Gb SD kart
- Elektrik dirençleri (10.000 Ohm, 2000 Ohm ve 1000 Ohm)
- Web sitesine kablosuz iletimi sağlamak için 1 WiFi usb çubuğu.
- 1 Breadboard ve bazı Raspberry kabloları
Tahmini üretim fiyatı 80€'dur.
Adım 2: Ahududu Kutusu ve LED Barın İmalatı
Ahududu kutusunu üretmek için ağaç testeresi kullanın. Temiz görünmesi için kutunun her tarafını perçinlerle sabitleyin. Adından da anlaşılacağı gibi bu kutu içerisinde sadece Raspberry Pi değil, alt kısmına yerleştireceğiniz hareket sensörü de yer alacak. Kutu oluşturulduktan sonra, kutu ile aynı renge boyayın. Bu kutuyu oluşturmak için 3D baskı teknolojisi kullanılabilir.
LED çubuğun üretimi için, LED ışıkların takılmasına izin vermek için delikler açacağınız bir elektrik kanalı kullanın. LED çubuğun da boyanması gerekiyor. Her şey hazır olduğunda kanala ledleri takınız ve elektrik bağlantısını yapınız. Her LED kablosunu yapışkan bantla doğru şekilde numaralandırmaya dikkat edin. Kablolama sırasında her bir LED'i tanımlamanıza yardımcı olacaktır.
Son olarak kutuyu ve LED çubuğu çöp kutunuzun önüne takın.
Adım 3: Kapak Parçası
Hazne kapağı ile ilgili olarak, ilk adım servo motoru kapağa yapıştırmaktır. Kaldıracın bir uzantısı daha önce yapılmış olmalıdır. Kol, daha önce el yapımı olan bir durağa çarpacaktır. Ultrasonik sensörü doğru konumda tutmak için kapağa bir vida kutusu takın ve içine bir delik açın. Kabloları bantla kapağa doğru şekilde taktığınızdan emin olun.
4. Adım: Yazılım Bölümü ve Veri Toplama
Yazılım kısmında ise python programlama dilini kullandık. Program, açıldığında Raspberry Pi tarafından çalıştırılacak olan SD karta kaydedilir. Kablolama şeması yukarıda mevcuttur. Tüm ahududu türleri için Gpio pin görüntüsü aşağıdaki bağlantıda mevcuttur:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Hareket dedektörünü değiştirmek için ultrasonik bir sensör kullanmak mümkündür, kodda bir "if döngüsü" oluşturmanız yeterlidir.
Yukarıda bahsedildiği gibi, çöp kutusunun doldurulma seviyesine ilişkin veriler, wix.com'da oluşturulan bir web sitesine iletilir. Bu web sitesinde, ekip üyelerini, donanım ve yazılım sunumlarını bir araya getiren farklı sekmeler bulabilirsiniz, … İlginç sekme aslında çöp miktarı ile ilgili bilgileri doğrudan SmartBin'den toplayan ve verilerle bir grafik oluşturan "Veritabanı" sekmesidir.. Grafik, doldurma seviyesinin gelişimini gösterir. Web sitesinden verileri görmek veya indirmek mümkündür. Aşağıdaki bağlantı kullandığımız web sitesidir ve python ile google sayfalarında nasıl okunacağını ve yazılacağını size gösterecektir:
www.makeuseof.com/tag/read-write-google-sh…
Kodun "otomatik çalıştırma kısmı" ile ilgili olarak, terminale şunu yazın: sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Ardından, yeni açılan betiğin sonuna şu iki kod satırını yazın: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Aurorun'u kaydetmek için, şu tuşlara basın: C trl + O Ardından, şuna basın: Enter Ardından, şu tuşlara basın: C trl + X
Son kod satırı olarak yaz: sudo yeniden başlatma
Proje için kullanılan tam python kodu olan eki de indirebilirsiniz. Her iki kod da aynı anda çalıştırılır!
İşte main.py kodu:
RPi. GPIO'yu GPIOimport datetime olarak içe aktarın saati içe aktar csv
GPIO.setmode(GPIO. BCM)
GPIO.setwarnings(Yanlış)
yakalayıcıP = 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)
Tetik = 23
yankı = 24
GPIO.setup(Trig, GPIO. OUT)
GPIO.setup(Yankı, GPIO. IN)
GPIO.setwarnings(Yanlış)
GPIO.output(5, Yanlış)
GPIO.output(6, Yanlış) GPIO.output(13, Yanlış) GPIO.output(19, Yanlış) GPIO.output(20, Yanlış) GPIO.output(21, Yanlış) GPIO.output(26, Yanlış)
GPIO.output(Trig, False)
zaman seti = zaman.zaman()
mesafe=100 hafıza=0 zaman.uyku(2) pwm.start(12.5)
Doğru iken:
timetac = time.time() eğer GPIO.input(capteurP) ve timetac-timeset0.9: pwm. ChangeDutyCycle(2.5) time.sleep(0.2) memory=-0.5 pwm. ChangeDutyCycle(0) timetac = time.time() time.sleep(0.5) timetac-timeset>15 ise veya memory>0.4: ise memory>0.4: pwm. ChangeDutyCycle(2.5) time.sleep(1) x aralığında (0, 1): # GPIO.output(Trig), True) time.sleep(0.01) GPIO.output(Trig, False)
while GPIO.input(Echo)==0 ve timetac-timeset<17: timetac = time.time() debutImpulsion = time.time()
GPIO.input(Echo)==1 iken:
finImpulsion = time.time() ise timetac-timeset<17: Distance1 = round((finImpulsion - ilkImpulsion) * 340 * 100 / 2, 1) uzaklık2=mesafe if (mesafe1-mesafe2)<1 ve (mesafe2-mesafe1)0.4: dis=yuvarlak((60-mesafe)*5/6, 1) open('capteur.csv', 'w') ile csvfile olarak: 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 ise uzaklık < 52.5: GPIO.output(5, True) başka: GPIO.output(5, False) uzaklık < 45 ise: GPIO.output(6, True) başka: GPIO.output(6, False) uzaklık < 37.5 ise: GPIO.output(13, True) başka: GPIO.output(13, False) uzaklık < 30 ise: GPIO.output(19, True) başka: GPIO.output(19, Yanlış) uzaklık < 22,5 ise: GPIO.output(20, Doğru) başka: GPIO.output(20, Yanlış) uzaklık < 15 ise: GPIO.output(21, Doğru) başka: GPIO.output(21, Yanlış) uzaklık < 7.5 ise: GPIO.output(26, True) diğer: GPIO.output(26, False)
İşte csvcontrol.py kodu. Oluşturulan ".json" dosyasını main.py ile aynı dizine yapıştırmayı unutmayın. ".json" dosyası google API ile oluşturulur. Resimlerde ekran görüntüsü mevcuttur.
import datetimeimport time import csv import gspread
oauth2client.service_account'tan ServiceAccountCredentials'ı içe aktarın
zamandan içe uyku içe aktarma geri izleme
timec2='lol'
while True: time.sleep(5) loc=('capteur.csv') open(loc) ile csvfile olarak: readCSV = csv.reader(csvfile, delimiter=', ') readCSV'deki satır için: print(row[0]) timec=satır[0] print(satır[1]) mesafe=satır[1] mesafe=float(str(mesafe)) if timec2!=timec: timec2=timec print('Zaman:{0} Miktar:{ 1}'.format(timec, mesafe))
KAPSAMLAR = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ sürmek"]
kimlik bilgileri = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', KAPSAMLAR) gc = gspread.authorize(credentials) wks= gc.open("graph").sheet1 wks= wks.append_row((zaman, mesafe))
Önerilen:
Akıllı Motosiklet HUD Prototipi (adım adım Navigasyon ve Çok Daha Fazlası): 9 Adım
Akıllı Motosiklet HUD Prototipi (adım adım Navigasyon ve Çok Daha Fazlası): Merhaba !Bu Talimatlar, motosiklet kasklarına monte edilmek üzere tasarlanmış bir HUD (Heads-Up Display) platformunu nasıl tasarladığımın ve inşa ettiğimin hikayesidir. "Haritalar" yarışması bağlamında yazılmıştır. Maalesef tamamen bitiremedim
Arduino Araba Geri Geri Park Uyarı Sistemi - Adım Adım: 4 Adım
Arduino Araba Geri Geri Park Uyarı Sistemi | Adım Adım: Bu projede Arduino UNO ve HC-SR04 Ultrasonik Sensör kullanarak basit bir Arduino Araba Geri Park Sensörü Devresi tasarlayacağım. Bu Arduino tabanlı Araba Ters uyarı sistemi, Otonom Navigasyon, Robot Mesafesi ve diğer menzil r
Adım Adım PC Oluşturma: 9 Adım
Adım Adım Bilgisayar Oluşturma: Sarf Malzemeleri: Donanım: AnakartCPU & CPU soğutucusuPSU (Güç kaynağı ünitesi)Depolama (HDD/SSD)RAMGPU (gerekli değil)CaseTools: TornavidaESD bilezik/aplikatörlü matstermal macun
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)
SmartBin: 8 Adım
SmartBin: Este é um projeto para um sistema inteligente de coletas, no qual os caminhões de lixo rebem dados das lixeiras, identificando ve lixo lixo sunumu, em cada uma delas, e uma rota de coleta traça, com base