Sisällysluettelo:
- Vaihe 1: SmartBin -laitteet
- Vaihe 2: Vadelmarasian ja LED -palkin valmistus
- Vaihe 3: Kansiosa
- Vaihe 4: Ohjelmiston osien ja tietojen hankinta
Video: SmartBin: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tämän projektin päätarkoitus on luoda elektroninen laite, joka käyttää vähintään yhtä Raspberry Pi -laitetta. Tiimiin kuuluu viisi tulevaa koneinsinööriä ja yksi automaatioinsinööri. Projektimme koostuu roskakorin valmistamisesta, joka avautuu ja sulkeutuu automaattisesti jalan liikkeen vuoksi liiketunnistimen alla, joka sijaitsee roskakorin etuosassa. Wifi -USB -tikkua käytetään datan lähettämiseen verkkosivustolle. Tämän roskakorin nimi on "SmartBin". Yllä oleva humoristinen video esittelee innovatiivisen SmartBinimme.
Tämän projektin ja tämän merkittävän SmartBinin toteuttamiseksi tarvittiin useita työkaluja:
- Metri
- Vahva liima
- Teippi
- Puinen saha
- Ruuvimeisseli
- Porakone
- Kiinnike
- Veitsi
Vaihe 1: SmartBin -laitteet
SmartBin koostuu vihreistä, oransseista ja punaisista LED -valoista, jotka on sijoitettu roskakorin vasemmalla puolella olevaan kiinnikkeeseen, joka osoittaa, kuinka täynnä se on. Nämä valot näkyvät selvästi ja varoittavat käyttäjää, kun roskapussi on vaihdettava. Ohjelmointikieli on Python. Säiliön mitattu täyttöaste lähetetään seuraavalle verkkosivustolle:
Tässä on käytetty elementtejä, mutta voit helposti löytää vaihtoehtoisen ratkaisun:
- 1 roskakori ("kääntösuojus")
- 1 Servomoottori avaa säiliö
- 1 Vadelma Pi 2
- 2 virtalähdettä (5 V: n matkapuhelinlaturi ja 6 V: n virtalähde) Raspberry Pi: n ja servomoottorin toimittamiseen
- 1 Ultraääni -anturi säiliön täyttötason mittaamiseen
- Jotkut LEDit osoittavat täyttötason (4 vihreää, 2 oranssia ja 1 punaista)
- 1 Ultraääni -liiketunnistin liikkeen havaitsemiseksi
- 1 16 Gt SD-kortti
- Sähkövastukset (10.000 ohmia, 2000 ohmia ja 1000 ohmia)
- 1 WiFi -usb -tikku, joka mahdollistaa langattoman siirron verkkosivustolle.
- 1 Leipälevy ja muut Vadelmakaapelit
Arvioitu valmistushinta on 80 €.
Vaihe 2: Vadelmarasian ja LED -palkin valmistus
Raspberry -laatikon valmistukseen käytä puusahaa. Kiinnitä laatikon jokainen sivu niiteillä, jotta se näyttää puhtaalta. Kuten nimestä voi päätellä, tämä laatikko sisältää Raspberry Pi: n lisäksi myös liiketunnistimen, jonka sijoitat alareunaan. Kun laatikko on rakennettu, maalaa se samaan väriin kuin astia. Tämän laatikon luomiseen voidaan käyttää 3D -tulostustekniikkaa.
Käytä LED -palkin valmistukseen sähköputkea, johon poraat reikiä LED -valojen asentamiseksi. LED -palkki on myös maalattava. Kun kaikki on valmista, asenna LED -valot kanavaan ja kytke sähköliitäntä. Kiinnitä huomiota jokaisen LED -kaapelin oikeaan numerointiin teipillä. Se auttaa sinua tunnistamaan jokaisen LEDin johdotuksen aikana.
Kiinnitä lopuksi laatikko ja LED -palkki roskakorin etuosaan.
Vaihe 3: Kansiosa
Säiliön kannen osalta ensimmäinen askel on liimata servomoottori kanteen. Vipuvaikutusta on pidennettävä aiemmin. Vipu osuu pysäytykseen, joka oli aiemmin käsintehty. Kiinnitä ruuvikotelo kanteen ja tee siihen reikä, jotta ultraäänianturi pysyy oikeassa asennossa. Varmista, että kiinnität kaapelit kanteen oikein teipillä.
Vaihe 4: Ohjelmiston osien ja tietojen hankinta
Ohjelmisto -osassa käytimme python -ohjelmointikieltä. Ohjelma tallennetaan SD-kortille, jota Raspberry Pi käyttää, kun se käynnistetään. Johdotuskaavio löytyy yllä. Gpio -nastat -kuva on saatavana kaikille vadelmatyypeille alla olevasta linkistä:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
On mahdollista käyttää ultraäänianturia liiketunnistimen korvaamiseen, sinun tarvitsee vain luoda "if loop" koodiin.
Kuten edellä mainittiin, astian täyttämistä koskevat tiedot välitetään wix.com -sivustolle luodulle verkkosivustolle. Tältä verkkosivustolta löydät erilaisia välilehtiä, jotka keräävät tiimin jäseniä, laitteisto- ja ohjelmistoesityksen,… Mielenkiintoinen välilehti on itse asiassa "Tietokanta" -välilehti, joka kerää roskatietoja suoraan SmartBinistä ja luo kaavion tiedoista. Kaavio näyttää täytteen tason kehityksen. Sivustolta on mahdollista nähdä tai ladata tietoja. Alla oleva linkki on käyttämämme verkkosivusto ja näyttää, kuinka voit lukea ja kirjoittaa Google -arkeilla pythonilla:
www.makeuseof.com/tag/read-write-google-sh…
Kirjoita päätelaitteeseen koodin "automaattinen käynnistysosa": sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Kirjoita sitten juuri avatun komentosarjan loppuun nämä kaksi koodiriviä: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Tallenna aurorun painamalla: C trl + O Paina sitten: Enter Sitten paina: C trl + X
Kirjoita viimeiseksi koodiriviksi: sudo reboot
Voit myös ladata liitteen, joka on koko projektissa käytetty python -koodi. Molemmat koodit ajetaan samanaikaisesti!
Tässä on main.py -koodi:
tuoda RPi. GPIO GPIOna tuoda päivämäärän tuonti aika tuonti csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (Väärä)
kapteeniP = 7
servo = 17
GPIO.setup (servo, GPIO. OUT)
GPIO.asetukset (capteurP, GPIO. IN)
pwm = GPIO. PWM (17, 50)
GPIO.asetukset (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.asetukset (26, GPIO. OUT)
Laukaus = 23
Kaiku = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Echo, GPIO. IN)
GPIO.setwarnings (Väärä)
GPIO. output (5, False)
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, False)
timeset = time.time ()
etäisyys = 100 muistia = 0 aikaa. nukkumassa (2) pwm.start (12.5)
vaikka totta:
timetac = time.time () jos GPIO.input (capteurP) ja timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) muisti = -0,5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0,5), jos timetac-timeet> 15 tai muisti> 0,4: jos muisti> 0,4: pwm. ChangeDutyCycle (2.5) time.sleep (1) x: lle alueella (0, 1): # GPIO.output (Trig, True) time.sleep (0.01) GPIO. output (Trig, False)
kun GPIO.input (Echo) == 0 ja timetac-timeset <17: timetac = time.time () debutImpulsion = time.time ()
kun GPIO.input (Echo) == 1:
finImpulsion = aika.aika () jos timetac-timeset <17: etäisyys1 = pyöreä ((finImpulsion-debyyttiimpulsio) * 340 * 100/2, 1) etäisyys2 = etäisyys, jos (etäisyys1-etäisyys2) <1 ja (etäisyys2-etäisyys1) 0,4: dis = pyöreä ((60-etäisyys)*5/6, 1) auki ('capteur.csv', 'w') csv-tiedostona: 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. writeow ([time_str, dis]) muisti = -0,1 jos etäisyys <52.5: GPIO. output (5, True) else: GPIO. output (5, False) jos etäisyys <45: GPIO. output (6, True) else: GPIO. output (6, False) jos etäisyys <37,5: GPIO. output (13, True) else: GPIO. output (13, False) if distance <30: GPIO. output (19, True) else: GPIO. output (19, epätosi) jos etäisyys <22,5: GPIO.lähtö (20, tosi) muu: GPIO.lähtö (20, epätosi), jos etäisyys <15: GPIO.lähtö (21, tosi) muu: GPIO.lähtö (21, epätosi) jos etäisyys <7.5: GPIO. output (26, True) else: GPIO. output (26, False)
Tässä on csvcontrol.py -koodi. Älä unohda liittää luotua.json -tiedostoa samaan hakemistoon main.py.. Json -tiedosto luodaan google -sovellusliittymällä. Kuvakaappaus löytyy kuvista.
tuontipäivä ja aika tuonti aika tuonti csv tuonti gspread
osoitteesta oauth2client.service_account tuonti ServiceAccountCredentials
ajan tuonnin lepotilan tuonnin jäljitys
timec2 = 'lol'
kun taas True: time.sleep (5) loc = ('capteur.csv') ja open (loc) nimellä csvfile: readCSV = csv.reader (csvfile, delimiter = ',') riville readCSV: print (rivi [0]) timec = rivi [0] print (rivi [1]) distance = rivi [1] distance = float (str (distance)) if timec2! = timec: timec2 = timec print ('Aika: {0} Quantitee: { 1} '. Muoto (timec, etäisyys))
SOVELTAMISALA = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ ajaa"]
credentials = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SOVELTAMISALAT) gc = gspread.authorize (credentials) wks = gc.open ("graph"). sheet1 wks = wks.append_row ((timec, distance))
Suositeltava:
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen
SmartBin: 8 vaihetta
SmartBin: Este é um projeto para um system 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 ç ada, com base nas information